rendered paste body/*
* 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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <compiz.h>
#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", "<min>0.0</min><max>1.0</max>", 0, 0 },
{ "speed", "float", "<min>0.0</min><max>1.0</max>", 0, 0 },
{ "width", "float", "<min>0.0</min><max>1.0</max>", 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", "<min>0</min><max>20</max>", 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;
}