/* * 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 _PUT_OPTIONS_INTERNAL #include "put_options.h" static int displayPrivateIndex; static CompMetadata putOptionsMetadata; static CompPluginVTable *putPluginVTable = NULL; CompPluginVTable putOptionsVTable; #define GET_PUT_OPTIONS_DISPLAY(d) \ ((PutOptionsDisplay *) (d)->privates[displayPrivateIndex].ptr) #define PUT_OPTIONS_DISPLAY(d) \ PutOptionsDisplay *od = GET_PUT_OPTIONS_DISPLAY (d) #define GET_PUT_OPTIONS_SCREEN(s, od) \ ((PutOptionsScreen *) (s)->privates[(od)->screenPrivateIndex].ptr) #define PUT_OPTIONS_SCREEN(s) \ PutOptionsScreen *os = GET_PUT_OPTIONS_SCREEN (s, GET_PUT_OPTIONS_DISPLAY (s->display)) typedef struct _PutOptionsDisplay { int screenPrivateIndex; CompOption opt[PutDisplayOptionNum]; putDisplayOptionChangeNotifyProc notify[PutDisplayOptionNum]; } PutOptionsDisplay; typedef struct _PutOptionsScreen { CompOption opt[PutScreenOptionNum]; putScreenOptionChangeNotifyProc notify[PutScreenOptionNum]; } PutOptionsScreen; CompAction * putGetPutViewport (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport].value.action; } void putSetPutViewportInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport].value.action.initiate = init; } void putSetPutViewportTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport].value.action.terminate = term; } CompOption * putGetPutViewportOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport]; } void putSetPutViewportNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport] = notify; } CompAction * putGetPutViewport1 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport1].value.action; } void putSetPutViewport1Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport1].value.action.initiate = init; } void putSetPutViewport1Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport1].value.action.terminate = term; } CompOption * putGetPutViewport1Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport1]; } void putSetPutViewport1Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport1] = notify; } CompAction * putGetPutViewport2 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport2].value.action; } void putSetPutViewport2Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport2].value.action.initiate = init; } void putSetPutViewport2Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport2].value.action.terminate = term; } CompOption * putGetPutViewport2Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport2]; } void putSetPutViewport2Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport2] = notify; } CompAction * putGetPutViewport3 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport3].value.action; } void putSetPutViewport3Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport3].value.action.initiate = init; } void putSetPutViewport3Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport3].value.action.terminate = term; } CompOption * putGetPutViewport3Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport3]; } void putSetPutViewport3Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport3] = notify; } CompAction * putGetPutViewport4 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport4].value.action; } void putSetPutViewport4Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport4].value.action.initiate = init; } void putSetPutViewport4Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport4].value.action.terminate = term; } CompOption * putGetPutViewport4Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport4]; } void putSetPutViewport4Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport4] = notify; } CompAction * putGetPutViewport5 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport5].value.action; } void putSetPutViewport5Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport5].value.action.initiate = init; } void putSetPutViewport5Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport5].value.action.terminate = term; } CompOption * putGetPutViewport5Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport5]; } void putSetPutViewport5Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport5] = notify; } CompAction * putGetPutViewport6 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport6].value.action; } void putSetPutViewport6Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport6].value.action.initiate = init; } void putSetPutViewport6Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport6].value.action.terminate = term; } CompOption * putGetPutViewport6Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport6]; } void putSetPutViewport6Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport6] = notify; } CompAction * putGetPutViewport7 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport7].value.action; } void putSetPutViewport7Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport7].value.action.initiate = init; } void putSetPutViewport7Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport7].value.action.terminate = term; } CompOption * putGetPutViewport7Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport7]; } void putSetPutViewport7Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport7] = notify; } CompAction * putGetPutViewport8 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport8].value.action; } void putSetPutViewport8Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport8].value.action.initiate = init; } void putSetPutViewport8Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport8].value.action.terminate = term; } CompOption * putGetPutViewport8Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport8]; } void putSetPutViewport8Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport8] = notify; } CompAction * putGetPutViewport9 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport9].value.action; } void putSetPutViewport9Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport9].value.action.initiate = init; } void putSetPutViewport9Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport9].value.action.terminate = term; } CompOption * putGetPutViewport9Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport9]; } void putSetPutViewport9Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport9] = notify; } CompAction * putGetPutViewport10 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport10].value.action; } void putSetPutViewport10Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport10].value.action.initiate = init; } void putSetPutViewport10Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport10].value.action.terminate = term; } CompOption * putGetPutViewport10Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport10]; } void putSetPutViewport10Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport10] = notify; } CompAction * putGetPutViewport11 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport11].value.action; } void putSetPutViewport11Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport11].value.action.initiate = init; } void putSetPutViewport11Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport11].value.action.terminate = term; } CompOption * putGetPutViewport11Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport11]; } void putSetPutViewport11Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport11] = notify; } CompAction * putGetPutViewport12 (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport12].value.action; } void putSetPutViewport12Initiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport12].value.action.initiate = init; } void putSetPutViewport12Terminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewport12].value.action.terminate = term; } CompOption * putGetPutViewport12Option (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewport12]; } void putSetPutViewport12Notify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewport12] = notify; } CompAction * putGetPutViewportLeft (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportLeft].value.action; } void putSetPutViewportLeftInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportLeft].value.action.initiate = init; } void putSetPutViewportLeftTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportLeft].value.action.terminate = term; } CompOption * putGetPutViewportLeftOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportLeft]; } void putSetPutViewportLeftNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewportLeft] = notify; } CompAction * putGetPutViewportRight (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportRight].value.action; } void putSetPutViewportRightInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportRight].value.action.initiate = init; } void putSetPutViewportRightTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportRight].value.action.terminate = term; } CompOption * putGetPutViewportRightOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportRight]; } void putSetPutViewportRightNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewportRight] = notify; } CompAction * putGetPutViewportUp (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportUp].value.action; } void putSetPutViewportUpInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportUp].value.action.initiate = init; } void putSetPutViewportUpTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportUp].value.action.terminate = term; } CompOption * putGetPutViewportUpOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportUp]; } void putSetPutViewportUpNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewportUp] = notify; } CompAction * putGetPutViewportDown (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportDown].value.action; } void putSetPutViewportDownInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportDown].value.action.initiate = init; } void putSetPutViewportDownTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutViewportDown].value.action.terminate = term; } CompOption * putGetPutViewportDownOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutViewportDown]; } void putSetPutViewportDownNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutViewportDown] = notify; } CompAction * putGetPutCenter (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutCenter].value.action; } void putSetPutCenterInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutCenter].value.action.initiate = init; } void putSetPutCenterTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutCenter].value.action.terminate = term; } CompOption * putGetPutCenterOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutCenter]; } void putSetPutCenterNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutCenter] = notify; } CompAction * putGetPutLeft (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutLeft].value.action; } void putSetPutLeftInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutLeft].value.action.initiate = init; } void putSetPutLeftTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutLeft].value.action.terminate = term; } CompOption * putGetPutLeftOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutLeft]; } void putSetPutLeftNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutLeft] = notify; } CompAction * putGetPutRight (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutRight].value.action; } void putSetPutRightInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutRight].value.action.initiate = init; } void putSetPutRightTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutRight].value.action.terminate = term; } CompOption * putGetPutRightOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutRight]; } void putSetPutRightNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutRight] = notify; } CompAction * putGetPutTop (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutTop].value.action; } void putSetPutTopInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutTop].value.action.initiate = init; } void putSetPutTopTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutTop].value.action.terminate = term; } CompOption * putGetPutTopOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutTop]; } void putSetPutTopNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutTop] = notify; } CompAction * putGetPutBottom (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutBottom].value.action; } void putSetPutBottomInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutBottom].value.action.initiate = init; } void putSetPutBottomTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutBottom].value.action.terminate = term; } CompOption * putGetPutBottomOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutBottom]; } void putSetPutBottomNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutBottom] = notify; } CompAction * putGetPutTopleft (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutTopleft].value.action; } void putSetPutTopleftInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutTopleft].value.action.initiate = init; } void putSetPutTopleftTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutTopleft].value.action.terminate = term; } CompOption * putGetPutTopleftOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutTopleft]; } void putSetPutTopleftNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutTopleft] = notify; } CompAction * putGetPutTopright (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutTopright].value.action; } void putSetPutToprightInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutTopright].value.action.initiate = init; } void putSetPutToprightTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutTopright].value.action.terminate = term; } CompOption * putGetPutToprightOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutTopright]; } void putSetPutToprightNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutTopright] = notify; } CompAction * putGetPutBottomleft (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutBottomleft].value.action; } void putSetPutBottomleftInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutBottomleft].value.action.initiate = init; } void putSetPutBottomleftTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutBottomleft].value.action.terminate = term; } CompOption * putGetPutBottomleftOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutBottomleft]; } void putSetPutBottomleftNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutBottomleft] = notify; } CompAction * putGetPutBottomright (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutBottomright].value.action; } void putSetPutBottomrightInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutBottomright].value.action.initiate = init; } void putSetPutBottomrightTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutBottomright].value.action.terminate = term; } CompOption * putGetPutBottomrightOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutBottomright]; } void putSetPutBottomrightNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutBottomright] = notify; } CompAction * putGetPutRestore (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutRestore].value.action; } void putSetPutRestoreInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutRestore].value.action.initiate = init; } void putSetPutRestoreTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutRestore].value.action.terminate = term; } CompOption * putGetPutRestoreOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutRestore]; } void putSetPutRestoreNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutRestore] = notify; } CompAction * putGetPutPointer (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutPointer].value.action; } void putSetPutPointerInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutPointer].value.action.initiate = init; } void putSetPutPointerTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutPointer].value.action.terminate = term; } CompOption * putGetPutPointerOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutPointer]; } void putSetPutPointerNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutPointer] = notify; } CompAction * putGetPutExact (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutExact].value.action; } void putSetPutExactInitiate (CompDisplay *d, CompActionCallBackProc init) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutExact].value.action.initiate = init; } void putSetPutExactTerminate (CompDisplay *d, CompActionCallBackProc term) { PUT_OPTIONS_DISPLAY(d); od->opt[PutDisplayOptionPutExact].value.action.terminate = term; } CompOption * putGetPutExactOption (CompDisplay *d) { PUT_OPTIONS_DISPLAY(d); return &od->opt[PutDisplayOptionPutExact]; } void putSetPutExactNotify (CompDisplay *d, putDisplayOptionChangeNotifyProc notify) { PUT_OPTIONS_DISPLAY(d); od->notify[PutDisplayOptionPutExact] = notify; } int putGetPadLeft (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionPadLeft].value.i; } CompOption * putGetPadLeftOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionPadLeft]; } void putSetPadLeftNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionPadLeft] = notify; } int putGetPadRight (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionPadRight].value.i; } CompOption * putGetPadRightOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionPadRight]; } void putSetPadRightNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionPadRight] = notify; } int putGetPadTop (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionPadTop].value.i; } CompOption * putGetPadTopOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionPadTop]; } void putSetPadTopNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionPadTop] = notify; } int putGetPadBottom (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionPadBottom].value.i; } CompOption * putGetPadBottomOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionPadBottom]; } void putSetPadBottomNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionPadBottom] = notify; } Bool putGetUnfocusWindow (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionUnfocusWindow].value.b; } CompOption * putGetUnfocusWindowOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionUnfocusWindow]; } void putSetUnfocusWindowNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionUnfocusWindow] = notify; } Bool putGetWindowCenter (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionWindowCenter].value.b; } CompOption * putGetWindowCenterOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionWindowCenter]; } void putSetWindowCenterNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionWindowCenter] = notify; } Bool putGetAvoidOffscreen (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionAvoidOffscreen].value.b; } CompOption * putGetAvoidOffscreenOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionAvoidOffscreen]; } void putSetAvoidOffscreenNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionAvoidOffscreen] = notify; } float putGetSpeed (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionSpeed].value.f; } CompOption * putGetSpeedOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionSpeed]; } void putSetSpeedNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionSpeed] = notify; } float putGetTimestep (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return os->opt[PutScreenOptionTimestep].value.f; } CompOption * putGetTimestepOption (CompScreen *s) { PUT_OPTIONS_SCREEN(s); return &os->opt[PutScreenOptionTimestep]; } void putSetTimestepNotify (CompScreen *s, putScreenOptionChangeNotifyProc notify) { PUT_OPTIONS_SCREEN(s); os->notify[PutScreenOptionTimestep] = notify; } CompOption * putGetDisplayOption (CompDisplay *d, PutDisplayOptions num) { PUT_OPTIONS_DISPLAY(d); return &od->opt[num]; } CompOption * putGetScreenOption (CompScreen *s, PutScreenOptions num) { PUT_OPTIONS_SCREEN(s); return &os->opt[num]; } static const CompMetadataOptionInfo putOptionsDisplayOptionInfo[] = { { "put_viewport", "action", 0, 0, 0 }, { "put_viewport_1", "action", 0, 0, 0 }, { "put_viewport_2", "action", 0, 0, 0 }, { "put_viewport_3", "action", 0, 0, 0 }, { "put_viewport_4", "action", 0, 0, 0 }, { "put_viewport_5", "action", 0, 0, 0 }, { "put_viewport_6", "action", 0, 0, 0 }, { "put_viewport_7", "action", 0, 0, 0 }, { "put_viewport_8", "action", 0, 0, 0 }, { "put_viewport_9", "action", 0, 0, 0 }, { "put_viewport_10", "action", 0, 0, 0 }, { "put_viewport_11", "action", 0, 0, 0 }, { "put_viewport_12", "action", 0, 0, 0 }, { "put_viewport_left", "action", 0, 0, 0 }, { "put_viewport_right", "action", 0, 0, 0 }, { "put_viewport_up", "action", 0, 0, 0 }, { "put_viewport_down", "action", 0, 0, 0 }, { "put_center", "action", 0, 0, 0 }, { "put_left", "action", 0, 0, 0 }, { "put_right", "action", 0, 0, 0 }, { "put_top", "action", 0, 0, 0 }, { "put_bottom", "action", 0, 0, 0 }, { "put_topleft", "action", 0, 0, 0 }, { "put_topright", "action", 0, 0, 0 }, { "put_bottomleft", "action", 0, 0, 0 }, { "put_bottomright", "action", 0, 0, 0 }, { "put_restore", "action", 0, 0, 0 }, { "put_pointer", "action", 0, 0, 0 }, { "put_exact", "action", 0, 0, 0 }, }; static Bool putOptionsSetDisplayOption (CompPlugin *plugin, CompDisplay *d, char *name, CompOptionValue *value) { PUT_OPTIONS_DISPLAY(d); CompOption *o; int index; o = compFindOption (od->opt, PutDisplayOptionNum, name, &index); if (!o) return FALSE; switch (index) { case PutDisplayOptionPutViewport: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport]) (*od->notify[PutDisplayOptionPutViewport]) (d, o, PutDisplayOptionPutViewport); return TRUE; } break; case PutDisplayOptionPutViewport1: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport1]) (*od->notify[PutDisplayOptionPutViewport1]) (d, o, PutDisplayOptionPutViewport1); return TRUE; } break; case PutDisplayOptionPutViewport2: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport2]) (*od->notify[PutDisplayOptionPutViewport2]) (d, o, PutDisplayOptionPutViewport2); return TRUE; } break; case PutDisplayOptionPutViewport3: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport3]) (*od->notify[PutDisplayOptionPutViewport3]) (d, o, PutDisplayOptionPutViewport3); return TRUE; } break; case PutDisplayOptionPutViewport4: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport4]) (*od->notify[PutDisplayOptionPutViewport4]) (d, o, PutDisplayOptionPutViewport4); return TRUE; } break; case PutDisplayOptionPutViewport5: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport5]) (*od->notify[PutDisplayOptionPutViewport5]) (d, o, PutDisplayOptionPutViewport5); return TRUE; } break; case PutDisplayOptionPutViewport6: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport6]) (*od->notify[PutDisplayOptionPutViewport6]) (d, o, PutDisplayOptionPutViewport6); return TRUE; } break; case PutDisplayOptionPutViewport7: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport7]) (*od->notify[PutDisplayOptionPutViewport7]) (d, o, PutDisplayOptionPutViewport7); return TRUE; } break; case PutDisplayOptionPutViewport8: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport8]) (*od->notify[PutDisplayOptionPutViewport8]) (d, o, PutDisplayOptionPutViewport8); return TRUE; } break; case PutDisplayOptionPutViewport9: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport9]) (*od->notify[PutDisplayOptionPutViewport9]) (d, o, PutDisplayOptionPutViewport9); return TRUE; } break; case PutDisplayOptionPutViewport10: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport10]) (*od->notify[PutDisplayOptionPutViewport10]) (d, o, PutDisplayOptionPutViewport10); return TRUE; } break; case PutDisplayOptionPutViewport11: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport11]) (*od->notify[PutDisplayOptionPutViewport11]) (d, o, PutDisplayOptionPutViewport11); return TRUE; } break; case PutDisplayOptionPutViewport12: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewport12]) (*od->notify[PutDisplayOptionPutViewport12]) (d, o, PutDisplayOptionPutViewport12); return TRUE; } break; case PutDisplayOptionPutViewportLeft: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewportLeft]) (*od->notify[PutDisplayOptionPutViewportLeft]) (d, o, PutDisplayOptionPutViewportLeft); return TRUE; } break; case PutDisplayOptionPutViewportRight: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewportRight]) (*od->notify[PutDisplayOptionPutViewportRight]) (d, o, PutDisplayOptionPutViewportRight); return TRUE; } break; case PutDisplayOptionPutViewportUp: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewportUp]) (*od->notify[PutDisplayOptionPutViewportUp]) (d, o, PutDisplayOptionPutViewportUp); return TRUE; } break; case PutDisplayOptionPutViewportDown: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutViewportDown]) (*od->notify[PutDisplayOptionPutViewportDown]) (d, o, PutDisplayOptionPutViewportDown); return TRUE; } break; case PutDisplayOptionPutCenter: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutCenter]) (*od->notify[PutDisplayOptionPutCenter]) (d, o, PutDisplayOptionPutCenter); return TRUE; } break; case PutDisplayOptionPutLeft: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutLeft]) (*od->notify[PutDisplayOptionPutLeft]) (d, o, PutDisplayOptionPutLeft); return TRUE; } break; case PutDisplayOptionPutRight: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutRight]) (*od->notify[PutDisplayOptionPutRight]) (d, o, PutDisplayOptionPutRight); return TRUE; } break; case PutDisplayOptionPutTop: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutTop]) (*od->notify[PutDisplayOptionPutTop]) (d, o, PutDisplayOptionPutTop); return TRUE; } break; case PutDisplayOptionPutBottom: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutBottom]) (*od->notify[PutDisplayOptionPutBottom]) (d, o, PutDisplayOptionPutBottom); return TRUE; } break; case PutDisplayOptionPutTopleft: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutTopleft]) (*od->notify[PutDisplayOptionPutTopleft]) (d, o, PutDisplayOptionPutTopleft); return TRUE; } break; case PutDisplayOptionPutTopright: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutTopright]) (*od->notify[PutDisplayOptionPutTopright]) (d, o, PutDisplayOptionPutTopright); return TRUE; } break; case PutDisplayOptionPutBottomleft: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutBottomleft]) (*od->notify[PutDisplayOptionPutBottomleft]) (d, o, PutDisplayOptionPutBottomleft); return TRUE; } break; case PutDisplayOptionPutBottomright: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutBottomright]) (*od->notify[PutDisplayOptionPutBottomright]) (d, o, PutDisplayOptionPutBottomright); return TRUE; } break; case PutDisplayOptionPutRestore: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutRestore]) (*od->notify[PutDisplayOptionPutRestore]) (d, o, PutDisplayOptionPutRestore); return TRUE; } break; case PutDisplayOptionPutPointer: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutPointer]) (*od->notify[PutDisplayOptionPutPointer]) (d, o, PutDisplayOptionPutPointer); return TRUE; } break; case PutDisplayOptionPutExact: if (compSetDisplayOption (d, o, value)) { if (od->notify[PutDisplayOptionPutExact]) (*od->notify[PutDisplayOptionPutExact]) (d, o, PutDisplayOptionPutExact); return TRUE; } break; default: break; } return FALSE; } static CompOption * putOptionsGetDisplayOptions (CompPlugin *plugin, CompDisplay *d, int *count) { PUT_OPTIONS_DISPLAY(d); *count = PutDisplayOptionNum; return od->opt; } static const CompMetadataOptionInfo putOptionsScreenOptionInfo[] = { { "pad_left", "int", "0500", 0, 0 }, { "pad_right", "int", "0500", 0, 0 }, { "pad_top", "int", "0500", 0, 0 }, { "pad_bottom", "int", "0500", 0, 0 }, { "unfocus_window", "bool", 0, 0, 0 }, { "window_center", "bool", 0, 0, 0 }, { "avoid_offscreen", "bool", 0, 0, 0 }, { "speed", "float", "0.150.0", 0, 0 }, { "timestep", "float", "0.150.0", 0, 0 }, }; static Bool putOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, char *name, CompOptionValue *value) { PUT_OPTIONS_SCREEN(s); CompOption *o; int index; o = compFindOption (os->opt, PutScreenOptionNum, name, &index); if (!o) return FALSE; switch (index) { case PutScreenOptionPadLeft: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionPadLeft]) (*os->notify[PutScreenOptionPadLeft]) (s, o, PutScreenOptionPadLeft); return TRUE; } break; case PutScreenOptionPadRight: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionPadRight]) (*os->notify[PutScreenOptionPadRight]) (s, o, PutScreenOptionPadRight); return TRUE; } break; case PutScreenOptionPadTop: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionPadTop]) (*os->notify[PutScreenOptionPadTop]) (s, o, PutScreenOptionPadTop); return TRUE; } break; case PutScreenOptionPadBottom: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionPadBottom]) (*os->notify[PutScreenOptionPadBottom]) (s, o, PutScreenOptionPadBottom); return TRUE; } break; case PutScreenOptionUnfocusWindow: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionUnfocusWindow]) (*os->notify[PutScreenOptionUnfocusWindow]) (s, o, PutScreenOptionUnfocusWindow); return TRUE; } break; case PutScreenOptionWindowCenter: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionWindowCenter]) (*os->notify[PutScreenOptionWindowCenter]) (s, o, PutScreenOptionWindowCenter); return TRUE; } break; case PutScreenOptionAvoidOffscreen: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionAvoidOffscreen]) (*os->notify[PutScreenOptionAvoidOffscreen]) (s, o, PutScreenOptionAvoidOffscreen); return TRUE; } break; case PutScreenOptionSpeed: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionSpeed]) (*os->notify[PutScreenOptionSpeed]) (s, o, PutScreenOptionSpeed); return TRUE; } break; case PutScreenOptionTimestep: if (compSetScreenOption (s, o, value)) { if (os->notify[PutScreenOptionTimestep]) (*os->notify[PutScreenOptionTimestep]) (s, o, PutScreenOptionTimestep); return TRUE; } break; default: break; } return FALSE; } static CompOption * putOptionsGetScreenOptions (CompPlugin *plugin, CompScreen *s, int *count) { PUT_OPTIONS_SCREEN(s); *count = PutScreenOptionNum; return os->opt; } static Bool putOptionsInitScreen (CompPlugin *p, CompScreen *s) { PutOptionsScreen *os; PUT_OPTIONS_DISPLAY (s->display); os = calloc (1, sizeof(PutOptionsScreen)); if (!os) return FALSE; s->privates[od->screenPrivateIndex].ptr = os; if (!compInitScreenOptionsFromMetadata (s, &putOptionsMetadata, putOptionsScreenOptionInfo, os->opt, PutScreenOptionNum)) { free (os); return FALSE; } if (putPluginVTable && putPluginVTable->initScreen) return putPluginVTable->initScreen (p, s); return TRUE; } static void putOptionsFiniScreen (CompPlugin *p, CompScreen *s) { if (putPluginVTable && putPluginVTable->finiScreen) return putPluginVTable->finiScreen (p, s); PUT_OPTIONS_SCREEN (s); compFiniScreenOptions (s, os->opt, PutScreenOptionNum); free (os); } static Bool putOptionsInitDisplay (CompPlugin *p, CompDisplay *d) { PutOptionsDisplay *od; od = calloc (1, sizeof(PutOptionsDisplay)); if (!od) return FALSE; od->screenPrivateIndex = allocateScreenPrivateIndex(d); if (od->screenPrivateIndex < 0) { free(od); return FALSE; } d->privates[displayPrivateIndex].ptr = od; if (!compInitDisplayOptionsFromMetadata (d, &putOptionsMetadata, putOptionsDisplayOptionInfo, od->opt, PutDisplayOptionNum)) { free (od); return FALSE; } if (putPluginVTable && putPluginVTable->initDisplay) return putPluginVTable->initDisplay (p, d); return TRUE; } static void putOptionsFiniDisplay (CompPlugin *p, CompDisplay *d) { if (putPluginVTable && putPluginVTable->finiDisplay) return putPluginVTable->finiDisplay (p, d); PUT_OPTIONS_DISPLAY (d); freeScreenPrivateIndex(d, od->screenPrivateIndex); compFiniDisplayOptions (d, od->opt, PutDisplayOptionNum); free (od); } static Bool putOptionsInit (CompPlugin *p) { displayPrivateIndex = allocateDisplayPrivateIndex(); if (displayPrivateIndex < 0) return FALSE; if (!compInitPluginMetadataFromInfo (&putOptionsMetadata, "put",putOptionsDisplayOptionInfo, PutDisplayOptionNum, putOptionsScreenOptionInfo, PutScreenOptionNum)) return FALSE; compAddMetadataFromFile (&putOptionsMetadata, "put"); if (putPluginVTable && putPluginVTable->init) return putPluginVTable->init (p); return TRUE; } static void putOptionsFini (CompPlugin *p) { if (putPluginVTable && putPluginVTable->fini) return putPluginVTable->fini (p); if (displayPrivateIndex >= 0) freeDisplayPrivateIndex(displayPrivateIndex); compFiniMetadata (&putOptionsMetadata); } static CompMetadata * putOptionsGetMetadata (CompPlugin *plugin) { return &putOptionsMetadata; } CompPluginVTable *getCompPluginInfo (void) { if (!putPluginVTable) { putPluginVTable = putOptionsGetCompPluginInfo (); memcpy(&putOptionsVTable, putPluginVTable, sizeof(CompPluginVTable)); putOptionsVTable.getMetadata = putOptionsGetMetadata; putOptionsVTable.init = putOptionsInit; putOptionsVTable.fini = putOptionsFini; putOptionsVTable.initDisplay = putOptionsInitDisplay; putOptionsVTable.finiDisplay = putOptionsFiniDisplay; putOptionsVTable.initScreen = putOptionsInitScreen; putOptionsVTable.finiScreen = putOptionsFiniScreen; putOptionsVTable.getDisplayOptions = putOptionsGetDisplayOptions; putOptionsVTable.setDisplayOption = putOptionsSetDisplayOption; putOptionsVTable.getScreenOptions = putOptionsGetScreenOptions; putOptionsVTable.setScreenOption = putOptionsSetScreenOption; } return &putOptionsVTable; }