User's Guide
Reference Manual
Release Notes
PDF
Top

wxErlang
Reference Manual
Version 0.99

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

wx() = #wx{id=integer(), obj=wxObject() (see module wx), userData=term(), event=Rec}

  Rec is a event record.

wxAuiManager() = #wxAuiManager{type=wxEventType(), manager=wxAuiManager() (see module wxAuiManager), pane=wxAuiPaneInfo() (see module wxAuiPaneInfo), button=integer(), veto_flag=bool(), canveto_flag=bool(), dc=wxDC() (see module wxDC)}
  EventType:

    aui_pane_button, aui_pane_close, aui_pane_maximize, aui_pane_restore, aui_render, aui_find_manager

  Callback event: wxAuiManagerEvent

wxAuiNotebook() = #wxAuiNotebook{type=wxEventType(), old_selection=integer(), selection=integer(), drag_source=wxAuiNotebook() (see module wxAuiNotebook)}
  EventType:

    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

  Callback event: wxAuiNotebookEvent

wxCalendar() = #wxCalendar{type=wxEventType()}
  EventType:

    calendar_sel_changed, calendar_day_changed, calendar_month_changed, calendar_year_changed, calendar_doubleclicked, calendar_weekday_clicked

  Callback event: wxCalendarEvent

wxChildFocus() = #wxChildFocus{type=wxEventType()}
  EventType:

    child_focus

  Callback event: wxChildFocusEvent

wxClose() = #wxClose{type=wxEventType()}
  EventType:

    close_window, end_session, query_end_session

  Callback event: wxCloseEvent

wxColourPicker() = #wxColourPicker{type=wxEventType(), colour=colour() (see module wx)}
  EventType:

    command_colourpicker_changed

  Callback event: wxColourPickerEvent

wxCommand() = #wxCommand{type=wxEventType(), cmdString=string(), commandInt=integer(), extraLong=integer()}
  EventType:

    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

  Callback event: wxCommandEvent

wxContextMenu() = #wxContextMenu{type=wxEventType()}
  EventType:

    context_menu

  Callback event: wxContextMenuEvent

wxDate() = #wxDate{type=wxEventType(), date=datetime() (see module wx)}
  EventType:

    date_changed

  Callback event: wxDateEvent

wxDisplayChanged() = #wxDisplayChanged{type=wxEventType()}
  EventType:

    display_changed

  Callback event: wxDisplayChangedEvent

wxErase() = #wxErase{type=wxEventType(), dc=wxDC() (see module wxDC)}
  EventType:

    erase_background

  Callback event: wxEraseEvent

