## MxWindow MxWindow — an object that represents a platform-specific window |

## Synopsis

    struct              MxWindow;
    struct              MxWindowClass;
    MxWindow *          mx_window_new                       (void);
    MxWindow *          mx_window_new_with_clutter_stage    (ClutterStage *stage);
    MxWindow *          mx_window_get_for_stage             (ClutterStage *stage);
    ClutterActor *      mx_window_get_child                 (MxWindow *window);
    void                mx_window_set_child                 (MxWindow *window,
                                                             ClutterActor *actor);
    MxToolbar *         mx_window_get_toolbar               (MxWindow *window);
    void                mx_window_set_toolbar               (MxWindow *window,
                                                             MxToolbar *toolbar);
    gboolean            mx_window_get_has_toolbar           (MxWindow *window);
    void                mx_window_set_has_toolbar           (MxWindow *window,
                                                             gboolean toolbar);
    gboolean            mx_window_get_small_screen          (MxWindow *window);
    void                mx_window_set_small_screen          (MxWindow *window,
                                                             gboolean small_screen);
    gboolean            mx_window_get_fullscreen            (MxWindow *window);
    void                mx_window_set_fullscreen            (MxWindow *window,
                                                             gboolean fullscreen);
    void                mx_window_set_title                 (MxWindow *window,
                                                             const gchar *title);
    const gchar *       mx_window_get_title                 (MxWindow *window);
    void                mx_window_set_icon_name             (MxWindow *window,
                                                             const gchar *icon_name);
    const gchar *       mx_window_get_icon_name             (MxWindow *window);
    void                mx_window_set_icon_from_cogl_texture
                                                            (MxWindow *window,
                                                             CoglHandle texture);
    ClutterStage *      mx_window_get_clutter_stage         (MxWindow *window);
    void                mx_window_get_window_position       (MxWindow *window,
                                                             gint *x,
                                                             gint *y);
    void                mx_window_set_window_position       (MxWindow *window,
                                                             gint x,
                                                             gint y);
    void                mx_window_get_window_size           (MxWindow *window,
                                                             gint *width,
                                                             gint *height);
    void                mx_window_set_window_size           (MxWindow *window,
                                                             gint width,
                                                             gint height);
    void                mx_window_present                   (MxWindow *window);
    void                mx_window_set_window_rotation       (MxWindow *window,
                                                             MxWindowRotation rotation);
    MxWindowRotation    mx_window_get_window_rotation       (MxWindow *window);
    void                mx_window_show                      (MxWindow *window);
    void                mx_window_hide                      (MxWindow *window);

## Object Hierarchy

      GObject
       +----MxWindow

## Properties

      "child"                    ClutterActor*         : Read / Write
      "clutter-stage"            ClutterStage*         : Read / Write / Construct Only
      "fullscreen"               gboolean              : Read / Write
      "has-toolbar"              gboolean              : Read / Write
      "icon-cogl-texture"        gchar*                : Read / Write
      "icon-name"                gchar*                : Read / Write
      "small-screen"             gboolean              : Read / Write
      "title"                    gchar*                : Read / Write
      "toolbar"                  MxToolbar*            : Read / Write
      "window-rotation"          MxWindowRotation      : Read / Write
      "window-rotation-angle"    gfloat                : Read
      "window-rotation-timeline" ClutterTimeline*      : Read

## Signals

      "destroy"                                        : Run Last

## Description

MxWindow is a platform-specific window, providing functions for moving, resizing, icons and rotation. Every window has an associated ClutterStage in which its children are kept. This ClutterStage can be used in the normal way, but to take advantage of automatic resizing and rotation, the MxWindow functions should be used.

When the MxWindow loses its last reference, its contents are destroyed.

## Details

### struct MxWindow

    struct MxWindow;

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

### struct MxWindowClass

    struct MxWindowClass {
      GObjectClass parent_class;

      /* signals, not vfuncs */
      void (*destroy)             (MxWindow *window);

      /* padding for future expansion */
      void (*_padding_0) (void);
      void (*_padding_1) (void);
      void (*_padding_2) (void);
      void (*_padding_3) (void);
      void (*_padding_4) (void);
    };

### mx_window_new ()

    MxWindow *          mx_window_new                       (void);

Creates a new MxWindow.

Returns : | A MxWindow

### mx_window_new_with_clutter_stage ()

    MxWindow *          mx_window_new_with_clutter_stage    (ClutterStage *stage);

Creates a new MxWindow, using `stage` as the backing ClutterStage. This function is meant for use primarily for embedding a MxWindow into a foreign stage when using a Clutter toolkit integration library.

`stage` : | A ClutterStage
Returns : | A MxWindow

### mx_window_get_for_stage ()

    MxWindow *          mx_window_get_for_stage             (ClutterStage *stage);

