The event handler.
The Event handler.
To get events from wxwidgets objects you subscribe to them by calling connect/[2-3]. Events are sent as messages, if no callback was supplied These messages will be #wx{} where EventRecord is a record that depends on the event type. The records are defined in: wx/include/wx.hrl.
If a callback was supplied to connect, the callback will be invoked (in another process) to handle the event. The callback should be of arity 2. fun(EventRecord::wx(), EventObject::wxObject()).
Beware that the callback will be in executed in new process each time.
The orginal documentation.
event() = wxActivate() | wxAuiManager() | wxAuiNotebook() | wxCalendar() | wxChildFocus() | wxClipboardText() | wxClose() | wxColourPicker() | wxCommand() | wxContextMenu() | wxDate() | wxDisplayChanged() | wxErase() | wxFileDirPicker() | wxFocus() | wxFontPicker() | wxGrid() | wxHelp() | wxHtmlLink() | wxIconize() | wxIdle() | wxInitDialog() | wxJoystick() | wxKey() | wxList() | wxMaximize() | wxMenu() | wxMouse() | wxMouseCaptureChanged() | wxMove() | wxNavigationKey() | wxNotebook() | wxPaint() | wxPaletteChanged() | wxQueryNewPalette() | wxSash() | wxScroll() | wxScrollWin() | wxSetCursor() | wxShow() | wxSize() | wxSpin() | wxSplitter() | wxStyledText() | wxSysColourChanged() | wxTaskBarIcon() | wxTree() | wxUpdateUI() | wxWindowCreate() | wxWindowDestroy():
wx() = #wx{id=undefined | integer(), obj=undefined | wx_object() (see module wx), userData=undefined | term(), event=undefined | event()}:
wxActivate() = #wxActivate{type=undefined | wxActivateEventType(), active=undefined | boolean()}:
wxActivateEventType() = activate | activate_app | hibernate:
wxAuiManager() = #wxAuiManager{type=undefined | wxAuiManagerEventType(), manager=undefined | wxAuiManager() (see module wxAuiManager), pane=undefined | wxAuiPaneInfo() (see module wxAuiPaneInfo), button=undefined | integer(), veto_flag=undefined | boolean(), canveto_flag=undefined | boolean(), dc=undefined | wxDC() (see module wxDC)}:
wxAuiManagerEventType() = aui_pane_button | aui_pane_close | aui_pane_maximize | aui_pane_restore | aui_render | aui_find_manager:
wxAuiNotebook() = #wxAuiNotebook{type=undefined | wxAuiNotebookEventType(), old_selection=undefined | integer(), selection=undefined | integer(), drag_source=undefined | wxAuiNotebook() (see module wxAuiNotebook)}:
wxAuiNotebookEventType() = command_auinotebook_page_close | command_auinotebook_page_changed | command_auinotebook_page_changing | command_auinotebook_button | command_auinotebook_begin_drag | command_auinotebook_end_drag | command_auinotebook_drag_motion | command_auinotebook_allow_dnd | command_auinotebook_tab_middle_down | command_auinotebook_tab_middle_up | command_auinotebook_tab_right_down | command_auinotebook_tab_right_up | command_auinotebook_page_closed | command_auinotebook_drag_done | command_auinotebook_bg_dclick:
wxCalendar() = #wxCalendar{type=undefined | wxCalendarEventType()}:
wxCalendarEventType() = calendar_sel_changed | calendar_day_changed | calendar_month_changed | calendar_year_changed | calendar_doubleclicked | calendar_weekday_clicked:
wxChildFocus() = #wxChildFocus{type=undefined | wxChildFocusEventType()}:
wxChildFocusEventType() = child_focus:
wxClipboardText() = #wxClipboardText{type=undefined | wxClipboardTextEventType()}:
wxClipboardTextEventType() = command_text_copy | command_text_cut | command_text_paste:
wxClose() = #wxClose{type=undefined | wxCloseEventType()}:
wxCloseEventType() = close_window | end_session | query_end_session:
wxColourPicker() = #wxColourPicker{type=undefined | wxColourPickerEventType(), colour=undefined | wx_colour() (see module wx)}:
wxColourPickerEventType() = command_colourpicker_changed:
wxCommand() = #wxCommand{type=undefined | wxCommandEventType(), cmdString=undefined | chardata() (see module unicode), commandInt=undefined | integer(), extraLong=undefined | integer()}:
wxCommandEventType() = command_button_clicked | command_checkbox_clicked | command_choice_selected | command_listbox_selected | command_listbox_doubleclicked | command_text_updated | command_text_enter | command_menu_selected | command_slider_updated | command_radiobox_selected | command_radiobutton_selected | command_scrollbar_updated | command_vlbox_selected | command_combobox_selected | command_tool_rclicked | command_tool_enter | command_checklistbox_toggled | command_togglebutton_clicked | command_left_click | command_left_dclick | command_right_click | command_set_focus | command_kill_focus | command_enter:
wxContextMenu() = #wxContextMenu{type=undefined | wxContextMenuEventType()}:
wxContextMenuEventType() = context_menu:
wxDate() = #wxDate{type=undefined | wxDateEventType(), date=undefined | wx_datetime() (see module wx)}:
wxDateEventType() = date_changed:
wxDisplayChanged() = #wxDisplayChanged{type=undefined | wxDisplayChangedEventType()}:
wxDisplayChangedEventType() = display_changed:
wxErase() = #wxErase{type=undefined | wxEraseEventType(), dc=undefined | wxDC() (see module wxDC)}:
wxEraseEventType() = erase_background:
wxEventType() = wxActivateEventType() | wxAuiManagerEventType() | wxAuiNotebookEventType() | wxCalendarEventType() | wxChildFocusEventType() | wxClipboardTextEventType() | wxCloseEventType() | wxColourPickerEventType() | wxCommandEventType() | wxContextMenuEventType() | wxDateEventType() | wxDisplayChangedEventType() | wxEraseEventType() | wxFileDirPickerEventType() | wxFocusEventType() | wxFontPickerEventType() | wxGridEventType() | wxHelpEventType() | wxHtmlLinkEventType() | wxIconizeEventType() | wxIdleEventType() | wxInitDialogEventType() | wxJoystickEventType() | wxKeyEventType() | wxListEventType() | wxMaximizeEventType() | wxMenuEventType() | wxMouseCaptureChangedEventType() | wxMouseEventType() | wxMoveEventType() | wxNavigationKeyEventType() | wxNotebookEventType() | wxPaintEventType() | wxPaletteChangedEventType() | wxQueryNewPaletteEventType() | wxSashEventType() | wxScrollEventType() | wxScrollWinEventType() | wxSetCursorEventType() | wxShowEventType() | wxSizeEventType() | wxSpinEventType() | wxSplitterEventType() | wxStyledTextEventType() | wxSysColourChangedEventType() | wxTaskBarIconEventType() | wxTreeEventType() | wxUpdateUIEventType() | wxWindowCreateEventType() | wxWindowDestroyEventType():
wxEvtHandler() = wx_object() (see module wx):
wxFileDirPicker() = #wxFileDirPicker{type=undefined | wxFileDirPickerEventType(), path=undefined | chardata() (see module unicode)}:
wxFileDirPickerEventType() = command_filepicker_changed | command_dirpicker_changed:
wxFocus() = #wxFocus{type=undefined | wxFocusEventType()}:
wxFocusEventType() = set_focus | kill_focus:
wxFontPicker() = #wxFontPicker{type=undefined | wxFontPickerEventType(), font=undefined | wxFont() (see module wxFont)}:
wxFontPickerEventType() = command_fontpicker_changed:
wxGrid() = #wxGrid{type=undefined | wxGridEventType(), row=undefined | integer(), col=undefined | integer(), x=undefined | integer(), y=undefined | integer(), selecting=undefined | boolean(), control=undefined | boolean(), meta=undefined | boolean(), shift=undefined | boolean(), alt=undefined | boolean()}:
wxGridEventType() = grid_cell_left_click | grid_cell_right_click | grid_cell_left_dclick | grid_cell_right_dclick | grid_label_left_click | grid_label_right_click | grid_label_left_dclick | grid_label_right_dclick | grid_row_size | grid_col_size | grid_range_select | grid_cell_change | grid_select_cell | grid_editor_shown | grid_editor_hidden | grid_editor_created | grid_cell_begin_drag:
wxHelp() = #wxHelp{type=undefined | wxHelpEventType()}:
wxHelpEventType() = help | detailed_help:
wxHtmlLink() = #wxHtmlLink{type=undefined | wxHtmlLinkEventType(), linkInfo=undefined | wx_wxHtmlLinkInfo() (see module wx)}:
wxHtmlLinkEventType() = command_html_link_clicked:
wxIconize() = #wxIconize{type=undefined | wxIconizeEventType()}:
wxIconizeEventType() = iconize:
wxIdle() = #wxIdle{type=undefined | wxIdleEventType()}:
wxIdleEventType() = idle:
wxInitDialog() = #wxInitDialog{type=undefined | wxInitDialogEventType()}:
wxInitDialogEventType() = init_dialog:
wxJoystick() = #wxJoystick{type=undefined | wxJoystickEventType()}:
wxJoystickEventType() = joy_button_down | joy_button_up | joy_move | joy_zmove:
wxKey() = #wxKey{type=undefined | wxKeyEventType(), x=undefined | integer(), y=undefined | integer(), keyCode=undefined | integer(), controlDown=undefined | boolean(), shiftDown=undefined | boolean(), altDown=undefined | boolean(), metaDown=undefined | boolean(), scanCode=undefined | boolean(), uniChar=undefined | integer(), rawCode=undefined | integer(), rawFlags=undefined | integer()}:
wxKeyEventType() = char | char_hook | key_down | key_up:
wxList() = #wxList{type=undefined | wxListEventType(), code=undefined | integer(), oldItemIndex=undefined | integer(), itemIndex=undefined | integer(), col=undefined | integer(), pointDrag=undefined | {X::integer(), Y::integer()}}:
wxListEventType() = command_list_begin_drag | command_list_begin_rdrag | command_list_begin_label_edit | command_list_end_label_edit | command_list_delete_item | command_list_delete_all_items | command_list_key_down | command_list_insert_item | command_list_col_click | command_list_col_right_click | command_list_col_begin_drag | command_list_col_dragging | command_list_col_end_drag | command_list_item_selected | command_list_item_deselected | command_list_item_right_click | command_list_item_middle_click | command_list_item_activated | command_list_item_focused | command_list_cache_hint:
wxMaximize() = #wxMaximize{type=undefined | wxMaximizeEventType()}:
wxMaximizeEventType() = maximize:
wxMenu() = #wxMenu{type=undefined | wxMenuEventType()}:
wxMenuEventType() = menu_open | menu_close | menu_highlight:
wxMouse() = #wxMouse{type=undefined | wxMouseEventType(), x=undefined | integer(), y=undefined | integer(), leftDown=undefined | boolean(), middleDown=undefined | boolean(), rightDown=undefined | boolean(), controlDown=undefined | boolean(), shiftDown=undefined | boolean(), altDown=undefined | boolean(), metaDown=undefined | boolean(), wheelRotation=undefined | integer(), wheelDelta=undefined | integer(), linesPerAction=undefined | integer()}:
wxMouseCaptureChanged() = #wxMouseCaptureChanged{type=undefined | wxMouseCaptureChangedEventType()}:
wxMouseCaptureChangedEventType() = mouse_capture_changed:
wxMouseEventType() = left_down | left_up | middle_down | middle_up | right_down | right_up | motion | enter_window | leave_window | left_dclick | middle_dclick | right_dclick | mousewheel:
wxMove() = #wxMove{type=undefined | wxMoveEventType()}:
wxMoveEventType() = move:
wxNavigationKey() = #wxNavigationKey{type=undefined | wxNavigationKeyEventType(), flags=undefined | integer(), focus=undefined | wxWindow() (see module wxWindow)}:
wxNavigationKeyEventType() = navigation_key:
wxNotebook() = #wxNotebook{type=undefined | wxNotebookEventType()}:
wxNotebookEventType() = command_notebook_page_changed | command_notebook_page_changing:
wxPaint() = #wxPaint{type=undefined | wxPaintEventType()}:
wxPaintEventType() = paint:
wxPaletteChanged() = #wxPaletteChanged{type=undefined | wxPaletteChangedEventType()}:
wxPaletteChangedEventType() = palette_changed:
wxQueryNewPalette() = #wxQueryNewPalette{type=undefined | wxQueryNewPaletteEventType()}:
wxQueryNewPaletteEventType() = query_new_palette:
wxSash() = #wxSash{type=undefined | wxSashEventType(), edge=undefined | wx_enum() (see module wx), dragRect=undefined | {X::integer(), Y::integer(), W::integer(), H::integer()}, dragStatus=undefined | wx_enum() (see module wx)}:
wxSashEventType() = sash_dragged:
wxScroll() = #wxScroll{type=undefined | wxScrollEventType(), commandInt=undefined | integer(), extraLong=undefined | integer()}:
wxScrollEventType() = scroll_top | scroll_bottom | scroll_lineup | scroll_linedown | scroll_pageup | scroll_pagedown | scroll_thumbtrack | scroll_thumbrelease | scroll_changed:
wxScrollWin() = #wxScrollWin{type=undefined | wxScrollWinEventType()}:
wxScrollWinEventType() = scrollwin_top | scrollwin_bottom | scrollwin_lineup | scrollwin_linedown | scrollwin_pageup | scrollwin_pagedown | scrollwin_thumbtrack | scrollwin_thumbrelease:
wxSetCursor() = #wxSetCursor{type=undefined | wxSetCursorEventType()}:
wxSetCursorEventType() = set_cursor:
wxShow() = #wxShow{type=undefined | wxShowEventType()}:
wxShowEventType() = show:
wxSize() = #wxSize{type=undefined | wxSizeEventType(), size=undefined | {W::integer(), H::integer()}, rect=undefined | {X::integer(), Y::integer(), W::integer(), H::integer()}}:
wxSizeEventType() = size:
wxSpin() = #wxSpin{type=undefined | wxSpinEventType(), commandInt=undefined | integer()}:
wxSpinEventType() = command_spinctrl_updated | spin_up | spin_down | spin:
wxSplitter() = #wxSplitter{type=undefined | wxSplitterEventType()}:
wxSplitterEventType() = command_splitter_sash_pos_changed | command_splitter_sash_pos_changing | command_splitter_doubleclicked | command_splitter_unsplit:
wxStyledText() = #wxStyledText{type=undefined | wxStyledTextEventType(), position=undefined | integer(), key=undefined | integer(), modifiers=undefined | integer(), modificationType=undefined | integer(), text=undefined | chardata() (see module unicode), length=undefined | integer(), linesAdded=undefined | integer(), line=undefined | integer(), foldLevelNow=undefined | integer(), foldLevelPrev=undefined | integer(), margin=undefined | integer(), message=undefined | integer(), wParam=undefined | integer(), lParam=undefined | integer(), listType=undefined | integer(), x=undefined | integer(), y=undefined | integer(), dragText=undefined | chardata() (see module unicode), dragAllowMove=undefined | boolean(), dragResult=undefined | wx_enum() (see module wx)}:
wxStyledTextEventType() = stc_change | stc_styleneeded | stc_charadded | stc_savepointreached | stc_savepointleft | stc_romodifyattempt | stc_key | stc_doubleclick | stc_updateui | stc_modified | stc_macrorecord | stc_marginclick | stc_needshown | stc_painted | stc_userlistselection | stc_uridropped | stc_dwellstart | stc_dwellend | stc_start_drag | stc_drag_over | stc_do_drop | stc_zoom | stc_hotspot_click | stc_hotspot_dclick | stc_calltip_click | stc_autocomp_selection:
wxSysColourChanged() = #wxSysColourChanged{type=undefined | wxSysColourChangedEventType()}:
wxSysColourChangedEventType() = sys_colour_changed:
wxTaskBarIcon() = #wxTaskBarIcon{type=undefined | wxTaskBarIconEventType()}:
wxTaskBarIconEventType() = taskbar_move | taskbar_left_down | taskbar_left_up | taskbar_right_down | taskbar_right_up | taskbar_left_dclick | taskbar_right_dclick:
wxTree() = #wxTree{type=undefined | wxTreeEventType(), item=undefined | integer(), itemOld=undefined | integer(), pointDrag=undefined | {X::integer(), Y::integer()}}:
wxTreeEventType() = command_tree_begin_drag | command_tree_begin_rdrag | command_tree_begin_label_edit | command_tree_end_label_edit | command_tree_delete_item | command_tree_get_info | command_tree_set_info | command_tree_item_expanded | command_tree_item_expanding | command_tree_item_collapsed | command_tree_item_collapsing | command_tree_sel_changed | command_tree_sel_changing | command_tree_key_down | command_tree_item_activated | command_tree_item_right_click | command_tree_item_middle_click | command_tree_end_drag | command_tree_state_image_click | command_tree_item_gettooltip | command_tree_item_menu:
wxUpdateUI() = #wxUpdateUI{type=undefined | wxUpdateUIEventType()}:
wxUpdateUIEventType() = update_ui:
wxWindowCreate() = #wxWindowCreate{type=undefined | wxWindowCreateEventType()}:
wxWindowCreateEventType() = create:
wxWindowDestroy() = #wxWindowDestroy{type=undefined | wxWindowDestroyEventType()}:
wxWindowDestroyEventType() = destroy:
connect(This::wxEvtHandler(), EventType::wxEventType()) -> ok
Equivalent to connect(This, EventType, [])
connect(This::wxEvtHandler(), EventType::wxEventType(), Option::[Option]) -> ok
Types:
Option = {id, integer()} | {lastId, integer()} | {skip, boolean()} | callback | {callback, function()} | {userData, term()}
This function subscribes the to events of EventType, in the range id, lastId. The events will be received as messages if no callback is supplied.
Options: {id, integer()}, The identifier (or first of the identifier range) to be associated with this event handler. Default ?wxID_ANY {lastId, integer()}, The second part of the identifier range. If used 'id' must be set as the starting identifier range. Default ?wxID_ANY {skip, boolean()}, If skip is true further event_handlers will be called. This is not used if the 'callback' option is used. Default false. {callback, function()} Use a callback fun(EventRecord::wx(), EventObject::wxObject()) to process the event. Default not specfied i.e. a message will be delivered to the process calling this function. {userData, term()} An erlang term that will be sent with the event. Default: [].
disconnect(This::wxEvtHandler()) -> boolean()
Equivalent to disconnect(This, null, []) Can also have an optional callback Fun() as an additional last argument.
disconnect(This::wxEvtHandler(), EventType::wxEventType()) -> boolean()
Equivalent to disconnect(This, EventType, [])
disconnect(This::wxEvtHandler(), EventType::wxEventType(), Option::[Option]) -> boolean()
Types:
Option = {id, integer()} | {lastId, integer()} | {callback, function()}
See external documentation This function unsubscribes the process or callback fun from the event handler. EventType may be the atom 'null' to match any eventtype. Notice that the options skip and userdata is not used to match the eventhandler.
<>