MxStyle

MxStyle — a data store for style properties

Synopsis

                    MxStylable;
                    MxStylableIface;
enum                MxStyleError;
struct              MxStyle;
MxStyle *           mx_style_get_default                (void);
MxStyle *           mx_style_new                        (void);
gboolean            mx_style_load_from_file             (MxStyle *style,
                                                         const gchar *filename,
                                                         GError **error);
void                mx_style_get_property               (MxStyle *style,
                                                         MxStylable *stylable,
                                                         GParamSpec *pspec,
                                                         GValue *value);
void                mx_style_get                        (MxStyle *style,
                                                         MxStylable *stylable,
                                                         const gchar *first_property_name,
                                                         ...);
void                mx_style_get_valist                 (MxStyle *style,
                                                         MxStylable *stylable,
                                                         const gchar *first_property_name,
                                                         va_list va_args);

Object Hierarchy

  GInterface
   +----MxStylable
  GObject
   +----MxStyle

Known Implementations

MxStylable is implemented by MxBin, MxBoxLayout, MxButton, MxComboBox, MxDeformBowTie, MxDeformPageTurn, MxDeformTexture, MxDeformWaves, MxEntry, MxExpander, MxFloatingWidget, MxFrame, MxGrid, MxIcon, MxItemView, MxLabel, MxListView, MxMenu, MxNotebook, MxPathBar, MxProgressBar, MxScrollBar, MxScrollView, MxSlider, MxTable, MxToggle, MxToolbar, MxTooltip, MxViewport and MxWidget.

Properties

  "style"                    MxStyle*              : Read / Write
  "style-class"              gchar*                : Read / Write
  "style-pseudo-class"       gchar*                : Read / Write

Signals

  "style-changed"                                  : Run First
  "changed"                                        : Run Last

Description

MxStyle is a property data store that can read properties from a style sheet. It is queried with objects that implement the MxStylable interface.

Details

MxStylable

typedef struct _MxStylable MxStylable;

This is an opaque structure whose members cannot be directly accessed.


MxStylableIface

typedef struct {
  GTypeInterface g_iface;

  /* virtual functions */
  MxStyle *  (* get_style) (MxStylable *stylable);
  void       (* set_style) (MxStylable *stylable,
                            MxStyle    *style);

  G_CONST_RETURN gchar* (* get_style_class) (MxStylable  *stylable);
  void                  (* set_style_class) (MxStylable  *stylable,
                                             const gchar *style_class);

  G_CONST_RETURN gchar* (* get_style_pseudo_class) (MxStylable  *stylable);
  void                  (* set_style_pseudo_class) (MxStylable  *stylable,
                                                    const gchar *style_class);

  /* context virtual functions */

  /* signals, not vfuncs */
#if 0
  void (* style_notify)     (MxStylable *stylable,
                             GParamSpec *pspec);
#endif
  void (* style_changed)    (MxStylable *stylable, MxStyleChangedFlags flags);
} MxStylableIface;


enum MxStyleError

typedef enum { /*< prefix=MX_STYLE_ERROR >*/
  MX_STYLE_ERROR_INVALID_FILE
} MxStyleError;


struct MxStyle

struct MxStyle;

The contents of this structure is private and should only be accessed using the provided API.


mx_style_get_default ()

MxStyle *           mx_style_get_default                (void);

Return the default MxStyle object. This includes the current theme (if any).

Returns :

a MxStyle object. This must not be freed or unref'd by applications. [transfer none]

mx_style_new ()

MxStyle *           mx_style_new                        (void);

Creates a new MxStyle object. This must be freed using g_object_unref when no longer required.

Returns :

a newly allocated MxStyle

mx_style_load_from_file ()

gboolean            mx_style_load_from_file             (MxStyle *style,
                                                         const gchar *filename,
                                                         GError **error);

Load style information from the specified file.

style :

a MxStyle

filename :

filename of the style sheet to load

error :

a GError or NULL

Returns :

TRUE if the style information was loaded successfully. Returns FALSE on error.

mx_style_get_property ()

void                mx_style_get_property               (MxStyle *style,
                                                         MxStylable *stylable,
                                                         GParamSpec *pspec,
                                                         GValue *value);

Requests the property described in pspec for the specified stylable

style :

the style data store object

stylable :

a stylable to retreive the data for

pspec :

a GParamSpec describing the property required

value :

a GValue to place the return value in. [out]

mx_style_get ()

void                mx_style_get                        (MxStyle *style,
                                                         MxStylable *stylable,
                                                         const gchar *first_property_name,
                                                         ...);

Gets the style properties for stylable from style.

In general, a copy is made of the property contents and the caller is responsible for freeing the memory in the appropriate manner for the property type.

style :

a MxStyle

stylable :

a MxStylable

first_property_name :

name of the first property to get

... :

return location for the first property, followed optionally by more name/return location pairs, followed by NULL

mx_style_get_valist ()

void                mx_style_get_valist                 (MxStyle *style,
                                                         MxStylable *stylable,
                                                         const gchar *first_property_name,
                                                         va_list va_args);

Gets the style properties for stylable from style.

Please refer to mx_style_get() for further information.

style :

a MxStyle

stylable :

a MxStylable

first_property_name :

name of the first property to get

va_args :

return location for the first property, followed optionally by more name/return location pairs, followed by NULL

Property Details

The "style" property

  "style"                    MxStyle*              : Read / Write

A style object.


The "style-class" property

  "style-class"              gchar*                : Read / Write

String representation of the item's class.

Default value: ""


The "style-pseudo-class" property

  "style-pseudo-class"       gchar*                : Read / Write

Pseudo class, such as current state.

Default value: ""

Signal Details

The "style-changed" signal

void                user_function                      (MxStylable         *stylable,
                                                        MxStyleChangedFlags flags,
                                                        gpointer            user_data)      : Run First

The ::style-changed signal is emitted each time one of the style properties have changed.

stylable :

the MxStylable that received the signal

flags :

the MxStyleChangedFlags associated with the signal

user_data :

user data set when the signal handler was connected.

The "changed" signal

void                user_function                      (MxStyle *arg0,
                                                        gpointer user_data)      : Run Last

Indicates that the style data has changed in some way. For example, a new stylesheet may have been loaded.

user_data :

user data set when the signal handler was connected.