summaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-04-13 07:18:28 +0000
committerDana Jansens <danakj@orodu.net>2003-04-13 07:18:28 +0000
commit5cf61ee02354c1c9f80c11f3796afc4b948055d6 (patch)
tree5530ecca55e11cc74e57db07d750447c7107f8ed /engines
parentfb1696659672386bcfc0f753b67f9eeda74e93b9 (diff)
move the openbox engine into librender and the kernel. the theme is loaded and stored inside librender. the frame is decorated and managed inside the kernel.
Diffstat (limited to 'engines')
-rw-r--r--engines/.cvsignore0
-rw-r--r--engines/engineinterface.h59
-rw-r--r--engines/openbox/.cvsignore5
-rw-r--r--engines/openbox/Makefile4
-rw-r--r--engines/openbox/obengine.c873
-rw-r--r--engines/openbox/obengine.h127
-rw-r--r--engines/openbox/obrender.c234
-rw-r--r--engines/openbox/obrender.h8
-rw-r--r--engines/openbox/obtheme.c624
-rw-r--r--engines/openbox/obtheme.h8
10 files changed, 0 insertions, 1942 deletions
diff --git a/engines/.cvsignore b/engines/.cvsignore
deleted file mode 100644
index e69de29b..00000000
--- a/engines/.cvsignore
+++ /dev/null
diff --git a/engines/engineinterface.h b/engines/engineinterface.h
deleted file mode 100644
index 1dbc9c70..00000000
--- a/engines/engineinterface.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef __engineinterface_h
-#define __engineinterface_h
-
-#include "kernel/frame.h"
-#include "kernel/geom.h"
-#include <X11/Xlib.h>
-#include <glib.h>
-
-/* startup */
-typedef gboolean EngineStartup();
-
-/* shutdown */
-typedef void EngineShutdown();
-
-/* frame_new */
-typedef Frame *EngineFrameNew();
-
-/* frame_grab_client */
-typedef void EngineFrameGrabClient(Frame *self, Client *client);
-/* frame_release_client */
-typedef void EngineFrameReleaseClient(Frame *self, Client *client);
-
-/* frame_adjust_area */
-/*! Update the frame's size/position to match the client */
-typedef void EngineFrameAdjustArea(Frame *self, gboolean moved,
- gboolean resized);
-/* frame_adjust_shape */
-/*! Shape the frame window to the client window */
-typedef void EngineFrameAdjustShape(Frame *self);
-/* frame_adjust_state */
-/*! Update the frame to match the client's new state (for things like toggle
- buttons, focus, and the title) XXX break this up */
-typedef void EngineFrameAdjustState(Frame *self);
-/* frame_adjust_focus */
-/*! Update the frame to match the client's focused state */
-typedef void EngineFrameAdjustFocus(Frame *self);
-/* frame_adjust_title */
-/*! Update the frame to display the client's current title */
-typedef void EngineFrameAdjustTitle(Frame *self);
-/* frame_adjust_icon */
-/*! Update the frame to display the client's current icon */
-typedef void EngineFrameAdjustIcon(Frame *self);
-
-/* frame_show */
-/*! Shows the frame */
-typedef void EngineFrameShow(Frame *self);
-/*! Hides the frame */
-typedef void EngineFrameHide(Frame *self);
-
-/* get_context */
-typedef Context EngineGetContext(Client *client, Window win);
-
-typedef void EngineRenderLabel(Window win, Size *sz, char *text,
- gboolean hilight, gboolean toplevel);
-
-typedef void EngineSizeLabel(char *text, gboolean hilight, gboolean toplevel,
- Size *s);
-
-#endif
diff --git a/engines/openbox/.cvsignore b/engines/openbox/.cvsignore
deleted file mode 100644
index a784068e..00000000
--- a/engines/openbox/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-openbox.la
-obengine.lo
-obtheme.lo
-obrender.lo
-.libs
diff --git a/engines/openbox/Makefile b/engines/openbox/Makefile
deleted file mode 100644
index 2ed05a6e..00000000
--- a/engines/openbox/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-all clean distclean install uninstall:
- $(MAKE) -$(MAKEFLAGS) -C ../.. $@
-
-.PHONY: all clean distclean install uninstall
diff --git a/engines/openbox/obengine.c b/engines/openbox/obengine.c
deleted file mode 100644
index 75396c8a..00000000
--- a/engines/openbox/obengine.c
+++ /dev/null
@@ -1,873 +0,0 @@
-#include "obtheme.h"
-#include "obrender.h"
-#include "obengine.h"
-#include "kernel/openbox.h"
-#include "kernel/extensions.h"
-#include "kernel/dispatch.h"
-#include "kernel/config.h"
-
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-# include <sys/types.h>
-#endif
-#include <X11/Xlib.h>
-#include <glib.h>
-
-#define PLATE_EVENTMASK (SubstructureRedirectMask | ButtonPressMask)
-#define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \
- ButtonPressMask | ButtonReleaseMask)
-#define ELEMENT_EVENTMASK (ButtonPressMask | ButtonReleaseMask | \
- ButtonMotionMask | ExposureMask)
-
-/* style settings - geometry */
-int ob_s_bevel;
-int ob_s_handle_height;
-int ob_s_bwidth;
-int ob_s_cbwidth;
-/* style settings - colors */
-color_rgb *ob_s_b_color;
-color_rgb *ob_s_cb_focused_color;
-color_rgb *ob_s_cb_unfocused_color;
-color_rgb *ob_s_title_focused_color;
-color_rgb *ob_s_title_unfocused_color;
-color_rgb *ob_s_titlebut_focused_color;
-color_rgb *ob_s_titlebut_unfocused_color;
-/* style settings - fonts */
-int ob_s_winfont_height;
-ObFont *ob_s_winfont;
-/* style settings - masks */
-pixmap_mask *ob_s_max_set_mask;
-pixmap_mask *ob_s_max_unset_mask;
-pixmap_mask *ob_s_iconify_mask;
-pixmap_mask *ob_s_desk_set_mask;
-pixmap_mask *ob_s_desk_unset_mask;
-pixmap_mask *ob_s_shade_set_mask;
-pixmap_mask *ob_s_shade_unset_mask;
-pixmap_mask *ob_s_close_mask;
-
-/* global appearances */
-Appearance *ob_a_focused_unpressed_max;
-Appearance *ob_a_focused_pressed_max;
-Appearance *ob_a_focused_pressed_set_max;
-Appearance *ob_a_unfocused_unpressed_max;
-Appearance *ob_a_unfocused_pressed_max;
-Appearance *ob_a_unfocused_pressed_set_max;
-Appearance *ob_a_focused_unpressed_close;
-Appearance *ob_a_focused_pressed_close;
-Appearance *ob_a_unfocused_unpressed_close;
-Appearance *ob_a_unfocused_pressed_close;
-Appearance *ob_a_focused_unpressed_desk;
-Appearance *ob_a_focused_pressed_desk;
-Appearance *ob_a_focused_pressed_set_desk;
-Appearance *ob_a_unfocused_unpressed_desk;
-Appearance *ob_a_unfocused_pressed_desk;
-Appearance *ob_a_unfocused_pressed_set_desk;
-Appearance *ob_a_focused_unpressed_shade;
-Appearance *ob_a_focused_pressed_shade;
-Appearance *ob_a_focused_pressed_set_shade;
-Appearance *ob_a_unfocused_unpressed_shade;
-Appearance *ob_a_unfocused_pressed_shade;
-Appearance *ob_a_unfocused_pressed_set_shade;
-Appearance *ob_a_focused_unpressed_iconify;
-Appearance *ob_a_focused_pressed_iconify;
-Appearance *ob_a_unfocused_unpressed_iconify;
-Appearance *ob_a_unfocused_pressed_iconify;
-Appearance *ob_a_focused_grip;
-Appearance *ob_a_unfocused_grip;
-Appearance *ob_a_focused_title;
-Appearance *ob_a_unfocused_title;
-Appearance *ob_a_focused_label;
-Appearance *ob_a_unfocused_label;
-Appearance *ob_a_icon; /* always parentrelative, so no focused/unfocused */
-Appearance *ob_a_focused_handle;
-Appearance *ob_a_unfocused_handle;
-
-Appearance *ob_app_hilite_label;
-Appearance *ob_app_unhilite_label;
-
-static void layout_title(ObFrame *self);
-static void mouse_event(const ObEvent *e, ObFrame *self);
-
-gboolean startup()
-{
- char *path;
-
- /* create the ~/.openbox/themes/openbox dir */
- path = g_build_filename(g_get_home_dir(), ".openbox", "themes", "openbox",
- NULL);
- mkdir(path, (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP |
- S_IROTH | S_IWOTH | S_IXOTH));
- g_free(path);
-
- ob_s_b_color = ob_s_cb_unfocused_color = ob_s_cb_focused_color =
- ob_s_title_unfocused_color = ob_s_title_focused_color =
- ob_s_titlebut_unfocused_color = ob_s_titlebut_focused_color = NULL;
- ob_s_winfont = NULL;
- ob_s_max_set_mask = ob_s_max_unset_mask = NULL;
- ob_s_desk_set_mask = ob_s_desk_unset_mask = NULL;
- ob_s_shade_set_mask = ob_s_shade_unset_mask = NULL;
- ob_s_iconify_mask = ob_s_close_mask = NULL;
-
- ob_a_focused_unpressed_max = appearance_new(Surface_Planar, 1);
- ob_a_focused_pressed_max = appearance_new(Surface_Planar, 1);
- ob_a_focused_pressed_set_max = appearance_new(Surface_Planar, 1);
- ob_a_unfocused_unpressed_max = appearance_new(Surface_Planar, 1);
- ob_a_unfocused_pressed_max = appearance_new(Surface_Planar, 1);
- ob_a_unfocused_pressed_set_max = appearance_new(Surface_Planar, 1);
- ob_a_focused_unpressed_close = NULL;
- ob_a_focused_pressed_close = NULL;
- ob_a_unfocused_unpressed_close = NULL;
- ob_a_unfocused_pressed_close = NULL;
- ob_a_focused_unpressed_desk = NULL;
- ob_a_focused_pressed_desk = NULL;
- ob_a_focused_pressed_set_desk = NULL;
- ob_a_unfocused_unpressed_desk = NULL;
- ob_a_unfocused_pressed_desk = NULL;
- ob_a_unfocused_pressed_set_desk = NULL;
- ob_a_focused_unpressed_shade = NULL;
- ob_a_focused_pressed_shade = NULL;
- ob_a_focused_pressed_set_shade = NULL;
- ob_a_unfocused_unpressed_shade = NULL;
- ob_a_unfocused_pressed_shade = NULL;
- ob_a_unfocused_pressed_set_shade = NULL;
- ob_a_focused_unpressed_iconify = NULL;
- ob_a_focused_pressed_iconify = NULL;
- ob_a_unfocused_unpressed_iconify = NULL;
- ob_a_unfocused_pressed_iconify = NULL;
- ob_a_focused_grip = appearance_new(Surface_Planar, 0);
- ob_a_unfocused_grip = appearance_new(Surface_Planar, 0);
- ob_a_focused_title = appearance_new(Surface_Planar, 0);
- ob_a_unfocused_title = appearance_new(Surface_Planar, 0);
- ob_a_focused_label = appearance_new(Surface_Planar, 1);
- ob_a_unfocused_label = appearance_new(Surface_Planar, 1);
- ob_a_icon = appearance_new(Surface_Planar, 1);
- ob_a_focused_handle = appearance_new(Surface_Planar, 0);
- ob_a_unfocused_handle = appearance_new(Surface_Planar, 0);
- ob_app_hilite_label = appearance_new(Surface_Planar, 1);
- ob_app_unhilite_label = appearance_new(Surface_Planar, 1);
-
- if (obtheme_load()) {
- RECT_SET(ob_a_focused_pressed_desk->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_set_desk->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_unpressed_desk->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_desk->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_set_desk->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_unpressed_desk->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_shade->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_set_shade->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_unpressed_shade->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_shade->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_set_shade->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_unpressed_shade->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_iconify->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_unpressed_iconify->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_iconify->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_unpressed_iconify->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_unpressed_iconify->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_max->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_set_max->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_unpressed_max->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_max->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_set_max->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_unpressed_max->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_pressed_close->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_focused_unpressed_close->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_pressed_close->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
- RECT_SET(ob_a_unfocused_unpressed_close->area, 0, 0,
- BUTTON_SIZE, BUTTON_SIZE);
-
- RECT_SET(ob_a_focused_grip->area, 0, 0,
- GRIP_WIDTH, ob_s_handle_height);
- RECT_SET(ob_a_unfocused_grip->area, 0, 0,
- GRIP_WIDTH, ob_s_handle_height);
- return TRUE;
- } else
- return FALSE;
-}
-
-void shutdown()
-{
- if (ob_s_b_color != NULL) color_free(ob_s_b_color);
- if (ob_s_cb_unfocused_color != NULL) color_free(ob_s_cb_unfocused_color);
- if (ob_s_cb_focused_color != NULL) color_free(ob_s_cb_focused_color);
- if (ob_s_title_unfocused_color != NULL) color_free(ob_s_title_unfocused_color);
- if (ob_s_title_focused_color != NULL) color_free(ob_s_title_focused_color);
- if (ob_s_titlebut_unfocused_color != NULL)
- color_free(ob_s_titlebut_unfocused_color);
- if (ob_s_titlebut_focused_color != NULL)
- color_free(ob_s_titlebut_focused_color);
-
- if (ob_s_max_set_mask != NULL)
- pixmap_mask_free(ob_s_max_set_mask);
- if (ob_s_max_unset_mask != NULL)
- pixmap_mask_free(ob_s_max_unset_mask);
- if (ob_s_desk_set_mask != NULL)
- pixmap_mask_free(ob_s_desk_set_mask);
- if (ob_s_desk_unset_mask != NULL)
- pixmap_mask_free(ob_s_desk_unset_mask);
- if (ob_s_shade_set_mask != NULL)
- pixmap_mask_free(ob_s_shade_set_mask);
- if (ob_s_shade_unset_mask != NULL)
- pixmap_mask_free(ob_s_shade_unset_mask);
- if (ob_s_iconify_mask != NULL)
- pixmap_mask_free(ob_s_iconify_mask);
- if (ob_s_close_mask != NULL)
- pixmap_mask_free(ob_s_close_mask);
-
- if (ob_s_winfont != NULL) font_close(ob_s_winfont);
-
- appearance_free(ob_a_focused_unpressed_max);
- appearance_free(ob_a_focused_pressed_max);
- appearance_free(ob_a_focused_pressed_set_max);
- appearance_free(ob_a_unfocused_unpressed_max);
- appearance_free(ob_a_unfocused_pressed_max);
- appearance_free(ob_a_unfocused_pressed_set_max);
- if (ob_a_focused_unpressed_close != NULL)
- appearance_free(ob_a_focused_unpressed_close);
- if (ob_a_focused_pressed_close != NULL)
- appearance_free(ob_a_focused_pressed_close);
- if (ob_a_unfocused_unpressed_close != NULL)
- appearance_free(ob_a_unfocused_unpressed_close);
- if (ob_a_unfocused_pressed_close != NULL)
- appearance_free(ob_a_unfocused_pressed_close);
- if (ob_a_focused_unpressed_desk != NULL)
- appearance_free(ob_a_focused_unpressed_desk);
- if (ob_a_focused_pressed_desk != NULL)
- appearance_free(ob_a_focused_pressed_desk);
- if (ob_a_unfocused_unpressed_desk != NULL)
- appearance_free(ob_a_unfocused_unpressed_desk);
- if (ob_a_unfocused_pressed_desk != NULL)
- appearance_free(ob_a_unfocused_pressed_desk);
- if (ob_a_focused_unpressed_shade != NULL)
- appearance_free(ob_a_focused_unpressed_shade);
- if (ob_a_focused_pressed_shade != NULL)
- appearance_free(ob_a_focused_pressed_shade);
- if (ob_a_unfocused_unpressed_shade != NULL)
- appearance_free(ob_a_unfocused_unpressed_shade);
- if (ob_a_unfocused_pressed_shade != NULL)
- appearance_free(ob_a_unfocused_pressed_shade);
- if (ob_a_focused_unpressed_iconify != NULL)
- appearance_free(ob_a_focused_unpressed_iconify);
- if (ob_a_focused_pressed_iconify != NULL)
- appearance_free(ob_a_focused_pressed_iconify);
- if (ob_a_unfocused_unpressed_iconify != NULL)
- appearance_free(ob_a_unfocused_unpressed_iconify);
- if (ob_a_unfocused_pressed_iconify != NULL)
- appearance_free(ob_a_unfocused_pressed_iconify);
- appearance_free(ob_a_focused_grip);
- appearance_free(ob_a_unfocused_grip);
- appearance_free(ob_a_focused_title);
- appearance_free(ob_a_unfocused_title);
- appearance_free(ob_a_focused_label);
- appearance_free(ob_a_unfocused_label);
- appearance_free(ob_a_icon);
- appearance_free(ob_a_focused_handle);
- appearance_free(ob_a_unfocused_handle);
- appearance_free(ob_app_hilite_label);
- appearance_free(ob_app_unhilite_label);
-}
-
-static Window createWindow(Window parent, unsigned long mask,
- XSetWindowAttributes *attrib)
-{
- return XCreateWindow(ob_display, parent, 0, 0, 1, 1, 0,
- render_depth, InputOutput, render_visual,
- mask, attrib);
-
-}
-
-Frame *frame_new()
-{
- XSetWindowAttributes attrib;
- unsigned long mask;
- ObFrame *self;
-
- self = g_new(ObFrame, 1);
-
- self->frame.visible = FALSE;
-
- /* create all of the decor windows */
- mask = CWOverrideRedirect | CWEventMask;
- attrib.event_mask = FRAME_EVENTMASK;
- attrib.override_redirect = TRUE;
- self->frame.window = createWindow(ob_root, mask, &attrib);
-
- mask = 0;
- self->frame.plate = createWindow(self->frame.window, mask, &attrib);
-
- mask = CWEventMask;
- attrib.event_mask = ELEMENT_EVENTMASK;
- self->title = createWindow(self->frame.window, mask, &attrib);
- self->label = createWindow(self->title, mask, &attrib);
- self->max = createWindow(self->title, mask, &attrib);
- self->close = createWindow(self->title, mask, &attrib);
- self->desk = createWindow(self->title, mask, &attrib);
- self->shade = createWindow(self->title, mask, &attrib);
- self->icon = createWindow(self->title, mask, &attrib);
- self->iconify = createWindow(self->title, mask, &attrib);
- self->handle = createWindow(self->frame.window, mask, &attrib);
- mask |= CWCursor;
- attrib.cursor = ob_cursors.ll_angle;
- self->lgrip = createWindow(self->handle, mask, &attrib);
- attrib.cursor = ob_cursors.lr_angle;
- self->rgrip = createWindow(self->handle, mask, &attrib);
-
- /* the other stuff is shown based on decor settings */
- XMapWindow(ob_display, self->frame.plate);
- XMapWindow(ob_display, self->lgrip);
- XMapWindow(ob_display, self->rgrip);
- XMapWindow(ob_display, self->label);
-
- /* set colors/appearance/sizes for stuff that doesn't change */
- XSetWindowBorder(ob_display, self->frame.window, ob_s_b_color->pixel);
- XSetWindowBorder(ob_display, self->label, ob_s_b_color->pixel);
- XSetWindowBorder(ob_display, self->rgrip, ob_s_b_color->pixel);
- XSetWindowBorder(ob_display, self->lgrip, ob_s_b_color->pixel);
-
- XResizeWindow(ob_display, self->max, BUTTON_SIZE, BUTTON_SIZE);
- XResizeWindow(ob_display, self->iconify, BUTTON_SIZE, BUTTON_SIZE);
- XResizeWindow(ob_display, self->icon, BUTTON_SIZE, BUTTON_SIZE);
- XResizeWindow(ob_display, self->close, BUTTON_SIZE, BUTTON_SIZE);
- XResizeWindow(ob_display, self->desk, BUTTON_SIZE, BUTTON_SIZE);
- XResizeWindow(ob_display, self->shade, BUTTON_SIZE, BUTTON_SIZE);
- XResizeWindow(ob_display, self->lgrip, GRIP_WIDTH, ob_s_handle_height);
- XResizeWindow(ob_display, self->rgrip, GRIP_WIDTH, ob_s_handle_height);
-
- /* set up the dynamic appearances */
- self->a_unfocused_title = appearance_copy(ob_a_unfocused_title);
- self->a_focused_title = appearance_copy(ob_a_focused_title);
- self->a_unfocused_label = appearance_copy(ob_a_unfocused_label);
- self->a_focused_label = appearance_copy(ob_a_focused_label);
- self->a_unfocused_handle = appearance_copy(ob_a_unfocused_handle);
- self->a_focused_handle = appearance_copy(ob_a_focused_handle);
- self->a_icon = appearance_copy(ob_a_icon);
-
- self->max_press = self->close_press = self->desk_press =
- self->iconify_press = self->shade_press = FALSE;
-
- dispatch_register(Event_X_ButtonPress | Event_X_ButtonRelease,
- (EventHandler)mouse_event, self);
-
- return (Frame*)self;
-}
-
-static void frame_free(ObFrame *self)
-{
- appearance_free(self->a_unfocused_title);
- appearance_free(self->a_focused_title);
- appearance_free(self->a_unfocused_label);
- appearance_free(self->a_focused_label);
- appearance_free(self->a_unfocused_handle);
- appearance_free(self->a_focused_handle);
- appearance_free(self->a_icon);
-
- XDestroyWindow(ob_display, self->frame.window);
-
- dispatch_register(0, (EventHandler)mouse_event, self);
-
- g_free(self);
-}
-
-void frame_show(ObFrame *self)
-{
- if (!self->frame.visible) {
- self->frame.visible = TRUE;
- XMapWindow(ob_display, self->frame.window);
- }
-}
-
-void frame_hide(ObFrame *self)
-{
- if (self->frame.visible) {
- self->frame.visible = FALSE;
- self->frame.client->ignore_unmaps++;
- XUnmapWindow(ob_display, self->frame.window);
- }
-}
-
-void frame_adjust_shape(ObFrame *self)
-{
-#ifdef SHAPE
- int num;
- XRectangle xrect[2];
-
- if (!self->frame.client->shaped) {
- /* clear the shape on the frame window */
- XShapeCombineMask(ob_display, self->frame.window, ShapeBounding,
- self->innersize.left,
- self->innersize.top,
- None, ShapeSet);
- } else {
- /* make the frame's shape match the clients */
- XShapeCombineShape(ob_display, self->frame.window, ShapeBounding,
- self->innersize.left,
- self->innersize.top,
- self->frame.client->window,
- ShapeBounding, ShapeSet);
-
- num = 0;
- if (self->frame.client->decorations & Decor_Titlebar) {
- xrect[0].x = -ob_s_bevel;
- xrect[0].y = -ob_s_bevel;
- xrect[0].width = self->width + self->bwidth * 2;
- xrect[0].height = TITLE_HEIGHT +
- self->bwidth * 2;
- ++num;
- }
-
- if (self->frame.client->decorations & Decor_Handle) {
- xrect[1].x = -ob_s_bevel;
- xrect[1].y = HANDLE_Y(self);
- xrect[1].width = self->width + self->bwidth * 2;
- xrect[1].height = ob_s_handle_height +
- self->bwidth * 2;
- ++num;
- }
-
- XShapeCombineRectangles(ob_display, self->frame.window,
- ShapeBounding, 0, 0, xrect, num,
- ShapeUnion, Unsorted);
- }
-#endif
-}
-
-void frame_adjust_area(ObFrame *self, gboolean moved, gboolean resized)
-{
- if (resized) {
- if (self->frame.client->decorations & Decor_Border) {
- self->bwidth = ob_s_bwidth;
- self->cbwidth = ob_s_cbwidth;
- } else {
- self->bwidth = self->cbwidth = 0;
- }
- STRUT_SET(self->innersize, self->cbwidth, self->cbwidth,
- self->cbwidth, self->cbwidth);
- self->width = self->frame.client->area.width + self->cbwidth * 2;
- g_assert(self->width > 0);
-
- /* set border widths */
- XSetWindowBorderWidth(ob_display, self->frame.plate, self->cbwidth);
- XSetWindowBorderWidth(ob_display, self->frame.window, self->bwidth);
- XSetWindowBorderWidth(ob_display, self->title, self->bwidth);
- XSetWindowBorderWidth(ob_display, self->handle, self->bwidth);
- XSetWindowBorderWidth(ob_display, self->lgrip, self->bwidth);
- XSetWindowBorderWidth(ob_display, self->rgrip, self->bwidth);
-
- /* position/size and map/unmap all the windows */
-
- /* they all default off, they're turned on in layout_title */
- self->icon_x = -1;
- self->desk_x = -1;
- self->shade_x = -1;
- self->iconify_x = -1;
- self->label_x = -1;
- self->max_x = -1;
- self->close_x = -1;
-
- if (self->frame.client->decorations & Decor_Titlebar) {
- XMoveResizeWindow(ob_display, self->title,
- -self->bwidth, -self->bwidth,
- self->width, TITLE_HEIGHT);
- self->innersize.top += TITLE_HEIGHT + self->bwidth;
- XMapWindow(ob_display, self->title);
-
- RECT_SET(self->a_focused_title->area, 0, 0,
- self->width, TITLE_HEIGHT);
- RECT_SET(self->a_unfocused_title->area, 0, 0,
- self->width, TITLE_HEIGHT);
-
- /* layout the title bar elements */
- layout_title(self);
- } else
- XUnmapWindow(ob_display, self->title);
-
- if (self->frame.client->decorations & Decor_Handle) {
- XMoveResizeWindow(ob_display, self->handle,
- -self->bwidth, HANDLE_Y(self),
- self->width, ob_s_handle_height);
- XMoveWindow(ob_display, self->lgrip,
- -self->bwidth, -self->bwidth);
- XMoveWindow(ob_display, self->rgrip,
- -self->bwidth + self->width -
- GRIP_WIDTH, -self->bwidth);
- self->innersize.bottom += ob_s_handle_height +
- self->bwidth;
- XMapWindow(ob_display, self->handle);
-
- if (ob_a_focused_grip->surface.data.planar.grad ==
- Background_ParentRelative)
- RECT_SET(self->a_focused_handle->area, 0, 0,
- self->width, ob_s_handle_height);
- else
- RECT_SET(self->a_focused_handle->area,
- GRIP_WIDTH + self->bwidth, 0,
- self->width - (GRIP_WIDTH + self->bwidth) * 2,
- ob_s_handle_height);
- if (ob_a_unfocused_grip->surface.data.planar.grad ==
- Background_ParentRelative)
- RECT_SET(self->a_unfocused_handle->area, 0, 0,
- self->width, ob_s_handle_height);
- else
- RECT_SET(self->a_unfocused_handle->area,
- GRIP_WIDTH + self->bwidth, 0,
- self->width - (GRIP_WIDTH + self->bwidth) * 2,
- ob_s_handle_height);
-
- } else
- XUnmapWindow(ob_display, self->handle);
- }
-
- if (resized) {
- /* move and resize the plate */
- XMoveResizeWindow(ob_display, self->frame.plate,
- self->innersize.left - self->cbwidth,
- self->innersize.top - self->cbwidth,
- self->frame.client->area.width,
- self->frame.client->area.height);
- /* when the client has StaticGravity, it likes to move around. */
- XMoveWindow(ob_display, self->frame.client->window, 0, 0);
- }
-
- if (resized) {
- STRUT_SET(self->frame.size,
- self->innersize.left + self->bwidth,
- self->innersize.top + self->bwidth,
- self->innersize.right + self->bwidth,
- self->innersize.bottom + self->bwidth);
- }
-
- /* shading can change without being moved or resized */
- RECT_SET_SIZE(self->frame.area,
- self->frame.client->area.width +
- self->frame.size.left + self->frame.size.right,
- (self->frame.client->shaded ? TITLE_HEIGHT + self->bwidth*2:
- self->frame.client->area.height +
- self->frame.size.top + self->frame.size.bottom));
-
- if (moved) {
- /* find the new coordinates, done after setting the frame.size, for
- frame_client_gravity. */
- self->frame.area.x = self->frame.client->area.x;
- self->frame.area.y = self->frame.client->area.y;
- frame_client_gravity((Frame*)self,
- &self->frame.area.x, &self->frame.area.y);
- }
-
- /* move and resize the top level frame.
- shading can change without being moved or resized */
- XMoveResizeWindow(ob_display, self->frame.window,
- self->frame.area.x, self->frame.area.y,
- self->width,
- self->frame.area.height - self->bwidth * 2);
-
- if (resized) {
- obrender_frame(self);
-
- frame_adjust_shape(self);
- }
-}
-
-void frame_adjust_state(ObFrame *self)
-{
- obrender_frame(self);
-}
-
-void frame_adjust_focus(ObFrame *self)
-{
- obrender_frame(self);
-}
-
-void frame_adjust_title(ObFrame *self)
-{
- obrender_frame(self);
-}
-
-void frame_adjust_icon(ObFrame *self)
-{
- obrender_frame(self);
-}
-
-void frame_grab_client(ObFrame *self, Client *client)
-{
- self->frame.client = client;
-
- /* reparent the client to the frame */
- XReparentWindow(ob_display, client->window, self->frame.plate, 0, 0);
- /*
- When reparenting the client window, it is usually not mapped yet, since
- this occurs from a MapRequest. However, in the case where Openbox is
- starting up, the window is already mapped, so we'll see unmap events for
- it. There are 2 unmap events generated that we see, one with the 'event'
- member set the root window, and one set to the client, but both get
- handled and need to be ignored.
- */
- if (ob_state == State_Starting)
- client->ignore_unmaps += 2;
-
- /* select the event mask on the client's parent (to receive config/map
- req's) the ButtonPress is to catch clicks on the client border */
- XSelectInput(ob_display, self->frame.plate, PLATE_EVENTMASK);
-
- /* map the client so it maps when the frame does */
- XMapWindow(ob_display, client->window);
-
- frame_adjust_area(self, TRUE, TRUE);
-
- /* set all the windows for the frame in the client_map */
- g_hash_table_insert(client_map, &self->frame.window, client);
- g_hash_table_insert(client_map, &self->frame.plate, client);
- g_hash_table_insert(client_map, &self->title, client);
- g_hash_table_insert(client_map, &self->label, client);
- g_hash_table_insert(client_map, &self->max, client);
- g_hash_table_insert(client_map, &self->close, client);
- g_hash_table_insert(client_map, &self->desk, client);
- g_hash_table_insert(client_map, &self->shade, client);
- g_hash_table_insert(client_map, &self->icon, client);
- g_hash_table_insert(client_map, &self->iconify, client);
- g_hash_table_insert(client_map, &self->handle, client);
- g_hash_table_insert(client_map, &self->lgrip, client);
- g_hash_table_insert(client_map, &self->rgrip, client);
-}
-
-void frame_release_client(ObFrame *self, Client *client)
-{
- XEvent ev;
-
- g_assert(self->frame.client == client);
-
- /* check if the app has already reparented its window away */
- if (XCheckTypedWindowEvent(ob_display, client->window,
- ReparentNotify, &ev)) {
- XPutBackEvent(ob_display, &ev);
- /* re-map the window since the unmanaging process unmaps it */
- XMapWindow(ob_display, client->window);
- } else {
- /* according to the ICCCM - if the client doesn't reparent itself,
- then we will reparent the window to root for them */
- XReparentWindow(ob_display, client->window, ob_root,
- client->area.x,
- client->area.y);
- }
-
- /* remove all the windows for the frame from the client_map */
- g_hash_table_remove(client_map, &self->frame.window);
- g_hash_table_remove(client_map, &self->frame.plate);
- g_hash_table_remove(client_map, &self->title);
- g_hash_table_remove(client_map, &self->label);
- g_hash_table_remove(client_map, &self->max);
- g_hash_table_remove(client_map, &self->close);
- g_hash_table_remove(client_map, &self->desk);
- g_hash_table_remove(client_map, &self->shade);
- g_hash_table_remove(client_map, &self->icon);
- g_hash_table_remove(client_map, &self->iconify);
- g_hash_table_remove(client_map, &self->handle);
- g_hash_table_remove(client_map, &self->lgrip);
- g_hash_table_remove(client_map, &self->rgrip);
-
- frame_free(self);
-}
-
-static void layout_title(ObFrame *self)
-{
- char *lc;
- int x;
- gboolean n, d, i, l, m, c, s;
-
- n = d = i = l = m = c = s = FALSE;
-
- /* figure out whats being shown, and the width of the label */
- self->label_width = self->width - (ob_s_bevel + 1) * 2;
- for (lc = config_engine_layout; *lc != '\0'; ++lc) {
- switch (*lc) {
- case 'N':
- if (!(self->frame.client->decorations & Decor_Icon)) break;
- if (n) { *lc = ' '; break; } /* rm duplicates */
- n = TRUE;
- self->label_width -= BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'D':
- if (!(self->frame.client->decorations & Decor_AllDesktops)) break;
- if (d) { *lc = ' '; break; } /* rm duplicates */
- d = TRUE;
- self->label_width -= BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'S':
- if (!(self->frame.client->decorations & Decor_Shade)) break;
- if (s) { *lc = ' '; break; } /* rm duplicates */
- s = TRUE;
- self->label_width -= BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'I':
- if (!(self->frame.client->decorations & Decor_Iconify)) break;
- if (i) { *lc = ' '; break; } /* rm duplicates */
- i = TRUE;
- self->label_width -= BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'L':
- if (l) { *lc = ' '; break; } /* rm duplicates */
- l = TRUE;
- break;
- case 'M':
- if (!(self->frame.client->decorations & Decor_Maximize)) break;
- if (m) { *lc = ' '; break; } /* rm duplicates */
- m = TRUE;
- self->label_width -= BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'C':
- if (!(self->frame.client->decorations & Decor_Close)) break;
- if (c) { *lc = ' '; break; } /* rm duplicates */
- c = TRUE;
- self->label_width -= BUTTON_SIZE + ob_s_bevel + 1;
- break;
- }
- }
- if (self->label_width < 1) self->label_width = 1;
-
- XResizeWindow(ob_display, self->label, self->label_width,
- LABEL_HEIGHT);
-
- if (!n) XUnmapWindow(ob_display, self->icon);
- if (!d) XUnmapWindow(ob_display, self->desk);
- if (!s) XUnmapWindow(ob_display, self->shade);
- if (!i) XUnmapWindow(ob_display, self->iconify);
- if (!l) XUnmapWindow(ob_display, self->label);
- if (!m) XUnmapWindow(ob_display, self->max);
- if (!c) XUnmapWindow(ob_display, self->close);
-
- x = ob_s_bevel + 1;
- for (lc = config_engine_layout; *lc != '\0'; ++lc) {
- switch (*lc) {
- case 'N':
- if (!n) break;
- self->icon_x = x;
- RECT_SET(self->a_icon->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE);
- XMapWindow(ob_display, self->icon);
- XMoveWindow(ob_display, self->icon, x, ob_s_bevel + 1);
- x += BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'D':
- if (!d) break;
- self->desk_x = x;
- XMapWindow(ob_display, self->desk);
- XMoveWindow(ob_display, self->desk, x, ob_s_bevel + 1);
- x += BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'S':
- if (!s) break;
- self->shade_x = x;
- XMapWindow(ob_display, self->shade);
- XMoveWindow(ob_display, self->shade, x, ob_s_bevel + 1);
- x += BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'I':
- if (!i) break;
- self->iconify_x = x;
- XMapWindow(ob_display, self->iconify);
- XMoveWindow(ob_display, self->iconify, x, ob_s_bevel + 1);
- x += BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'L':
- if (!l) break;
- self->label_x = x;
- XMapWindow(ob_display, self->label);
- XMoveWindow(ob_display, self->label, x, ob_s_bevel);
- x += self->label_width + ob_s_bevel + 1;
- break;
- case 'M':
- if (!m) break;
- self->max_x = x;
- XMapWindow(ob_display, self->max);
- XMoveWindow(ob_display, self->max, x, ob_s_bevel + 1);
- x += BUTTON_SIZE + ob_s_bevel + 1;
- break;
- case 'C':
- if (!c) break;
- self->close_x = x;
- XMapWindow(ob_display, self->close);
- XMoveWindow(ob_display, self->close, x, ob_s_bevel + 1);
- x += BUTTON_SIZE + ob_s_bevel + 1;
- break;
- }
- }
-
- RECT_SET(self->a_focused_label->area, 0, 0,
- self->label_width, LABEL_HEIGHT);
- RECT_SET(self->a_unfocused_label->area, 0, 0,
- self->label_width, LABEL_HEIGHT);
-}
-
-static void mouse_event(const ObEvent *e, ObFrame *self)
-{
- Window win;
- gboolean press = e->type == Event_X_ButtonPress;
-
- win = e->data.x.e->xbutton.window;
- if (win == self->max) {
- self->max_press = press;
- obrender_frame(self);
- } else if (win == self->close) {
- self->close_press = press;
- obrender_frame(self);
- } else if (win == self->iconify) {
- self->iconify_press = press;
- obrender_frame(self);
- } else if (win == self->desk) {
- self->desk_press = press;
- obrender_frame(self);
- } else if (win == self->shade) {
- self->shade_press = press;
- obrender_frame(self);
- }
-}
-
-Context get_context(Client *client, Window win)
-{
- ObFrame *self;
-
- if (win == ob_root) return Context_Root;
- if (client == NULL) return Context_None;
- if (win == client->window) return Context_Client;
-
- self = (ObFrame*) client->frame;
- if (win == self->frame.window) return Context_Frame;
- if (win == self->frame.plate) return Context_Client;
- if (win == self->title) return Context_Titlebar;
- if (win == self->label) return Context_Titlebar;
- if (win == self->handle) return Context_Handle;
- if (win == self->lgrip) return Context_BLCorner;
- if (win == self->rgrip) return Context_BRCorner;
- if (win == self->max) return Context_Maximize;
- if (win == self->iconify) return Context_Iconify;
- if (win == self->close) return Context_Close;
- if (win == self->icon) return Context_Icon;
- if (win == self->desk) return Context_AllDesktops;
- if (win == self->shade) return Context_Shade;
-
- return Context_None;
-}
diff --git a/engines/openbox/obengine.h b/engines/openbox/obengine.h
deleted file mode 100644
index b4cd7d48..00000000
--- a/engines/openbox/obengine.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef __engine_openbox_h
-#define __engine_openbox_h
-
-#include "../../kernel/frame.h"
-#include "../../render/render.h"
-#include "../../render/color.h"
-#include "../../render/font.h"
-#include "../../render/mask.h"
-
-#define LABEL_HEIGHT (ob_s_winfont_height + 2)
-#define TITLE_HEIGHT (LABEL_HEIGHT + ob_s_bevel * 2)
-#define HANDLE_Y(f) (f->innersize.top + f->frame.client->area.height + \
- f->cbwidth)
-#define BUTTON_SIZE (LABEL_HEIGHT - 2)
-#define GRIP_WIDTH (BUTTON_SIZE * 2)
-
-extern int ob_s_bevel;
-extern int ob_s_handle_height;
-extern int ob_s_bwidth;
-extern int ob_s_cbwidth;
-
-extern color_rgb *ob_s_b_color;
-extern color_rgb *ob_s_cb_focused_color;
-extern color_rgb *ob_s_cb_unfocused_color;
-extern color_rgb *ob_s_title_focused_color;
-extern color_rgb *ob_s_title_unfocused_color;
-extern color_rgb *ob_s_titlebut_focused_color;
-extern color_rgb *ob_s_titlebut_unfocused_color;
-
-extern int ob_s_winfont_height;
-extern ObFont *ob_s_winfont;
-
-extern pixmap_mask *ob_s_max_set_mask;
-extern pixmap_mask *ob_s_max_unset_mask;
-extern pixmap_mask *ob_s_iconify_mask;
-extern pixmap_mask *ob_s_desk_set_mask;
-extern pixmap_mask *ob_s_desk_unset_mask;
-extern pixmap_mask *ob_s_shade_set_mask;
-extern pixmap_mask *ob_s_shade_unset_mask;
-extern pixmap_mask *ob_s_close_mask;
-
-extern Appearance *ob_a_focused_unpressed_max;
-extern Appearance *ob_a_focused_pressed_max;
-extern Appearance *ob_a_focused_pressed_set_max;
-extern Appearance *ob_a_unfocused_unpressed_max;
-extern Appearance *ob_a_unfocused_pressed_max;
-extern Appearance *ob_a_unfocused_pressed_set_max;
-extern Appearance *ob_a_focused_unpressed_close;
-extern Appearance *ob_a_focused_pressed_close;
-extern Appearance *ob_a_unfocused_unpressed_close;
-extern Appearance *ob_a_unfocused_pressed_close;
-extern Appearance *ob_a_focused_unpressed_desk;
-extern Appearance *ob_a_focused_pressed_desk;
-extern Appearance *ob_a_focused_pressed_set_desk;
-extern Appearance *ob_a_unfocused_unpressed_desk;
-extern Appearance *ob_a_unfocused_pressed_desk;
-extern Appearance *ob_a_unfocused_pressed_set_desk;
-extern Appearance *ob_a_focused_unpressed_shade;
-extern Appearance *ob_a_focused_pressed_shade;
-extern Appearance *ob_a_focused_pressed_set_shade;
-extern Appearance *ob_a_unfocused_unpressed_shade;
-extern Appearance *ob_a_unfocused_pressed_shade;
-extern Appearance *ob_a_unfocused_pressed_set_shade;
-extern Appearance *ob_a_focused_unpressed_iconify;
-extern Appearance *ob_a_focused_pressed_iconify;
-extern Appearance *ob_a_unfocused_unpressed_iconify;
-extern Appearance *ob_a_unfocused_pressed_iconify;
-extern Appearance *ob_a_focused_grip;
-extern Appearance *ob_a_unfocused_grip;
-extern Appearance *ob_a_focused_title;
-extern Appearance *ob_a_unfocused_title;
-extern Appearance *ob_a_focused_label;
-extern Appearance *ob_a_unfocused_label;
-extern Appearance *ob_a_icon;
-extern Appearance *ob_a_focused_handle;
-extern Appearance *ob_a_unfocused_handle;
-
-extern Appearance *ob_app_hilite_label;
-extern Appearance *ob_app_unhilite_label;
-
-typedef struct ObFrame {
- Frame frame;
-
- Window title;
- Window label;
- Window max;
- Window close;
- Window desk;
- Window shade;
- Window icon;
- Window iconify;
- Window handle;
- Window lgrip;
- Window rgrip;
-
- Appearance *a_unfocused_title;
- Appearance *a_focused_title;
- Appearance *a_unfocused_label;
- Appearance *a_focused_label;
- Appearance *a_icon;
- Appearance *a_unfocused_handle;
- Appearance *a_focused_handle;
-
- Strut innersize;
-
- GSList *clients;
-
- int width; /* title and handle */
- int label_width;
- int icon_x; /* x-position of the window icon button */
- int label_x; /* x-position of the window title */
- int iconify_x; /* x-position of the window iconify button */
- int desk_x; /* x-position of the window all-desktops button */
- int shade_x; /* x-position of the window shade button */
- int max_x; /* x-position of the window maximize button */
- int close_x; /* x-position of the window close button */
- int bwidth; /* border width */
- int cbwidth; /* client border width */
-
- gboolean max_press;
- gboolean close_press;
- gboolean desk_press;
- gboolean shade_press;
- gboolean iconify_press;
-} ObFrame;
-
-#endif
diff --git a/engines/openbox/obrender.c b/engines/openbox/obrender.c
deleted file mode 100644
index 00272080..00000000
--- a/engines/openbox/obrender.c
+++ /dev/null
@@ -1,234 +0,0 @@
-#include "obengine.h"
-#include "../../kernel/openbox.h"
-#include "../../kernel/screen.h"
-
-static void obrender_label(ObFrame *self, Appearance *a);
-static void obrender_max(ObFrame *self, Appearance *a);
-static void obrender_icon(ObFrame *self, Appearance *a);
-static void obrender_iconify(ObFrame *self, Appearance *a);
-static void obrender_desk(ObFrame *self, Appearance *a);
-static void obrender_shade(ObFrame *self, Appearance *a);
-static void obrender_close(ObFrame *self, Appearance *a);
-
-void obrender_frame(ObFrame *self)
-{
- if (client_focused(self->frame.client)) {
- XSetWindowBorder(ob_display, self->frame.plate,
- ob_s_cb_focused_color->pixel);
- } else {
- XSetWindowBorder(ob_display, self->frame.plate,
- ob_s_cb_unfocused_color->pixel);
- }
-
- if (self->frame.client->decorations & Decor_Titlebar) {
- Appearance *t, *l, *m, *n, *i, *d, *s, *c;
-
- t = (client_focused(self->frame.client) ?
- self->a_focused_title : self->a_unfocused_title);
- l = (client_focused(self->frame.client) ?
- self->a_focused_label : self->a_unfocused_label);
- m = (client_focused(self->frame.client) ?
- (self->frame.client->max_vert || self->frame.client->max_horz ?
- ob_a_focused_pressed_set_max :
- (self->max_press ?
- ob_a_focused_pressed_max : ob_a_focused_unpressed_max)) :
- (self->frame.client->max_vert || self->frame.client->max_horz ?
- ob_a_unfocused_pressed_set_max :
- (self->max_press ?
- ob_a_unfocused_pressed_max : ob_a_unfocused_unpressed_max)));
- n = self->a_icon;
- i = (client_focused(self->frame.client) ?
- (self->iconify_press ?
- ob_a_focused_pressed_iconify : ob_a_focused_unpressed_iconify) :
- (self->iconify_press ?
- ob_a_unfocused_pressed_iconify :
- ob_a_unfocused_unpressed_iconify));
- d = (client_focused(self->frame.client) ?
- (self->frame.client->desktop == DESKTOP_ALL ?
- ob_a_focused_pressed_set_desk :
- (self->desk_press ?
- ob_a_focused_pressed_desk : ob_a_focused_unpressed_desk)) :
- (self->frame.client->desktop == DESKTOP_ALL ?
- ob_a_unfocused_pressed_set_desk :
- (self->desk_press ?
- ob_a_unfocused_pressed_desk : ob_a_unfocused_unpressed_desk)));
- s = (client_focused(self->frame.client) ?
- (self->frame.client->shaded ?
- ob_a_focused_pressed_set_shade :
- (self->shade_press ?
- ob_a_focused_pressed_shade : ob_a_focused_unpressed_shade)) :
- (self->frame.client->shaded ?
- ob_a_unfocused_pressed_set_shade :
- (self->shade_press ?
- ob_a_unfocused_pressed_shade :ob_a_unfocused_unpressed_shade)));
- c = (client_focused(self->frame.client) ?
- (self->close_press ?
- ob_a_focused_pressed_close : ob_a_focused_unpressed_close) :
- (self->close_press ?
- ob_a_unfocused_pressed_close : ob_a_unfocused_unpressed_close));
-
- paint(self->title, t);
-
- /* set parents for any parent relative guys */
- l->surface.data.planar.parent = t;
- l->surface.data.planar.parentx = self->label_x;
- l->surface.data.planar.parenty = ob_s_bevel;
-
- m->surface.data.planar.parent = t;
- m->surface.data.planar.parentx = self->max_x;
- m->surface.data.planar.parenty = ob_s_bevel + 1;
-
- n->surface.data.planar.parent = t;
- n->surface.data.planar.parentx = self->icon_x;
- n->surface.data.planar.parenty = ob_s_bevel + 1;
-
- i->surface.data.planar.parent = t;
- i->surface.data.planar.parentx = self->iconify_x;
- i->surface.data.planar.parenty = ob_s_bevel + 1;
-
- d->surface.data.planar.parent = t;
- d->surface.data.planar.parentx = self->desk_x;
- d->surface.data.planar.parenty = ob_s_bevel + 1;
-
- s->surface.data.planar.parent = t;
- s->surface.data.planar.parentx = self->shade_x;
- s->surface.data.planar.parenty = ob_s_bevel + 1;
-
- c->surface.data.planar.parent = t;
- c->surface.data.planar.parentx = self->close_x;
- c->surface.data.planar.parenty = ob_s_bevel + 1;
-
- obrender_label(self, l);
- obrender_max(self, m);
- obrender_icon(self, n);
- obrender_iconify(self, i);
- obrender_desk(self, d);
- obrender_shade(self, s);
- obrender_close(self, c);
- }
-
- if (self->frame.client->decorations & Decor_Handle) {
- Appearance *h, *g;
-
- h = (client_focused(self->frame.client) ?
- self->a_focused_handle : self->a_unfocused_handle);
- g = (client_focused(self->frame.client) ?
- ob_a_focused_grip : ob_a_unfocused_grip);
-
- if (g->surface.data.planar.grad == Background_ParentRelative) {
- g->surface.data.planar.parent = h;
- paint(self->handle, h);
- } else
- paint(self->handle, h);
-
- g->surface.data.planar.parentx = 0;
- g->surface.data.planar.parenty = 0;
-
- paint(self->lgrip, g);
-
- g->surface.data.planar.parentx = self->width - GRIP_WIDTH;
- g->surface.data.planar.parenty = 0;
-
- paint(self->rgrip, g);
- }
-}
-
-static void obrender_label(ObFrame *self, Appearance *a)
-{
- if (self->label_x < 0) return;
-
-
- /* set the texture's text! */
- a->texture[0].data.text.string = self->frame.client->title;
- RECT_SET(a->texture[0].position, 0, 0, self->label_width, LABEL_HEIGHT);
-
- paint(self->label, a);
-}
-
-static void obrender_icon(ObFrame *self, Appearance *a)
-{
- if (self->icon_x < 0) return;
-
- if (self->frame.client->nicons) {
- Icon *icon = client_icon(self->frame.client, BUTTON_SIZE, BUTTON_SIZE);
- a->texture[0].type = RGBA;
- a->texture[0].data.rgba.width = icon->width;
- a->texture[0].data.rgba.height = icon->height;
- a->texture[0].data.rgba.data = icon->data;
- RECT_SET(self->a_icon->texture[0].position, 0, 0,
- BUTTON_SIZE,BUTTON_SIZE);
- } else
- a->texture[0].type = NoTexture;
-
- paint(self->icon, a);
-}
-
-static void obrender_max(ObFrame *self, Appearance *a)
-{
- if (self->max_x < 0) return;
-
- RECT_SET(a->texture[0].position, 0, 0, BUTTON_SIZE,BUTTON_SIZE);
- paint(self->max, a);
-}
-
-static void obrender_iconify(ObFrame *self, Appearance *a)
-{
- if (self->iconify_x < 0) return;
-
- RECT_SET(a->texture[0].position, 0, 0, BUTTON_SIZE,BUTTON_SIZE);
- paint(self->iconify, a);
-}
-
-static void obrender_desk(ObFrame *self, Appearance *a)
-{
- if (self->desk_x < 0) return;
-
- RECT_SET(a->texture[0].position, 0, 0, BUTTON_SIZE,BUTTON_SIZE);
- paint(self->desk, a);
-}
-
-static void obrender_shade(ObFrame *self, Appearance *a)
-{
- if (self->shade_x < 0) return;
-
- RECT_SET(a->texture[0].position, 0, 0, BUTTON_SIZE,BUTTON_SIZE);
- paint(self->shade, a);
-}
-
-static void obrender_close(ObFrame *self, Appearance *a)
-{
- if (self->close_x < 0) return;
-
- RECT_SET(a->texture[0].position, 0, 0, BUTTON_SIZE,BUTTON_SIZE);
- paint(self->close, a);
-}
-
-void render_label(Window win, Size *sz, char *text,
- gboolean hilight, gboolean toplevel)
-{
- Appearance *a;
-
- a = hilight ? ob_app_hilite_label : ob_app_unhilite_label;
- a->texture[0].data.text.string = text;
- RECT_SET(a->area, 0, 0, sz->width, sz->height);
- a->texture[0].position = a->area;
-
- if (toplevel) {
- XSetWindowBorderWidth(ob_display, win, ob_s_bwidth);
- XSetWindowBorder(ob_display, win, ob_s_b_color->pixel);
- }
-
- paint(win, a);
-}
-
-void size_label(char *text, gboolean hilight, gboolean toplevel, Size *s)
-{
- Appearance *a;
-
- a = hilight ? ob_app_hilite_label : ob_app_unhilite_label;
- a->texture[0].data.text.string = text;
-
- appearance_minsize(a, s);
- s->width += ob_s_bevel * 2;
- s->height += ob_s_bevel * 2;
-}
diff --git a/engines/openbox/obrender.h b/engines/openbox/obrender.h
deleted file mode 100644
index 8845c925..00000000
--- a/engines/openbox/obrender.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __engines_openbox_render_h
-#define __engines_openbox_render_h
-
-#include "obengine.h"
-
-void obrender_frame(ObFrame *self);
-
-#endif
diff --git a/engines/openbox/obtheme.c b/engines/openbox/obtheme.c
deleted file mode 100644
index 533559f9..00000000
--- a/engines/openbox/obtheme.c
+++ /dev/null
@@ -1,624 +0,0 @@
-#include "obengine.h"
-#include "kernel/openbox.h"
-#include "kernel/config.h"
-
-#include <glib.h>
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#ifdef HAVE_CTYPE_H
-# include <ctype.h>
-#endif
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-
-static XrmDatabase loaddb(char *theme)
-{
- XrmDatabase db;
-
- db = XrmGetFileDatabase(theme);
- if (db == NULL) {
- char *s = g_build_filename(g_get_home_dir(), ".openbox", "themes",
- "openbox", theme, NULL);
- db = XrmGetFileDatabase(s);
- g_free(s);
- }
- if (db == NULL) {
- char *s = g_build_filename(THEMEDIR, theme, NULL);
- db = XrmGetFileDatabase(s);
- g_free(s);
- }
- return db;
-}
-
-static char *create_class_name(char *rname)
-{
- char *rclass = g_strdup(rname);
- char *p = rclass;
-
- while (TRUE) {
- *p = toupper(*p);
- p = strchr(p+1, '.');
- if (p == NULL) break;
- ++p;
- if (*p == '\0') break;
- }
- return rclass;
-}
-
-static gboolean read_int(XrmDatabase db, char *rname, int *value)
-{
- gboolean ret = FALSE;
- char *rclass = create_class_name(rname);
- char *rettype, *end;
- XrmValue retvalue;
-
- if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) &&
- retvalue.addr != NULL) {
- *value = (int)strtol(retvalue.addr, &end, 10);
- if (end != retvalue.addr)
- ret = TRUE;
- }
-
- g_free(rclass);
- return ret;
-}
-
-static gboolean read_string(XrmDatabase db, char *rname, char **value)
-{
- gboolean ret = FALSE;
- char *rclass = create_class_name(rname);
- char *rettype;
- XrmValue retvalue;
-
- if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) &&
- retvalue.addr != NULL) {
- *value = g_strdup(retvalue.addr);
- ret = TRUE;
- }
-
- g_free(rclass);
- return ret;
-}
-
-static gboolean read_color(XrmDatabase db, char *rname, color_rgb **value)
-{
- gboolean ret = FALSE;
- char *rclass = create_class_name(rname);
- char *rettype;
- XrmValue retvalue;
-
- if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) &&
- retvalue.addr != NULL) {
- color_rgb *c = color_parse(retvalue.addr);
- if (c != NULL) {
- *value = c;
- ret = TRUE;
- }
- }
-
- g_free(rclass);
- return ret;
-}
-
-static gboolean read_mask(XrmDatabase db, char *rname, pixmap_mask **value)
-{
- gboolean ret = FALSE;
- char *rclass = create_class_name(rname);
- char *rettype;
- char *s;
- char *button_dir;
- XrmValue retvalue;
- int hx, hy; /* ignored */
- unsigned int w, h;
- unsigned char *b;
-
- if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) &&
- retvalue.addr != NULL) {
-
- button_dir = g_strdup_printf("%s_buttons", config_engine_theme);
-
- s = g_build_filename(g_get_home_dir(), ".openbox", "themes",
- "openbox", button_dir, retvalue.addr, NULL);
-
- if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) == BitmapSuccess)
- ret = TRUE;
- else {
- g_free(s);
- s = g_build_filename(THEMEDIR, button_dir, retvalue.addr, NULL);
-
- if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) == BitmapSuccess)
- ret = TRUE;
- else {
- char *themename;
-
- g_free(s);
- themename = g_path_get_basename(config_engine_theme);
- s = g_strdup_printf("%s/%s_buttons/%s", config_engine_theme,
- themename, retvalue.addr);
- g_free(themename);
- if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) ==
- BitmapSuccess)
- ret = TRUE;
- else
- g_message("Unable to find bitmap '%s'", retvalue.addr);
- }
- }
-
- if (ret) {
- *value = pixmap_mask_new(w, h, (char*)b);
- XFree(b);
- }
-
- g_free(s);
- g_free(button_dir);
- }
-
- g_free(rclass);
- return ret;
-}
-
-static void parse_appearance(char *tex, SurfaceColorType *grad,
- ReliefType *relief, BevelType *bevel,
- gboolean *interlaced, gboolean *border)
-{
- char *t;
-
- /* convert to all lowercase */
- for (t = tex; *t != '\0'; ++t)
- *t = g_ascii_tolower(*t);
-
- if (strstr(tex, "parentrelative") != NULL) {
- *grad = Background_ParentRelative;
- } else {
- if (strstr(tex, "gradient") != NULL) {
- if (strstr(tex, "crossdiagonal") != NULL)
- *grad = Background_CrossDiagonal;
- else if (strstr(tex, "rectangle") != NULL)
- *grad = Background_Rectangle;
- else if (strstr(tex, "pyramid") != NULL)
- *grad = Background_Pyramid;
- else if (strstr(tex, "pipecross") != NULL)
- *grad = Background_PipeCross;
- else if (strstr(tex, "elliptic") != NULL)
- *grad = Background_Elliptic;
- else if (strstr(tex, "horizontal") != NULL)
- *grad = Background_Horizontal;
- else if (strstr(tex, "vertical") != NULL)
- *grad = Background_Vertical;
- else
- *grad = Background_Diagonal;
- } else {
- *grad = Background_Solid;
- }
-
- if (strstr(tex, "sunken") != NULL)
- *relief = Sunken;
- else if (strstr(tex, "flat") != NULL)
- *relief = Flat;
- else
- *relief = Raised;
-
- *border = FALSE;
- if (*relief == Flat) {
- if (strstr(tex, "border") != NULL)
- *border = TRUE;
- } else {
- if (strstr(tex, "bevel2") != NULL)
- *bevel = Bevel2;
- else
- *bevel = Bevel1;
- }
-
- if (strstr(tex, "interlaced") != NULL)
- *interlaced = TRUE;
- else
- *interlaced = FALSE;
- }
-}
-
-
-static gboolean read_appearance(XrmDatabase db, char *rname, Appearance *value)
-{
- gboolean ret = FALSE;
- char *rclass = create_class_name(rname), *cname, *ctoname, *bcname;
- char *rettype;
- XrmValue retvalue;
-
- cname = g_strconcat(rname, ".color", NULL);
- ctoname = g_strconcat(rname, ".colorTo", NULL);
- bcname = g_strconcat(rname, ".borderColor", NULL);
-
- if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) &&
- retvalue.addr != NULL) {
- parse_appearance(retvalue.addr,
- &value->surface.data.planar.grad,
- &value->surface.data.planar.relief,
- &value->surface.data.planar.bevel,
- &value->surface.data.planar.interlaced,
- &value->surface.data.planar.border);
- if (!read_color(db, cname, &value->surface.data.planar.primary))
- value->surface.data.planar.primary = color_new(0, 0, 0);
- if (!read_color(db, ctoname, &value->surface.data.planar.secondary))
- value->surface.data.planar.secondary = color_new(0, 0, 0);
- if (value->surface.data.planar.border)
- if (!read_color(db, bcname,
- &value->surface.data.planar.border_color))
- value->surface.data.planar.border_color = color_new(0, 0, 0);
- ret = TRUE;
- }
-
- g_free(bcname);
- g_free(ctoname);
- g_free(cname);
- g_free(rclass);
- return ret;
-}
-
-static void set_default_appearance(Appearance *a)
-{
- a->surface.data.planar.grad = Background_Solid;
- a->surface.data.planar.relief = Flat;
- a->surface.data.planar.bevel = Bevel1;
- a->surface.data.planar.interlaced = FALSE;
- a->surface.data.planar.border = FALSE;
- a->surface.data.planar.primary = color_new(0, 0, 0);
- a->surface.data.planar.secondary = color_new(0, 0, 0);
-}
-
-gboolean obtheme_load()
-{
- XrmDatabase db = NULL;
- Justify winjust;
- char *winjuststr;
-
- if (config_engine_theme) {
- db = loaddb(config_engine_theme);
- if (db == NULL) {
- g_warning("Failed to load the theme '%s'", config_engine_theme);
- g_message("Falling back to the default: '%s'", DEFAULT_THEME);
- }
- }
- if (db == NULL) {
- db = loaddb(DEFAULT_THEME);
- if (db == NULL) {
- g_warning("Failed to load the theme '%s'.", DEFAULT_THEME);
- return FALSE;
- }
- /* set it to what was loaded */
- g_free(config_engine_theme);
- config_engine_theme = g_strdup(DEFAULT_THEME);
- }
-
- /* load the font, not from the theme file tho, its in the config */
-
- ob_s_winfont = font_open(config_engine_font);
- ob_s_winfont_height = font_height(ob_s_winfont, config_engine_shadow,
- config_engine_shadow_offset);
-
- winjust = Justify_Left;
- if (read_string(db, "window.justify", &winjuststr)) {
- if (!g_ascii_strcasecmp(winjuststr, "right"))
- winjust = Justify_Right;
- else if (!g_ascii_strcasecmp(winjuststr, "center"))
- winjust = Justify_Center;
- g_free(winjuststr);
- }
-
- if (!read_int(db, "handleWidth", &ob_s_handle_height) ||
- ob_s_handle_height < 0 || ob_s_handle_height > 100)
- ob_s_handle_height = 6;
- if (!read_int(db, "bevelWidth", &ob_s_bevel) ||
- ob_s_bevel <= 0 || ob_s_bevel > 100) ob_s_bevel = 3;
- if (!read_int(db, "borderWidth", &ob_s_bwidth) ||
- ob_s_bwidth < 0 || ob_s_bwidth > 100) ob_s_bwidth = 1;
- if (!read_int(db, "frameWidth", &ob_s_cbwidth) ||
- ob_s_cbwidth < 0 || ob_s_cbwidth > 100) ob_s_cbwidth = ob_s_bevel;
-
- if (!read_color(db, "borderColor", &ob_s_b_color))
- ob_s_b_color = color_new(0, 0, 0);
- if (!read_color(db, "window.frame.focusColor", &ob_s_cb_focused_color))
- ob_s_cb_focused_color = color_new(0xff, 0xff, 0xff);
- if (!read_color(db, "window.frame.unfocusColor", &ob_s_cb_unfocused_color))
- ob_s_cb_unfocused_color = color_new(0xff, 0xff, 0xff);
- if (!read_color(db, "window.label.focus.textColor",
- &ob_s_title_focused_color))
- ob_s_title_focused_color = color_new(0x0, 0x0, 0x0);
- if (!read_color(db, "window.label.unfocus.textColor",
- &ob_s_title_unfocused_color))
- ob_s_title_unfocused_color = color_new(0xff, 0xff, 0xff);
- if (!read_color(db, "window.button.focus.picColor",
- &ob_s_titlebut_focused_color))
- ob_s_titlebut_focused_color = color_new(0, 0, 0);
- if (!read_color(db, "window.button.unfocus.picColor",
- &ob_s_titlebut_unfocused_color))
- ob_s_titlebut_unfocused_color = color_new(0xff, 0xff, 0xff);
-
- if (read_mask(db, "window.button.max.mask", &ob_s_max_unset_mask)) {
- if (!read_mask(db, "window.button.max.toggled.mask",
- &ob_s_max_set_mask)) {
- ob_s_max_set_mask = pixmap_mask_copy(ob_s_max_unset_mask);
- }
- } else {
- {
- char data[] = { 0x7f, 0x7f, 0x7f, 0x41, 0x41, 0x41, 0x7f };
- ob_s_max_unset_mask = pixmap_mask_new(7, 7, data);
- }
- {
- char data[] = { 0x7c, 0x44, 0x47, 0x47, 0x7f, 0x1f, 0x1f };
- ob_s_max_set_mask = pixmap_mask_new(7, 7, data);
- }
- }
-
- if (!read_mask(db, "window.button.icon.mask",
- &ob_s_iconify_mask)) {
- char data[] = { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f };
- ob_s_iconify_mask = pixmap_mask_new(7, 7, data);
- }
-
- if (read_mask(db, "window.button.stick.mask",
- &ob_s_desk_unset_mask)) {
- if (!read_mask(db, "window.button.stick.toggled.mask",
- &ob_s_desk_set_mask)) {
- ob_s_desk_set_mask =
- pixmap_mask_copy(ob_s_desk_unset_mask);
- }
- } else {
- {
- char data[] = { 0x63, 0x63, 0x00, 0x00, 0x00, 0x63, 0x63 };
- ob_s_desk_unset_mask = pixmap_mask_new(7, 7, data);
- }
- {
- char data[] = { 0x00, 0x36, 0x36, 0x08, 0x36, 0x36, 0x00 };
- ob_s_desk_set_mask = pixmap_mask_new(7, 7, data);
- }
- }
-
- if (read_mask(db, "window.button.shade.mask",
- &ob_s_shade_unset_mask)) {
- if (!read_mask(db, "window.button.shade.toggled.mask",
- &ob_s_shade_set_mask)) {
- ob_s_shade_set_mask =
- pixmap_mask_copy(ob_s_shade_unset_mask);
- }
- } else {
- {
- char data[] = { 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00 };
- ob_s_shade_unset_mask = pixmap_mask_new(7, 7, data);
- }
- {
- char data[] = { 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x7f };
- ob_s_shade_set_mask = pixmap_mask_new(7, 7, data);
- }
- }
-
- if (!read_mask(db, "window.button.close.mask",
- &ob_s_close_mask)) {
- char data[] = { 0x63, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x63 };
- ob_s_close_mask = pixmap_mask_new(7, 7, data);
- }
-
- /* read the decoration textures */
- if (!read_appearance(db, "window.title.focus", ob_a_focused_title))
- set_default_appearance(ob_a_focused_title);
- if (!read_appearance(db, "window.title.unfocus", ob_a_unfocused_title))
- set_default_appearance(ob_a_unfocused_title);
- if (!read_appearance(db, "window.label.focus", ob_a_focused_label))
- set_default_appearance(ob_a_focused_label);
- if (!read_appearance(db, "window.label.unfocus", ob_a_unfocused_label))
- set_default_appearance(ob_a_unfocused_label);
- if (!read_appearance(db, "window.handle.focus", ob_a_focused_handle))
- set_default_appearance(ob_a_focused_handle);
- if (!read_appearance(db, "window.handle.unfocus", ob_a_unfocused_handle))
- set_default_appearance(ob_a_unfocused_handle);
- if (!read_appearance(db, "window.grip.focus", ob_a_focused_grip))
- set_default_appearance(ob_a_focused_grip);
- if (!read_appearance(db, "window.grip.unfocus", ob_a_unfocused_grip))
- set_default_appearance(ob_a_unfocused_grip);
-
- /* read the appearances for rendering non-decorations. these cannot be
- parent-relative */
- if (ob_a_focused_label->surface.data.planar.grad !=
- Background_ParentRelative) {
- if (!read_appearance(db, "window.label.focus", ob_app_hilite_label))
- set_default_appearance(ob_app_hilite_label);
- } else {
- if (!read_appearance(db, "window.title.focus", ob_app_hilite_label))
- set_default_appearance(ob_app_hilite_label);
- }
- if (ob_a_unfocused_label->surface.data.planar.grad !=
- Background_ParentRelative) {
- if (!read_appearance(db, "window.label.unfocus",ob_app_unhilite_label))
- set_default_appearance(ob_app_unhilite_label);
- } else {
- if (!read_appearance(db, "window.title.unfocus",ob_app_unhilite_label))
- set_default_appearance(ob_app_unhilite_label);
- }
-
- /* read buttons textures */
- if (!read_appearance(db, "window.button.pressed.focus",
- ob_a_focused_pressed_max))
- if (!read_appearance(db, "window.button.pressed",
- ob_a_focused_pressed_max))
- set_default_appearance(ob_a_focused_pressed_max);
- if (!read_appearance(db, "window.button.pressed.unfocus",
- ob_a_unfocused_pressed_max))
- if (!read_appearance(db, "window.button.pressed",
- ob_a_unfocused_pressed_max))
- set_default_appearance(ob_a_unfocused_pressed_max);
- if (!read_appearance(db, "window.button.focus",
- ob_a_focused_unpressed_max))
- set_default_appearance(ob_a_focused_unpressed_max);
- if (!read_appearance(db, "window.button.unfocus",
- ob_a_unfocused_unpressed_max))
- set_default_appearance(ob_a_unfocused_unpressed_max);
-
- ob_a_unfocused_unpressed_close =
- appearance_copy(ob_a_unfocused_unpressed_max);
- ob_a_unfocused_pressed_close = appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_focused_unpressed_close = appearance_copy(ob_a_focused_unpressed_max);
- ob_a_focused_pressed_close = appearance_copy(ob_a_focused_pressed_max);
- ob_a_unfocused_unpressed_desk =
- appearance_copy(ob_a_unfocused_unpressed_max);
- ob_a_unfocused_pressed_desk = appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_unfocused_pressed_set_desk =
- appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_focused_unpressed_desk = appearance_copy(ob_a_focused_unpressed_max);
- ob_a_focused_pressed_desk = appearance_copy(ob_a_focused_pressed_max);
- ob_a_focused_pressed_set_desk = appearance_copy(ob_a_focused_pressed_max);
- ob_a_unfocused_unpressed_shade =
- appearance_copy(ob_a_unfocused_unpressed_max);
- ob_a_unfocused_pressed_shade = appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_unfocused_pressed_set_shade =
- appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_focused_unpressed_shade = appearance_copy(ob_a_focused_unpressed_max);
- ob_a_focused_pressed_shade = appearance_copy(ob_a_focused_pressed_max);
- ob_a_focused_pressed_set_shade = appearance_copy(ob_a_focused_pressed_max);
- ob_a_unfocused_unpressed_iconify =
- appearance_copy(ob_a_unfocused_unpressed_max);
- ob_a_unfocused_pressed_iconify =
- appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_focused_unpressed_iconify =
- appearance_copy(ob_a_focused_unpressed_max);
- ob_a_focused_pressed_iconify = appearance_copy(ob_a_focused_pressed_max);
- ob_a_unfocused_pressed_set_max =
- appearance_copy(ob_a_unfocused_pressed_max);
- ob_a_focused_pressed_set_max = appearance_copy(ob_a_focused_pressed_max);
-
- ob_a_icon->surface.data.planar.grad = Background_ParentRelative;
-
- /* set up the textures */
- ob_a_focused_label->texture[0].type = Text;
- ob_a_focused_label->texture[0].data.text.justify = winjust;
- ob_a_focused_label->texture[0].data.text.font = ob_s_winfont;
- ob_a_focused_label->texture[0].data.text.shadow = config_engine_shadow;
- ob_a_focused_label->texture[0].data.text.offset =
- config_engine_shadow_offset;
- ob_a_focused_label->texture[0].data.text.tint = config_engine_shadow_tint;
- ob_a_focused_label->texture[0].data.text.color = ob_s_title_focused_color;
- ob_app_hilite_label->texture[0].type = Text;
- ob_app_hilite_label->texture[0].data.text.justify = winjust;
- ob_app_hilite_label->texture[0].data.text.font = ob_s_winfont;
- ob_app_hilite_label->texture[0].data.text.shadow = config_engine_shadow;
- ob_app_hilite_label->texture[0].data.text.offset =
- config_engine_shadow_offset;
- ob_app_hilite_label->texture[0].data.text.tint = config_engine_shadow_tint;
- ob_app_hilite_label->texture[0].data.text.color = ob_s_title_focused_color;
-
- ob_a_unfocused_label->texture[0].type = Text;
- ob_a_unfocused_label->texture[0].data.text.justify = winjust;
- ob_a_unfocused_label->texture[0].data.text.font = ob_s_winfont;
- ob_a_unfocused_label->texture[0].data.text.shadow = config_engine_shadow;
- ob_a_unfocused_label->texture[0].data.text.offset =
- config_engine_shadow_offset;
- ob_a_unfocused_label->texture[0].data.text.tint =config_engine_shadow_tint;
- ob_a_unfocused_label->texture[0].data.text.color =
- ob_s_title_unfocused_color;
- ob_app_unhilite_label->texture[0].type = Text;
- ob_app_unhilite_label->texture[0].data.text.justify = winjust;
- ob_app_unhilite_label->texture[0].data.text.font = ob_s_winfont;
- ob_app_unhilite_label->texture[0].data.text.shadow = config_engine_shadow;
- ob_app_unhilite_label->texture[0].data.text.offset =
- config_engine_shadow_offset;
- ob_app_unhilite_label->texture[0].data.text.tint =
- config_engine_shadow_tint;
- ob_app_unhilite_label->texture[0].data.text.color =
- ob_s_title_unfocused_color;
-
- ob_a_focused_unpressed_max->texture[0].type =
- ob_a_focused_pressed_max->texture[0].type =
- ob_a_focused_pressed_set_max->texture[0].type =
- ob_a_unfocused_unpressed_max->texture[0].type =
- ob_a_unfocused_pressed_max->texture[0].type =
- ob_a_unfocused_pressed_set_max->texture[0].type =
- ob_a_focused_unpressed_close->texture[0].type =
- ob_a_focused_pressed_close->texture[0].type =
- ob_a_unfocused_unpressed_close->texture[0].type =
- ob_a_unfocused_pressed_close->texture[0].type =
- ob_a_focused_unpressed_desk->texture[0].type =
- ob_a_focused_pressed_desk->texture[0].type =
- ob_a_focused_pressed_set_desk->texture[0].type =
- ob_a_unfocused_unpressed_desk->texture[0].type =
- ob_a_unfocused_pressed_desk->texture[0].type =
- ob_a_unfocused_pressed_set_desk->texture[0].type =
- ob_a_focused_unpressed_shade->texture[0].type =
- ob_a_focused_pressed_shade->texture[0].type =
- ob_a_focused_pressed_set_shade->texture[0].type =
- ob_a_unfocused_unpressed_shade->texture[0].type =
- ob_a_unfocused_pressed_shade->texture[0].type =
- ob_a_unfocused_pressed_set_shade->texture[0].type =
- ob_a_focused_unpressed_iconify->texture[0].type =
- ob_a_focused_pressed_iconify->texture[0].type =
- ob_a_unfocused_unpressed_iconify->texture[0].type =
- ob_a_unfocused_pressed_iconify->texture[0].type = Bitmask;
- ob_a_focused_unpressed_max->texture[0].data.mask.mask =
- ob_a_unfocused_unpressed_max->texture[0].data.mask.mask =
- ob_a_focused_pressed_max->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_max->texture[0].data.mask.mask =
- ob_s_max_unset_mask;
- ob_a_focused_pressed_set_max->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_set_max->texture[0].data.mask.mask =
- ob_s_max_set_mask;
- ob_a_focused_pressed_close->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_close->texture[0].data.mask.mask =
- ob_a_focused_unpressed_close->texture[0].data.mask.mask =
- ob_a_unfocused_unpressed_close->texture[0].data.mask.mask =
- ob_s_close_mask;
- ob_a_focused_unpressed_desk->texture[0].data.mask.mask =
- ob_a_unfocused_unpressed_desk->texture[0].data.mask.mask =
- ob_a_focused_pressed_desk->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_desk->texture[0].data.mask.mask =
- ob_s_desk_unset_mask;
- ob_a_focused_pressed_set_desk->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_set_desk->texture[0].data.mask.mask =
- ob_s_desk_set_mask;
- ob_a_focused_unpressed_shade->texture[0].data.mask.mask =
- ob_a_unfocused_unpressed_shade->texture[0].data.mask.mask =
- ob_a_focused_pressed_shade->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_shade->texture[0].data.mask.mask =
- ob_s_shade_unset_mask;
- ob_a_focused_pressed_set_shade->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_set_shade->texture[0].data.mask.mask =
- ob_s_shade_set_mask;
- ob_a_focused_unpressed_iconify->texture[0].data.mask.mask =
- ob_a_unfocused_unpressed_iconify->texture[0].data.mask.mask =
- ob_a_focused_pressed_iconify->texture[0].data.mask.mask =
- ob_a_unfocused_pressed_iconify->texture[0].data.mask.mask =
- ob_s_iconify_mask;
- ob_a_focused_unpressed_max->texture[0].data.mask.color =
- ob_a_focused_pressed_max->texture[0].data.mask.color =
- ob_a_focused_pressed_set_max->texture[0].data.mask.color =
- ob_a_focused_unpressed_close->texture[0].data.mask.color =
- ob_a_focused_pressed_close->texture[0].data.mask.color =
- ob_a_focused_unpressed_desk->texture[0].data.mask.color =
- ob_a_focused_pressed_desk->texture[0].data.mask.color =
- ob_a_focused_pressed_set_desk->texture[0].data.mask.color =
- ob_a_focused_unpressed_shade->texture[0].data.mask.color =
- ob_a_focused_pressed_shade->texture[0].data.mask.color =
- ob_a_focused_pressed_set_shade->texture[0].data.mask.color =
- ob_a_focused_unpressed_iconify->texture[0].data.mask.color =
- ob_a_focused_pressed_iconify->texture[0].data.mask.color =
- ob_s_titlebut_focused_color;
- ob_a_unfocused_unpressed_max->texture[0].data.mask.color =
- ob_a_unfocused_pressed_max->texture[0].data.mask.color =
- ob_a_unfocused_pressed_set_max->texture[0].data.mask.color =
- ob_a_unfocused_unpressed_close->texture[0].data.mask.color =
- ob_a_unfocused_pressed_close->texture[0].data.mask.color =
- ob_a_unfocused_unpressed_desk->texture[0].data.mask.color =
- ob_a_unfocused_pressed_desk->texture[0].data.mask.color =
- ob_a_unfocused_pressed_set_desk->texture[0].data.mask.color =
- ob_a_unfocused_unpressed_shade->texture[0].data.mask.color =
- ob_a_unfocused_pressed_shade->texture[0].data.mask.color =
- ob_a_unfocused_pressed_set_shade->texture[0].data.mask.color =
- ob_a_unfocused_unpressed_iconify->texture[0].data.mask.color =
- ob_a_unfocused_pressed_iconify->texture[0].data.mask.color =
- ob_s_titlebut_unfocused_color;
-
- XrmDestroyDatabase(db);
- return TRUE;
-}
-
-
diff --git a/engines/openbox/obtheme.h b/engines/openbox/obtheme.h
deleted file mode 100644
index 11dae6c8..00000000
--- a/engines/openbox/obtheme.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __engine_theme_h
-#define __engine_theme_h
-
-#include <glib.h>
-
-gboolean obtheme_load();
-
-#endif