add clear function to the gui
This commit is contained in:
@@ -132,6 +132,7 @@ static void dirty_event(struct gui *g, int id)
|
|||||||
if (win == NULL)
|
if (win == NULL)
|
||||||
{ WARN("widget id %d not contained in a window\n", id); return; }
|
{ WARN("widget id %d not contained in a window\n", id); return; }
|
||||||
g->xwin = win->x;
|
g->xwin = win->x;
|
||||||
|
w->clear(g, w);
|
||||||
w->paint(g, w);
|
w->paint(g, w);
|
||||||
g->xwin = NULL;
|
g->xwin = NULL;
|
||||||
g->repainted = 1;
|
g->repainted = 1;
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ struct widget {
|
|||||||
void (*allocate)(gui *g, widget *this, int x, int y, int width, int height);
|
void (*allocate)(gui *g, widget *this, int x, int y, int width, int height);
|
||||||
void (*hints)(gui *g, widget *this, int *width, int *height);
|
void (*hints)(gui *g, widget *this, int *width, int *height);
|
||||||
void (*paint)(gui *g, widget *this);
|
void (*paint)(gui *g, widget *this);
|
||||||
|
void (*clear)(gui *g, widget *this);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct widget_list {
|
struct widget_list {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
static void default_clear(gui *gui, widget *_this);
|
||||||
static void default_repack(gui *gui, widget *_this);
|
static void default_repack(gui *gui, widget *_this);
|
||||||
static void default_allocate(
|
static void default_allocate(
|
||||||
gui *gui, widget *_this, int x, int y, int width, int height);
|
gui *gui, widget *_this, int x, int y, int width, int height);
|
||||||
@@ -41,6 +42,7 @@ widget *new_widget(struct gui *g, enum widget_type type, int size)
|
|||||||
ret = calloc(1, size);
|
ret = calloc(1, size);
|
||||||
if (ret == NULL) OOM;
|
if (ret == NULL) OOM;
|
||||||
|
|
||||||
|
ret->clear = default_clear;
|
||||||
ret->repack = default_repack;
|
ret->repack = default_repack;
|
||||||
ret->add_child = default_add_child;
|
ret->add_child = default_add_child;
|
||||||
ret->allocate = default_allocate;
|
ret->allocate = default_allocate;
|
||||||
@@ -120,6 +122,14 @@ repack:
|
|||||||
/* default functions */
|
/* default functions */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
static void default_clear(gui *_gui, widget *_this)
|
||||||
|
{
|
||||||
|
struct gui *g = _gui;
|
||||||
|
struct widget *this = _this;
|
||||||
|
x_fill_rectangle(g->x, g->xwin, BACKGROUND_COLOR,
|
||||||
|
this->x, this->y, this->width, this->height);
|
||||||
|
}
|
||||||
|
|
||||||
static void default_repack(gui *gui, widget *_this)
|
static void default_repack(gui *gui, widget *_this)
|
||||||
{
|
{
|
||||||
struct widget *this = _this;
|
struct widget *this = _this;
|
||||||
|
|||||||
Reference in New Issue
Block a user