MxWidget

## MxWidget MxWidget — Base class for stylable actors |

## Synopsis

    enum                MxLongPressAction;
    struct              MxWidget;
    void                mx_widget_set_tooltip_text          (MxWidget *widget,
                                                             const gchar *text);
    const gchar *       mx_widget_get_tooltip_text          (MxWidget *widget);
    void                mx_widget_show_tooltip              (MxWidget *widget);
    void                mx_widget_hide_tooltip              (MxWidget *widget);
    void                mx_widget_set_menu                  (MxWidget *widget,
                                                             MxMenu *menu);
    MxMenu *            mx_widget_get_menu                  (MxWidget *widget);
    void                mx_widget_long_press_query          (MxWidget *widget,
                                                             ClutterButtonEvent *event);
    void                mx_widget_long_press_cancel         (MxWidget *widget);
    ClutterActor *      mx_widget_get_background_image      (MxWidget *actor);
    ClutterActor *      mx_widget_get_border_image          (MxWidget *actor);
    void                mx_widget_get_padding               (MxWidget *widget,
                                                             MxPadding *padding);
    void                mx_widget_paint_background          (MxWidget *widget);
    void                mx_widget_get_available_area        (MxWidget *widget,
                                                             const ClutterActorBox *allocation,
                                                             ClutterActorBox *area);
    gboolean            mx_widget_get_disabled              (MxWidget *widget);
    void                mx_widget_set_disabled              (MxWidget *widget,
                                                             gboolean disabled);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----ClutterActor
                   +----MxWidget
                         +----MxFloatingWidget
                         +----MxComboBox
                         +----MxDeformTexture
                         +----MxGrid
                         +----MxLabel
                         +----MxBoxLayout
                         +----MxBin
                         +----MxIcon
                         +----MxProgressBar
                         +----MxTable
                         +----MxNotebook
                         +----MxToggle
                         +----MxSlider
                         +----MxPathBar
                         +----MxEntry

## Implemented Interfaces

MxWidget implements ClutterScriptable and MxStylable.

## Properties

      "disabled"                 gboolean              : Read / Write
      "menu"                     MxMenu*               : Read / Write
      "tooltip-text"             gchar*                : Read / Write

## Signals

      "long-press"                                     : Run Last

## Description

MxWidget is a simple abstract class on top of ClutterActor. It provides basic themeing properties.

Actors in the Mx library should subclass MxWidget if they plan to obey to a certain MxStyle.

## Details

### enum MxLongPressAction

    typedef enum
    {
      MX_LONG_PRESS_QUERY,
      MX_LONG_PRESS_ACTION,
      MX_LONG_PRESS_CANCEL
    } MxLongPressAction;

### struct MxWidget

    struct MxWidget;

Base class for stylable actors. The contents of the MxWidget structure are private and should only be accessed through the public API.

### mx_widget_set_tooltip_text ()

    void                mx_widget_set_tooltip_text          (MxWidget *widget,
                                                             const gchar *text);

Set the tooltip text of the widget. Note that setting tooltip text will cause the widget to be set reactive. If you no longer need tooltips and you do not need the widget to be reactive, you must set ClutterActor::reactive to `FALSE`.

`widget` : | A MxWidget
`text` : | text to set as the tooltip

### mx_widget_get_tooltip_text ()

    const gchar *       mx_widget_get_tooltip_text          (MxWidget *widget);

Get the current tooltip string

`widget` : | A MxWidget
Returns : | The current tooltip string, owned by the MxWidget

### mx_widget_show_tooltip ()

    void                mx_widget_show_tooltip              (MxWidget *widget);

Show the tooltip for `widget`

`widget` : | A MxWidget

### mx_widget_hide_tooltip ()

    void                mx_widget_hide_tooltip              (MxWidget *widget);

Hide the tooltip for `widget`

`widget` : | A MxWidget

### mx_widget_set_menu ()

    void                mx_widget_set_menu                  (MxWidget *widget,
                                                             MxMenu *menu);

