+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+ test.c for the Openbox window manager
+ Copyright (c) 2003 Ben Jansens
+ Copyright (c) 2003 Derek Foreman
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ 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.
+
+ See the COPYING file for a copy of the GNU General Public License.
+*/
+
#include <stdio.h>
#include <X11/Xlib.h>
+#include <X11/Xutil.h>
#include <X11/extensions/shape.h>
#include <string.h>
#include <stdlib.h>
int main()
{
Window win;
- GC gc;
- Pixmap pm;
- Appearance *look;
+ RrInstance *inst;
+ RrAppearance *look;
- int grabbed = 0;
Window root;
- XGCValues values;
XEvent report;
- int h = 500, w = 500, tmp;
- XVisualInfo *vi;
- int i;
+ int h = 500, w = 500;
ob_display = XOpenDisplay(NULL);
XSetErrorHandler(x_error_handler);
ob_screen = DefaultScreen(ob_display);
ob_root = RootWindow(ob_display, ob_screen);
win =
- XCreateWindow(ob_display, RootWindow(ob_display, 0)
- , 10, 10, w, h, 10,
- CopyFromParent, /* depth */
- CopyFromParent, /* class */
- CopyFromParent, /* visual */
- 0, /* valuemask */
- 0); /* attributes */
+ XCreateWindow(ob_display, RootWindow(ob_display, 0),
+ 10, 10, w, h, 10,
+ CopyFromParent, /* depth */
+ CopyFromParent, /* class */
+ CopyFromParent, /* visual */
+ 0, /* valuemask */
+ 0); /* attributes */
XMapWindow(ob_display, win);
XSelectInput(ob_display, win, ExposureMask | StructureNotifyMask);
root = RootWindow (ob_display, DefaultScreen (ob_display));
- render_startup();
+ inst = RrInstanceNew(ob_display, ob_screen);
- look = appearance_new(Surface_Planar, 0);
- look->surface.data.planar.grad = Background_Horizontal;
- look->surface.data.planar.secondary = color_new(0xFF, 0xFF, 0xFF);
- look->surface.data.planar.primary = color_parse("Black");
- look->surface.data.planar.interlaced = FALSE;
- look->area.x = 0;
- look->area.y = 0;
- look->area.width = 500;
- look->area.height = 500;
+ look = RrAppearanceNew(inst, 0);
+ look->surface.grad = RR_SURFACE_PYRAMID;
+ look->surface.secondary = RrColorParse(inst, "Yellow");
+ look->surface.primary = RrColorParse(inst, "Blue");
+ look->surface.interlaced = FALSE;
if (ob_display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
- paint(win, look);
+ RrPaint(look, win, w, h);
while (1) {
XNextEvent(ob_display, &report);
switch (report.type) {
case Expose:
- break;
+ break;
case ConfigureNotify:
- look->area.width = report.xconfigure.width;
- look->area.height = report.xconfigure.height;
- paint(win, look);
- break;
+ RrPaint(look, win,
+ report.xconfigure.width,
+ report.xconfigure.height);
+ break;
}
}
+ RrAppearanceFree (look);
+ RrInstanceFree (inst);
+
return 1;
}