GwyVectorLayer

GwyVectorLayer — Base class for GwyDataView vector (interactive) layers

Synopsis




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);

Object Hierarchy


  GObject
   +----GtkObject
         +----GwyDataViewLayer
               +----GwyVectorLayer

Properties


  "update-policy"        GtkUpdateType        : Read / Write

Signal Prototypes


"selection-finished"
            void        user_function      (GwyVectorLayer *gwyvectorlayer,
                                            gpointer user_data);

Description

Details

struct GwyVectorLayer

struct GwyVectorLayer;


struct GwyVectorLayerClass

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;
};


gwy_vector_layer_draw ()

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.

gwy_vector_layer_button_press ()

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.

gwy_vector_layer_button_release ()

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.

gwy_vector_layer_motion_notify ()

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.

gwy_vector_layer_key_press ()

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.

gwy_vector_layer_key_release ()

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.

gwy_vector_layer_selection_finished ()

void        gwy_vector_layer_selection_finished
                                            (GwyVectorLayer *layer);

Emits a "selection_finished" singal on a layer.

layer : A vector data view layer.

gwy_vector_layer_get_selection ()

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 objects. If not NULL it must be long enough to hold all the coordinates.
Returns : The number of selected objects. Usually this is NOT the number of coordinates in selection (a point takes two coordinates, a line four)

gwy_vector_layer_set_selection ()

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.

gwy_vector_layer_unselect ()

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.

gwy_vector_layer_get_update_policy ()

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.

gwy_vector_layer_set_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.

gwy_vector_layer_updated ()

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.

gwy_vector_layer_setup_gc ()

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.

gwy_vector_layer_cursor_new_or_ref ()

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.

gwy_vector_layer_cursor_free_or_unref ()

void        gwy_vector_layer_cursor_free_or_unref
                                            (GdkCursor **cursor);

Decrements reference count of a Gdk cursor, possibly freeing it.

This function is intended only for layer implementation.

cursor : A Gdk cursor.

Properties

"update-policy" (GtkUpdateType : Read / Write)

When value change causes signal emission.

Signals

The "selection-finished" signal

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.