make label clickable (the user has to ask for it, it's non-clickable by default)
This commit is contained in:
@@ -26,6 +26,8 @@ widget *new_xy_plot(gui *gui, int width, int height, char *label,
|
||||
int vruler_width);
|
||||
widget *new_textlist(gui *_gui, int width, int nlines, int background_color);
|
||||
|
||||
void label_set_clickable(gui *gui, widget *label, int clickable);
|
||||
|
||||
void container_set_child_growable(gui *_gui, widget *_this,
|
||||
widget *child, int growable);
|
||||
|
||||
@@ -60,6 +62,8 @@ int new_color(gui *gui, char *color);
|
||||
* - scrollup { void *: NULL }
|
||||
* - scrolldown { void *: NULL }
|
||||
* - click { int [2]: line, button }
|
||||
* - label:
|
||||
* - click { int: button } (if enabled)
|
||||
*/
|
||||
|
||||
/* same type as in gui_defs.h */
|
||||
|
||||
@@ -44,3 +44,37 @@ widget *new_label(gui *_gui, const char *label)
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
static void button(gui *gui, widget *_this, int x, int y, int button, int up)
|
||||
{
|
||||
LOGD("BUTTON label %p xy %d %d button %d up %d\n", _this, x, y, button, up);
|
||||
|
||||
if (up != 0) return;
|
||||
|
||||
gui_notify(gui, "click", _this, &button);
|
||||
}
|
||||
|
||||
/* we could use default_button, but it's in widget.c, so, well... */
|
||||
static void no_button(gui *gui, widget *_this, int x,int y,int button,int up)
|
||||
{
|
||||
/* do nothing */
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
/* public functions */
|
||||
/*************************************************************************/
|
||||
|
||||
void label_set_clickable(gui *_g, widget *_this, int clickable)
|
||||
{
|
||||
struct gui *g = _g;
|
||||
struct label_widget *this = _this;
|
||||
|
||||
glock(g);
|
||||
|
||||
if (clickable)
|
||||
this->common.button = button;
|
||||
else
|
||||
this->common.button = no_button;
|
||||
|
||||
gunlock(g);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user