~ubuntu-branches/ubuntu/lucid/compiz-fusion-plugins-extra/lucid

« back to all changes in this revision

Viewing changes to src/showdesktop/showdesktop_options.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Vogt
  • Date: 2007-12-05 22:48:25 UTC
  • mfrom: (1.1.15 upstream)
  • Revision ID: james.westby@ubuntu.com-20071205224825-yhfs0zm2evj7ca3x
Tags: 0.6.99+git20071127-0ubuntu1
new git HEAD snapshot

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
#include <stdlib.h>
14
14
#include <string.h>
15
15
 
16
 
#include <compiz.h>
 
16
#include <compiz-core.h>
17
17
 
18
 
#define _SHOWDESKTOP_OPTIONS_INTERNAL
19
18
#include "showdesktop_options.h"
20
19
 
21
20
static int displayPrivateIndex;
26
25
CompPluginVTable showdesktopOptionsVTable;
27
26
 
28
27
#define GET_SHOWDESKTOP_OPTIONS_DISPLAY(d) \
29
 
        ((ShowdesktopOptionsDisplay *) (d)->privates[displayPrivateIndex].ptr)
 
28
        ((ShowdesktopOptionsDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
30
29
 
31
30
#define SHOWDESKTOP_OPTIONS_DISPLAY(d) \
32
31
        ShowdesktopOptionsDisplay *od = GET_SHOWDESKTOP_OPTIONS_DISPLAY (d)
33
32
 
34
33
#define GET_SHOWDESKTOP_OPTIONS_SCREEN(s, od) \
35
 
        ((ShowdesktopOptionsScreen *) (s)->privates[(od)->screenPrivateIndex].ptr)
 
34
        ((ShowdesktopOptionsScreen *) (s)->base.privates[(od)->screenPrivateIndex].ptr)
36
35
 
37
36
#define SHOWDESKTOP_OPTIONS_SCREEN(s) \
38
37
        ShowdesktopOptionsScreen *os = GET_SHOWDESKTOP_OPTIONS_SCREEN (s, GET_SHOWDESKTOP_OPTIONS_DISPLAY (s->display))
172
171
    { "window_part_size", "int", "<min>0</min><max>300</max>", 0, 0 },
173
172
};
174
173
 
175
 
static Bool showdesktopOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, char *name, CompOptionValue *value)
 
174
static Bool showdesktopOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, const char *name, CompOptionValue *value)
176
175
{
177
176
    SHOWDESKTOP_OPTIONS_SCREEN(s);
178
177
    CompOption *o;
256
255
    if (!os)
257
256
        return FALSE;
258
257
 
259
 
    s->privates[od->screenPrivateIndex].ptr = os;
 
258
    s->base.privates[od->screenPrivateIndex].ptr = os;
260
259
 
261
260
    if (!compInitScreenOptionsFromMetadata (s, &showdesktopOptionsMetadata, showdesktopOptionsScreenOptionInfo, os->opt, ShowdesktopScreenOptionNum))
262
261
    {
263
262
        free (os);
264
263
        return FALSE;
265
264
    }
266
 
    if (showdesktopPluginVTable && showdesktopPluginVTable->initScreen)
267
 
        return showdesktopPluginVTable->initScreen (p, s);
 
265
 
268
266
    return TRUE;
269
267
}
270
268
 
271
269
static void showdesktopOptionsFiniScreen (CompPlugin *p, CompScreen *s)
272
270
{
273
 
    if (showdesktopPluginVTable && showdesktopPluginVTable->finiScreen)
274
 
        return showdesktopPluginVTable->finiScreen (p, s);
275
 
 
276
271
    SHOWDESKTOP_OPTIONS_SCREEN (s);
277
272
 
278
273
 
297
292
        return FALSE;
298
293
    }
299
294
 
300
 
    d->privates[displayPrivateIndex].ptr = od;
 
295
    d->base.privates[displayPrivateIndex].ptr = od;
301
296
 
302
 
        if (showdesktopPluginVTable && showdesktopPluginVTable->initDisplay)
303
 
        return showdesktopPluginVTable->initDisplay (p, d);
 
297
    
304
298
    return TRUE;
305
299
}
306
300
 
307
301
static void showdesktopOptionsFiniDisplay (CompPlugin *p, CompDisplay *d)
308
302
{
309
 
    if (showdesktopPluginVTable && showdesktopPluginVTable->finiDisplay)
310
 
        return showdesktopPluginVTable->finiDisplay (p, d);
311
 
 
312
303
    SHOWDESKTOP_OPTIONS_DISPLAY (d);
313
304
 
314
305
    freeScreenPrivateIndex(d, od->screenPrivateIndex);
341
332
    compFiniMetadata (&showdesktopOptionsMetadata);
342
333
}
343
334
 
 
335
static CompBool showdesktopOptionsInitObject (CompPlugin *p, CompObject *o)
 