Gets the MxWindow parent of the ClutterStage, if it exists.

`stage` : | A ClutterStage
Returns : | A MxWindow, or `NULL`. [transfer none]

### mx_window_get_child ()

    ClutterActor *      mx_window_get_child                 (MxWindow *window);

Get the primary child of the window. See `mx_window_set_child()`.

`window` : | A MxWindow
Returns : | A ClutterActor, or `NULL`. [transfer none]

### mx_window_set_child ()

    void                mx_window_set_child                 (MxWindow *window,
                                                             ClutterActor *actor);

Adds `actor` to the window and sets it as the primary child. When the stage managed in the window changes size, the child will be resized to match it.

`window` : | A MxWindow
`actor` : | A ClutterActor

### mx_window_get_toolbar ()

    MxToolbar *         mx_window_get_toolbar               (MxWindow *window);

Retrieves the toolbar associated with the window.

`window` : | A MxWindow
Returns : | A MxToolbar. [transfer none]

### mx_window_set_toolbar ()

    void                mx_window_set_toolbar               (MxWindow *window,
                                                             MxToolbar *toolbar);

Sets the toolbar associated with the window.

`window` : | A MxWindow. [allow-none]

Since 1.2

### mx_window_get_has_toolbar ()

    gboolean            mx_window_get_has_toolbar           (MxWindow *window);

Determines whether the window has a toolbar or not. See `mx_window_set_has_toolbar()`.

`window` : | A MxWindow
Returns : | `TRUE` if the window has a toolbar, otherwise `FALSE`

### mx_window_set_has_toolbar ()

    void                mx_window_set_has_toolbar           (MxWindow *window,
                                                             gboolean toolbar);

Sets whether the window has a toolbar or not. If the window has a toolbar, client-side window decorations will be enabled.

`window` : | A MxWindow
`toolbar` : | `TRUE` if the toolbar should be displayed

### mx_window_get_small_screen ()

    gboolean            mx_window_get_small_screen          (MxWindow *window);

Determines if the window is in small-screen mode. See `mx_window_set_small_screen()`.

`window` : | A MxWindow
Returns : | `TRUE` if the window is in small-screen mode, otherwise `FALSE`

### mx_window_set_small_screen ()

    void                mx_window_set_small_screen          (MxWindow *window,
                                                             gboolean small_screen);

Enables or disables small-screen mode. This mode is meant primarily for platforms with limited screen-space, such as netbooks. When enabled, the window will take up all available room and will disable moving and resizing.

`window` : | A MxWindow
`small_screen` : | `TRUE` if small-screen mode should be enabled

### mx_window_get_fullscreen ()

    gboolean            mx_window_get_fullscreen            (MxWindow *window);

Determines if the window has been set to be in fullscreen mode.

`window` : | A MxWindow
Returns : | `TRUE` if the window has been set to be in fullscreen mode, otherwise `FALSE`

Since 1.2

### mx_window_set_fullscreen ()

    void                mx_window_set_fullscreen            (MxWindow *window,
                                                             gboolean fullscreen);

Set the window to be in fullscreen mode or windowed mode.

### Note

Setting fullscreen mode doesn't necessarily mean the window is actually fullscreen. Setting this property is only a request to the underlying window system.

`window` : | A MxWindow
`fullscreen` : | `TRUE` to request fullscreen mode, `FALSE` to disable

Since 1.2

### mx_window_set_title ()

    void                mx_window_set_title                 (MxWindow *window,
                                                             const gchar *title);

Sets the title used for the window, the results of which are window-system specific.

`window` : | A MxWindow
`title` : | A string to use for the window title name

Since 1.2

### mx_window_get_title ()

    const gchar *       mx_window_get_title                 (MxWindow *window);

Retrieves the title used for the window.

`window` : | A MxWindow
Returns : | The title used for the window

Since 1.2

### mx_window_set_icon_name ()

    void                mx_window_set_icon_name             (MxWindow *window,
                                                             const gchar *icon_name);

Set an icon-name to use for the window icon. The icon will be looked up from the default theme.

`window` : | A MxWindow
`icon_name` : | An icon name, or `NULL`. [allow-none]

### mx_window_get_icon_name ()

    const gchar *       mx_window_get_icon_name             (MxWindow *window);

Gets the currently set window icon name. This will be `NULL` if there is none set, or the icon was set with `mx_window_set_icon_from_cogl_texture()`.

`window` : | A MxWindow
Returns : | The window icon name, or `NULL`

### mx_window_set_icon_from_cogl_texture ()

    void                mx_window_set_icon_from_cogl_texture
                                                            (MxWindow *window,
                                                             CoglHandle texture);

Sets the window icon from a texture. This will take precedence over any currently set icon-name.

