/*
* 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 _OPACIFY_OPTIONS_INTERNAL
#include "opacify_options.h"
static int displayPrivateIndex;
static CompMetadata opacifyOptionsMetadata;
static CompPluginVTable *opacifyPluginVTable = NULL;
CompPluginVTable opacifyOptionsVTable;
#define GET_OPACIFY_OPTIONS_DISPLAY(d) \
((OpacifyOptionsDisplay *) (d)->privates[displayPrivateIndex].ptr)
#define OPACIFY_OPTIONS_DISPLAY(d) \
OpacifyOptionsDisplay *od = GET_OPACIFY_OPTIONS_DISPLAY (d)
#define GET_OPACIFY_OPTIONS_SCREEN(s, od) \
((OpacifyOptionsScreen *) (s)->privates[(od)->screenPrivateIndex].ptr)
#define OPACIFY_OPTIONS_SCREEN(s) \
OpacifyOptionsScreen *os = GET_OPACIFY_OPTIONS_SCREEN (s, GET_OPACIFY_OPTIONS_DISPLAY (s->display))
typedef struct _OpacifyOptionsDisplay
{
int screenPrivateIndex;
CompOption opt[OpacifyDisplayOptionNum];
opacifyDisplayOptionChangeNotifyProc notify[OpacifyDisplayOptionNum];
} OpacifyOptionsDisplay;
typedef struct _OpacifyOptionsScreen
{
CompOption opt[OpacifyScreenOptionNum];
opacifyScreenOptionChangeNotifyProc notify[OpacifyScreenOptionNum];
} OpacifyOptionsScreen;
CompAction * opacifyGetToggle (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return &od->opt[OpacifyDisplayOptionToggle].value.action;
}
void opacifySetToggleInitiate (CompDisplay *d, CompActionCallBackProc init)
{
OPACIFY_OPTIONS_DISPLAY(d);
od->opt[OpacifyDisplayOptionToggle].value.action.initiate = init;
}
void opacifySetToggleTerminate (CompDisplay *d, CompActionCallBackProc term)
{
OPACIFY_OPTIONS_DISPLAY(d);
od->opt[OpacifyDisplayOptionToggle].value.action.terminate = term;
}
CompOption * opacifyGetToggleOption (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return &od->opt[OpacifyDisplayOptionToggle];
}
void opacifySetToggleNotify (CompDisplay *d, opacifyDisplayOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_DISPLAY(d);
od->notify[OpacifyDisplayOptionToggle] = notify;
}
Bool opacifyGetToggleReset (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return od->opt[OpacifyDisplayOptionToggleReset].value.b;
}
CompOption * opacifyGetToggleResetOption (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return &od->opt[OpacifyDisplayOptionToggleReset];
}
void opacifySetToggleResetNotify (CompDisplay *d, opacifyDisplayOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_DISPLAY(d);
od->notify[OpacifyDisplayOptionToggleReset] = notify;
}
int opacifyGetTimeout (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return od->opt[OpacifyDisplayOptionTimeout].value.i;
}
CompOption * opacifyGetTimeoutOption (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return &od->opt[OpacifyDisplayOptionTimeout];
}
void opacifySetTimeoutNotify (CompDisplay *d, opacifyDisplayOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_DISPLAY(d);
od->notify[OpacifyDisplayOptionTimeout] = notify;
}
Bool opacifyGetInitToggle (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return od->opt[OpacifyDisplayOptionInitToggle].value.b;
}
CompOption * opacifyGetInitToggleOption (CompDisplay *d)
{
OPACIFY_OPTIONS_DISPLAY(d);
return &od->opt[OpacifyDisplayOptionInitToggle];
}
void opacifySetInitToggleNotify (CompDisplay *d, opacifyDisplayOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_DISPLAY(d);
od->notify[OpacifyDisplayOptionInitToggle] = notify;
}
Bool opacifyGetOnlyIfBlock (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return os->opt[OpacifyScreenOptionOnlyIfBlock].value.b;
}
CompOption * opacifyGetOnlyIfBlockOption (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionOnlyIfBlock];
}
void opacifySetOnlyIfBlockNotify (CompScreen *s, opacifyScreenOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_SCREEN(s);
os->notify[OpacifyScreenOptionOnlyIfBlock] = notify;
}
Bool opacifyGetFocusInstant (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return os->opt[OpacifyScreenOptionFocusInstant].value.b;
}
CompOption * opacifyGetFocusInstantOption (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionFocusInstant];
}
void opacifySetFocusInstantNotify (CompScreen *s, opacifyScreenOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_SCREEN(s);
os->notify[OpacifyScreenOptionFocusInstant] = notify;
}
Bool opacifyGetNoDelayChange (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return os->opt[OpacifyScreenOptionNoDelayChange].value.b;
}
CompOption * opacifyGetNoDelayChangeOption (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionNoDelayChange];
}
void opacifySetNoDelayChangeNotify (CompScreen *s, opacifyScreenOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_SCREEN(s);
os->notify[OpacifyScreenOptionNoDelayChange] = notify;
}
CompMatch * opacifyGetWindowMatch (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionWindowMatch].value.match;
}
CompOption * opacifyGetWindowMatchOption (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionWindowMatch];
}
void opacifySetWindowMatchNotify (CompScreen *s, opacifyScreenOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_SCREEN(s);
os->notify[OpacifyScreenOptionWindowMatch] = notify;
}
int opacifyGetActiveOpacity (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return os->opt[OpacifyScreenOptionActiveOpacity].value.i;
}
CompOption * opacifyGetActiveOpacityOption (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionActiveOpacity];
}
void opacifySetActiveOpacityNotify (CompScreen *s, opacifyScreenOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_SCREEN(s);
os->notify[OpacifyScreenOptionActiveOpacity] = notify;
}
int opacifyGetPassiveOpacity (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return os->opt[OpacifyScreenOptionPassiveOpacity].value.i;
}
CompOption * opacifyGetPassiveOpacityOption (CompScreen *s)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[OpacifyScreenOptionPassiveOpacity];
}
void opacifySetPassiveOpacityNotify (CompScreen *s, opacifyScreenOptionChangeNotifyProc notify)
{
OPACIFY_OPTIONS_SCREEN(s);
os->notify[OpacifyScreenOptionPassiveOpacity] = notify;
}
CompOption * opacifyGetDisplayOption (CompDisplay *d, OpacifyDisplayOptions num)
{
OPACIFY_OPTIONS_DISPLAY(d);
return &od->opt[num];
}
CompOption * opacifyGetScreenOption (CompScreen *s, OpacifyScreenOptions num)
{
OPACIFY_OPTIONS_SCREEN(s);
return &os->opt[num];
}
static const CompMetadataOptionInfo opacifyOptionsDisplayOptionInfo[] = {
{ "toggle", "action", 0, 0, 0 },
{ "toggle_reset", "bool", 0, 0, 0 },
{ "timeout", "int", "<min>0</min><max>10000</max>", 0, 0 },
{ "init_toggle", "bool", 0, 0, 0 },
};
static Bool opacifyOptionsSetDisplayOption (CompPlugin *plugin, CompDisplay *d, char *name, CompOptionValue *value)
{
OPACIFY_OPTIONS_DISPLAY(d);
CompOption *o;
int index;
o = compFindOption (od->opt, OpacifyDisplayOptionNum, name, &index);
if (!o)
return FALSE;
switch (index)
{
case OpacifyDisplayOptionToggle:
if (compSetDisplayOption (d, o, value))
{
if (od->notify[OpacifyDisplayOptionToggle])
(*od->notify[OpacifyDisplayOptionToggle]) (d, o, OpacifyDisplayOptionToggle);
return TRUE;
}
break;
case OpacifyDisplayOptionToggleReset:
if (compSetDisplayOption (d, o, value))
{
if (od->notify[OpacifyDisplayOptionToggleReset])
(*od->notify[OpacifyDisplayOptionToggleReset]) (d, o, OpacifyDisplayOptionToggleReset);
return TRUE;
}
break;
case OpacifyDisplayOptionTimeout:
if (compSetDisplayOption (d, o, value))
{
if (od->notify[OpacifyDisplayOptionTimeout])
(*od->notify[OpacifyDisplayOptionTimeout]) (d, o, OpacifyDisplayOptionTimeout);
return TRUE;
}
break;
case OpacifyDisplayOptionInitToggle:
if (compSetDisplayOption (d, o, value))
{
if (od->notify[OpacifyDisplayOptionInitToggle])
(*od->notify[OpacifyDisplayOptionInitToggle]) (d, o, OpacifyDisplayOptionInitToggle);
return TRUE;
}
break;
default:
break;
}
return FALSE;
}
static CompOption * opacifyOptionsGetDisplayOptions (CompPlugin *plugin, CompDisplay *d, int *count)
{
OPACIFY_OPTIONS_DISPLAY(d);
*count = OpacifyDisplayOptionNum;
return od->opt;
}
static const CompMetadataOptionInfo opacifyOptionsScreenOptionInfo[] = {
{ "only_if_block", "bool", 0, 0, 0 },
{ "focus_instant", "bool", 0, 0, 0 },
{ "no_delay_change", "bool", 0, 0, 0 },
{ "window_match", "match", 0, 0, 0 },
{ "active_opacity", "int", "<min>1</min><max>100</max>", 0, 0 },
{ "passive_opacity", "int", "<min>1</min><max>100</max>", 0, 0 },
};
static Bool opacifyOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, char *name, CompOptionValue *value)
{
OPACIFY_OPTIONS_SCREEN(s);
CompOption *o;
int index;
o = compFindOption (os->opt, OpacifyScreenOptionNum, name, &index);
if (!o)
return FALSE;
switch (index)
{
case OpacifyScreenOptionOnlyIfBlock:
if (compSetScreenOption (s, o, value))
{
if (os->notify[OpacifyScreenOptionOnlyIfBlock])
(*os->notify[OpacifyScreenOptionOnlyIfBlock]) (s, o, OpacifyScreenOptionOnlyIfBlock);
return TRUE;
}
break;
case OpacifyScreenOptionFocusInstant:
if (compSetScreenOption (s, o, value))
{
if (os->notify[OpacifyScreenOptionFocusInstant])
(*os->notify[OpacifyScreenOptionFocusInstant]) (s, o, OpacifyScreenOptionFocusInstant);
return TRUE;
}
break;
case OpacifyScreenOptionNoDelayChange:
if (compSetScreenOption (s, o, value))
{
if (os->notify[OpacifyScreenOptionNoDelayChange])
(*os->notify[OpacifyScreenOptionNoDelayChange]) (s, o, OpacifyScreenOptionNoDelayChange);
return TRUE;
}
break;
case OpacifyScreenOptionWindowMatch:
if (compSetScreenOption (s, o, value))
{
if (os->notify[OpacifyScreenOptionWindowMatch])
(*os->notify[OpacifyScreenOptionWindowMatch]) (s, o, OpacifyScreenOptionWindowMatch);
return TRUE;
}
break;
case OpacifyScreenOptionActiveOpacity:
if (compSetScreenOption (s, o, value))
{
if (os->notify[OpacifyScreenOptionActiveOpacity])
(*os->notify[OpacifyScreenOptionActiveOpacity]) (s, o, OpacifyScreenOptionActiveOpacity);
return TRUE;
}
break;
case OpacifyScreenOptionPassiveOpacity:
if (compSetScreenOption (s, o, value))
{
if (os->notify[OpacifyScreenOptionPassiveOpacity])
(*os->notify[OpacifyScreenOptionPassiveOpacity]) (s, o, OpacifyScreenOptionPassiveOpacity);
return TRUE;
}
break;
default:
break;
}
return FALSE;
}
static CompOption * opacifyOptionsGetScreenOptions (CompPlugin *plugin, CompScreen *s, int *count)
{
OPACIFY_OPTIONS_SCREEN(s);
*count = OpacifyScreenOptionNum;
return os->opt;
}
static Bool opacifyOptionsInitScreen (CompPlugin *p, CompScreen *s)
{
OpacifyOptionsScreen *os;
OPACIFY_OPTIONS_DISPLAY (s->display);
os = calloc (1, sizeof(OpacifyOptionsScreen));
if (!os)
return FALSE;
s->privates[od->screenPrivateIndex].ptr = os;
if (!compInitScreenOptionsFromMetadata (s, &opacifyOptionsMetadata, opacifyOptionsScreenOptionInfo, os->opt, OpacifyScreenOptionNum))
{
free (os);
return FALSE;
}
if (opacifyPluginVTable && opacifyPluginVTable->initScreen)
return opacifyPluginVTable->initScreen (p, s);
return TRUE;
}
static void opacifyOptionsFiniScreen (CompPlugin *p, CompScreen *s)
{
if (opacifyPluginVTable && opacifyPluginVTable->finiScreen)
return opacifyPluginVTable->finiScreen (p, s);
OPACIFY_OPTIONS_SCREEN (s);
compFiniScreenOptions (s, os->opt, OpacifyScreenOptionNum);
free (os);
}
static Bool opacifyOptionsInitDisplay (CompPlugin *p, CompDisplay *d)
{
OpacifyOptionsDisplay *od;
od = calloc (1, sizeof(OpacifyOptionsDisplay));
if (!od)
return FALSE;
od->screenPrivateIndex = allocateScreenPrivateIndex(d);
if (od->screenPrivateIndex < 0)
{
free(od);
return FALSE;
}
d->privates[displayPrivateIndex].ptr = od;
if (!compInitDisplayOptionsFromMetadata (d, &opacifyOptionsMetadata, opacifyOptionsDisplayOptionInfo, od->opt, OpacifyDisplayOptionNum))
{
free (od);
return FALSE;
}
if (opacifyPluginVTable && opacifyPluginVTable->initDisplay)
return opacifyPluginVTable->initDisplay (p, d);
return TRUE;
}
static void opacifyOptionsFiniDisplay (CompPlugin *p, CompDisplay *d)
{
if (opacifyPluginVTable && opacifyPluginVTable->finiDisplay)
return opacifyPluginVTable->finiDisplay (p, d);
OPACIFY_OPTIONS_DISPLAY (d);
freeScreenPrivateIndex(d, od->screenPrivateIndex);
compFiniDisplayOptions (d, od->opt, OpacifyDisplayOptionNum);
free (od);
}
static Bool opacifyOptionsInit (CompPlugin *p)
{
displayPrivateIndex = allocateDisplayPrivateIndex();
if (displayPrivateIndex < 0)
return FALSE;
if (!compInitPluginMetadataFromInfo (&opacifyOptionsMetadata, "opacify",opacifyOptionsDisplayOptionInfo, OpacifyDisplayOptionNum, opacifyOptionsScreenOptionInfo, OpacifyScreenOptionNum))
return FALSE;
compAddMetadataFromFile (&opacifyOptionsMetadata, "opacify");
if (opacifyPluginVTable && opacifyPluginVTable->init)
return opacifyPluginVTable->init (p);
return TRUE;
}
static void opacifyOptionsFini (CompPlugin *p)
{
if (opacifyPluginVTable && opacifyPluginVTable->fini)
return opacifyPluginVTable->fini (p);
if (displayPrivateIndex >= 0)
freeDisplayPrivateIndex(displayPrivateIndex);
compFiniMetadata (&opacifyOptionsMetadata);
}
static CompMetadata *
opacifyOptionsGetMetadata (CompPlugin *plugin)
{
return &opacifyOptionsMetadata;
}
CompPluginVTable *getCompPluginInfo (void)
{
if (!opacifyPluginVTable)
{
opacifyPluginVTable = opacifyOptionsGetCompPluginInfo ();
memcpy(&opacifyOptionsVTable, opacifyPluginVTable, sizeof(CompPluginVTable));
opacifyOptionsVTable.getMetadata = opacifyOptionsGetMetadata;
opacifyOptionsVTable.init = opacifyOptionsInit;
opacifyOptionsVTable.fini = opacifyOptionsFini;
opacifyOptionsVTable.initDisplay = opacifyOptionsInitDisplay;
opacifyOptionsVTable.finiDisplay = opacifyOptionsFiniDisplay;
opacifyOptionsVTable.initScreen = opacifyOptionsInitScreen;
opacifyOptionsVTable.finiScreen = opacifyOptionsFiniScreen;
opacifyOptionsVTable.getDisplayOptions = opacifyOptionsGetDisplayOptions;
opacifyOptionsVTable.setDisplayOption = opacifyOptionsSetDisplayOption;
opacifyOptionsVTable.getScreenOptions = opacifyOptionsGetScreenOptions;
opacifyOptionsVTable.setScreenOption = opacifyOptionsSetScreenOption;
}
return &opacifyOptionsVTable;
}
syntax highlighted by Code2HTML, v. 0.9.1