## CCMScreen CCMScreen |

## Synopsis

    #define             CCM_SCREEN_XSCREEN                  (obj)
    #define             CCM_SCREEN_NUMBER                   (obj)
                        CCMScreen;
    CCMScreen *         ccm_screen_new                      (CCMDisplay *display,
                                                             guint number);
    CCMDisplay *        ccm_screen_get_display              (CCMScreen *self);
    Screen *            ccm_screen_get_xscreen              (CCMScreen *self);
    guint               ccm_screen_get_number               (CCMScreen *self);
    CCMWindow *         ccm_screen_get_root_window          (CCMScreen *self);
    CCMWindow *         ccm_screen_get_overlay_window       (CCMScreen *self);
    gboolean            ccm_screen_add_window               (CCMScreen *self,
                                                             CCMWindow *window);
    void                ccm_screen_remove_window            (CCMScreen *self,
                                                             CCMWindow *window);
    void                ccm_screen_damage                   (CCMScreen *self);
    void                ccm_screen_damage_region            (CCMScreen *self,
                                                             const CCMRegion *region);
    void                ccm_screen_undamage_region          (CCMScreen *self,
                                                             const CCMRegion *area);
    GList *             ccm_screen_get_windows              (CCMScreen *self);
    CCMRegion *         ccm_screen_get_damaged              (CCMScreen *self);
    void                ccm_screen_add_damaged_region       (CCMScreen *self,
                                                             CCMRegion *region);
    void                ccm_screen_remove_damaged_region    (CCMScreen *self,
                                                             CCMRegion *region);
    CCMWindow *         ccm_screen_find_window              (CCMScreen *self,
                                                             Window xwindow);
    CCMWindow *         ccm_screen_find_window_or_child     (CCMScreen *self,
                                                             Window xwindow);
    gboolean            ccm_screen_query_pointer            (CCMScreen *self,
                                                             CCMWindow **below,
                                                             gint *x,
                                                             gint *y);

## Object Hierarchy

      GObject
       +----CCMScreen

## Implemented Interfaces

CCMScreen implements CCMScreenPlugin.

## Properties

      "backend"                  gchar*                : Read
      "buffered-pixmap"          gboolean              : Read / Write
      "display"                  gpointer              : Read / Write / Construct Only
      "filtered-damage"          gboolean              : Read / Write
      "indirect-rendering"       gboolean              : Read
      "native-pixmap-bind"       gboolean              : Read
      "number"                   guint                 : Read / Write / Construct Only
      "refresh-rate"             guint                 : Read
      "window-plugins"           gpointer              : Read

## Signals

      "activate-window-notify"                         : Run Last
      "composite-message"                              : Run Last
      "desktop-changed"                                : Run Last
      "enter-window-notify"                            : Run Last
      "leave-window-notify"                            : Run Last
      "plugins-changed"                                : Run Last
      "refresh-rate-changed"                           : Run Last
      "window-destroyed"                               : Run Last

## Description

## Details

### CCM_SCREEN_XSCREEN()

    #define CCM_SCREEN_XSCREEN(obj)     (ccm_screen_get_xscreen(CCM_SCREEN(obj)))

`obj` : |

### CCM_SCREEN_NUMBER()

    #define CCM_SCREEN_NUMBER(obj)      (ccm_screen_get_number(CCM_SCREEN(obj)))

`obj` : |

### CCMScreen

    typedef struct _CCMScreen CCMScreen;

### ccm_screen_new ()

    CCMScreen *         ccm_screen_new                      (CCMDisplay *display,
                                                             guint number);

`display` : |
`number` : |
Returns : |

