2011年6月19日日曜日

wxErlang wxBoxSizer wxListBox 表示させる

やっと、wxBoxSizerのサンプルができた。
長かった。

こんな画面です。

wxStaticBoxSizerとか使わないとダメなのかわからない。
wxBoxSizerだけだとどうなんだか。

ソース:

-module(boxSizerTest).
-include_lib("wx.hrl").

-export([start/0]).

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,
 "BoxSizer Example",
 %%[{size,{300,200}}]),
 [{size,{-1,-1}}]),

    %% Create Panel
    %%Panel1 = wxPanel:new(Frame),
     Panel = wxPanel:new(Frame, []),

    %% Setup sizers
    MainSizer = wxBoxSizer:new(?wxVERTICAL),
    Sizer = wxStaticBoxSizer:new(?wxVERTICAL, Panel,
[{label, "wxSizer"}]),

    Choices = ["Vertical Example",
      "Horizontal Example",
      "Add A Strechable",
      "More Than One Strechable",
      "Weighting Factor",
      "Edge Affinity",
      "Spacer",
      "Centering In Avalible Space",
      "Simple Border",
      "East And West Border",
      "North And South Border",
      "Box In Box",
      "Boxes Inside A Border",
      "Border In A Box",
      "Simple Grid",
      "More Grid Features",
      "Flexible Grid",
      "Grid With Alignment",
      "Proportional Resize With Alignments"],

    ListBox = wxListBox:new(Panel, ?wxID_ANY, [{choices, Choices}]),
    wxListBox:connect(ListBox, command_listbox_doubleclicked),

    %% Add to sizers
    wxSizer:add(Sizer, ListBox, [{flag, ?wxEXPAND}]),
    wxSizer:add(MainSizer, Sizer, [{flag, ?wxEXPAND}, {proportion, 1}]),

    wxPanel:setSizer(Panel, MainSizer),

    %% 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 件のコメント:

コメントを投稿