## CCMScreenPlugin CCMScreenPlugin |

## Synopsis

    #define             CCM_SCREEN_PLUGIN_GET_INTERFACE     (obj)
    #define             CCM_SCREEN_PLUGIN_PARENT            (obj)
    #define             CCM_SCREEN_PLUGIN_ROOT              (obj)
    #define             CCM_SCREEN_PLUGIN_LOCK_ROOT_METHOD  (plugin, func, callback, data)
    #define             CCM_SCREEN_PLUGIN_UNLOCK_ROOT_METHOD(plugin, func)
                        CCMScreenPlugin;
    void                ccm_screen_plugin_load_options      (CCMScreenPlugin *self,
                                                             CCMScreen *screen);
    gboolean            ccm_screen_plugin_paint             (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             cairo_t *ctx);
    gboolean            ccm_screen_plugin_add_window        (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             CCMWindow *window);
    void                ccm_screen_plugin_remove_window     (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             CCMWindow *window);
    void                ccm_screen_plugin_damage            (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             CCMRegion *area,
                                                             CCMWindow *window);

## Object Hierarchy

      GInterface
       +----CCMScreenPlugin

## Known Implementations

CCMScreenPlugin is implemented by CCMScreen.

## Description

## Details

### CCM_SCREEN_PLUGIN_GET_INTERFACE()

    #define CCM_SCREEN_PLUGIN_GET_INTERFACE(obj)   	(G_TYPE_INSTANCE_GET_INTERFACE ((obj), CCM_TYPE_SCREEN_PLUGIN, CCMScreenPluginClass))

`obj` : |

### CCM_SCREEN_PLUGIN_PARENT()

    #define CCM_SCREEN_PLUGIN_PARENT(obj)	   		((CCMScreenPlugin*)ccm_plugin_get_parent((CCMPlugin*)obj))

`obj` : |

### CCM_SCREEN_PLUGIN_ROOT()

    #define CCM_SCREEN_PLUGIN_ROOT(obj)	   	    	((CCMScreenPlugin*)_ccm_screen_plugin_get_root((CCMScreenPlugin*)obj))

`obj` : |

### CCM_SCREEN_PLUGIN_LOCK_ROOT_METHOD()

    #define             CCM_SCREEN_PLUGIN_LOCK_ROOT_METHOD(plugin, func, callback, data)

`plugin` : |
`func` : |
`callback` : |
`data` : |

### CCM_SCREEN_PLUGIN_UNLOCK_ROOT_METHOD()

    #define             CCM_SCREEN_PLUGIN_UNLOCK_ROOT_METHOD(plugin, func)

`plugin` : |
`func` : |

### CCMScreenPlugin

    typedef struct _CCMScreenPlugin CCMScreenPlugin;

### ccm_screen_plugin_load_options ()

    void                ccm_screen_plugin_load_options      (CCMScreenPlugin *self,
                                                             CCMScreen *screen);

`self` : |
`screen` : |

### ccm_screen_plugin_paint ()

    gboolean            ccm_screen_plugin_paint             (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             cairo_t *ctx);

`self` : |
`screen` : |
`ctx` : |
Returns : |

### ccm_screen_plugin_add_window ()

    gboolean            ccm_screen_plugin_add_window        (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             CCMWindow *window);

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

### ccm_screen_plugin_remove_window ()

    void                ccm_screen_plugin_remove_window     (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             CCMWindow *window);

`self` : |
`screen` : |
`window` : |

### ccm_screen_plugin_damage ()

    void                ccm_screen_plugin_damage            (CCMScreenPlugin *self,
                                                             CCMScreen *screen,
                                                             CCMRegion *area,
                                                             CCMWindow *window);

`self` : |
`screen` : |
`area` : |
`window` : |