Set the value of the "menu" property.

`widget` : | A MxWidget
`menu` : | A MxMenu

### mx_widget_get_menu ()

    MxMenu *            mx_widget_get_menu                  (MxWidget *widget);

Get the object in the "menu" property.

`widget` : | A MxWidget
Returns : | The current object in the "menu" property.

### mx_widget_long_press_query ()

    void                mx_widget_long_press_query          (MxWidget *widget,
                                                             ClutterButtonEvent *event);

Emit the long-press query signal and start a long-press timeout if required.

`widget` : | An MxWidget
`event` : | the event used to determine whether to run a long-press

### mx_widget_long_press_cancel ()

    void                mx_widget_long_press_cancel         (MxWidget *widget);

Cancel a long-press timeout if one is running and emit the signal to notify that the long-press has been cancelled.

`widget` : | An MxWidget

### mx_widget_get_background_image ()

    ClutterActor *      mx_widget_get_background_image      (MxWidget *actor);

Get the texture used as the background image. This is set using the "background-image" CSS property. This function should normally only be used by subclasses.

`actor` : | A MxWidget
Returns : | a ClutterActor. [transfer none]

### mx_widget_get_border_image ()

    ClutterActor *      mx_widget_get_border_image          (MxWidget *actor);

Get the texture used as the border image. This is set using the "border-image" CSS property. This function should normally only be used by subclasses.

`actor` : | A MxWidget
Returns : | ClutterActor. [transfer none]

### mx_widget_get_padding ()

    void                mx_widget_get_padding               (MxWidget *widget,
                                                             MxPadding *padding);

Gets the padding of the widget, set using the "padding" CSS property. This function should normally only be used by subclasses.

`widget` : | A MxWidget
`padding` : | A pointer to an MxPadding to fill

### mx_widget_paint_background ()

    void                mx_widget_paint_background          (MxWidget *widget);

Invokes MxWidget::`paint_background()` using the default background image and/or color from the `widget` style

This function should be used by subclasses of MxWidget that override the `paint()` virtual function and cannot chain up

`widget` : | a MxWidget

### mx_widget_get_available_area ()

    void                mx_widget_get_available_area        (MxWidget *widget,
                                                             const ClutterActorBox *allocation,
                                                             ClutterActorBox *area);

Copies `allocation` into `area` and accounts for the padding values. This gives the area that is available in which to allocate children with respect to padding.

`widget` : | A MxWidget
`allocation` : | A ClutterActorBox
`area` : | A ClutterActorBox

### mx_widget_get_disabled ()

    gboolean            mx_widget_get_disabled              (MxWidget *widget);

Get the value of the "disabled" property.

`widget` : | an MxWidget
Returns : |

### mx_widget_set_disabled ()

    void                mx_widget_set_disabled              (MxWidget *widget,
                                                             gboolean disabled);

Set the disabled property. Disabled widgets have a "disabled" pseudo-class until disabled is set to FALSE.

`widget` : | an MxWidget
`disabled` : | value to set

## Property Details

### The `"disabled"` property

      "disabled"                 gboolean              : Read / Write

Whether disabled styling should be applied and the widget made unreactive.

Default value: FALSE

### The `"menu"` property

      "menu"                     MxMenu*               : Read / Write

MxMenu associated with the widget. See `mx_widget_show_menu()`.

### The `"tooltip-text"` property

      "tooltip-text"             gchar*                : Read / Write

text displayed on the tooltip

Default value: ""

## Signal Details

### The `"long-press"` signal

    gboolean            user_function                      (MxWidget         *widget,
                                                            gfloat            arg1,
                                                            gfloat            arg2,
                                                            MxLongPressAction arg3,
                                                            gpointer          user_data)      : Run Last

Emitted when the user holds a mouse button down for a longer period.

`widget` : | the object that received the signal
`user_data` : | user data set when the signal handler was connected.