Project

General

Profile

Actions

Widget callbacks » History » Revision 6

« Previous | Revision 6/26 (diff) | Next »
iri, 02/28/2011 09:26 PM


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

  1. ObjGtkWidget : Scol object : the widget
  2. u1 : the prototype of the callback (see below)
  3. u0 : the user parameter, at your convenience
  4. I : the flag of the callback = which signal is affected ? (see below)
  5. 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 :

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

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.

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 :
  1. is the new position (x and y, relative at its parents or at the screen)
  2. is the new size (width and height)

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

Return Widgets

Updated by iri almost 14 years ago · 6 revisions