some doc corrections; Win16 dialog crash cured git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			303 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			303 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{\class{wxEvtHandler}}\label{wxevthandler}
 | |
| 
 | |
| A class that can handle events from the windowing system.
 | |
| wxWindow (and therefore all window classes) are derived from
 | |
| this class.
 | |
| 
 | |
| \wxheading{Derived from}
 | |
| 
 | |
| \helpref{wxObject}{wxobject}
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \overview{Event handling overview}{eventhandlingoverview}
 | |
| 
 | |
| \latexignore{\rtfignore{\wxheading{Members}}}
 | |
| 
 | |
| \membersection{wxEvtHandler::wxEvtHandler}
 | |
| 
 | |
| \func{}{wxEvtHandler}{\void}
 | |
| 
 | |
| Constructor.
 | |
| 
 | |
| \membersection{wxEvtHandler::\destruct{wxEvtHandler}}
 | |
| 
 | |
| \func{}{\destruct{wxEvtHandler}}{\void}
 | |
| 
 | |
| Destructor. If the handler is part of a chain, the destructor will
 | |
| unlink itself and restore the previous and next handlers so that they point to
 | |
| each other.
 | |
| 
 | |
| \membersection{wxEvtHandler::Connect}\label{wxevthandlerconnect}
 | |
| 
 | |
| \func{void}{Connect}{\param{int}{ id},
 | |
|  \param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function},
 | |
|  \param{wxObject*}{ userData = NULL}}
 | |
| 
 | |
| \func{void}{Connect}{\param{int}{ id}, \param{int}{ lastId},
 | |
|  \param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function},
 | |
|  \param{wxObject*}{ userData = NULL}}
 | |
| 
 | |
| Connects the given function dynamically with the event handler, id and event type. This
 | |
| is an alternative to the use of static event tables. See the 'dynamic' sample for usage.
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{id}{The identifier (or first of the identifier range) to be associated with the event handler function.}
 | |
| 
 | |
| \docparam{lastId}{The second part of the identifier range to be associated with the event handler function.}
 | |
| 
 | |
| \docparam{eventType}{The event type to be associated with this event handler.}
 | |
| 
 | |
| \docparam{function}{The event handler function.}
 | |
| 
 | |
| \docparam{userData}{Data to be associated with the event table entry.}
 | |
| 
 | |
| \wxheading{Example}
 | |
| 
 | |
| \begin{verbatim}
 | |
|   frame->Connect( wxID_EXIT,
 | |
|     wxEVT_COMMAND_MENU_SELECTED,
 | |
|     (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) MyFrame::OnQuit );
 | |
| \end{verbatim}
 | |
| 
 | |
| \membersection{wxEvtHandler::Default}\label{wxevthandlerdefault}
 | |
| 
 | |
| \func{virtual long}{Default}{\void}
 | |
| 
 | |
| Invokes default processing if this event handler is a window.
 | |
| 
 | |
| \wxheading{Return value}
 | |
| 
 | |
| System dependent.
 | |
| 
 | |
| \wxheading{Remarks}
 | |
| 
 | |
| A generic way of delegating processing to the default system behaviour. It calls a platform-dependent
 | |
| default function, with parameters dependent on the event or message parameters
 | |
| originally sent from the windowing system.
 | |
| 
 | |
| Normally the application should call a base member, such as \helpref{wxWindow::OnChar}{wxwindowonchar}, which itself
 | |
| may call {\bf Default}.
 | |
| 
 | |
| \membersection{wxEvtHandler::GetClientData}\label{wxevthandlergetclientdata}
 | |
| 
 | |
| \func{char* }{GetClientData}{\void}
 | |
| 
 | |
| Gets user-supplied client data.
 | |
| 
 | |
| \wxheading{Remarks}
 | |
| 
 | |
| Normally, any extra data the programmer wishes to associate with the object
 | |
| should be made available by deriving a new class
 | |
