![]() | ![]() | ![]() | Gwyddion Widgets Library Reference Manual | ![]() |
---|
GwyVectorLayer — Base class for GwyDataView vector (interactive) layers
struct GwyVectorLayer; struct GwyVectorLayerClass; void gwy_vector_layer_draw (GwyVectorLayer *layer, GdkDrawable *drawable); gboolean gwy_vector_layer_button_press (GwyVectorLayer *layer, GdkEventButton *event); gboolean gwy_vector_layer_button_release (GwyVectorLayer *layer, GdkEventButton *event); gboolean gwy_vector_layer_motion_notify (GwyVectorLayer *layer, GdkEventMotion *event); gboolean gwy_vector_layer_key_press (GwyVectorLayer *layer, GdkEventKey *event); gboolean gwy_vector_layer_key_release (GwyVectorLayer *layer, GdkEventKey *event); void gwy_vector_layer_selection_finished (GwyVectorLayer *layer); gint gwy_vector_layer_get_selection (GwyVectorLayer *layer, gdouble *selection); void gwy_vector_layer_set_selection (GwyVectorLayer *layer, gint nselected, gdouble *selection); void gwy_vector_layer_unselect (GwyVectorLayer *layer); GtkUpdateType gwy_vector_layer_get_update_policy (GwyVectorLayer *layer); void gwy_vector_layer_set_update_policy (GwyVectorLayer *layer, GtkUpdateType policy); void gwy_vector_layer_updated (GwyVectorLayer *layer); void gwy_vector_layer_setup_gc (GwyVectorLayer *layer); void gwy_vector_layer_cursor_new_or_ref (GdkCursor **cursor, GdkCursorType type); void gwy_vector_layer_cursor_free_or_unref (GdkCursor **cursor);
GObject +----GtkObject +----GwyDataViewLayer +----GwyVectorLayer
"update-policy" GtkUpdateType : Read / Write
"selection-finished" void user_function (GwyVectorLayer *gwyvectorlayer, gpointer user_data);
struct GwyVectorLayerClass { GwyDataViewLayerClass parent_class; /* renderers */ void (*draw)(GwyVectorLayer *layer, GdkDrawable *drawable); /* events */ gboolean (*button_press)(GwyVectorLayer *layer, GdkEventButton *event); gboolean (*button_release)(GwyVectorLayer *layer, GdkEventButton *event); gboolean (*motion_notify)(GwyVectorLayer *layer, GdkEventMotion *event); gboolean (*key_press)(GwyVectorLayer *layer, GdkEventKey *event); gboolean (*key_release)(GwyVectorLayer *layer, GdkEventKey *event); /* signal functions */ void (*selection_finished)(GwyVectorLayer *layer); /* selection */ gint (*get_selection)(GwyVectorLayer *layer, gdouble *selection); void (*set_selection)(GwyVectorLayer *layer, gint nselected, gdouble *selection); void (*unselect)(GwyVectorLayer *layer); gpointer reserved1; gpointer reserved2; };
void gwy_vector_layer_draw (GwyVectorLayer *layer, GdkDrawable *drawable);
Draws layer on given drawable (which should be a GwyDataView window).
layer: | A vector data view layer. |
drawable: | A drawable to draw on. |
gboolean gwy_vector_layer_button_press (GwyVectorLayer *layer, GdkEventButton *event);
Sends a mouse button press event to a layer.
layer: | A vector data view layer. |
event: | A Gdk mouse button event. |
Returns : | TRUE if the event was handled. In practice, it returns FALSE. |
gboolean gwy_vector_layer_button_release (GwyVectorLayer *layer, GdkEventButton *event);
Sends a mouse button release event to a layer.
layer: | A vector data view layer. |
event: | A Gdk mouse button event. |
Returns : | TRUE if the event was handled. In practice, it returns FALSE. |
gboolean gwy_vector_layer_motion_notify (GwyVectorLayer *layer, GdkEventMotion *event);
Sends a mouse pointer motion notification event to a layer.
layer: | A vector data view layer. |
event: | A Gdk mouse pointer motion notification event. |
Returns : | TRUE if the event was handled. In practice, it returns FALSE. |
gboolean gwy_vector_layer_key_press (GwyVectorLayer *layer, GdkEventKey *event);
Sends a key press event to a layer.
layer: | A vector data view layer. |
event: | A Gdk key event. |
Returns : | TRUE if the event was handled. In practice, it returns FALSE. |
gboolean gwy_vector_layer_key_release (GwyVectorLayer *layer, GdkEventKey *event);
Sends a key release event to a layer.
layer: | A vector data view layer. |
event: | A Gdk key event. |
Returns : | TRUE if the event was handled. In practice, it returns FALSE. |
void gwy_vector_layer_selection_finished (GwyVectorLayer *layer);
Emits a "selection_finished" singal on a layer.
layer: | A vector data view layer. |
gint gwy_vector_layer_get_selection (GwyVectorLayer *layer, gdouble *selection);
Obtains the selection.
The selection is a sequence of coordinates whose precise interpretation is layer-dependent.
layer: | A vector data view layer. |
selection: | An array where the coordinates should be stored in, or NULL (to get only the number of selected lines, you can use gwy_vector_layer_get_nselected() instead). If not NULL it must be long enough to hold all the coordinates. |
Returns : | The number of selected objects (the same value as gwy_vector_layer_get_nselected() returns). Usually this is NOT the number of coordinates in selection (a point takes two coordinates, a line four) |
void gwy_vector_layer_set_selection (GwyVectorLayer *layer, gint nselected, gdouble *selection);
Sets the selection.
Do not use this function while user is drawing a selection.
See gwy_vector_layer_get_selection() for some selection format discussion.
layer: | A vector data view layer. |
nselected: | The number of objects in selection. |
selection: | An array with the selection coordinates. The number of objects (not coordinates) there is nselected. |
void gwy_vector_layer_unselect (GwyVectorLayer *layer);
Clears the selection.
Do not use this function while user is drawing a selection.
layer: | A vector data view layer. |
GtkUpdateType gwy_vector_layer_get_update_policy (GwyVectorLayer *layer);
Returns the update policy of a vector layer layer.
layer: | A vector data view layer. |
Returns : | The update policy. |
void gwy_vector_layer_set_update_policy (GwyVectorLayer *layer, GtkUpdateType policy);
Sets update policy for a vector layer layer.
layer: | A vector data view layer. |
policy: | the update policy the vector layer should use. |
void gwy_vector_layer_updated (GwyVectorLayer *layer);
Maybe emit the "updated" signal on layer.
Unlike gwy_data_view_layer_updated(), this function honours vector layer update policy, so the "update" signal may not be actually emited right now.
layer: | A vector data view layer. |
void gwy_vector_layer_setup_gc (GwyVectorLayer *layer);
Sets up Gdk graphic context of the vector layer for its parent window.
This function is intended only for layer implementation.
layer: | A vector data view layer. |
void gwy_vector_layer_cursor_new_or_ref (GdkCursor **cursor, GdkCursorType type);
Increments reference count of a given Gdk cursor or creates a new one (if cursor is NULL) of type cursor_type.
This function is intended only for layer implementation.
cursor: | A Gdk cursor, or NULL. |
type: | Cursor type to eventually create. |
void user_function (GwyVectorLayer *gwyvectorlayer, gpointer user_data);
gwyvectorlayer: | the object which received the signal. |
user_data: | user data set when the signal handler was connected. |
<< GwyPixmapLayer | GwyLayerBasic >> |