Also implement gwidget_hide()
This commit is contained in:
parent
7077c0605c
commit
6e1a9db264
|
@ -39,6 +39,7 @@ typedef struct _GWidget GWidget;
|
||||||
|
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
|
void gwidget_hide(GWidget * gwidget);
|
||||||
void gwidget_show(GWidget * gwidget);
|
void gwidget_show(GWidget * gwidget);
|
||||||
|
|
||||||
#endif /* !GTOOLKIT_GWIDGET_H */
|
#endif /* !GTOOLKIT_GWIDGET_H */
|
||||||
|
|
|
@ -40,7 +40,8 @@
|
||||||
/* types */
|
/* types */
|
||||||
typedef enum _GWidgetHandler
|
typedef enum _GWidgetHandler
|
||||||
{
|
{
|
||||||
GWIDGET_HANDLER_SHOW = 0
|
GWIDGET_HANDLER_HIDE = 0,
|
||||||
|
GWIDGET_HANDLER_SHOW
|
||||||
} GWidgetHandler;
|
} GWidgetHandler;
|
||||||
# define GWIDGET_HANDLER_LAST GWIDGET_HANDLER_SHOW
|
# define GWIDGET_HANDLER_LAST GWIDGET_HANDLER_SHOW
|
||||||
# define GWIDGET_HANDLER_COUNT (GWIDGET_HANDLER_LAST + 1)
|
# define GWIDGET_HANDLER_COUNT (GWIDGET_HANDLER_LAST + 1)
|
||||||
|
|
|
@ -46,6 +46,7 @@ struct _GWidget
|
||||||
void * self;
|
void * self;
|
||||||
|
|
||||||
/* handlers */
|
/* handlers */
|
||||||
|
GWidgetHandlerSelf handler_hide;
|
||||||
GWidgetHandlerSelf handler_show;
|
GWidgetHandlerSelf handler_show;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -61,6 +62,7 @@ GWidget * gwidget_new(void)
|
||||||
return NULL;
|
return NULL;
|
||||||
gwidget->gwidget = gwidget;
|
gwidget->gwidget = gwidget;
|
||||||
gwidget->self = NULL;
|
gwidget->self = NULL;
|
||||||
|
gwidget->handler_hide = NULL;
|
||||||
gwidget->handler_show = NULL;
|
gwidget->handler_show = NULL;
|
||||||
return gwidget;
|
return gwidget;
|
||||||
}
|
}
|
||||||
|
@ -82,6 +84,9 @@ void gwidget_set_handler(GWidget * gwidget, GWidgetHandler handler, ...)
|
||||||
va_start(ap, handler);
|
va_start(ap, handler);
|
||||||
switch(handler)
|
switch(handler)
|
||||||
{
|
{
|
||||||
|
case GWIDGET_HANDLER_HIDE:
|
||||||
|
gwidget->handler_hide = va_arg(ap, GWidgetHandlerSelf);
|
||||||
|
break;
|
||||||
case GWIDGET_HANDLER_SHOW:
|
case GWIDGET_HANDLER_SHOW:
|
||||||
gwidget->handler_show = va_arg(ap, GWidgetHandlerSelf);
|
gwidget->handler_show = va_arg(ap, GWidgetHandlerSelf);
|
||||||
break;
|
break;
|
||||||
|
@ -98,6 +103,16 @@ void gwidget_set_self(GWidget * gwidget, void * self)
|
||||||
|
|
||||||
|
|
||||||
/* useful */
|
/* useful */
|
||||||
|
/* gwidget_hide */
|
||||||
|
void gwidget_hide(GWidget * gwidget)
|
||||||
|
{
|
||||||
|
if(gwidget->gwidget != gwidget)
|
||||||
|
gwidget = gwidget->gwidget;
|
||||||
|
if(gwidget->handler_hide != NULL)
|
||||||
|
gwidget->handler_hide(gwidget->self);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* gwidget_show */
|
/* gwidget_show */
|
||||||
void gwidget_show(GWidget * gwidget)
|
void gwidget_show(GWidget * gwidget)
|
||||||
{
|
{
|
||||||
|
|
|
@ -55,6 +55,7 @@ struct _GWindow
|
||||||
|
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
|
static void _gwindow_hide(GWindow * gwindow);
|
||||||
static void _gwindow_show(GWindow * gwindow);
|
static void _gwindow_show(GWindow * gwindow);
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,6 +78,8 @@ GWindow * gwindow_new(void)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
gwidget_set_self(gwindow->gwidget, gwindow);
|
gwidget_set_self(gwindow->gwidget, gwindow);
|
||||||
|
gwidget_set_handler(gwindow->gwidget, GWIDGET_HANDLER_HIDE,
|
||||||
|
_gwindow_hide);
|
||||||
gwidget_set_handler(gwindow->gwidget, GWIDGET_HANDLER_SHOW,
|
gwidget_set_handler(gwindow->gwidget, GWIDGET_HANDLER_SHOW,
|
||||||
_gwindow_show);
|
_gwindow_show);
|
||||||
gwindow->title = NULL;
|
gwindow->title = NULL;
|
||||||
|
@ -243,6 +246,13 @@ void gwindow_resize(GWindow * gwindow, int width, int height)
|
||||||
|
|
||||||
/* private */
|
/* private */
|
||||||
/* functions */
|
/* functions */
|
||||||
|
/* gwindow_hide */
|
||||||
|
static void _gwindow_hide(GWindow * gwindow)
|
||||||
|
{
|
||||||
|
XUnmapWindow(gtoolkit_get_display(), gwindow->window);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* gwindow_show */
|
/* gwindow_show */
|
||||||
static void _gwindow_show(GWindow * gwindow)
|
static void _gwindow_show(GWindow * gwindow)
|
||||||
/* FIXME accept flags (focus...) */
|
/* FIXME accept flags (focus...) */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user