diff options
| author | Mikael Magnusson <mikachu@comhem.se> | 2008-02-07 15:28:18 +0100 |
|---|---|---|
| committer | Mikael Magnusson <mikachu@comhem.se> | 2008-02-07 15:28:18 +0100 |
| commit | f6193ad9e048c5824142d3e7feeb109f91054052 (patch) | |
| tree | 2afdebe7db3494a5c30330d198a3051076fda8c6 /render | |
| parent | a3babc4a995d31e44a626448e28d607be3c33197 (diff) | |
| parent | de85e4f1d96c911c7c9dc7c2a9b514b13b028aec (diff) | |
Merge branch 'wip/alttab'
Diffstat (limited to 'render')
| -rw-r--r-- | render/render.c | 18 | ||||
| -rw-r--r-- | render/render.h | 5 | ||||
| -rw-r--r-- | render/theme.c | 12 | ||||
| -rw-r--r-- | render/theme.h | 3 |
4 files changed, 34 insertions, 4 deletions
diff --git a/render/render.c b/render/render.c index 75dead16..49485c8a 100644 --- a/render/render.c +++ b/render/render.c @@ -132,10 +132,20 @@ Pixmap RrPaintPixmap(RrAppearance *a, gint w, gint h) break; case RR_TEXTURE_RGBA: g_assert(!transferred); - RrImageDraw(a->surface.pixel_data, - &a->texture[i].data.rgba, - a->w, a->h, - &tarea); + { + RrRect narea = tarea; + RrTextureRGBA *rgb = &a->texture[i].data.rgba; + if (rgb->twidth) + narea.width = MIN(tarea.width, rgb->twidth); + if (rgb->theight) + narea.height = MIN(tarea.height, rgb->theight); + narea.x += rgb->tx; + narea.y += rgb->ty; + RrImageDraw(a->surface.pixel_data, + &a->texture[i].data.rgba, + a->w, a->h, + &narea); + } force_transfer = 1; break; } diff --git a/render/render.h b/render/render.h index ad9a0ef1..260ebeb0 100644 --- a/render/render.h +++ b/render/render.h @@ -167,6 +167,11 @@ struct _RrTextureRGBA { gint cwidth; gint cheight; RrPixel32 *cache; +/* size and position to draw at */ + gint tx; + gint ty; + gint twidth; + gint theight; }; struct _RrTextureLineArt { diff --git a/render/theme.c b/render/theme.c index fe200e37..a6931be6 100644 --- a/render/theme.c +++ b/render/theme.c @@ -538,6 +538,16 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->menu_bullet_mask = RrPixmapMaskNew(inst, 4, 7, (gchar*)data); } + /* up and down arrows */ + { + guchar data[] = { 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00 }; + theme->down_arrow_mask = RrPixmapMaskNew(inst, 9, 4, (gchar*)data); + } + { + guchar data[] = { 0x10, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00 }; + theme->up_arrow_mask = RrPixmapMaskNew(inst, 9, 4, (gchar*)data); + } + /* setup the default window icon */ theme->def_win_icon = read_c_image(OB_DEFAULT_ICON_WIDTH, OB_DEFAULT_ICON_HEIGHT, @@ -1446,6 +1456,8 @@ void RrThemeFree(RrTheme *theme) RrPixmapMaskFree(theme->close_hover_mask); RrPixmapMaskFree(theme->close_pressed_mask); RrPixmapMaskFree(theme->menu_bullet_mask); + RrPixmapMaskFree(theme->down_arrow_mask); + RrPixmapMaskFree(theme->up_arrow_mask); RrFontClose(theme->win_font_focused); RrFontClose(theme->win_font_unfocused); diff --git a/render/theme.h b/render/theme.h index 2c35284f..9f51fabd 100644 --- a/render/theme.h +++ b/render/theme.h @@ -144,6 +144,9 @@ struct _RrTheme { RrPixmapMask *menu_toggle_mask; /* menu boolean */ #endif + RrPixmapMask *down_arrow_mask; + RrPixmapMask *up_arrow_mask; + /* global appearances */ RrAppearance *a_disabled_focused_max; RrAppearance *a_disabled_unfocused_max; |
