ソース:
-module(sashWindowTest).
-include_lib("wx.hrl").
-export([start/0]).
-define(TOP_SASH, 1).
-define(BOTTOM_SASH, 2).
start()->
Wx = wx:new(),
Frame = wx:batch(fun() -> create_window(Wx) end),
wxWindow:show(Frame),
loop(Frame),
wx:destroy(),
ok.
create_window(Wx)->
%% Create Frame
Frame = wxFrame:new(Wx,
-1,
"sashWindow Example",
%%[{size,{300,200}}]),
[{size,{-1,-1}}]),
%% Create Panel
%%Panel1 = wxPanel:new(Frame),
Panel = wxPanel:new(Frame, []),
%% Setup sizers
MainSizer = wxBoxSizer:new(?wxVERTICAL),
Sizer = wxBoxSizer:new(?wxVERTICAL),
TopSash = wxSashWindow:new(Panel, [{id, ?TOP_SASH},
{style, ?wxSW_3D}]),
Win1 = wxPanel:new(TopSash, []),
wxStaticText:new(Win1, ?wxID_ANY, "This is the top sash", []),
BottomSash = wxSashWindow:new(Panel, [{id, ?BOTTOM_SASH},
{style, ?wxSW_3D}]),
Win2 = wxPanel:new(BottomSash, []),
wxStaticText:new(Win2, ?wxID_ANY, "This is the bottom sash", []),
%% Make the bottom edge of the top sash dragable
wxSashWindow:setSashVisible(TopSash, ?wxSASH_BOTTOM, true),
%wxPanel:connect(Panel, sash_dragged),
%wxPanel:connect(Panel, size),
%% Add to sizers
Options = [{flag, ?wxEXPAND}, {proportion, 1}],
wxSizer:add(Sizer, TopSash, Options),
wxSizer:add(Sizer, BottomSash, Options),
wxSizer:add(MainSizer, Sizer, Options),
wxPanel:setSizer(Panel, MainSizer),
wxSizer:fit(MainSizer, Panel),
wxSizer:setSizeHints(MainSizer, Panel),
%% Set Connect Close
wxFrame:connect(Frame, close_window),
Frame.
loop(Frame) ->
receive
% Window Close Event
#wx{event=#wxClose{}} ->
io:format("~p Closing window ~n",[self()]),
wxWindow:destroy(Frame),
ok
end.
wx.hrlはErlangのインストールディレクトリを検索してください。
それを本ソースと同一ディレクトリに配置してください。
仕事が終わって、この作業も疲れてきたな。
0 件のコメント:
コメントを投稿