From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/gs/examples/menu_demo.erl | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 lib/gs/examples/menu_demo.erl (limited to 'lib/gs/examples/menu_demo.erl') 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). -- cgit v1.2.3