![]() |
![]() |
![]() |
Goffice Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
#include <goffice/graph/gog-object.h> GogObject; GogObjectClass; #define GOG_PARAM_FORCE_SAVE #define GOG_PARAM_POSITION void (*GogDataDuplicator) (GogDataset const *src
,GogDataset *dst
); enum GogObjectNamingConv; GogObjectRole; GogObject * gog_object_dup (GogObject const *src
,GogObject *new_parent
,GogDataDuplicator datadup
); GogObject * gog_object_get_parent (GogObject const *obj
); GogObject * gog_object_get_parent_typed (GogObject const *obj
,GType t
); GogGraph * gog_object_get_graph (GogObject const *obj
); GogTheme * gog_object_get_theme (GogObject const *obj
); unsigned gog_object_get_id (GogObject const *obj
); char const * gog_object_get_name (GogObject const *obj
); void gog_object_set_name (GogObject *obj
,char *name
,GError **err
); GSList * gog_object_get_children (GogObject const *obj
,GogObjectRole const *filter
); GogObject * gog_object_get_child_by_role (GogObject const *obj
,GogObjectRole const *role
); GogObject * gog_object_get_child_by_name (GogObject const *obj
,char const *name
); gpointer gog_object_get_editor (GogObject *obj
,GogDataAllocator *dalloc
,GOCmdContext *cc
); GogView * gog_object_new_view (GogObject const *obj
,GogView *parent
); gboolean gog_object_is_deletable (GogObject const *obj
); GSList * gog_object_possible_additions (GogObject const *parent
); void gog_object_register_roles (GogObjectClass *klass
,GogObjectRole const *roles
,unsigned int n_roles
); GogObject * gog_object_add_by_role (GogObject *parent
,GogObjectRole const *role
,GogObject *child
); GogObject * gog_object_add_by_name (GogObject *parent
,char const *role
,GogObject *child
); void gog_object_can_reorder (GogObject const *obj
,gboolean *inc_ok
,gboolean *dec_ok
); GogObject * gog_object_reorder (GogObject const *obj
,gboolean inc
,gboolean goto_max
); GogObjectPosition gog_object_get_position_flags (GogObject const *obj
,GogObjectPosition mask
); gboolean gog_object_set_position_flags (GogObject *obj
,GogObjectPosition flags
,GogObjectPosition mask
); gboolean gog_object_is_default_position_flags (GogObject const *obj
,char const *name
); void gog_object_get_manual_position (GogObject *obj
,GogViewAllocation *pos
); void gog_object_set_manual_position (GogObject *obj
,GogViewAllocation const *pos
); GogViewAllocation gog_object_get_manual_allocation (GogObject *gobj
,GogViewAllocation const *parent_allocation
,GogViewRequisition const *requisition
); GogObjectRole const * gog_object_find_role_by_name (GogObject const *obj
,char const *role
); void gog_object_update (GogObject *obj
); gboolean gog_object_request_update (GogObject *obj
); void gog_object_emit_changed (GogObject *obj
,gboolean size
); gboolean gog_object_clear_parent (GogObject *obj
); gboolean gog_object_set_parent (GogObject *child
,GogObject *parent
,GogObjectRole const *role
,unsigned int id
); void gog_object_request_editor_update (GogObject *obj
); void gog_object_document_changed (GogObject *obj
,GODoc *doc
); #define gog_object_is_visible (obj) void gog_object_set_invisible (GogObject *obj
,gboolean invisible
); enum GogObjectPosition; #define GOG_POSITION_IS_PADDING (pos) #define GOG_POSITION_IS_SPECIAL (pos) enum GogDataType; enum GogDimType; enum GogMSDimType; void (*GogEnumFunc) (unsigned i
,gpointer style
,char const *name
,gpointer data
);
"alignment" gchar* : Read / Write "anchor" gchar* : Read / Write "compass" gchar* : Read / Write "id" guint : Read / Write "invisible" gboolean : Read / Write "is-position-manual" gboolean : Read / Write "position" gchar* : Read / Write
"changed" : Run Last "child-added" : Run Last "child-name-changed" : Run Last "child-removed" : Run Last "children-reordered" : Run Last "name-changed" : Run Last "update-editor" : Run Last
typedef struct { GObjectClass base; GHashTable *roles; GType view_type; /* using some Private/Public statements to make gtk-doc happy since it does not like the ":1"*/ /* Virtuals */ void (*update) (GogObject *obj); void (*parent_changed) (GogObject *obj, gboolean was_set); char const *(*type_name) (GogObject const *obj); void (*populate_editor) (GogObject *obj, GOEditor *editor, GogDataAllocator *dalloc, GOCmdContext *cc); void (*document_changed)(GogObject *obj, GODoc *doc); /* signals */ void (*changed) (GogObject *obj, gboolean size); void (*name_changed) (GogObject *obj); void (*possible_additions_changed) (GogObject const *obj); void (*child_added) (GogObject *parent, GogObject *child); void (*child_removed) (GogObject *parent, GogObject *child); void (*child_name_changed) (GogObject const *obj, GogObject const *child); void (*children_reordered) (GogObject *obj); void (*update_editor) (GogObject *obj); } GogObjectClass;
#define GOG_PARAM_FORCE_SAVE (1 << (G_PARAM_USER_SHIFT+1)) /* even if the value == default */
#define GOG_PARAM_POSITION (1 << (G_PARAM_USER_SHIFT+2)) /* position parameters */
void (*GogDataDuplicator) (GogDataset const *src
,GogDataset *dst
);
|
|
|
typedef enum { GOG_OBJECT_NAME_BY_ROLE = 1, GOG_OBJECT_NAME_BY_TYPE = 2, GOG_OBJECT_NAME_MANUALLY = 3 } GogObjectNamingConv;
typedef struct { char const *id; /* for persistence */ char const *is_a_typename; unsigned priority; guint32 allowable_positions; GogObjectPosition default_position; GogObjectNamingConv naming_conv; gboolean (*can_add) (GogObject const *parent); gboolean (*can_remove) (GogObject const *child); GogObject *(*allocate) (GogObject *parent); void (*post_add) (GogObject *parent, GogObject *child); void (*pre_remove) (GogObject *parent, GogObject *child); void (*post_remove) (GogObject *parent, GogObject *child); union { /* allow people to tack some useful tidbits on the end */ int i; gpointer p; } user; } GogObjectRole;
GogObject * gog_object_dup (GogObject const *src
,GogObject *new_parent
,GogDataDuplicator datadup
);
Create a deep copy of obj
using new_parent
as its parent.
GogObject * gog_object_get_parent_typed (GogObject const *obj
,GType t
);
GogGraph * gog_object_get_graph (GogObject const *obj
);
|
const * GogObject |
Returns : |
the parent graph. |
char const * gog_object_get_name (GogObject const *obj
);
No need to free the result
|
a GogObject |
Returns : |
a name. |
void gog_object_set_name (GogObject *obj
,char *name
,GError **err
);
Assign the new name and signals that it has changed.
NOTE : it _absorbs_ name
rather than copying it, and generates a new name
if name
== NULL
GSList * gog_object_get_children (GogObject const *obj
,GogObjectRole const *filter
);
|
a GogObject |
|
an optional GogObjectRole to use as a filter |
Returns : |
A list of obj 's Children. Caller must free the list, but not the
children.
|
GogObject * gog_object_get_child_by_role (GogObject const *obj
,GogObjectRole const *role
);
A convenience routine to find a unique child with role
.
|
a GogObject |
|
a GogObjectRole to use as a filter |
Returns : |
NULL and spews an error if there is more than one.
|
GogObject * gog_object_get_child_by_name (GogObject const *obj
,char const *name
);
A convenience routine to find a unique child with role == name
gpointer gog_object_get_editor (GogObject *obj
,GogDataAllocator *dalloc
,GOCmdContext *cc
);
Builds an object property editor, by calling GogObject::populate_editor virtual functions.
|
a GogObject |
|
a GogDataAllocator |
|
a GOCmdContext |
Returns : |
a GtkNotebook widget |
GogView * gog_object_new_view (GogObject const *obj
,GogView *parent
);
Creates a new GogView associated to obj
, and sets its parent to parent
.
GSList * gog_object_possible_additions (GogObject const *parent
);
|
a GogObject |
Returns : |
a list of GogObjectRoles that could be added. The resulting list needs to be freed |
void gog_object_register_roles (GogObjectClass *klass
,GogObjectRole const *roles
,unsigned int n_roles
);
|
GogObjectClass |
|
GogObjectRole |
|
number of roles |
GogObject * gog_object_add_by_role (GogObject *parent
,GogObjectRole const *role
,GogObject *child
);
Absorb a ref to child
if it is non-NULL.
|
GogObject |
|
GogObjectRole |
|
GogObject |
Returns : |
child or a newly created object with role . Callers do _not_ own
the reference.
|
GogObject * gog_object_add_by_name (GogObject *parent
,char const *role
,GogObject *child
);
void gog_object_can_reorder (GogObject const *obj
,gboolean *inc_ok
,gboolean *dec_ok
);
If obj
can move forward or backward in its parents child list
GogObject * gog_object_reorder (GogObject const *obj
,gboolean inc
,gboolean goto_max
);
|
GogObject |
Returns : |
the object just before obj in the new ordering.
|
GogObjectPosition gog_object_get_position_flags (GogObject const *obj
,GogObjectPosition mask
);
|
GogObject |
|
GogObjectPosition |
Returns : |
obj 's position flags, masked by mask .
|
gboolean gog_object_set_position_flags (GogObject *obj
,GogObjectPosition flags
,GogObjectPosition mask
);
Attempts to set the position flags of obj
to flags
.
|
GogObject |
|
GogObjectPosition |
|
GogObjectPosition |
Returns : |
TRUE the new flags are permitted. |
gboolean gog_object_is_default_position_flags (GogObject const *obj
,char const *name
);
|
|
|
|
Returns : |
void gog_object_get_manual_position (GogObject *obj
,GogViewAllocation *pos
);
FIXME
|
GogObject |
|
GogViewAllocation |
void gog_object_set_manual_position (GogObject *obj
,GogViewAllocation const *pos
);
set manual position of given object, in points.
|
GogObject |
|
GogViewAllocation |
GogViewAllocation gog_object_get_manual_allocation (GogObject *gobj
,GogViewAllocation const *parent_allocation
,GogViewRequisition const *requisition
);
|
GogObject |
|
GogViewAllocation |
|
GogViewRequisition |
Returns : |
manual allocation of a GogObject given its parent allocation and its size request. |
GogObjectRole const * gog_object_find_role_by_name (GogObject const *obj
,char const *role
);
|
|
|
|
Returns : |
void gog_object_emit_changed (GogObject *obj
,gboolean size
);
|
|
|
gboolean gog_object_clear_parent (GogObject *obj
);
Does _not_ unref the child, which in effect adds a ref by freeing up the ref previously associated with the parent.
gboolean gog_object_set_parent (GogObject *child
,GogObject *parent
,GogObjectRole const *role
,unsigned int id
);
Absorbs a ref to child
void gog_object_request_editor_update (GogObject *obj
);
Emits a update-editor signal. This signal should be used by object editors in order to refresh their states.
|
GogObject |
void gog_object_document_changed (GogObject *obj
,GODoc *doc
);
|
|
|
void gog_object_set_invisible (GogObject *obj
,gboolean invisible
);
|
GogObject |
typedef enum { GOG_POSITION_AUTO = 0, GOG_POSITION_N = 1 << 0, /* can be used with E or W */ GOG_POSITION_S = 1 << 1, /* can be used with E or W */ GOG_POSITION_E = 1 << 2, GOG_POSITION_W = 1 << 3, GOG_POSITION_COMPASS = 0x0f, /* modifiers for compass */ GOG_POSITION_ALIGN_FILL = 0 << 4, GOG_POSITION_ALIGN_START = 1 << 4, GOG_POSITION_ALIGN_END = 2 << 4, GOG_POSITION_ALIGN_CENTER = 3 << 4, GOG_POSITION_ALIGNMENT = 0x30, GOG_POSITION_SPECIAL = 1 << 6, GOG_POSITION_MANUAL = 1 << 7, GOG_POSITION_MANUAL_X_ABS = 1 << 8, /* abs vs relative pos */ GOG_POSITION_MANUAL_Y_ABS = 1 << 9, GOG_POSITION_MANUAL_X_END = 1 << 10, /* pos relative to start or end */ GOG_POSITION_MANUAL_Y_END = 1 << 11, /* modifiers for manual */ GOG_POSITION_ANCHOR_NW = 0 << 12, GOG_POSITION_ANCHOR_N = 1 << 12, GOG_POSITION_ANCHOR_NE = 2 << 12, GOG_POSITION_ANCHOR_E = 3 << 12, GOG_POSITION_ANCHOR_SE = 4 << 12, GOG_POSITION_ANCHOR_S = 5 << 12, GOG_POSITION_ANCHOR_SW = 6 << 12, GOG_POSITION_ANCHOR_W = 7 << 12, GOG_POSITION_ANCHOR_CENTER = 8 << 12, GOG_POSITION_ANCHOR = 0xf000, GOG_POSITION_ANY_MANUAL = 0xff80, GOG_POSITION_PADDING = 1 << 16 } GogObjectPosition;
#define GOG_POSITION_IS_PADDING(pos) (((pos) & GOG_POSITION_PADDING)&&(!((pos) & GOG_POSITION_MANUAL)))
|
#define GOG_POSITION_IS_SPECIAL(pos) (((pos) & GOG_POSITION_SPECIAL)&&(!((pos) & GOG_POSITION_MANUAL)))
|
typedef enum { GOG_DIM_INVALID = -1, GOG_DIM_LABEL = 0, GOG_DIM_INDEX, GOG_DIM_VALUE, GOG_DIM_MATRIX, GOG_DIM_TYPES } GogDimType;
typedef enum { GOG_MS_DIM_LABELS = 0, GOG_MS_DIM_VALUES = 1, GOG_MS_DIM_CATEGORIES = 2, GOG_MS_DIM_BUBBLES = 3, /* undocumented */ GOG_MS_DIM_TYPES, GOG_MS_DIM_ERR_plus1, /* we made it up */ GOG_MS_DIM_ERR_minus1, /* we made it up */ GOG_MS_DIM_ERR_plus2, /* we made it up */ GOG_MS_DIM_ERR_minus2, /* we made it up */ GOG_MS_DIM_START, /* we made it up for dropbars*/ GOG_MS_DIM_END, /* we made it up for dropbars */ GOG_MS_DIM_LOW, /* we made it up for hi-lo*/ GOG_MS_DIM_HIGH, /* we made it up for hi-lo */ GOG_MS_DIM_EXTRA1, /* we made it up for other uses */ GOG_MS_DIM_EXTRA2 /* we made it up for other uses */ } GogMSDimType;
"anchor"
property"anchor" gchar* : Read / Write
Anchor for manual position.
Default value: "top-left"
"compass"
property"compass" gchar* : Read / Write
Compass auto position flags.
Default value: "top"
"id"
property"id" guint : Read / Write
Object numerical ID.
Allowed values: <= G_MAXLONG
Default value: 0
"invisible"
property"invisible" gboolean : Read / Write
Should the object be hidden.
Default value: FALSE
"is-position-manual"
property"is-position-manual" gboolean : Read / Write
Is position manual.
Default value: FALSE
"position"
property"position" gchar* : Read / Write
Position and size of object, in percentage of parent size.
Default value: "0 0 1 1"
"changed"
signalvoid user_function (GogObject *gogobject, gboolean arg1, gpointer user_data) : Run Last
|
the object which received the signal. |
|
|
|
user data set when the signal handler was connected. |
"child-added"
signalvoid user_function (GogObject *object, GObject *child, gpointer user_data) : Run Last
The ::child-added signal is emitted AFTER the child has been added and AFTER the parent-changed signal has been called for it.
|
the object on which the signal is emitted |
|
The new GogObject whose parent is object
|
|
user data set when the signal handler was connected. |
"child-name-changed"
signalvoid user_function (GogObject *gogobject, GObject *arg1, gpointer user_data) : Run Last
|
the object which received the signal. |
|
|
|
user data set when the signal handler was connected. |
"child-removed"
signalvoid user_function (GogObject *object, GObject *child, gpointer user_data) : Run Last
The ::child-removed signal is emitted BEFORE the child has been added and BEFORE the parent-changed signal has been called for it.
|
the object on which the signal is emitted |
|
The new GogObject whose parent is object
|
|
user data set when the signal handler was connected. |
"children-reordered"
signalvoid user_function (GogObject *gogobject, gpointer user_data) : Run Last
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"name-changed"
signalvoid user_function (GogObject *gogobject, gpointer user_data) : Run Last
|
the object which received the signal. |
|
user data set when the signal handler was connected. |