Mercurial > pidgin
diff console/libgnt/gntwidget.c @ 14010:7573bd40a190
[gaim-migrate @ 16602]
Allow plugins to be loaded and unloaded.
Remember the window positions and sizes.
All turning on/off shadow from ~/.gntrc (off by default).
committer: Tailor Script <tailor@pidgin.im>
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Mon, 31 Jul 2006 23:19:12 +0000 |
parents | c9509bd42d7a |
children | 735c4e927eb8 |
line wrap: on
line diff
--- a/console/libgnt/gntwidget.c Sat Jul 29 20:22:39 2006 +0000 +++ b/console/libgnt/gntwidget.c Mon Jul 31 23:19:12 2006 +0000 @@ -1,6 +1,7 @@ /* Stuff brutally ripped from Gflib */ #include "gntwidget.h" +#include "gntstyle.h" #include "gntmarshal.h" #include "gnt.h" @@ -290,7 +291,7 @@ { gboolean shadow = TRUE; - if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW)) + if (!gnt_widget_has_shadow(widget)) shadow = FALSE; widget->window = newwin(widget->priv.height + shadow, widget->priv.width + shadow, @@ -325,7 +326,7 @@ wbkgdset(widget->window, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL)); #if 1 /* XXX: I have no clue why, but this seems to be necessary. */ - if (!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW)) + if (gnt_widget_has_shadow(widget)) mvwvline(widget->window, 1, widget->priv.width, ' ', widget->priv.height); #endif gnt_screen_release(widget); @@ -361,7 +362,7 @@ gnt_widget_get_size(GntWidget *wid, int *width, int *height) { gboolean shadow = TRUE; - if (GNT_WIDGET_IS_FLAG_SET(wid, GNT_WIDGET_NO_SHADOW)) + if (!gnt_widget_has_shadow(wid)) shadow = FALSE; if (width) @@ -376,7 +377,7 @@ { gboolean shadow = TRUE; - if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW)) + if (!gnt_widget_has_shadow(widget)) shadow = FALSE; wbkgd(widget->window, COLOR_PAIR(GNT_COLOR_NORMAL)); @@ -384,9 +385,16 @@ if (!(GNT_WIDGET_FLAGS(widget) & GNT_WIDGET_NO_BORDER)) { - WINDOW *tmp = derwin(widget->window, widget->priv.height, widget->priv.width, 0, 0); - box(tmp, 0, 0); - delwin(tmp); + /* - This is ugly. */ + /* - What's your point? */ + mvwvline(widget->window, 0, 0, ACS_VLINE, widget->priv.height); + mvwvline(widget->window, 0, widget->priv.width - 1, ACS_VLINE, widget->priv.height); + mvwhline(widget->window, widget->priv.height - 1, 0, ACS_HLINE, widget->priv.width); + mvwhline(widget->window, 0, 0, ACS_HLINE, widget->priv.width); + mvwaddch(widget->window, 0, 0, ACS_ULCORNER); + mvwaddch(widget->window, 0, widget->priv.width - 1, ACS_URCORNER); + mvwaddch(widget->window, widget->priv.height - 1, 0, ACS_LLCORNER); + mvwaddch(widget->window, widget->priv.height - 1, widget->priv.width - 1, ACS_LRCORNER); } if (shadow) @@ -402,7 +410,7 @@ { gboolean ret = TRUE; - if (!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW)) + if (gnt_widget_has_shadow(widget)) { width--; height--; @@ -418,7 +426,7 @@ gboolean shadow = TRUE; int oldw, oldh; - if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW)) + if (!gnt_widget_has_shadow(widget)) shadow = FALSE; oldw = widget->priv.width; @@ -518,3 +526,9 @@ GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_INVISIBLE); } +gboolean gnt_widget_has_shadow(GntWidget *widget) +{ + return (!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW) && + gnt_style_get_bool(GNT_STYLE_SHADOW, FALSE)); +} +