wxEventType() = aui_find_manager | aui_pane_button | aui_pane_close | aui_pane_maximize | aui_pane_restore | aui_render | calendar_day_changed | calendar_doubleclicked | calendar_month_changed | calendar_sel_changed | calendar_weekday_clicked | calendar_year_changed | char | char_hook | child_focus | close_window | command_auinotebook_allow_dnd | command_auinotebook_begin_drag | command_auinotebook_bg_dclick | command_auinotebook_button | command_auinotebook_drag_done | command_auinotebook_drag_motion | command_auinotebook_end_drag | command_auinotebook_page_changed | command_auinotebook_page_changing | command_auinotebook_page_close | command_auinotebook_page_closed | command_auinotebook_tab_middle_down | command_auinotebook_tab_middle_up | command_auinotebook_tab_right_down | command_auinotebook_tab_right_up | command_button_clicked | command_checkbox_clicked | command_checklistbox_toggled | command_choice_selected | command_colourpicker_changed | command_combobox_selected | command_dirpicker_changed | command_enter | command_filepicker_changed | command_fontpicker_changed | command_html_link_clicked | command_kill_focus | command_left_click | command_left_dclick | command_list_begin_drag | command_list_begin_label_edit | command_list_begin_rdrag | command_list_cache_hint | command_list_col_begin_drag | command_list_col_click | command_list_col_dragging | command_list_col_end_drag | command_list_col_right_click | command_list_delete_all_items | command_list_delete_item | command_list_end_label_edit | command_list_insert_item | command_list_item_activated | command_list_item_deselected | command_list_item_focused | command_list_item_middle_click | command_list_item_right_click | command_list_item_selected | command_list_key_down | command_listbox_doubleclicked | command_listbox_selected | command_menu_selected | command_notebook_page_changed | command_notebook_page_changing | command_radiobox_selected | command_radiobutton_selected | command_right_click | command_scrollbar_updated | command_set_focus | command_slider_updated | command_spinctrl_updated | command_splitter_doubleclicked | command_splitter_sash_pos_changed | command_splitter_sash_pos_changing | command_splitter_unsplit | command_text_enter | command_text_updated | command_togglebutton_clicked | command_tool_enter | command_tool_rclicked | command_tree_begin_drag | command_tree_begin_label_edit | command_tree_begin_rdrag | command_tree_delete_item | command_tree_end_drag | command_tree_end_label_edit | command_tree_get_info | command_tree_item_activated | command_tree_item_collapsed | command_tree_item_collapsing | command_tree_item_expanded | command_tree_item_expanding | command_tree_item_gettooltip | command_tree_item_menu | command_tree_item_middle_click | command_tree_item_right_click | command_tree_key_down | command_tree_sel_changed | command_tree_sel_changing | command_tree_set_info | command_tree_state_image_click | command_vlbox_selected | context_menu | create | date_changed | destroy | detailed_help | display_changed | end_session | enter_window | erase_background | grid_cell_begin_drag | grid_cell_change | grid_cell_left_click | grid_cell_left_dclick | grid_cell_right_click | grid_cell_right_dclick | grid_col_size | grid_editor_created | grid_editor_hidden | grid_editor_shown | grid_label_left_click | grid_label_left_dclick | grid_label_right_click | grid_label_right_dclick | grid_range_select | grid_row_size | grid_select_cell | help | iconize | idle | joy_button_down | joy_button_up | joy_move | joy_zmove | key_down | key_up | kill_focus | leave_window | left_dclick | left_down | left_up | maximize | menu_close | menu_highlight | menu_open | middle_dclick | middle_down | middle_up | motion | mouse_capture_changed | mousewheel | move | navigation_key | nc_enter_window | nc_leave_window | nc_left_dclick | nc_left_down | nc_left_up | nc_middle_dclick | nc_middle_down | nc_middle_up | nc_motion | nc_paint | nc_right_dclick | nc_right_down | nc_right_up | paint | paint_icon | palette_changed | query_end_session | query_new_palette | right_dclick | right_down | right_up | sash_dragged | scroll_bottom | scroll_changed | scroll_linedown | scroll_lineup | scroll_pagedown | scroll_pageup | scroll_thumbrelease | scroll_thumbtrack | scroll_top | scrollwin_bottom | scrollwin_linedown | scrollwin_lineup | scrollwin_pagedown | scrollwin_pageup | scrollwin_thumbrelease | scrollwin_thumbtrack | scrollwin_top | set_cursor | set_focus | show | size | spin | spin_down | spin_up | stc_autocomp_selection | stc_calltip_click | stc_change | stc_charadded | stc_do_drop | stc_doubleclick | stc_drag_over | stc_dwellend | stc_dwellstart | stc_hotspot_click | stc_hotspot_dclick | stc_key | stc_macrorecord | stc_marginclick | stc_modified | stc_needshown | stc_painted | stc_romodifyattempt | stc_savepointleft | stc_savepointreached | stc_start_drag | stc_styleneeded | stc_updateui | stc_uridropped | stc_userlistselection | stc_zoom | sys_colour_changed | update_ui
wxEvtHandler()

  An object reference

wxFileDirPicker() = #wxFileDirPicker{type=wxEventType(), path=string()}
  EventType:

    command_filepicker_changed, command_dirpicker_changed

  Callback event: wxFileDirPickerEvent

wxFocus() = #wxFocus{type=wxEventType()}
  EventType:

    set_focus, kill_focus

  Callback event: wxFocusEvent