`window` : | A MxWindow
`texture` : | A CoglHandle for a texture

### mx_window_get_clutter_stage ()

    ClutterStage *      mx_window_get_clutter_stage         (MxWindow *window);

Gets the ClutterStage managed by the window.

`window` : | A MxWindow
Returns : | A ClutterStage. [transfer none]

### mx_window_get_window_position ()

    void                mx_window_get_window_position       (MxWindow *window,
                                                             gint *x,
                                                             gint *y);

Retrieves the absolute position of the window on the screen.

`window` : | an MxWindow
`x` : | A pointer for the x-coordinate. [out]
`y` : | A pointer for the y-coordinate. [out]

### mx_window_set_window_position ()

    void                mx_window_set_window_position       (MxWindow *window,
                                                             gint x,
                                                             gint y);

Sets the absolute position of the window on the screen.

`window` : | A MxWindow
`x` : | An x-coordinate
`y` : | A y-coordinate

### mx_window_get_window_size ()

    void                mx_window_get_window_size           (MxWindow *window,
                                                             gint *width,
                                                             gint *height);

Retrieves the size of the display area of the window, taking into account any window border. This includes the area occupied by the window's toolbar, if it's enabled.

`window` : | A MxWindow
`width` : | A gint pointer for the window's width. [out]
`height` : | A gint pointer for the window's height. [out]

Since 1.2

### mx_window_set_window_size ()

    void                mx_window_set_window_size           (MxWindow *window,
                                                             gint width,
                                                             gint height);

Sets the size of the window, taking into account any window border. This corresponds to the window's available area for its child, minus the area occupied by the window's toolbar, if it's enabled.

### Note

Setting the window size may involve a request to the underlying windowing system, and may not immediately be reflected.

`window` : | A MxWindow
`width` : | A width, in pixels
`height` : | A height, in pixels

Since 1.2

### mx_window_present ()

    void                mx_window_present                   (MxWindow *window);

Present the window. The actual behaviour is specific to the window system.

`window` : | A MxWindow

Since 1.2

### mx_window_set_window_rotation ()

    void                mx_window_set_window_rotation       (MxWindow *window,
                                                             MxWindowRotation rotation);

Set the rotation of the window.

`window` : | A MxWindow
`rotation` : | The MxWindowRotation

Since 1.2

### mx_window_get_window_rotation ()

    MxWindowRotation    mx_window_get_window_rotation       (MxWindow *window);

Retrieve the rotation of the window.

`window` : | A MxWindow
Returns : | An MxWindowRotation

Since 1.2

### mx_window_show ()

    void                mx_window_show                      (MxWindow *window);

Show the window

`window` : | A MxWindow

Since 1.2

### mx_window_hide ()

    void                mx_window_hide                      (MxWindow *window);

Hide the window

`window` : | A MxWindow

Since 1.2

## Property Details

### The `"child"` property

      "child"                    ClutterActor*         : Read / Write

ClutterActor used as the window child.

### The `"clutter-stage"` property

      "clutter-stage"            ClutterStage*         : Read / Write / Construct Only

ClutterStage to use as the window.

### The `"fullscreen"` property

      "fullscreen"               gboolean              : Read / Write

Window should be set to full-screen mode.

Default value: FALSE

### The `"has-toolbar"` property

      "has-toolbar"              gboolean              : Read / Write

Window should have a toolbar.

Default value: TRUE

### The `"icon-cogl-texture"` property

      "icon-cogl-texture"        gchar*                : Read / Write

CoglTexture to use for the window icon.

Default value: NULL

### The `"icon-name"` property

      "icon-name"                gchar*                : Read / Write

Icon name to use for the window icon.

Default value: NULL

### The `"small-screen"` property

      "small-screen"             gboolean              : Read / Write

Window should occupy the entire screen contents, without explicitly setting itself fullscreen.

Default value: FALSE

### The `"title"` property

      "title"                    gchar*                : Read / Write

Title to use for the window.

Default value: NULL

### The `"toolbar"` property

      "toolbar"                  MxToolbar*            : Read / Write

The MxToolbar associated with the window.

### The `"window-rotation"` property

      "window-rotation"          MxWindowRotation      : Read / Write

The window's rotation.

Default value: MX_WINDOW_ROTATION_0

### The `"window-rotation-angle"` property

      "window-rotation-angle"    gfloat                : Read

The current angle of rotation about the z-axis for the window.

Allowed values: [0,360]

Default value: 0

### The `"window-rotation-timeline"` property

      "window-rotation-timeline" ClutterTimeline*      : Read

The timeline used for the window rotation transition animation.

## Signal Details

### The `"destroy"` signal

    void                user_function                      (MxWindow *window,
                                                            gpointer  user_data)      : Run Last

Emitted when the stage managed by the window is destroyed.

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