### ccm_screen_get_display ()

    CCMDisplay *        ccm_screen_get_display              (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_get_xscreen ()

    Screen *            ccm_screen_get_xscreen              (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_get_number ()

    guint               ccm_screen_get_number               (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_get_root_window ()

    CCMWindow *         ccm_screen_get_root_window          (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_get_overlay_window ()

    CCMWindow *         ccm_screen_get_overlay_window       (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_add_window ()

    gboolean            ccm_screen_add_window               (CCMScreen *self,
                                                             CCMWindow *window);

`self` : |
`window` : |
Returns : |

### ccm_screen_remove_window ()

    void                ccm_screen_remove_window            (CCMScreen *self,
                                                             CCMWindow *window);

`self` : |
`window` : |

### ccm_screen_damage ()

    void                ccm_screen_damage                   (CCMScreen *self);

`self` : |

### ccm_screen_damage_region ()

    void                ccm_screen_damage_region            (CCMScreen *self,
                                                             const CCMRegion *region);

`self` : |
`region` : |

### ccm_screen_undamage_region ()

    void                ccm_screen_undamage_region          (CCMScreen *self,
                                                             const CCMRegion *area);

`self` : |
`area` : |

### ccm_screen_get_windows ()

    GList *             ccm_screen_get_windows              (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_get_damaged ()

    CCMRegion *         ccm_screen_get_damaged              (CCMScreen *self);

`self` : |
Returns : |

### ccm_screen_add_damaged_region ()

    void                ccm_screen_add_damaged_region       (CCMScreen *self,
                                                             CCMRegion *region);

`self` : |
`region` : |

### ccm_screen_remove_damaged_region ()

    void                ccm_screen_remove_damaged_region    (CCMScreen *self,
                                                             CCMRegion *region);

`self` : |
`region` : |

### ccm_screen_find_window ()

    CCMWindow *         ccm_screen_find_window              (CCMScreen *self,
                                                             Window xwindow);

`self` : |
`xwindow` : |
Returns : |

### ccm_screen_find_window_or_child ()

    CCMWindow *         ccm_screen_find_window_or_child     (CCMScreen *self,
                                                             Window xwindow);

`self` : |
`xwindow` : |
Returns : |

### ccm_screen_query_pointer ()

    gboolean            ccm_screen_query_pointer            (CCMScreen *self,
                                                             CCMWindow **below,
                                                             gint *x,
                                                             gint *y);

`self` : |
`below` : |
`x` : |
`y` : |
Returns : |

## Property Details

### The `"backend"` property

      "backend"                  gchar*                : Read

Screen backend.

Default value: "xrender"

### The `"buffered-pixmap"` property

      "buffered-pixmap"          gboolean              : Read / Write

Buffered pixmap.

Default value: TRUE

### The `"display"` property

      "display"                  gpointer              : Read / Write / Construct Only

Display of screen.

### The `"filtered-damage"` property

      "filtered-damage"          gboolean              : Read / Write

Use filtered damage.

Default value: TRUE

### The `"indirect-rendering"` property

      "indirect-rendering"       gboolean              : Read

Indirect rendering.

Default value: TRUE

### The `"native-pixmap-bind"` property

      "native-pixmap-bind"       gboolean              : Read

Native pixmap bind.

Default value: TRUE

### The `"number"` property

      "number"                   guint                 : Read / Write / Construct Only

Screen number.

Default value: 0

### The `"refresh-rate"` property

      "refresh-rate"             guint                 : Read

Screen paint refresh rate.

Default value: 0

### The `"window-plugins"` property

      "window-plugins"           gpointer              : Read

Window plugins list.

## Signal Details

### The `"activate-window-notify"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gpointer   arg1,
                                                            gpointer   user_data)      : Run Last

`ccmscreen` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"composite-message"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            CCMWindow *arg1,
                                                            CCMWindow *arg2,
                                                            glong      arg3,
                                                            glong      arg4,
                                                            glong      arg5,
                                                            gpointer   user_data)      : Run Last

`ccmscreen` : | the object which received the signal.
`arg1` : |
`arg2` : |
`arg3` : |
`arg4` : |
`Param6` : |
`user_data` : | user data set when the signal handler was connected.

### The `"desktop-changed"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gint       arg1,
                                                            gpointer   user_data)      : Run Last

`ccmscreen` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"enter-window-notify"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gpointer   arg1,
                                                            gpointer   user_data)      : Run Last

`ccmscreen` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"leave-window-notify"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gpointer   arg1,
                                                            gpointer   user_data)      : Run Last

`ccmscreen` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"plugins-changed"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gpointer   user_data)      : Run Last

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

### The `"refresh-rate-changed"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gpointer   user_data)      : Run Last

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

### The `"window-destroyed"` signal

    void                user_function                      (CCMScreen *ccmscreen,
                                                            gpointer   user_data)      : Run Last

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