2011年5月29日日曜日

wxErlang wxTextCtrlを試す On wxDialog

飛行機本のIRCをwxErlangで実現すべく、wxTextCtrlを試している。
その際、setEditableメソッドを試したので、ソースを記載しておく。

なお、wx.hrlはErlangのインストールディレクトリを検索し、ソースと同一ディレクトリ内に置いてくれ。

ソース:


-module(irc2).
-export([start/0]).
-include_lib("wx.hrl").


-define(wxID_txtEdit,1000).
-define(wxID_txtUnEdit,1001).


start() ->
    Wx = wx:new(),
    Dialog = wx:batch(fun() -> create_window(Wx) end),
    wxWindow:show(Dialog),
    loop(Dialog),
    wx:destroy(),
    ok.


create_window(Wx)->
    Dialog = wxDialog:new(Wx,
-1,
"Dialog IRC",
[{size,{300,200}}]),


    TxtEdit = wxTextCtrl:new(Dialog,?wxID_txtEdit,[{pos,{1,150}},{size,{290,20}}]),
    TxtUnEdit = wxTextCtrl:new(Dialog,?wxID_txtUnEdit,[{pos,{1,0}},{size,{290,140}}]),
    wxTextCtrl:setEditable(TxtUnEdit,false),
    wxTextCtrl:appendText(TxtUnEdit,"Test\r"),
    
    % connect
    wxDialog:connect(Dialog, close_window),


    Dialog.


loop(Dialog) ->
    receive
% Window Close Event
#wx{event=#wxClose{}} ->
   io:format("~p Closing window ~n",[self()]),
   wxWindow:destroy(Dialog),
   ok
    end.