336
{
 
337
    static InitPluginObjectProc dispTab[] = {
 
338
        (InitPluginObjectProc) 0,
 
339
        (InitPluginObjectProc) showdesktopOptionsInitDisplay,
 
340
        (InitPluginObjectProc) showdesktopOptionsInitScreen
 
341
    };
 
342
 
 
343
    RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
 
344
}
 
345
 
 
346
static void showdesktopOptionsFiniObject (CompPlugin *p, CompObject *o)
 
347
{
 
348
    static FiniPluginObjectProc dispTab[] = {
 
349
        (FiniPluginObjectProc) 0,
 
350
        (FiniPluginObjectProc) showdesktopOptionsFiniDisplay,
 
351
        (FiniPluginObjectProc) showdesktopOptionsFiniScreen
 
352
    };
 
353
 
 
354
    DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
 
355
}
 
356
 
 
357
static CompBool showdesktopOptionsInitObjectWrapper (CompPlugin *p, CompObject *o)
 
358
{
 
359
    CompBool rv = TRUE;
 
360
    rv = showdesktopOptionsInitObject (p, o);
 
361
    if (showdesktopPluginVTable->initObject)
 
362
        rv &= showdesktopPluginVTable->initObject (p, o);
 
363
    return rv;
 
364
}
 
365
 
 
366
static void showdesktopOptionsFiniObjectWrapper (CompPlugin *p, CompObject *o)
 
367
{
 
368
    if (showdesktopPluginVTable->finiObject)
 
369
        showdesktopPluginVTable->finiObject (p, o);
 
370
    showdesktopOptionsFiniObject (p, o);
 
371
}
 
372
 
 
373
static CompOption * showdesktopOptionsGetObjectOptions (CompPlugin *p, CompObject *o, int *count)
 
374
{
 
375
    static GetPluginObjectOptionsProc dispTab[] = {
 
376
        (GetPluginObjectOptionsProc) 0,
 
377
            (GetPluginObjectOptionsProc) 0,
 
378
        (GetPluginObjectOptionsProc) showdesktopOptionsGetScreenOptions
 
379
    };
 
380
 
 
381
    RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab),
 
382
                     (void *) (*count = 0), (p, o, count));
 
383
}
 
384
 
 
385
static CompBool showdesktopOptionsSetObjectOption (CompPlugin *p, CompObject *o, const char *name, CompOptionValue *value)
 
386
{
 
387
    static SetPluginObjectOptionProc dispTab[] = {
 
388
        (SetPluginObjectOptionProc) 0,
 
389
        (SetPluginObjectOptionProc) 0,
 
390
        (SetPluginObjectOptionProc) showdesktopOptionsSetScreenOption
 
391
    };
 
392
 
 
393
    RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), FALSE,
 
394
                     (p, o, name, value));
 
395
}
 
396
 
344
397
static CompMetadata *
345
398
showdesktopOptionsGetMetadata (CompPlugin *plugin)
346
399
{
347
400
    return &showdesktopOptionsMetadata;
348
401
}
349
402
 
350
 
CompPluginVTable *getCompPluginInfo (void)
 
403
CompPluginVTable *getCompPluginInfo20070830 (void)
351
404
{
352
405
    if (!showdesktopPluginVTable)
353
406
    {
354
 
        showdesktopPluginVTable = showdesktopOptionsGetCompPluginInfo ();
 
407
        showdesktopPluginVTable = getCompPluginInfo ();
355
408
        memcpy(&showdesktopOptionsVTable, showdesktopPluginVTable, sizeof(CompPluginVTable));
356
409
        showdesktopOptionsVTable.getMetadata = showdesktopOptionsGetMetadata;
357
410
        showdesktopOptionsVTable.init = showdesktopOptionsInit;
358
411
        showdesktopOptionsVTable.fini = showdesktopOptionsFini;
359
 
        showdesktopOptionsVTable.initDisplay = showdesktopOptionsInitDisplay;
360
 
        showdesktopOptionsVTable.finiDisplay = showdesktopOptionsFiniDisplay;
361
 
        showdesktopOptionsVTable.initScreen = showdesktopOptionsInitScreen;
362
 
        showdesktopOptionsVTable.finiScreen = showdesktopOptionsFiniScreen;
363
 
        showdesktopOptionsVTable.getScreenOptions = showdesktopOptionsGetScreenOptions;
364
 
        showdesktopOptionsVTable.setScreenOption = showdesktopOptionsSetScreenOption;
 
412
        showdesktopOptionsVTable.initObject = showdesktopOptionsInitObjectWrapper;
 
413
        showdesktopOptionsVTable.finiObject = showdesktopOptionsFiniObjectWrapper;
 
414
        showdesktopOptionsVTable.getObjectOptions = showdesktopOptionsGetObjectOptions;
 
415
        showdesktopOptionsVTable.setObjectOption = showdesktopOptionsSetObjectOption;
365
416
        
366
417
    }
367
418
    return &showdesktopOptionsVTable;