diff options
Diffstat (limited to 'lib/gs/doc/src/examples/ex13.erl')
-rw-r--r-- | lib/gs/doc/src/examples/ex13.erl | 74 |
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). |