static Bool zoomInitScreen(CompPlugin *p, CompScreen *s) { ZoomScreen *zs; ZOOM_DISPLAY(s->display); zs = malloc(sizeof (ZoomScreen)); if (!zs) return FALSE; if (!compInitScreenOptionsFromMetadata(s, &zoomMetadata, zoomScreenOptionInfo, zs->opt, ZOOM_SCREEN_OPTION_NUM)) { free(zs); return FALSE; } zs->grabIndex = 0; zs->grab = FALSE; zs->velocity = 0.0f; zs->zoomOutput = 0; zs->zoomed = 0; zs->adjust = FALSE; zs->panGrabIndex = 0; zs->panCursor = XCreateFontCursor(s->display->display, XC_fleur); zs->scale = 0.0f; memset(&zs->current, 0, sizeof (zs->current)); memset(&zs->last, 0, sizeof (zs->last)); WRAP(zs, s, preparePaintScreen, zoomPreparePaintScreen); WRAP(zs, s, donePaintScreen, zoomDonePaintScreen); WRAP(zs, s, paintOutput, zoomPaintOutput); s->base.privates[zd->screenPrivateIndex].ptr = zs; return TRUE; }
static Bool fadeInitScreen(CompPlugin *p, CompScreen *s) { FadeScreen *fs; FADE_DISPLAY(s->display); fs = malloc(sizeof (FadeScreen)); if (!fs) return FALSE; if (!compInitScreenOptionsFromMetadata(s, &fadeMetadata, fadeScreenOptionInfo, fs->opt, FADE_SCREEN_OPTION_NUM)) { free(fs); return FALSE; } fs->windowPrivateIndex = allocateWindowPrivateIndex(s); if (fs->windowPrivateIndex < 0) { compFiniScreenOptions(s, fs->opt, FADE_SCREEN_OPTION_NUM); free(fs); return FALSE; } fs->fadeTime = 1000.0f / fs->opt[FADE_SCREEN_OPTION_FADE_SPEED].value.f; matchInit(&fs->match); fadeUpdateWindowFadeMatch(s->display, &fs->opt[FADE_SCREEN_OPTION_WINDOW_MATCH].value, &fs->match); WRAP(fs, s, preparePaintScreen, fadePreparePaintScreen); WRAP(fs, s, paintWindow, fadePaintWindow); WRAP(fs, s, damageWindowRect, fadeDamageWindowRect); WRAP(fs, s, focusWindow, fadeFocusWindow); WRAP(fs, s, windowResizeNotify, fadeWindowResizeNotify); s->base.privates[fd->screenPrivateIndex].ptr = fs; return TRUE; }
static Bool minInitScreen(CompPlugin * p, CompScreen * s) { MinScreen *ms; MIN_DISPLAY(s->display); ms = malloc(sizeof(MinScreen)); if (!ms) return FALSE; if (!compInitScreenOptionsFromMetadata(s, &minMetadata, minScreenOptionInfo, ms->opt, MIN_SCREEN_OPTION_NUM)) { free(ms); return FALSE; } ms->windowPrivateIndex = allocateWindowPrivateIndex(s); if (ms->windowPrivateIndex < 0) { compFiniScreenOptions(s, ms->opt, MIN_SCREEN_OPTION_NUM); free(ms); return FALSE; } ms->moreAdjust = FALSE; ms->shadeStep = ms->opt[MIN_SCREEN_OPTION_SHADE_RESISTANCE].rest.i.max - ms->opt[MIN_SCREEN_OPTION_SHADE_RESISTANCE].value.i + 1; WRAP(ms, s, preparePaintScreen, minPreparePaintScreen); WRAP(ms, s, donePaintScreen, minDonePaintScreen); WRAP(ms, s, paintOutput, minPaintOutput); WRAP(ms, s, paintWindow, minPaintWindow); WRAP(ms, s, damageWindowRect, minDamageWindowRect); WRAP(ms, s, focusWindow, minFocusWindow); s->base.privates[md->screenPrivateIndex].ptr = ms; return TRUE; }