3
* Compiz metacity like info during resize
7
* Copyright (c) 2007 Robert Carr <racarr@opencompositing.org>
9
* Compiz resize atom usage and general cleanups by
10
* Copyright (c) 2007 Danny Baumann <maniac@opencompositing.org>
12
* This program is free software; you can redistribute it and/or
13
* modify it under the terms of the GNU General Public License
14
* as published by the Free Software Foundation; either version 2
15
* of the License, or (at your option) any later version.
17
* This program is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
* GNU General Public License for more details.
24
#include <core/core.h>
25
#include <core/pluginclasshandler.h>
27
#include <composite/composite.h>
28
#include <opengl/opengl.h>
30
#include <cairo-xlib-xrender.h>
32
#include <pango/pango.h>
33
#include <pango/pangocairo.h>
35
#include "resizeinfo_options.h"
37
#define RESIZE_POPUP_WIDTH 85
38
#define RESIZE_POPUP_HEIGHT 50
42
/* Cairo helper class */
54
XRenderPictFormat *format;
56
cairo_surface_t *surface;
57
GLTexture::List texture;
63
void renderBackground ();
68
public PluginClassHandler <InfoScreen, CompScreen>,
69
public ScreenInterface,
70
public CompositeScreenInterface,
71
public GLScreenInterface,
72
public ResizeinfoOptions
76
InfoScreen (CompScreen *);
79
CompositeScreen *cScreen;
88
InfoLayer backgroundLayer;
91
XRectangle resizeGeometry;
100
glPaintOutput (const GLScreenPaintAttrib &,
110
handleEvent (XEvent *event);
114
public PluginClassHandler <InfoWindow, CompWindow>,
115
public WindowInterface
119
InfoWindow (CompWindow *);
133
#define INFO_SCREEN(s) \
134
InfoScreen *is = InfoScreen::get (s);
136
#define INFO_WINDOW(w) \
137
InfoWindow *iw = InfoWindow::get (w);
139
class InfoPluginVTable :
140
public CompPlugin::VTableForScreenAndWindow <InfoScreen, InfoWindow>