introduce widget_dirty - not only text list might want the optimization
This commit is contained in:
@@ -16,6 +16,7 @@ gui *gui_init(void);
|
|||||||
|
|
||||||
/* position = -1 to put at the end */
|
/* position = -1 to put at the end */
|
||||||
void widget_add_child(gui *gui, widget *parent, widget *child, int position);
|
void widget_add_child(gui *gui, widget *parent, widget *child, int position);
|
||||||
|
void widget_dirty(gui *gui, widget *this);
|
||||||
|
|
||||||
widget *new_toplevel_window(gui *gui, int width, int height, char *title);
|
widget *new_toplevel_window(gui *gui, int width, int height, char *title);
|
||||||
widget *new_container(gui *gui, int vertical);
|
widget *new_container(gui *gui, int vertical);
|
||||||
@@ -44,7 +45,6 @@ void text_list_set_start_line(gui *gui, widget *this, int line);
|
|||||||
void text_list_get_line(gui *gui, widget *this, int line,
|
void text_list_get_line(gui *gui, widget *this, int line,
|
||||||
char **text, int *color);
|
char **text, int *color);
|
||||||
void text_list_set_color(gui *gui, widget *this, int line, int color);
|
void text_list_set_color(gui *gui, widget *this, int line, int color);
|
||||||
void text_list_dirty(gui *_gui, widget *_this);
|
|
||||||
|
|
||||||
void gui_loop(gui *gui);
|
void gui_loop(gui *gui);
|
||||||
|
|
||||||
|
|||||||
@@ -242,12 +242,3 @@ void text_list_set_color(gui *_gui, widget *_this, int line, int color)
|
|||||||
|
|
||||||
gunlock(g);
|
gunlock(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
void text_list_dirty(gui *_gui, widget *_this)
|
|
||||||
{
|
|
||||||
struct gui *g = _gui;
|
|
||||||
struct text_list_widget *this = _this;
|
|
||||||
glock(g);
|
|
||||||
send_event(g, DIRTY, this->common.id);
|
|
||||||
gunlock(g);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -180,6 +180,15 @@ void widget_add_child(gui *_gui, widget *parent, widget *child, int position)
|
|||||||
gunlock(_gui);
|
gunlock(_gui);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void widget_dirty(gui *_gui, widget *_this)
|
||||||
|
{
|
||||||
|
struct gui *g = _gui;
|
||||||
|
struct widget *this = _this;
|
||||||
|
glock(g);
|
||||||
|
send_event(g, DIRTY, this->id);
|
||||||
|
gunlock(g);
|
||||||
|
}
|
||||||
|
|
||||||
static const char *names[] = {
|
static const char *names[] = {
|
||||||
"TOPLEVEL_WINDOW", "CONTAINER", "TEXT_LIST", "XY_PLOT", "BUTTON", "LABEL"
|
"TOPLEVEL_WINDOW", "CONTAINER", "TEXT_LIST", "XY_PLOT", "BUTTON", "LABEL"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ static void *textlist_thread(void *_this)
|
|||||||
free(s);
|
free(s);
|
||||||
}
|
}
|
||||||
if (pthread_mutex_unlock(&this->lock)) abort();
|
if (pthread_mutex_unlock(&this->lock)) abort();
|
||||||
if (dirty) text_list_dirty(this->g, this->w);
|
if (dirty) widget_dirty(this->g, this->w);
|
||||||
sleepms(1000/this->refresh_rate);
|
sleepms(1000/this->refresh_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user