| with new data members.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::SetClientData}{wxevthandlersetclientdata}
 | |
| 
 | |
| \membersection{wxEvtHandler::GetEvtHandlerEnabled}\label{wxevthandlergetevthandlerenabled}
 | |
| 
 | |
| \func{bool}{GetEvtHandlerEnabled}{\void}
 | |
| 
 | |
| Returns TRUE if the event handler is enabled, FALSE otherwise.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled}
 | |
| 
 | |
| \membersection{wxEvtHandler::GetNextHandler}\label{wxevthandlergetnexthandler}
 | |
| 
 | |
| \func{wxEvtHandler*}{GetNextHandler}{\void}
 | |
| 
 | |
| Gets the pointer to the next handler in the chain.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp
 | |
| \helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
 | |
| \helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp
 | |
| \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
 | |
| \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler}
 | |
| 
 | |
| \membersection{wxEvtHandler::GetPreviousHandler}\label{wxevthandlergetprevioushandler}
 | |
| 
 | |
| \func{wxEvtHandler*}{GetPreviousHandler}{\void}
 | |
| 
 | |
| Gets the pointer to the previous handler in the chain.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp
 | |
| \helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
 | |
| \helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
 | |
| \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
 | |
| \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler}
 | |
| 
 | |
| \membersection{wxEvtHandler::ProcessEvent}\label{wxevthandlerprocessevent}
 | |
| 
 | |
| \func{virtual bool}{ProcessEvent}{\param{wxEvent\& }{event}}
 | |
| 
 | |
| Processes an event, searching event tables and calling zero or more suitable event handler function(s).
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{event}{Event to process.}
 | |
| 
 | |
| \wxheading{Return value}
 | |
| 
 | |
| TRUE if a suitable event handler function was found and executed, and the function did not
 | |
| call \helpref{wxEvent::Skip}{wxeventskip}.
 | |
| 
 | |
| \wxheading{Remarks}
 | |
| 
 | |
| Normally, your application would not call this function: it is called in the wxWindows
 | |
| implementation to dispatch incoming user interface events to the framework (and application).
 | |
| 
 | |
| However, you might need to call it if implementing new functionality (such as a new control) where
 | |
| you define new event types, as opposed to allowing the user to override virtual functions.
 | |
| 
 | |
| An instance where you might actually override the {\bf ProcessEvent} function is where you want
 | |
| to direct event processing to event handlers not normally noticed by wxWindows. For example,
 | |
| in the document/view architecture, documents and views are potential event handlers.
 | |
| When an event reaches a frame, {\bf ProcessEvent} will need to be called on the associated
 | |
| document and view in case event handler functions are associated with these objects.
 | |
| The property classes library (wxProperty) also overrides {\bf ProcessEvent} for similar reasons.
 | |
| 
 | |
| The normal order of event table searching is as follows:
 | |
| 
 | |
| \begin{enumerate}\itemsep=0pt
 | |
| \item If the object is disabled (via a call to \helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled})
 | |
| the function skips to step (6).
 | |
| \item If the object is a wxWindow, {\bf ProcessEvent} is recursively called on the window's\rtfsp
 | |
| \helpref{wxValidator}{wxvalidator}. If this returns TRUE, the function exits.
 | |
| \item {\bf SearchEventTable} is called for this event handler. If this fails, the base
 | |
| class table is tried, and so on until no more tables exist or an appropriate function was found,
 | |
| in which case the function exits.
 | |
| \item The search is applied down the entire chain of event handlers (usually the chain has a length
 | |
| of one). If this succeeds, the function exits.
 | |
| \item If the object is a wxWindow and the event is a wxCommandEvent, {\bf ProcessEvent} is
 | |
| recursively applied to the parent window's event handler. If this returns TRUE, the function exits.
 | |
| \item Finally, {\bf ProcessEvent} is called on the wxApp object.
 | |
| \end{enumerate}
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::SearchEventTable}{wxevthandlersearcheventtable}
 | |
