.TH wxUpdateUIEvent 3erl "wx 2.2.1" "wxWidgets team." "Erlang Module Definition" .SH NAME wxUpdateUIEvent \- Functions for wxUpdateUIEvent class .SH DESCRIPTION .LP This class is used for pseudo-events which are called by wxWidgets to give an application the chance to update various user interface elements\&. .LP Without update UI events, an application has to work hard to check/uncheck, enable/disable, show/hide, and set the text for elements such as menu items and toolbar buttons\&. The code for doing this has to be mixed up with the code that is invoked when an action is invoked for a menu item or button\&. .LP With update UI events, you define an event handler to look at the state of the application and change UI elements accordingly\&. wxWidgets will call your member functions in idle time, so you don\&'t have to worry where to call this code\&. .LP In addition to being a clearer and more declarative method, it also means you don\&'t have to worry whether you\&'re updating a toolbar or menubar identifier\&. The same handler can update a menu item and toolbar button, if the identifier is the same\&. Instead of directly manipulating the menu or button, you call functions in the event object, such as \fIcheck/2\fR\&\&. wxWidgets will determine whether such a call has been made, and which UI element to update\&. .LP These events will work for popup menus as well as menubars\&. Just before a menu is popped up, \fIwxMenu::UpdateUI\fR\& (not implemented in wx) is called to process any UI events for the window that owns the menu\&. .LP If you find that the overhead of UI update processing is affecting your application, you can do one or both of the following: .LP Note that although events are sent in idle time, defining a \fIwxIdleEvent\fR\& handler for a window does not affect this because the events are sent from \fIwxWindow::OnInternalIdle\fR\& (not implemented in wx) which is always called in idle time\&. .LP wxWidgets tries to optimize update events on some platforms\&. On Windows and GTK+, events for menubar items are only sent when the menu is about to be shown, and not in idle time\&. .LP See: Overview events .LP This class is derived (and can use functions) from: \fIwxCommandEvent\fR\& \fIwxEvent\fR\& .LP wxWidgets docs: wxUpdateUIEvent .SH "EVENTS" .LP Use \fIwxEvtHandler:connect/3\fR\& with \fIwxUpdateUIEventType\fR\& to subscribe to events of this type\&. .SH DATA TYPES .nf \fBwxUpdateUIEvent()\fR\& = wx:wx_object() .br .fi .nf \fBwxUpdateUI()\fR\& = .br #wxUpdateUI{type = wxUpdateUIEvent:wxUpdateUIEventType()} .br .fi .nf \fBwxUpdateUIEventType()\fR\& = update_ui .br .fi .SH EXPORTS .LP .nf .B canUpdate(Window) -> boolean() .br .fi .br .RS .LP Types: .RS 3 Window = wxWindow:wxWindow() .br .RE .RE .RS .LP Returns true if it is appropriate to update (send UI update events to) this window\&. .LP This function looks at the mode used (see \fIsetMode/1\fR\&), the wxWS_EX_PROCESS_UI_UPDATES flag in \fIwindow\fR\&, the time update events were last sent in idle time, and the update interval, to determine whether events should be sent to this window now\&. By default this will always return true because the update mode is initially wxUPDATE_UI_PROCESS_ALL and the interval is set to 0; so update events will be sent as often as possible\&. You can reduce the frequency that events are sent by changing the mode and/or setting an update interval\&. .LP See: \fIresetUpdateTime/0\fR\&, \fIsetUpdateInterval/1\fR\&, \fIsetMode/1\fR\& .RE .LP .nf .B check(This, Check) -> ok .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br Check = boolean() .br .RE .RE .RS .LP Check or uncheck the UI element\&. .RE .LP .nf .B enable(This, Enable) -> ok .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br Enable = boolean() .br .RE .RE .RS .LP Enable or disable the UI element\&. .RE .LP .nf .B show(This, Show) -> ok .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br Show = boolean() .br .RE .RE .RS .LP Show or hide the UI element\&. .RE .LP .nf .B getChecked(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the UI element should be checked\&. .RE .LP .nf .B getEnabled(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the UI element should be enabled\&. .RE .LP .nf .B getShown(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the UI element should be shown\&. .RE .LP .nf .B getSetChecked(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the application has called \fIcheck/2\fR\&\&. .LP For wxWidgets internal use only\&. .RE .LP .nf .B getSetEnabled(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the application has called \fIenable/2\fR\&\&. .LP For wxWidgets internal use only\&. .RE .LP .nf .B getSetShown(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the application has called \fIshow/2\fR\&\&. .LP For wxWidgets internal use only\&. .RE .LP .nf .B getSetText(This) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns true if the application has called \fIsetText/2\fR\&\&. .LP For wxWidgets internal use only\&. .RE .LP .nf .B getText(This) -> unicode:charlist() .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br .RE .RE .RS .LP Returns the text that should be set for the UI element\&. .RE .LP .nf .B getMode() -> wx:wx_enum() .br .fi .br .RS .LP Static function returning a value specifying how wxWidgets will send update events: to all windows, or only to those which specify that they will process the events\&. .LP See: \fIsetMode/1\fR\& .RE .LP .nf .B getUpdateInterval() -> integer() .br .fi .br .RS .LP Returns the current interval between updates in milliseconds\&. .LP The value -1 disables updates, 0 updates as frequently as possible\&. .LP See: \fIsetUpdateInterval/1\fR\& .RE .LP .nf .B resetUpdateTime() -> ok .br .fi .br .RS .LP Used internally to reset the last-updated time to the current time\&. .LP It is assumed that update events are normally sent in idle time, so this is called at the end of idle processing\&. .LP See: \fIcanUpdate/1\fR\&, \fIsetUpdateInterval/1\fR\&, \fIsetMode/1\fR\& .RE .LP .nf .B setMode(Mode) -> ok .br .fi .br .RS .LP Types: .RS 3 Mode = wx:wx_enum() .br .RE .RE .RS .LP Specify how wxWidgets will send update events: to all windows, or only to those which specify that they will process the events\&. .RE .LP .nf .B setText(This, Text) -> ok .br .fi .br .RS .LP Types: .RS 3 This = wxUpdateUIEvent() .br Text = unicode:chardata() .br .RE .RE .RS .LP Sets the text for this UI element\&. .RE .LP .nf .B setUpdateInterval(UpdateInterval) -> ok .br .fi .br .RS .LP Types: .RS 3 UpdateInterval = integer() .br .RE .RE .RS .LP Sets the interval between updates in milliseconds\&. .LP Set to -1 to disable updates, or to 0 to update as frequently as possible\&. The default is 0\&. .LP Use this to reduce the overhead of UI update events if your application has a lot of windows\&. If you set the value to -1 or greater than 0, you may also need to call \fIwxWindow:updateWindowUI/2\fR\& at appropriate points in your application, such as when a dialog is about to be shown\&. .RE