aboutsummaryrefslogtreecommitdiffstats
path: root/lib/gs/doc/src/examples/ex13.erl
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
committerErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/gs/doc/src/examples/ex13.erl
downloadotp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz
otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2
otp-84adefa331c4159d432d22840663c38f155cd4c1.zip
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/gs/doc/src/examples/ex13.erl')
-rw-r--r--lib/gs/doc/src/examples/ex13.erl74
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/gs/doc/src/examples/ex13.erl b/lib/gs/doc/src/examples/ex13.erl
new file mode 100644
index 0000000000..f8af1f34c6
--- /dev/null
+++ b/lib/gs/doc/src/examples/ex13.erl
@@ -0,0 +1,74 @@
+-module(ex13).
+-copyright('Copyright (c) 1991-97 Ericsson Telecom AB').
+-vsn('$Revision: /main/release/2 $ ').
+
+-export([start/0,init/0]).
+
+start() -> spawn(ex13, init, []).
+
+init() ->
+ I=gs:start(),
+ Win=gs:window(I, [{width,200},{height,100},
+ {title,"menu"},{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}},
+ {itemtype,radio},{group,gr1}]),
+ gs:create(menuitem, Cmnu, [{label, {text,"Blue"}},
+ {data, {new_color, blue}},
+ {itemtype,radio},{group,gr1}]),
+ gs:create(menuitem,Cmnu, [{label, {text,"Black"}},
+ {data, {new_color, 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, [{itemtype, separator}]),
+ gs:create(menuitem, Hmnu, [{label, {text, "Other"}},
+ {itemtype, check},
+ {enable,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).