| 
 | |
| \membersection{wxEvtHandler::SearchEventTable}\label{wxevthandlersearcheventtable}
 | |
| 
 | |
| \func{bool}{SearchEventTable}{\param{wxEventTable\& }{table}, \param{wxEvent\& }{event}}
 | |
| 
 | |
| Searches the event table, executing an event handler function if an appropriate one
 | |
| is found.
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{table}{Event table to be searched.}
 | |
| 
 | |
| \docparam{event}{Event to be matched against an event table entry.}
 | |
| 
 | |
| \wxheading{Return value}
 | |
| 
 | |
| TRUE if a suitable event handler function was found and executed, and the function did not
 | |
| call \helpref{wxEvent::Skip}{wxeventskip}.
 | |
| 
 | |
| \wxheading{Remarks}
 | |
| 
 | |
| This function looks through the object's event table and tries to find an entry
 | |
| that will match the event.
 | |
| 
 | |
| An entry will match if:
 | |
| 
 | |
| \begin{enumerate}\itemsep=0pt
 | |
| \item The event type matches, and
 | |
| \item the identifier or identifier range matches, or the event table entry's identifier is zero.
 | |
| \end{enumerate}
 | |
| 
 | |
| If a suitable function is called but calls \helpref{wxEvent::Skip}{wxeventskip}, this function will
 | |
| fail, and searching will continue.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}
 | |
| 
 | |
| \membersection{wxEvtHandler::SetClientData}\label{wxevthandlersetclientdata}
 | |
| 
 | |
| \func{void}{SetClientData}{\param{char* }{data}}
 | |
| 
 | |
| Sets user-supplied client data.
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{data}{Data to be associated with the event handler.}
 | |
| 
 | |
| \wxheading{Remarks}
 | |
| 
 | |
| Normally, any extra data the programmer wishes
 | |
| to associate with the object should be made available by deriving a new class
 | |
| with new data members.
 | |
| 
 | |
| TODO: make this void*, char* only in compatibility mode.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::GetClientData}{wxevthandlergetclientdata}
 | |
| 
 | |
| \membersection{wxEvtHandler::SetEvtHandlerEnabled}\label{wxevthandlersetevthandlerenabled}
 | |
| 
 | |
| \func{void}{SetEvtHandlerEnabled}{\param{bool }{enabled}}
 | |
| 
 | |
| Enables or disables the event handler.
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{enabled}{TRUE if the event handler is to be enabled, FALSE if it is to be disabled.}
 | |
| 
 | |
| \wxheading{Remarks}
 | |
| 
 | |
| You can use this function to avoid having to remove the event handler from the chain, for example
 | |
| when implementing a dialog editor and changing from edit to test mode.
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::GetEvtHandlerEnabled}{wxevthandlergetevthandlerenabled}
 | |
| 
 | |
| \membersection{wxEvtHandler::SetNextHandler}\label{wxevthandlersetnexthandler}
 | |
| 
 | |
| \func{void}{SetNextHandler}{\param{wxEvtHandler* }{handler}}
 | |
| 
 | |
| Sets the pointer to the next handler.
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{handler}{Event handler to be set as the next handler.}
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp
 | |
| \helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
 | |
| \helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp
 | |
| \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
 | |
| \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler}
 | |
| 
 | |
| \membersection{wxEvtHandler::SetPreviousHandler}\label{wxevthandlersetprevioushandler}
 | |
| 
 | |
| \func{void}{SetPreviousHandler}{\param{wxEvtHandler* }{handler}}
 | |
| 
 | |
| Sets the pointer to the previous handler.
 | |
| 
 | |
| \wxheading{Parameters}
 | |
| 
 | |
| \docparam{handler}{Event handler to be set as the previous handler.}
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp
 | |
| \helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp
 | |
| \helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp
 | |
| \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
 | |
| \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler}
 | |
| 
 | |
| 
 |