Erlang logo
User's Guide
Reference Manual
Release Notes
PDF
Top

wxErlang
Reference Manual
Version 1.6


Expand All
Contract All

Table of Contents

wxEvtHandler

MODULE

wxEvtHandler

MODULE SUMMARY

The Event handler.

DESCRIPTION

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.

DATA TYPES

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() | wxMouseCaptureLost() | 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_pane_activated | 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(), wday=undefined | wx_enum() (see module wx), date=undefined | wx_datetime() (see module wx)}
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(), pos=undefined | {X::integer(), Y::integer()}}
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() | wxMouseCaptureLostEventType() | 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(), win=undefined | wxWindow() (see module wxWindow)}
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(), iconized=undefined | boolean()}
wxIconizeEventType() = iconize
wxIdle() = #wxIdle{type=undefined | wxIdleEventType()}
wxIdleEventType() = idle
wxInitDialog() = #wxInitDialog{type=undefined | wxInitDialogEventType()}
wxInitDialogEventType() = init_dialog
wxJoystick() = #wxJoystick{type=undefined | wxJoystickEventType(), pos=undefined | {X::integer(), Y::integer()}, zPosition=undefined | integer(), buttonChange=undefined | integer(), buttonState=undefined | integer(), joyStick=undefined | integer()}
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(), menuId=undefined | integer(), menu=undefined | wxMenu() (see module wxMenu)}
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
wxMouseCaptureLost() = #wxMouseCaptureLost{type=undefined | wxMouseCaptureLostEventType()}
wxMouseCaptureLostEventType() = mouse_capture_lost
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(), pos=undefined | {X::integer(), Y::integer()}, rect=undefined | {X::integer(), Y::integer(), W::integer(), H::integer()}}
wxMoveEventType() = move
wxNavigationKey() = #wxNavigationKey{type=undefined | wxNavigationKeyEventType(), flags=undefined | integer(), focus=undefined | wxWindow() (see module wxWindow)}
wxNavigationKeyEventType() = navigation_key
wxNotebook() = #wxNotebook{type=undefined | wxNotebookEventType(), nSel=undefined | integer(), nOldSel=undefined | integer()}
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(), commandInt=undefined | integer(), extraLong=undefined | integer()}
wxScrollWinEventType() = scrollwin_top | scrollwin_bottom | scrollwin_lineup | scrollwin_linedown | scrollwin_pageup | scrollwin_pagedown | scrollwin_thumbtrack | scrollwin_thumbrelease
wxSetCursor() = #wxSetCursor{type=undefined | wxSetCursorEventType(), x=undefined | integer(), y=undefined | integer(), cursor=undefined | wxCursor() (see module wxCursor)}
wxSetCursorEventType() = set_cursor
wxShow() = #wxShow{type=undefined | wxShowEventType(), show=undefined | boolean()}
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

EXPORTS

connect(This::wxEvtHandler(), EventType::wxEventType()) -> ok

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()

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.