#include "screen.h"
#include "client.h"
#include "framerender.h"
-#include "render/theme.h"
+#include "obrender/theme.h"
static void framerender_label(ObFrame *self, RrAppearance *a);
static void framerender_icon(ObFrame *self, RrAppearance *a);
XSetWindowBackground(obt_display, self->innerbrb, px);
XClearWindow(obt_display, self->innerbrb);
- px = (self->focused ?
- RrColorPixel(ob_rr_theme->frame_focused_border_color) :
- RrColorPixel(ob_rr_theme->frame_unfocused_border_color));
+ px = RrColorPixel(self->focused ?
+ (self->client->undecorated ?
+ ob_rr_theme->frame_undecorated_focused_border_color :
+ ob_rr_theme->frame_focused_border_color) :
+ (self->client->undecorated ?
+ ob_rr_theme->frame_undecorated_unfocused_border_color :
+ ob_rr_theme->frame_unfocused_border_color));
XSetWindowBackground(obt_display, self->left, px);
XClearWindow(obt_display, self->left);
t = ob_rr_theme->a_focused_title;
l = ob_rr_theme->a_focused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
- ob_rr_theme->a_disabled_focused_max :
+ ob_rr_theme->btn_max->a_disabled_focused :
(self->client->max_vert || self->client->max_horz ?
(self->max_press ?
- ob_rr_theme->a_toggled_focused_pressed_max :
+ ob_rr_theme->btn_max->a_toggled_focused_pressed :
(self->max_hover ?
- ob_rr_theme->a_toggled_hover_focused_max :
- ob_rr_theme->a_toggled_focused_unpressed_max)) :
+ ob_rr_theme->btn_max->a_toggled_hover_focused :
+ ob_rr_theme->btn_max->a_toggled_focused_unpressed)) :
(self->max_press ?
- ob_rr_theme->a_focused_pressed_max :
+ ob_rr_theme->btn_max->a_focused_pressed :
(self->max_hover ?
- ob_rr_theme->a_hover_focused_max :
- ob_rr_theme->a_focused_unpressed_max))));
+ ob_rr_theme->btn_max->a_hover_focused :
+ ob_rr_theme->btn_max->a_focused_unpressed))));
n = ob_rr_theme->a_icon;
i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ?
- ob_rr_theme->a_disabled_focused_iconify :
+ ob_rr_theme->btn_iconify->a_disabled_focused :
(self->iconify_press ?
- ob_rr_theme->a_focused_pressed_iconify :
+ ob_rr_theme->btn_iconify->a_focused_pressed :
(self->iconify_hover ?
- ob_rr_theme->a_hover_focused_iconify :
- ob_rr_theme->a_focused_unpressed_iconify)));
+ ob_rr_theme->btn_iconify->a_hover_focused :
+ ob_rr_theme->btn_iconify->a_focused_unpressed)));
d = (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) ?
- ob_rr_theme->a_disabled_focused_desk :
+ ob_rr_theme->btn_desk->a_disabled_focused :
(self->client->desktop == DESKTOP_ALL ?
(self->desk_press ?
- ob_rr_theme->a_toggled_focused_pressed_desk :
+ ob_rr_theme->btn_desk->a_toggled_focused_pressed :
(self->desk_hover ?
- ob_rr_theme->a_toggled_hover_focused_desk :
- ob_rr_theme->a_toggled_focused_unpressed_desk)) :
+ ob_rr_theme->btn_desk->a_toggled_hover_focused :
+ ob_rr_theme->btn_desk->a_toggled_focused_unpressed)) :
(self->desk_press ?
- ob_rr_theme->a_focused_pressed_desk :
+ ob_rr_theme->btn_desk->a_focused_pressed :
(self->desk_hover ?
- ob_rr_theme->a_hover_focused_desk :
- ob_rr_theme->a_focused_unpressed_desk))));
+ ob_rr_theme->btn_desk->a_hover_focused :
+ ob_rr_theme->btn_desk->a_focused_unpressed))));
s = (!(self->decorations & OB_FRAME_DECOR_SHADE) ?
- ob_rr_theme->a_disabled_focused_shade :
+ ob_rr_theme->btn_shade->a_disabled_focused :
(self->client->shaded ?
(self->shade_press ?
- ob_rr_theme->a_toggled_focused_pressed_shade :
+ ob_rr_theme->btn_shade->a_toggled_focused_pressed :
(self->shade_hover ?
- ob_rr_theme->a_toggled_hover_focused_shade :
- ob_rr_theme->a_toggled_focused_unpressed_shade)) :
+ ob_rr_theme->btn_shade->a_toggled_hover_focused :
+ ob_rr_theme->btn_shade->a_toggled_focused_unpressed)) :
(self->shade_press ?
- ob_rr_theme->a_focused_pressed_shade :
+ ob_rr_theme->btn_shade->a_focused_pressed :
(self->shade_hover ?
- ob_rr_theme->a_hover_focused_shade :
- ob_rr_theme->a_focused_unpressed_shade))));
+ ob_rr_theme->btn_shade->a_hover_focused :
+ ob_rr_theme->btn_shade->a_focused_unpressed))));
c = (!(self->decorations & OB_FRAME_DECOR_CLOSE) ?
- ob_rr_theme->a_disabled_focused_close :
+ ob_rr_theme->btn_close->a_disabled_focused :
(self->close_press ?
- ob_rr_theme->a_focused_pressed_close :
+ ob_rr_theme->btn_close->a_focused_pressed :
(self->close_hover ?
- ob_rr_theme->a_hover_focused_close :
- ob_rr_theme->a_focused_unpressed_close)));
+ ob_rr_theme->btn_close->a_hover_focused :
+ ob_rr_theme->btn_close->a_focused_unpressed)));
} else {
t = ob_rr_theme->a_unfocused_title;
l = ob_rr_theme->a_unfocused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
- ob_rr_theme->a_disabled_unfocused_max :
+ ob_rr_theme->btn_max->a_disabled_unfocused :
(self->client->max_vert || self->client->max_horz ?
(self->max_press ?
- ob_rr_theme->a_toggled_unfocused_pressed_max :
+ ob_rr_theme->btn_max->a_toggled_unfocused_pressed :
(self->max_hover ?
- ob_rr_theme->a_toggled_hover_unfocused_max :
- ob_rr_theme->a_toggled_unfocused_unpressed_max)) :
+ ob_rr_theme->btn_max->a_toggled_hover_unfocused :
+ ob_rr_theme->btn_max->a_toggled_unfocused_unpressed)) :
(self->max_press ?
- ob_rr_theme->a_unfocused_pressed_max :
+ ob_rr_theme->btn_max->a_unfocused_pressed :
(self->max_hover ?
- ob_rr_theme->a_hover_unfocused_max :
- ob_rr_theme->a_unfocused_unpressed_max))));
+ ob_rr_theme->btn_max->a_hover_unfocused :
+ ob_rr_theme->btn_max->a_unfocused_unpressed))));
n = ob_rr_theme->a_icon;
i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ?
- ob_rr_theme->a_disabled_unfocused_iconify :
+ ob_rr_theme->btn_iconify->a_disabled_unfocused :
(self->iconify_press ?
- ob_rr_theme->a_unfocused_pressed_iconify :
+ ob_rr_theme->btn_iconify->a_unfocused_pressed :
(self->iconify_hover ?
- ob_rr_theme->a_hover_unfocused_iconify :
- ob_rr_theme->a_unfocused_unpressed_iconify)));
+ ob_rr_theme->btn_iconify->a_hover_unfocused :
+ ob_rr_theme->btn_iconify->a_unfocused_unpressed)));
d = (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) ?
- ob_rr_theme->a_disabled_unfocused_desk :
+ ob_rr_theme->btn_desk->a_disabled_unfocused :
(self->client->desktop == DESKTOP_ALL ?
(self->desk_press ?
- ob_rr_theme->a_toggled_unfocused_pressed_desk :
+ ob_rr_theme->btn_desk->a_toggled_unfocused_pressed :
(self->desk_hover ?
- ob_rr_theme->a_toggled_hover_unfocused_desk :
- ob_rr_theme->a_toggled_unfocused_unpressed_desk)) :
+ ob_rr_theme->btn_desk->a_toggled_hover_unfocused :
+ ob_rr_theme->btn_desk->a_toggled_unfocused_unpressed)) :
(self->desk_press ?
- ob_rr_theme->a_unfocused_pressed_desk :
+ ob_rr_theme->btn_desk->a_unfocused_pressed :
(self->desk_hover ?
- ob_rr_theme->a_hover_unfocused_desk :
- ob_rr_theme->a_unfocused_unpressed_desk))));
+ ob_rr_theme->btn_desk->a_hover_unfocused :
+ ob_rr_theme->btn_desk->a_unfocused_unpressed))));
s = (!(self->decorations & OB_FRAME_DECOR_SHADE) ?
- ob_rr_theme->a_disabled_unfocused_shade :
+ ob_rr_theme->btn_shade->a_disabled_unfocused :
(self->client->shaded ?
(self->shade_press ?
- ob_rr_theme->a_toggled_unfocused_pressed_shade :
+ ob_rr_theme->btn_shade->a_toggled_unfocused_pressed :
(self->shade_hover ?
- ob_rr_theme->a_toggled_hover_unfocused_shade :
- ob_rr_theme->a_toggled_unfocused_unpressed_shade)) :
+ ob_rr_theme->btn_shade->a_toggled_hover_unfocused :
+ ob_rr_theme->btn_shade->a_toggled_unfocused_unpressed)) :
(self->shade_press ?
- ob_rr_theme->a_unfocused_pressed_shade :
+ ob_rr_theme->btn_shade->a_unfocused_pressed :
(self->shade_hover ?
- ob_rr_theme->a_hover_unfocused_shade :
- ob_rr_theme->a_unfocused_unpressed_shade))));
+ ob_rr_theme->btn_shade->a_hover_unfocused :
+ ob_rr_theme->btn_shade->a_unfocused_unpressed))));
c = (!(self->decorations & OB_FRAME_DECOR_CLOSE) ?
- ob_rr_theme->a_disabled_unfocused_close :
+ ob_rr_theme->btn_close->a_disabled_unfocused :
(self->close_press ?
- ob_rr_theme->a_unfocused_pressed_close :
+ ob_rr_theme->btn_close->a_unfocused_pressed :
(self->close_hover ?
- ob_rr_theme->a_hover_unfocused_close :
- ob_rr_theme->a_unfocused_unpressed_close)));
+ ob_rr_theme->btn_close->a_hover_unfocused :
+ ob_rr_theme->btn_close->a_unfocused_unpressed)));
}
clear = ob_rr_theme->a_clear;
static void framerender_icon(ObFrame *self, RrAppearance *a)
{
- const ObClientIcon *icon;
+ RrImage *icon;
if (!self->icon_on) return;
- icon = client_icon(self->client,
- ob_rr_theme->button_size + 2,
- ob_rr_theme->button_size + 2);
+ icon = client_icon(self->client);
+
if (icon) {
- a->texture[0].type = RR_TEXTURE_RGBA;
- a->texture[0].data.rgba.width = icon->width;
- a->texture[0].data.rgba.height = icon->height;
- a->texture[0].data.rgba.alpha = 0xff;
- a->texture[0].data.rgba.data = icon->data;
- } else
+ RrAppearanceClearTextures(a);
+ a->texture[0].type = RR_TEXTURE_IMAGE;
+ a->texture[0].data.image.alpha = 0xff;
+ a->texture[0].data.image.image = icon;
+ } else {
+ RrAppearanceClearTextures(a);
a->texture[0].type = RR_TEXTURE_NONE;
+ }
RrPaint(a, self->icon,
ob_rr_theme->button_size + 2, ob_rr_theme->button_size + 2);