wxFontPicker() = #wxFontPicker{type=wxEventType(), font=wxFont() (see module wxFont)}
  EventType:

    command_fontpicker_changed

  Callback event: wxFontPickerEvent

wxGrid() = #wxGrid{type=wxEventType(), row=integer(), col=integer(), x=integer(), y=integer(), selecting=bool(), control=bool(), meta=bool(), shift=bool(), alt=bool()}
  EventType:

    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

  Callback event: wxGridEvent

wxHelp() = #wxHelp{type=wxEventType()}
  EventType:

    help, detailed_help

  Callback event: wxHelpEvent

wxHtmlLink() = #wxHtmlLink{type=wxEventType(), linkInfo=wxHtmlLinkInfo() (see module wx)}
  EventType:

    command_html_link_clicked

  Callback event: wxHtmlLinkEvent

wxIconize() = #wxIconize{type=wxEventType()}
  EventType:

    iconize

  Callback event: wxIconizeEvent

wxIdle() = #wxIdle{type=wxEventType()}
  EventType:

    idle

  Callback event: wxIdleEvent

wxJoystick() = #wxJoystick{type=wxEventType()}
  EventType:

    joy_button_down, joy_button_up, joy_move, joy_zmove

  Callback event: wxJoystickEvent

wxKey() = #wxKey{type=wxEventType(), x=integer(), y=integer(), keyCode=integer(), controlDown=bool(), shiftDown=bool(), altDown=bool(), metaDown=bool(), scanCode=bool(), uniChar=integer(), rawCode=integer(), rawFlags=integer()}
  EventType:

    char, char_hook, key_down, key_up

  Callback event: wxKeyEvent

wxList() = #wxList{type=wxEventType(), code=integer(), oldItemIndex=integer(), itemIndex=integer(), col=integer(), pointDrag={X::integer(), Y::integer()}}
  EventType:

    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

  Callback event: wxListEvent

wxMaximize() = #wxMaximize{type=wxEventType()}
  EventType:

    maximize

  Callback event: wxMaximizeEvent

wxMenu() = #wxMenu{type=wxEventType()}
  EventType:

    menu_open, menu_close, menu_highlight

  Callback event: wxMenuEvent

wxMouse() = #wxMouse{type=wxEventType(), x=integer(), y=integer(), leftDown=bool(), middleDown=bool(), rightDown=bool(), controlDown=bool(), shiftDown=bool(), altDown=bool(), metaDown=bool(), wheelRotation=integer(), wheelDelta=integer(), linesPerAction=integer()}
  EventType:

    left_down, left_up, middle_down, middle_up, right_down, right_up, motion, enter_window, leave_window, left_dclick, middle_dclick, right_dclick, mousewheel, nc_left_down, nc_left_up, nc_middle_down, nc_middle_up, nc_right_down, nc_right_up, nc_motion, nc_enter_window, nc_leave_window, nc_left_dclick, nc_middle_dclick, nc_right_dclick

  Callback event: wxMouseEvent

wxMouseCaptureChanged() = #wxMouseCaptureChanged{type=wxEventType()}
  EventType:

    mouse_capture_changed

  Callback event: wxMouseCaptureChangedEvent

wxMove() = #wxMove{type=wxEventType()}
  EventType:

    move

  Callback event: wxMoveEvent

wxNavigationKey() = #wxNavigationKey{type=wxEventType(), flags=integer(), focus=wxWindow() (see module wxWindow)}
  EventType:

    navigation_key

  Callback event: wxNavigationKeyEvent

wxNcPaint() = #wxNcPaint{type=wxEventType()}
  EventType:

    nc_paint

  Callback event: wxNcPaintEvent

wxNotebook() = #wxNotebook{type=wxEventType()}
  EventType:

    command_notebook_page_changed, command_notebook_page_changing

  Callback event: wxNotebookEvent

wxPaint() = #wxPaint{type=wxEventType()}
  EventType:

    paint, paint_icon

  Callback event: wxPaintEvent

