GOStyledObject

GOStyledObject — Objects with style

Types and Values

Object Hierarchy

    GInterface
    ╰── GOStyledObject

Description

The common GInterface for all objects owning a GOStyle.

Functions

go_styled_object_apply_theme ()

void
go_styled_object_apply_theme (GOStyledObject *gso,
                              GOStyle *style);

Apply appropriate theme style if meaningful, i.e. properties with auto flag set to TRUE should be changed to default theme value.

Parameters

gso

a GOStyledObject

 

style

a GOStyle that will be themed

 

go_styled_object_fill ()

void
go_styled_object_fill (GOStyledObject const *so,
                       cairo_t *cr,
                       gboolean preserve);

fills the current path according to the item style and canvas scale.

Parameters

so

GOStyledObject

 

cr

cairo_t

 

preserve

whether the current path should be preserved

 

go_styled_object_get_auto_style ()

GOStyle *
go_styled_object_get_auto_style (GOStyledObject *gso);

This function returns a new style that is initialized with the auto values for gso . Caller is responsible for the result.

Parameters

gso

a GOStyledObject

 

Returns

a new GOStyle.

[transfer full]


go_styled_object_get_document ()

GODoc *
go_styled_object_get_document (GOStyledObject *gso);

A GODoc is necessary to store images. If no GODoc is associated with the object, image filling will not be supported.

Parameters

gso

a GOStyledObject

 

Returns

he GODoc associated with the object if any.

[transfer none]


go_styled_object_get_style ()

GOStyle *
go_styled_object_get_style (GOStyledObject *gso);

Simply an accessor function that returns gso->style , without referencing it.

Parameters

gso

a GOStyledObject

 

Returns

the styled object's GOStyle.

[transfer none]


go_styled_object_set_cairo_line ()

gboolean
go_styled_object_set_cairo_line (GOStyledObject const *so,
                                 cairo_t *cr);

Prepares the cairo context cr to draw a line according to the item style and canvas scale.

Parameters

so

GOStyledObject

 

cr

cairo_t

 

Returns

TRUE if the line is not invisible


go_styled_object_set_style ()

gboolean
go_styled_object_set_style (GOStyledObject *gso,
                            GOStyle *style);

Sets a new style for gso , and emits "style-changed" signal. This function does not take ownership of style .

The best way to change the style is to set the "style" property.

This function will fail if the new style and the previous style are the same. In that case, the function will always return false:

1
2
3
style = go_styled_object_get_style (gso);
style->line.width = 2;
size_changed = go_styled_object_set_style (gso, style);

In this sample, the call to go_styled_object_set_style() is just useless. You need to check yourself if you really change the size, call go_styled_object_style_changed() to trigger the "style-changed" event. So the following code is much better:

1
2
3
4
5
6
7
style = go_styled_object_get_style (gso);
if (style->line.width != 2.) {
 style->line.width = 2;
 go_styled_object_style_changed (gso);
 size_changed = true;
} else
 size_changed = FALSE;

or even better:

1
2
3
4
style = go_style_dup (go_styled_object_get_style (gso));
style->line.width = 2;
size_changed = go_styled_object_set_style (gso, style);
g_object_unref (style);

Parameters

gso

a GOStyledObject

 

style

a GOStyle

 

Returns

TRUE if new style may lead to change of object size, which happens when changing font size for example.


go_styled_object_style_changed ()

void
go_styled_object_style_changed (GOStyledObject *gso);

Called when the style changed. Might emit a signal if meaningful.

Parameters

gso

a GOStyledObject

 

Types and Values

GOStyledObject

typedef struct _GOStyledObject GOStyledObject;

GOStyledObjectClass

typedef struct {
	GTypeInterface		   base;

	gboolean  (*set_style) 	    (GOStyledObject *gso, GOStyle *style);
	GOStyle	 *(*get_style)	    (GOStyledObject *gso);
	GOStyle	 *(*get_auto_style) (GOStyledObject *gso);
	void	  (*style_changed)  (GOStyledObject *gso);
	void	  (*apply_theme) (GOStyledObject *gso, GOStyle *style);
	GODoc    *(*get_document)   (GOStyledObject *gso);
} GOStyledObjectClass;

Members

GTypeInterface base;

base class

 

set_style ()

sets the object style.

 

get_style ()

returns the object current style.

 

get_auto_style ()

returns the default style for the object.

 

style_changed ()

called when the style changed.

 

apply_theme ()

apply the current theme if any to the object style.

 

get_document ()

returns the GODoc associated to the object if any.