Project

General

Profile

Actions

Widget callbacks » History » Revision 5

« Previous | Revision 5/26 (diff) | Next »
iri, 02/28/2011 02:29 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)

Return Widgets

Updated by iri over 13 years ago · 5 revisions