diff options
Diffstat (limited to 'lib/wx/examples/simple/hello.erl')
-rwxr-xr-x | lib/wx/examples/simple/hello.erl | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/lib/wx/examples/simple/hello.erl b/lib/wx/examples/simple/hello.erl new file mode 100755 index 0000000000..dc845ddfbb --- /dev/null +++ b/lib/wx/examples/simple/hello.erl @@ -0,0 +1,69 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 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% +%% +%%%------------------------------------------------------------------- +%%% File : hello.erl +%%% Author : Matthew Harrison <harryhuk at users.sourceforge.net> +%%% Description : _really_ minimal example of a wxerlang app +%%% +%%% Created : 18 Sep 2008 by Matthew Harrison <harryhuk at users.sourceforge.net> +%%%------------------------------------------------------------------- +-module(hello). + +-include_lib("wx/include/wx.hrl"). + +-export([start/0]). +-compile(export_all). + +start() -> + Wx = wx:new(), + Frame = wx:batch(fun() -> create_window(Wx) end), + wxWindow:show(Frame), + loop(Frame), + wx:destroy(), + ok. + +create_window(Wx) -> + Frame = wxFrame:new(Wx, + -1, % window id + "Hello World", % window title + [{size, {600,400}}]), + + + wxFrame:createStatusBar(Frame,[]), + + %% if we don't handle this ourselves, wxwidgets will close the window + %% when the user clicks the frame's close button, but the event loop still runs + wxFrame:connect(Frame, close_window), + + ok = wxFrame:setStatusText(Frame, "Hello World!",[]), + Frame. + +loop(Frame) -> + receive + #wx{event=#wxClose{}} -> + io:format("~p Closing window ~n",[self()]), + ok = wxFrame:setStatusText(Frame, "Closing...",[]), + wxWindow:destroy(Frame), + ok; + Msg -> + io:format("Got ~p ~n", [Msg]), + loop(Frame) + end. + + |