Provided by: erlang-manpages_16.b.3-dfsg-1ubuntu2.2_all
NAME
wx_object - wx_object - Generic wx object behaviour.
DESCRIPTION
wx_object - Generic wx object behaviour This is a behaviour module that can be used for "sub classing" wx objects. It works like a regular gen_server module and creates a server per object. NOTE: Currently no form of inheritance is implemented. The user module should export: init(Args) should return {wxObject, State} | {wxObject, State, Timeout} | ignore | {stop, Reason} handle_call(Msg, {From, Tag}, State) should return {reply, Reply, State} | {reply, Reply, State, Timeout} | {noreply, State} | {noreply, State, Timeout} | {stop, Reason, Reply, State} Asynchronous window event handling: handle_event(#wx{}, State) should return {noreply, State} | {noreply, State, Timeout} | {stop, Reason, State} Info is message e.g. {'EXIT', P, R}, {nodedown, N}, ... handle_info(Info, State) should return , ... {noreply, State} | {noreply, State, Timeout} | {stop, Reason, State} When stop is returned in one of the functions above with Reason = normal | shutdown | Term, terminate(State) is called. It lets the user module clean up, it is always called when server terminates or when wxObject() in the driver is deleted. If the Parent process terminates the Module:terminate/2 function is called. terminate(Reason, State) Example: -module(myDialog). -export([new/2, show/1, destroy/1]). %% API -export([init/1, handle_call/3, handle_event/2, handle_info/2, code_change/3, terminate/2]). new/2, showModal/1, destroy/1]). %% Callbacks %% Client API new(Parent, Msg) -> wx_object:start(?MODULE, [Parent,Id], []). show(Dialog) -> wx_object:call(Dialog, show_modal). destroy(Dialog) -> wx_object:call(Dialog, destroy). %% Server Implementation ala gen_server init([Parent, Str]) -> Dialog = wxDialog:new(Parent, 42, "Testing", []), ... wxDialog:connect(Dialog, command_button_clicked), {Dialog, MyState}. handle_call(show, _From, State) -> wxDialog:show(State#state.win), {reply, ok, State}; ... handle_event(#wx{}, State) -> io:format("Users clicked button~n",[]), {noreply, State}; ...
EXPORTS
start(Name, Mod, Args, Options) -> wxWindow() (see module wxWindow) Types: Name = {local, atom()} Mod = atom() Args = term() Options = [{timeout, Timeout} | {debug, [Flag]}] Flag = trace | log | {logfile, File} | statistics | debug Starts a generic wx_object server and invokes Mod:init(Args) in the new process. start_link(Mod, Args, Options) -> wxWindow() (see module wxWindow) Types: Mod = atom() Args = term() Options = [{timeout, Timeout} | {debug, [Flag]}] Flag = trace | log | {logfile, File} | statistics | debug Starts a generic wx_object server and invokes Mod:init(Args) in the new process. start_link(Name, Mod, Args, Options) -> wxWindow() (see module wxWindow) Types: Name = {local, atom()} Mod = atom() Args = term() Options = [{timeout, Timeout} | {debug, [Flag]}] Flag = trace | log | {logfile, File} | statistics | debug Starts a generic wx_object server and invokes Mod:init(Args) in the new process. call(Ref::wxObject() | atom() | pid(), Request::term()) -> term() Make a call to a wx_object server. The call waits until it gets a result. Invokes handle_call(Request, From, State) in the server call(Ref::wxObject() | atom() | pid(), Request::term(), Timeout::integer()) -> term() Make a call to a wx_object server with a timeout. Invokes handle_call(Request, From, State) in server cast(Ref::wxObject() | atom() | pid(), Request::term()) -> ok Make a cast to a wx_object server. Invokes handle_cast(Request, State) in the server get_pid(Ref::wxObject()) -> pid() Get the pid of the object handle. reply(From::tuple(), Reply::term()) -> pid() Get the pid of the object handle.
AUTHORS
<> wx 1.1.1 wx_object(3erl)