Widget callbacks » History » Revision 10
Revision 9 (iri, 02/28/2011 10:57 PM) → Revision 10/26 (iri, 02/28/2011 11:17 PM)
h1. Widget callbacks A signal will be emitted when an event occurs on a widget. To run any actions when a signal is emitted, you should define a _callback_, a function will run these actions. Here, you can define all callbacks with an one function : *_gtkWidgetCB* Its prototype is : *fun [ObjGtkWidget u1 u0 I I] ObjGtkWidget* # *ObjGtkWidget* : Scol object : the widget # *u1* : the prototype of the callback (see below) # *u0* : the user parameter, at your convenience # *I* : the flag of the callback = which signal is affected ? (see below) # *I* : the mask : propagate or not the signal to the container ? Two values are availables * SCOL_GTK_SIGNAL_MASK_PROPAGATE * SCOL_GTK_SIGNAL_MASK_STOP +Warning+ : the prototype of the callback is different for each flag ! Flag currently availables : {{>toc}} h1. Any widgets h2. SCOL_GTK_WIDGET_BUTTONPRESSED a mouse button has been pressed on a widget. Prototype : *fun [ObjGtkWidget u0 I I I [I I]] u2* table |1. *widget*|ObjGtkWidget|a widget| | |2. *userparam*|u0|a user parameter, at your convenience| | |3. *signal*|I|the type of the signal|SCOL_GTK_EVENT_BUTTON_PRESSED (one click),| | | | |SCOL_GTK_EVENT_BUTTON_PRESSED2 (double click),| | | | |SCOL_GTK_EVENT_BUTTON_PRESSED3 (triple click),| | | | |SCOL_GTK_EVENT_BUTTON_RELEASE (button released).| | | | |So you can make one function to several definitions| |4. *button*|I|the mouse button|SCOL_GTK_EVENT_BUTTON_1,| | | | |SCOL_GTK_EVENT_BUTTON_2,| | | | |SCOL_GTK_EVENT_BUTTON_3,| | | | |SCOL_GTK_EVENT_BUTTON_4,| | | | |SCOL_GTK_EVENT_BUTTON_5,| |5. *mask*|I|the mask of the modifier keys|SCOL_GTK_EVENT_KEY_SHIFT| | | | |SCOL_GTK_EVENT_KEY_CONTROL,| | | | |SCOL_GTK_EVENT_KEY_ALT,| | | | |SCOL_GTK_EVENT_KEY_CAPS (can not work : system, window manager, ...)| | | | |SCOL_GTK_EVENT_KEY_HYPER (can not work : system, window manager, ...)| | | | |SCOL_GTK_EVENT_KEY_SUPER (can not work : system, window manager, ...)| | | | |SCOL_GTK_EVENT_KEY_OTHER (or nothing)| |6. *position*|I|the position of the click [x y], relative to the widget| | h2. SCOL_GTK_WIDGET_BUTTONRELEASED a mouse button has been released on a widget. Prototype : *fun [ObjGtkWidget u0 I I I [I I]] u2* See 'SCOL_GTK_WIDGET_BUTTONPRESSED' above. h2. SCOL_GTK_WIDGET_MOVERESIZE a window has moved and/or resized. Prototype : *fun [ObjGtkWidget u0 [I I] [I I]] u2* The supplementals parameters are two tuples : # is the new position (x and y, relative at its parents or at the screen) # is the new size (width and height) h2. SCOL_GTK_WIDGET_DESTROY when a widget (typically a window or all top level container) is destroyed (all reference are destroyed). Prototype : *fun [ObjGtkWidget u0] u2* h2. SCOL_GTK_WIDGET_ENTERLEAVE when the pointer (typically a mouse) enter or leave a window (maybe an other object) Prototype : *fun [ObjGtkWidget u0 I I I [I I]] u2* The supplementals arguments are : table |1. *widget*|ObjGtkWidget|a widget (typically a window)| | |2. *userparam*|u0|a user parameter, at your convenience| | |3 *type*|I|the pointer enters or leaves|0 if enters, 1 if leaves| |4 *mask*|I|the mask of the modifier keys|SCOL_GTK_EVENT_KEY_SHIFT| | | | |SCOL_GTK_EVENT_KEY_CONTROL,| | | | |SCOL_GTK_EVENT_KEY_ALT,| | | | |SCOL_GTK_EVENT_KEY_CAPS (can not work : system, window manager, ...)| | | | |SCOL_GTK_EVENT_KEY_HYPER (can not work : system, window manager, ...)| | | | |SCOL_GTK_EVENT_KEY_SUPER (can not work : system, window manager, ...)| | | | |SCOL_GTK_EVENT_KEY_OTHER (or nothing)| |5 *focus*|I|the widget has (or not) the focus|1 if is the focus window or an inferior| |6 *coord*|[I I]|the coordinate of the pointer (x, y)| h2. SCOL_GTK_WIDGET_KEYB_FOCUS when the keyboard focus enters or leaves a widget. Prototype : *fun [ObjGtkWidget u0 I] u2* The supplemental parameter is : *in* : I : 1 if enter, 0 if lost h2. SCOL_GTK_WIDGET_SHOW when a widget is shown Prototype : *fun [ObjGtkWidget u0] u2* h2. SCOL_GTK_WIDGET_HIDE when a widget is hidden Prototype : *fun [ObjGtkWidget u0] u2* Return [[Widgets]]