wxPaletteChanged() = #wxPaletteChanged{type=wxEventType()}
  EventType:

    palette_changed

  Callback event: wxPaletteChangedEvent

wxQueryNewPalette() = #wxQueryNewPalette{type=wxEventType()}
  EventType:

    query_new_palette

  Callback event: wxQueryNewPaletteEvent

wxSash() = #wxSash{type=wxEventType(), edge=WxSashEdgePosition, dragRect={X::integer(), Y::integer(), W::integer(), H::integer()}, dragStatus=WxSashDragStatus}
  EventType:

    sash_dragged

  Callback event: wxSashEvent

wxScroll() = #wxScroll{type=wxEventType(), commandInt=integer(), extraLong=integer()}
  EventType:

    scroll_top, scroll_bottom, scroll_lineup, scroll_linedown, scroll_pageup, scroll_pagedown, scroll_thumbtrack, scroll_thumbrelease, scroll_changed

  Callback event: wxScrollEvent

wxScrollWin() = #wxScrollWin{type=wxEventType()}
  EventType:

    scrollwin_top, scrollwin_bottom, scrollwin_lineup, scrollwin_linedown, scrollwin_pageup, scrollwin_pagedown, scrollwin_thumbtrack, scrollwin_thumbrelease

  Callback event: wxScrollWinEvent

wxSetCursor() = #wxSetCursor{type=wxEventType()}
  EventType:

    set_cursor

  Callback event: wxSetCursorEvent

wxShow() = #wxShow{type=wxEventType()}
  EventType:

    show

  Callback event: wxShowEvent

wxSize() = #wxSize{type=wxEventType(), size={W::integer(), H::integer()}, rect={X::integer(), Y::integer(), W::integer(), H::integer()}}
  EventType:

    size

  Callback event: wxSizeEvent

wxSpin() = #wxSpin{type=wxEventType(), commandInt=integer()}
  EventType:

    command_spinctrl_updated, spin_up, spin_down, spin

  Callback event: wxSpinEvent

wxSplitter() = #wxSplitter{type=wxEventType()}
  EventType:

    command_splitter_sash_pos_changed, command_splitter_sash_pos_changing, command_splitter_doubleclicked, command_splitter_unsplit

  Callback event: wxSplitterEvent

wxStyledText() = #wxStyledText{type=wxEventType(), position=integer(), key=integer(), modifiers=integer(), modificationType=integer(), text=string(), length=integer(), linesAdded=integer(), line=integer(), foldLevelNow=integer(), foldLevelPrev=integer(), margin=integer(), message=integer(), wParam=integer(), lParam=integer(), listType=integer(), x=integer(), y=integer(), dragText=string(), dragAllowMove=bool(), dragResult=WxDragResult}
  EventType:

    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

  Callback event: wxStyledTextEvent

wxSysColourChanged() = #wxSysColourChanged{type=wxEventType()}
  EventType:

    sys_colour_changed

  Callback event: wxSysColourChangedEvent

wxTree() = #wxTree{type=wxEventType(), item=integer(), itemOld=integer(), pointDrag={X::integer(), Y::integer()}}
  EventType:

    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

  Callback event: wxTreeEvent

wxUpdateUI() = #wxUpdateUI{type=wxEventType()}
  EventType:

    update_ui

  Callback event: wxUpdateUIEvent

wxWindowCreate() = #wxWindowCreate{type=wxEventType()}
  EventType:

    create

  Callback event: wxWindowCreateEvent

wxWindowDestroy() = #wxWindowDestroy{type=wxEventType()}
  EventType:

    destroy

  Callback event: wxWindowDestroyEvent

### EXPORTS

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

Equivalent to connect(This, EventType, [])

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

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

Equivalent to disconnect(This, null, []) Can also have an optional callback Fun() as an additional last argument.

disconnect(This::wxEvtHandler(), EventType::wxEventType()) -> true | false

Equivalent to disconnect(This, EventType, [])

disconnect(This::wxEvtHandler(), EventType::wxEventType(), Opts) -> true | false

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.