Window text;
gboolean hasicon;
- Appearance *a_bg;
- Appearance *a_icon;
- Appearance *a_text;
+ RrAppearance *a_bg;
+ RrAppearance *a_icon;
+ RrAppearance *a_text;
int gravity;
int x;
int y;
XDestroyWindow(ob_display, self->bg);
XDestroyWindow(ob_display, self->text);
XDestroyWindow(ob_display, self->icon);
- appearance_free(self->a_bg);
+ RrAppearanceFree(self->a_bg);
if (self->hasicon)
- appearance_free(self->a_icon);
+ RrAppearanceFree(self->a_icon);
}
if (self->a_text)
- appearance_free(self->a_text);
+ RrAppearanceFree(self->a_text);
stacking_remove(self);
g_free(self);
}
int iconw;
if (!self->a_text)
- self->a_text = appearance_copy(theme_app_hilite_label);
+ self->a_text = RrAppearanceCopy(ob_rr_theme->app_hilite_label);
self->a_text->texture[0].data.text.string = text;
- appearance_minsize(self->a_text, &textw, &texth);
- textw += theme_bevel * 2;
- texth += theme_bevel * 2;
+ RrMinsize(self->a_text, &textw, &texth);
+ textw += ob_rr_theme->bevel * 2;
+ texth += ob_rr_theme->bevel * 2;
- self->h = texth + theme_bevel * 2;
+ self->h = texth + ob_rr_theme->bevel * 2;
iconw = (self->hasicon ? texth : 0);
- self->w = textw + iconw + theme_bevel * 3;
+ self->w = textw + iconw + ob_rr_theme->bevel * (self->hasicon ? 3 : 2);
}
void popup_show(Popup *self, char *text, Icon *icon)
if (!self->bg) {
attrib.override_redirect = True;
self->bg = XCreateWindow(ob_display, ob_root,
- 0, 0, 1, 1, 0, render_depth, InputOutput,
- render_visual, CWOverrideRedirect, &attrib);
+ 0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
+ InputOutput, RrVisual(ob_rr_inst),
+ CWOverrideRedirect, &attrib);
- XSetWindowBorderWidth(ob_display, self->bg, theme_bwidth);
- XSetWindowBorder(ob_display, self->bg, theme_b_color->pixel);
+ XSetWindowBorderWidth(ob_display, self->bg, ob_rr_theme->bwidth);
+ XSetWindowBorder(ob_display, self->bg, ob_rr_theme->b_color->pixel);
self->text = XCreateWindow(ob_display, self->bg,
- 0, 0, 1, 1, 0, render_depth, InputOutput,
- render_visual, 0, NULL);
+ 0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
+ InputOutput, RrVisual(ob_rr_inst), 0, NULL);
if (self->hasicon)
self->icon = XCreateWindow(ob_display, self->bg,
0, 0, 1, 1, 0,
- render_depth, InputOutput,
- render_visual, 0, NULL);
+ RrDepth(ob_rr_inst), InputOutput,
+ RrVisual(ob_rr_inst), 0, NULL);
XMapWindow(ob_display, self->text);
XMapWindow(ob_display, self->icon);
- self->a_bg = appearance_copy(theme_app_hilite_bg);
+ self->a_bg = RrAppearanceCopy(ob_rr_theme->app_hilite_bg);
if (self->hasicon)
- self->a_icon = appearance_copy(theme_app_icon);
+ self->a_icon = RrAppearanceCopy(ob_rr_theme->app_icon);
}
if (!self->a_text)
- self->a_text = appearance_copy(theme_app_hilite_label);
+ self->a_text = RrAppearanceCopy(ob_rr_theme->app_hilite_label);
/* set up the textures */
self->a_text->texture[0].data.text.string = text;
if (self->hasicon) {
if (icon) {
- self->a_icon->texture[0].type = RGBA;
+ self->a_icon->texture[0].type = RR_TEXTURE_RGBA;
self->a_icon->texture[0].data.rgba.width = icon->width;
self->a_icon->texture[0].data.rgba.height = icon->height;
self->a_icon->texture[0].data.rgba.data = icon->data;
} else
- self->a_icon->texture[0].type = NoTexture;
+ self->a_icon->texture[0].type = RR_TEXTURE_NONE;
}
/* measure the shit out */
- appearance_minsize(self->a_text, &textw, &texth);
- textw += theme_bevel * 2;
- texth += theme_bevel * 2;
+ RrMinsize(self->a_text, &textw, &texth);
+ textw += ob_rr_theme->bevel * 2;
+ texth += ob_rr_theme->bevel * 2;
/* set the sizes up and reget the text sizes from the calculated
outer sizes */
if (self->h) {
h = self->h;
- texth = h - (theme_bevel * 2);
+ texth = h - (ob_rr_theme->bevel * 2);
} else
- h = texth + theme_bevel * 2;
+ h = texth + ob_rr_theme->bevel * 2;
iconw = (self->hasicon ? texth : 0);
if (self->w) {
w = self->w;
- textw = w - (iconw + theme_bevel * 3);
+ textw = w - (iconw + ob_rr_theme->bevel * (self->hasicon ? 3 : 2));
} else
- w = textw + iconw + theme_bevel * 3;
+ w = textw + iconw + ob_rr_theme->bevel * (self->hasicon ? 3 : 2);
/* sanity checks to avoid crashes! */
if (w < 1) w = 1;
if (h < 1) h = 1;
}
/* set the windows/appearances up */
- RECT_SET(self->a_bg->area, 0, 0, w, h);
XMoveResizeWindow(ob_display, self->bg, x, y, w, h);
- RECT_SET(self->a_text->area, 0, 0, textw, texth);
- RECT_SET(self->a_text->texture[0].position, theme_bevel, theme_bevel,
- textw - theme_bevel * 2, texth - theme_bevel * 2);
- self->a_text->surface.data.planar.parent = self->a_bg;
- self->a_text->surface.data.planar.parentx = iconw + theme_bevel * 2;
- self->a_text->surface.data.planar.parenty = theme_bevel;
+ self->a_text->surface.parent = self->a_bg;
+ self->a_text->surface.parentx = iconw +
+ ob_rr_theme->bevel * (self->hasicon ? 2 : 1);
+ self->a_text->surface.parenty = ob_rr_theme->bevel;
XMoveResizeWindow(ob_display, self->text,
- iconw + theme_bevel * 2, theme_bevel, textw, texth);
+ iconw + ob_rr_theme->bevel * (self->hasicon ? 2 : 1),
+ ob_rr_theme->bevel, textw, texth);
if (self->hasicon) {
if (iconw < 1) iconw = 1; /* sanity check for crashes */
- RECT_SET(self->a_icon->area, 0, 0, iconw, texth);
- RECT_SET(self->a_icon->texture[0].position, 0, 0, iconw, texth);
- self->a_icon->surface.data.planar.parent = self->a_bg;
- self->a_icon->surface.data.planar.parentx = theme_bevel;
- self->a_icon->surface.data.planar.parenty = theme_bevel;
+ self->a_icon->surface.parent = self->a_bg;
+ self->a_icon->surface.parentx = ob_rr_theme->bevel;
+ self->a_icon->surface.parenty = ob_rr_theme->bevel;
XMoveResizeWindow(ob_display, self->icon,
- theme_bevel, theme_bevel, iconw, texth);
+ ob_rr_theme->bevel, ob_rr_theme->bevel,
+ iconw, texth);
}
- paint(self->bg, self->a_bg);
- paint(self->text, self->a_text);
+ RrPaint(self->a_bg, self->bg, w, h);
+ RrPaint(self->a_text, self->text, textw, texth);
if (self->hasicon)
- paint(self->icon, self->a_icon);
+ RrPaint(self->a_icon, self->icon, iconw, texth);
if (!self->mapped) {
XMapWindow(ob_display, self->bg);