diff options
author | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/gs/examples/menu_demo.erl | |
download | otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2 otp-84adefa331c4159d432d22840663c38f155cd4c1.zip |
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/gs/examples/menu_demo.erl')
-rw-r--r-- | lib/gs/examples/menu_demo.erl | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/gs/examples/menu_demo.erl b/lib/gs/examples/menu_demo.erl new file mode 100644 index 0000000000..c95fc33152 --- /dev/null +++ b/lib/gs/examples/menu_demo.erl @@ -0,0 +1,74 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 1996-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% + +%% +-module(menu_demo). + +-compile(export_all). + +start() -> spawn(menu_demo, init, []). + +init() -> + I=gs:start(), + Win=gs:window(I, [{title,"menu"},{width,200},{height,100}, {map, true}]), + Bar = gs:create(menubar, Win, []), + Fmb = gs:create(menubutton, Bar, [{label, {text, "File"}}]), + Emb = gs:create(menubutton, Bar, [{label, {text, "Edit"}}]), + Hmb = gs:create(menubutton, Bar, [{label, {text, "Help"}}, {side, right}]), + Fmnu = gs:create(menu, Fmb, []), + Emnu = gs:create(menu, Emb, []), + Hmnu = gs:create(menu, Hmb, []), + gs:create(menuitem, load, Fmnu, [{label,{text, "Load"}}]), + gs:create(menuitem, save, Fmnu, [{label,{text, "Save"}}]), + Exit = gs:create(menuitem, Fmnu, [{label,{text, "Exit"}}]), + Color=gs:create(menuitem,Emnu,[{label,{text,"Color"}},{itemtype,cascade}]), + Cmnu = gs:create(menu, Color, [{disabledfg,gray}]), + gs:create(menuitem, Cmnu, [{label, {text,"Red"}}, {data, {new_color, red}}, + {fg,red}, {itemtype,radio},{group,gr1}]), + gs:create(menuitem, Cmnu, [{label, {text,"Blue"}},{data, {new_color, blue}}, + {fg,blue}, {itemtype,radio},{group,gr1}]), + gs:create(menuitem,Cmnu,[{label, {text,"Black"}},{data, {new_color, black}}, + {fg,black}, {itemtype,radio},{group,gr1}]), + Y = gs:create(menuitem, Hmnu, [{label, {text,"You"}}, {itemtype, check}]), + M = gs:create(menuitem,me,Hmnu,[{label,{text,"Me"}},{itemtype,check}]), + gs:create(menuitem, Hmnu, [{label, {text, "Other"}}, {itemtype, check}, + {enable,false},{click,false}]), + gs:create(menuitem,doit,Hmnu,[{label,{text,"Doit!"}},{data,{doit,Y,M}}]), + loop(Exit, Win). + +loop(Exit, Win) -> + receive + {gs, save, click, _Data, [_Txt, _Index | _Rest]} -> + io:format("Save~n"); + {gs, load, click, _Data, [_Txt, _Index | _Rest]} -> + io:format("Load~n"); + {gs, Exit, click, _Data, [_Txt, _Index | _Rest]} -> + io:format("Exit~n"), + exit(normal); + {gs, _MnuItem, click, {new_color, Color}, Args} -> + io:format("Change color to ~w. Args:~p~n", [Color, Args]), + gs:config(Win, [{bg, Color}]); + {gs, doit, click, {doit, YouId, MeId}, Args} -> + HelpMe = gs:read(MeId, select), + HelpYou = gs:read(YouId, select), + io:format("Doit. HelpMe:~w, HelpYou:~w, Args:~p~n", + [HelpMe, HelpYou, Args]); + Other -> io:format("Other:~p~n",[Other]) + end, + loop(Exit, Win). |