/* * This file is autogenerated with bcop: * The Compiz option code generator * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #include #include #include #include #define _TD_OPTIONS_INTERNAL #include "3d_options.h" static int displayPrivateIndex; static CompMetadata tdOptionsMetadata; static CompPluginVTable *tdPluginVTable = NULL; CompPluginVTable tdOptionsVTable; #define GET_TD_OPTIONS_DISPLAY(d) \ ((TdOptionsDisplay *) (d)->privates[displayPrivateIndex].ptr) #define TD_OPTIONS_DISPLAY(d) \ TdOptionsDisplay *od = GET_TD_OPTIONS_DISPLAY (d) #define GET_TD_OPTIONS_SCREEN(s, od) \ ((TdOptionsScreen *) (s)->privates[(od)->screenPrivateIndex].ptr) #define TD_OPTIONS_SCREEN(s) \ TdOptionsScreen *os = GET_TD_OPTIONS_SCREEN (s, GET_TD_OPTIONS_DISPLAY (s->display)) typedef struct _TdOptionsDisplay { int screenPrivateIndex; } TdOptionsDisplay; typedef struct _TdOptionsScreen { CompOption opt[TdScreenOptionNum]; tdScreenOptionChangeNotifyProc notify[TdScreenOptionNum]; } TdOptionsScreen; CompMatch * tdGetWindowMatch (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionWindowMatch].value.match; } CompOption * tdGetWindowMatchOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionWindowMatch]; } void tdSetWindowMatchNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionWindowMatch] = notify; } float tdGetSpace (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionSpace].value.f; } CompOption * tdGetSpaceOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionSpace]; } void tdSetSpaceNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionSpace] = notify; } float tdGetSpeed (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionSpeed].value.f; } CompOption * tdGetSpeedOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionSpeed]; } void tdSetSpeedNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionSpeed] = notify; } float tdGetWidth (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionWidth].value.f; } CompOption * tdGetWidthOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionWidth]; } void tdSetWidthNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionWidth] = notify; } Bool tdGetMipmaps (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionMipmaps].value.b; } CompOption * tdGetMipmapsOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionMipmaps]; } void tdSetMipmapsNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionMipmaps] = notify; } Bool tdGetDisableCulling (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionDisableCulling].value.b; } CompOption * tdGetDisableCullingOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionDisableCulling]; } void tdSetDisableCullingNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionDisableCulling] = notify; } Bool tdGetDisableCaps (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionDisableCaps].value.b; } CompOption * tdGetDisableCapsOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionDisableCaps]; } void tdSetDisableCapsNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionDisableCaps] = notify; } Bool tdGetManualOnly (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionManualOnly].value.b; } CompOption * tdGetManualOnlyOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionManualOnly]; } void tdSetManualOnlyNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionManualOnly] = notify; } int tdGetBevel (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionBevel].value.i; } CompOption * tdGetBevelOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionBevel]; } void tdSetBevelNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionBevel] = notify; } Bool tdGetBevelTopleft (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionBevelTopleft].value.b; } CompOption * tdGetBevelTopleftOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionBevelTopleft]; } void tdSetBevelTopleftNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionBevelTopleft] = notify; } Bool tdGetBevelTopright (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionBevelTopright].value.b; } CompOption * tdGetBevelToprightOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionBevelTopright]; } void tdSetBevelToprightNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionBevelTopright] = notify; } Bool tdGetBevelBottomleft (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionBevelBottomleft].value.b; } CompOption * tdGetBevelBottomleftOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionBevelBottomleft]; } void tdSetBevelBottomleftNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionBevelBottomleft] = notify; } Bool tdGetBevelBottomright (CompScreen *s) { TD_OPTIONS_SCREEN(s); return os->opt[TdScreenOptionBevelBottomright].value.b; } CompOption * tdGetBevelBottomrightOption (CompScreen *s) { TD_OPTIONS_SCREEN(s); return &os->opt[TdScreenOptionBevelBottomright]; } void tdSetBevelBottomrightNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify) { TD_OPTIONS_SCREEN(s); os->notify[TdScreenOptionBevelBottomright] = notify; } CompOption * tdGetScreenOption (CompScreen *s, TdScreenOptions num) { TD_OPTIONS_SCREEN(s); return &os->opt[num]; } static const CompMetadataOptionInfo tdOptionsScreenOptionInfo[] = { { "window_match", "match", 0, 0, 0 }, { "space", "float", "0.01.0", 0, 0 }, { "speed", "float", "0.01.0", 0, 0 }, { "width", "float", "0.01.0", 0, 0 }, { "mipmaps", "bool", 0, 0, 0 }, { "disable_culling", "bool", 0, 0, 0 }, { "disable_caps", "bool", 0, 0, 0 }, { "manual_only", "bool", 0, 0, 0 }, { "bevel", "int", "020", 0, 0 }, { "bevel_topleft", "bool", 0, 0, 0 }, { "bevel_topright", "bool", 0, 0, 0 }, { "bevel_bottomleft", "bool", 0, 0, 0 }, { "bevel_bottomright", "bool", 0, 0, 0 }, }; static Bool tdOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, char *name, CompOptionValue *value) { TD_OPTIONS_SCREEN(s); CompOption *o; int index; o = compFindOption (os->opt, TdScreenOptionNum, name, &index); if (!o) return FALSE; switch (index) { case TdScreenOptionWindowMatch: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionWindowMatch]) (*os->notify[TdScreenOptionWindowMatch]) (s, o, TdScreenOptionWindowMatch); return TRUE; } break; case TdScreenOptionSpace: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionSpace]) (*os->notify[TdScreenOptionSpace]) (s, o, TdScreenOptionSpace); return TRUE; } break; case TdScreenOptionSpeed: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionSpeed]) (*os->notify[TdScreenOptionSpeed]) (s, o, TdScreenOptionSpeed); return TRUE; } break; case TdScreenOptionWidth: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionWidth]) (*os->notify[TdScreenOptionWidth]) (s, o, TdScreenOptionWidth); return TRUE; } break; case TdScreenOptionMipmaps: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionMipmaps]) (*os->notify[TdScreenOptionMipmaps]) (s, o, TdScreenOptionMipmaps); return TRUE; } break; case TdScreenOptionDisableCulling: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionDisableCulling]) (*os->notify[TdScreenOptionDisableCulling]) (s, o, TdScreenOptionDisableCulling); return TRUE; } break; case TdScreenOptionDisableCaps: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionDisableCaps]) (*os->notify[TdScreenOptionDisableCaps]) (s, o, TdScreenOptionDisableCaps); return TRUE; } break; case TdScreenOptionManualOnly: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionManualOnly]) (*os->notify[TdScreenOptionManualOnly]) (s, o, TdScreenOptionManualOnly); return TRUE; } break; case TdScreenOptionBevel: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionBevel]) (*os->notify[TdScreenOptionBevel]) (s, o, TdScreenOptionBevel); return TRUE; } break; case TdScreenOptionBevelTopleft: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionBevelTopleft]) (*os->notify[TdScreenOptionBevelTopleft]) (s, o, TdScreenOptionBevelTopleft); return TRUE; } break; case TdScreenOptionBevelTopright: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionBevelTopright]) (*os->notify[TdScreenOptionBevelTopright]) (s, o, TdScreenOptionBevelTopright); return TRUE; } break; case TdScreenOptionBevelBottomleft: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionBevelBottomleft]) (*os->notify[TdScreenOptionBevelBottomleft]) (s, o, TdScreenOptionBevelBottomleft); return TRUE; } break; case TdScreenOptionBevelBottomright: if (compSetScreenOption (s, o, value)) { if (os->notify[TdScreenOptionBevelBottomright]) (*os->notify[TdScreenOptionBevelBottomright]) (s, o, TdScreenOptionBevelBottomright); return TRUE; } break; default: break; } return FALSE; } static CompOption * tdOptionsGetScreenOptions (CompPlugin *plugin, CompScreen *s, int *count) { TD_OPTIONS_SCREEN(s); *count = TdScreenOptionNum; return os->opt; } static Bool tdOptionsInitScreen (CompPlugin *p, CompScreen *s) { TdOptionsScreen *os; TD_OPTIONS_DISPLAY (s->display); os = calloc (1, sizeof(TdOptionsScreen)); if (!os) return FALSE; s->privates[od->screenPrivateIndex].ptr = os; if (!compInitScreenOptionsFromMetadata (s, &tdOptionsMetadata, tdOptionsScreenOptionInfo, os->opt, TdScreenOptionNum)) { free (os); return FALSE; } if (tdPluginVTable && tdPluginVTable->initScreen) return tdPluginVTable->initScreen (p, s); return TRUE; } static void tdOptionsFiniScreen (CompPlugin *p, CompScreen *s) { if (tdPluginVTable && tdPluginVTable->finiScreen) return tdPluginVTable->finiScreen (p, s); TD_OPTIONS_SCREEN (s); compFiniScreenOptions (s, os->opt, TdScreenOptionNum); free (os); } static Bool tdOptionsInitDisplay (CompPlugin *p, CompDisplay *d) { TdOptionsDisplay *od; od = calloc (1, sizeof(TdOptionsDisplay)); if (!od) return FALSE; od->screenPrivateIndex = allocateScreenPrivateIndex(d); if (od->screenPrivateIndex < 0) { free(od); return FALSE; } d->privates[displayPrivateIndex].ptr = od; if (tdPluginVTable && tdPluginVTable->initDisplay) return tdPluginVTable->initDisplay (p, d); return TRUE; } static void tdOptionsFiniDisplay (CompPlugin *p, CompDisplay *d) { if (tdPluginVTable && tdPluginVTable->finiDisplay) return tdPluginVTable->finiDisplay (p, d); TD_OPTIONS_DISPLAY (d); freeScreenPrivateIndex(d, od->screenPrivateIndex); free (od); } static Bool tdOptionsInit (CompPlugin *p) { displayPrivateIndex = allocateDisplayPrivateIndex(); if (displayPrivateIndex < 0) return FALSE; if (!compInitPluginMetadataFromInfo (&tdOptionsMetadata, "3d",0, 0, tdOptionsScreenOptionInfo, TdScreenOptionNum)) return FALSE; compAddMetadataFromFile (&tdOptionsMetadata, "3d"); if (tdPluginVTable && tdPluginVTable->init) return tdPluginVTable->init (p); return TRUE; } static void tdOptionsFini (CompPlugin *p) { if (tdPluginVTable && tdPluginVTable->fini) return tdPluginVTable->fini (p); if (displayPrivateIndex >= 0) freeDisplayPrivateIndex(displayPrivateIndex); compFiniMetadata (&tdOptionsMetadata); } static CompMetadata * tdOptionsGetMetadata (CompPlugin *plugin) { return &tdOptionsMetadata; } CompPluginVTable *getCompPluginInfo (void) { if (!tdPluginVTable) { tdPluginVTable = tdOptionsGetCompPluginInfo (); memcpy(&tdOptionsVTable, tdPluginVTable, sizeof(CompPluginVTable)); tdOptionsVTable.getMetadata = tdOptionsGetMetadata; tdOptionsVTable.init = tdOptionsInit; tdOptionsVTable.fini = tdOptionsFini; tdOptionsVTable.initDisplay = tdOptionsInitDisplay; tdOptionsVTable.finiDisplay = tdOptionsFiniDisplay; tdOptionsVTable.initScreen = tdOptionsInitScreen; tdOptionsVTable.finiScreen = tdOptionsFiniScreen; tdOptionsVTable.getScreenOptions = tdOptionsGetScreenOptions; tdOptionsVTable.setScreenOption = tdOptionsSetScreenOption; } return &tdOptionsVTable; }