From f6d661504a1998f3a243731d3fe5769641f80bcc Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Thu, 7 Jul 2011 15:13:48 +0200 Subject: Fix documentation and callback options in wxListCtrl:create/3 --- lib/wx/api_gen/wx_extra/wxListCtrl.c_src | 134 ++++++++++++++++++++++--------- lib/wx/api_gen/wx_extra/wxListCtrl.erl | 54 +++++++++++-- lib/wx/api_gen/wxapi.conf | 3 +- 3 files changed, 147 insertions(+), 44 deletions(-) (limited to 'lib/wx/api_gen') diff --git a/lib/wx/api_gen/wx_extra/wxListCtrl.c_src b/lib/wx/api_gen/wx_extra/wxListCtrl.c_src index 6443c02be2..54d6fafd01 100644 --- a/lib/wx/api_gen/wx_extra/wxListCtrl.c_src +++ b/lib/wx/api_gen/wx_extra/wxListCtrl.c_src @@ -17,30 +17,25 @@ %% %CopyrightEnd% %% -<port = Ecmd.port; - cb->callbackID = sortCallback; - bool Result = This->SortItems(wxEListCtrlCompare, (long)cb); - delete cb; +<owner, false); - // NOTE: Remove this later when changing from funs to gen_server - cbrt.addAtom("wx_delete_cb"); - cbrt.addInt(sortCallback); - cbrt.addTupleCount(2); - cbrt.send(); + int onGetItemText; + int onGetItemAttr; + int onGetItemColumnImage; + ErlDrvPort port; - rt.addBool(Result); - break; -} -SortItems>> + private: + virtual wxString OnGetItemText(long item, long col) const; + virtual wxListItemAttr* OnGetItemAttr(long item) const; + virtual int OnGetItemImage(long item) const; + virtual int OnGetItemColumnImage(long item, long column) const; +}; +wxListCtrl_class>> <> -<Create(parent,winid,pos,size,style,*validator); + This->onGetItemText = onGetItemText; + This->onGetItemAttr = onGetItemAttr; + This->onGetItemColumnImage = onGetItemColumnImage; + This->port = Ecmd.port; + + rt.addBool(Result); + break; +} +Create>> + +<port = Ecmd.port; + cb->callbackID = sortCallback; + bool Result = This->SortItems(wxEListCtrlCompare, (long)cb); + delete cb; + + /* Destroy the callback, see wxEPrintout::clear_cb */ + wxeReturn cbrt = wxeReturn(WXE_DRV_PORT, memenv->owner, false); + // NOTE: Remove this later when changing from funs to gen_server + cbrt.addAtom("wx_delete_cb"); + cbrt.addInt(sortCallback); + cbrt.addTupleCount(2); + cbrt.send(); + + rt.addBool(Result); + break; +} +SortItems>> + - int onGetItemText; - int onGetItemAttr; - int onGetItemColumnImage; - ErlDrvPort port; - private: - virtual wxString OnGetItemText(long item, long col) const; - virtual wxListItemAttr* OnGetItemAttr(long item) const; - virtual int OnGetItemImage(long item) const; - virtual int OnGetItemColumnImage(long item, long column) const; -}; -wxListCtrl_class>> \ No newline at end of file diff --git a/lib/wx/api_gen/wx_extra/wxListCtrl.erl b/lib/wx/api_gen/wx_extra/wxListCtrl.erl index e6a77fef59..99255bc53f 100644 --- a/lib/wx/api_gen/wx_extra/wxListCtrl.erl +++ b/lib/wx/api_gen/wx_extra/wxListCtrl.erl @@ -59,14 +59,17 @@ new(Parent) %% Option = {winid, integer()} | %% {pos, {X::integer(),Y::integer()}} | %% {size, {W::integer(),H::integer()}} | -%% {style, integer()} | {validator, wx:wx()} -%% {VirtualCallback, Callback::function()} +%% {style, integer()} | +%% {validator, wx:wx()} | +%% {onGetItemText, OnGetItemText} | +%% {onGetItemAttr, OnGetItemAttr} | +%% {onGetItemColumnImage, OnGetItemColumnImage} %% -%% VirtualCallback = onGetItemText | onGetItemAttr | onGetItemImage | onGetItemColumnImage -%% Callback = fun OnGetItemText(This, Item, Column) -> wxString() | -%% fun OnGetItemAttr(This, Item) -> wxListItemAttr() | -%% fun OnGetItemColumnImage(This, Item, Column) -> integer() +%% OnGetItemText = (This, Item, Column) -> wxString() +%% OnGetItemAttr = (This, Item) -> wxListItemAttr() +%% OnGetItemColumnImage = (This, Item, Column) -> integer() %% @doc See external documentation. + new(#wx_ref{type=ParentT,ref=ParentRef}, Options) when is_list(Options)-> ?CLASS(ParentT,wxWindow), @@ -93,3 +96,42 @@ new(#wx_ref{type=ParentT,ref=ParentRef}, Options) wxe_util:construct(~s, <>). wxListCtrl_new_2>> + +<> + +< bool() +%% @equiv create(This,Parent, []) +create(This,Parent) + when is_record(This, wx_ref),is_record(Parent, wx_ref) -> + create(This,Parent, []). + +%% @spec (This::wxListCtrl(), Parent::wxWindow:wxWindow(), [Option]) -> bool() +%% Option = {winid, integer()} | +%% {pos, {X::integer(),Y::integer()}} | +%% {size, {W::integer(),H::integer()}} | +%% {style, integer()} | +%% {validator, wx:wx()} | +%% {onGetItemText, OnGetItemText} | +%% {onGetItemAttr, OnGetItemAttr} | +%% {onGetItemColumnImage, OnGetItemColumnImage} +%% +%% OnGetItemText = (This, Item, Column) -> wxString() +%% OnGetItemAttr = (This, Item) -> wxListItemAttr() +%% OnGetItemColumnImage = (This, Item, Column) -> integer() +%% @doc See external documentation. +create(#wx_ref{type=ThisT,ref=ThisRef},#wx_ref{type=ParentT,ref=ParentRef}, Options) + when is_list(Options) -> + ?CLASS(ThisT,wxListCtrl), + ?CLASS(ParentT,wxWindow), + MOpts = fun({winid, Winid}, Acc) -> [<<1:32/?UI,Winid:32/?UI>>|Acc]; + ({pos, {PosX,PosY}}, Acc) -> [<<2:32/?UI,PosX:32/?UI,PosY:32/?UI,0:32>>|Acc]; + ({size, {SizeW,SizeH}}, Acc) -> [<<3:32/?UI,SizeW:32/?UI,SizeH:32/?UI,0:32>>|Acc]; + ({style, Style}, Acc) -> [<<4:32/?UI,Style:32/?UI>>|Acc]; + ({validator, #wx_ref{type=ValidatorT,ref=ValidatorRef}}, Acc) -> ?CLASS(ValidatorT,wx),[<<5:32/?UI,ValidatorRef:32/?UI>>|Acc]; + (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_util:call(~s, + <>). + +Create>> diff --git a/lib/wx/api_gen/wxapi.conf b/lib/wx/api_gen/wxapi.conf index 945f3afb00..8ee4451057 100644 --- a/lib/wx/api_gen/wxapi.conf +++ b/lib/wx/api_gen/wxapi.conf @@ -757,7 +757,8 @@ {class, wxListCtrl, wxControl, [], [{'wxListCtrl', [{where, taylormade}]}, - '~wxListCtrl','Arrange','AssignImageList','ClearAll','Create', + '~wxListCtrl','Arrange','AssignImageList','ClearAll', + {'Create',[{where, taylormade}]}, 'DeleteAllItems','DeleteColumn','DeleteItem', {'EditLabel',[{"textControlClass",nowhere}]}, 'EnsureVisible', -- cgit v1.2.3