libxputty  0.1
A damn tiny abstraction Layer to create X11 window/widgets with cairo surfaces
xbutton.c File Reference
#include "xbutton.h"
#include "xbutton_private.h"
Include dependency graph for xbutton.c:

Go to the source code of this file.

Functions

Widget_tadd_button (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions More...
 
Widget_tadd_on_off_button (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_on_off_button - add a button with default on/off label to a Widget_t connect to func.value_changed_callback to implement your actions More...
 
Widget_tadd_toggle_button (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_toggle_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions More...
 
Widget_tadd_image_toggle_button (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_image_toggle_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions More...
 
Widget_tadd_switch_image_button (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_switch_image_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions More...
 
Widget_tadd_check_button (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_check_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions More...
 
int get_width (const char *label)
 
Widget_tadd_check_box (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_check_box - add a check box to a Widget_t connect to func.value_changed_callback to implement your actions More...
 

Function Documentation

◆ add_button()

Widget_t* add_button ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label to show on the button
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 26 of file xbutton.c.

27  {
28 
29  Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
30  wid->label = label;
31  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
32  wid->adj = wid->adj_y;
33  wid->scale.gravity = CENTER;
39  return wid;
40 }

References _button_pressed(), _button_released(), _draw_button(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, Func_t::button_press_callback, Func_t::button_release_callback, CENTER, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, Resize_t::gravity, Widget_t::label, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ add_check_box()

Widget_t* add_check_box ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_check_box - add a check box to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label to show on the button
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 125 of file xbutton.c.

126  {
127 
128  Widget_t *wid = create_widget(parent->app, parent, x, y, get_width(label), height);
129  wid->label = label;
130  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
131  wid->adj = wid->adj_y;
132  wid->scale.gravity = CENTER;
138  return wid;
139 }

References _draw_check_box(), _toggle_button_pressed(), _toggle_button_released(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, Func_t::button_press_callback, Func_t::button_release_callback, CENTER, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, get_width(), Resize_t::gravity, Widget_t::label, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ add_check_button()

Widget_t* add_check_button ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_check_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label to show on the button
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 105 of file xbutton.c.

106  {
107 
108  Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
109  wid->label = label;
110  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
111  wid->adj = wid->adj_y;
112  wid->scale.gravity = CENTER;
118  return wid;
119 }

References _draw_check_button(), _toggle_button_pressed(), _toggle_button_released(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, Func_t::button_press_callback, Func_t::button_release_callback, CENTER, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, Resize_t::gravity, Widget_t::label, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ add_image_toggle_button()

Widget_t* add_image_toggle_button ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_image_toggle_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label to show on the button
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 73 of file xbutton.c.

74  {
75 
76  Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
77  wid->label = label;
78  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
79  wid->adj = wid->adj_y;
80  wid->scale.gravity = CENTER;
86  return wid;
87 }

References _draw_ti_button(), _toggle_button_pressed(), _toggle_button_released(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, Func_t::button_press_callback, Func_t::button_release_callback, CENTER, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, Resize_t::gravity, Widget_t::label, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ add_on_off_button()

Widget_t* add_on_off_button ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_on_off_button - add a button with default on/off label to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label (ignored)
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 42 of file xbutton.c.

43  {
44 
45  Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
46  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
47  wid->adj = wid->adj_y;
48  wid->scale.gravity = CENTER;
54  return wid;
55 }

References _draw_on_off_button(), _toggle_button_pressed(), _toggle_button_released(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, Func_t::button_press_callback, Func_t::button_release_callback, CENTER, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, Resize_t::gravity, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ add_switch_image_button()

Widget_t* add_switch_image_button ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_switch_image_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label to show on the button
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 89 of file xbutton.c.

90  {
91 
92  Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
93  wid->label = label;
94  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
95  wid->adj = wid->adj_y;
96  wid->scale.gravity = ASPECT;
102  return wid;
103 }

References _draw_switch_image_button(), _toggle_button_pressed(), _toggle_button_released(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, ASPECT, Func_t::button_press_callback, Func_t::button_release_callback, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, Resize_t::gravity, Widget_t::label, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ add_toggle_button()

Widget_t* add_toggle_button ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_toggle_button - add a button to a Widget_t connect to func.value_changed_callback to implement your actions

Parameters
*parent- pointer to the Widget_t request the button
*label- Label to show on the button
x,y,width,height- the position/geometry to create the button
Returns
Widget_t* - pointer to the Widget_t button struct

Definition at line 57 of file xbutton.c.

58  {
59 
60  Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
61  wid->label = label;
62  wid->adj_y = add_adjustment(wid,0.0, 0.0, 0.0, 1.0,1.0, CL_TOGGLE);
63  wid->adj = wid->adj_y;
64  wid->scale.gravity = CENTER;
70  return wid;
71 }

References _draw_button(), _toggle_button_pressed(), _toggle_button_released(), add_adjustment(), Widget_t::adj, Widget_t::adj_y, Widget_t::app, Func_t::button_press_callback, Func_t::button_release_callback, CENTER, CL_TOGGLE, create_widget(), Func_t::enter_callback, Func_t::expose_callback, Widget_t::func, Resize_t::gravity, Widget_t::label, Func_t::leave_callback, Widget_t::scale, and transparent_draw().

◆ get_width()

int get_width ( const char *  label)

Definition at line 121 of file xbutton.c.

121  {
122  return max(1, strlen(label)*12);
123 }

References max.

Func_t::leave_callback
xevfunc leave_callback
Definition: xwidget.h:83
Func_t::enter_callback
xevfunc enter_callback
Definition: xwidget.h:82
CL_TOGGLE
@ CL_TOGGLE
Definition: xadjustment.h:51
Resize_t::gravity
Gravity gravity
Definition: xwidget.h:192
create_widget
Widget_t * create_widget(Xputty *app, Widget_t *win, int x, int y, int width, int height)
*create_widget - create a widget A Widget_t could only be created as child of a other Widget_t To...
Definition: xwidget.c:268
transparent_draw
void transparent_draw(void *wid, void *user_data)
transparent_draw - copy parent surface to child surface you usaualy didn't need to call this,...
Definition: xwidget.c:469
Func_t::expose_callback
xevfunc expose_callback
Definition: xwidget.h:80
CENTER
@ CENTER
Definition: xwidget.h:165
get_width
int get_width(const char *label)
Definition: xbutton.c:121
_draw_check_button
void _draw_check_button(void *w_, void *user_data)
_draw_check_button - internal draw the button to the buffer
Definition: xbutton_private.c:310
_draw_on_off_button
void _draw_on_off_button(void *w_, void *user_data)
_draw_on_off_button - internal draw the on/off button to the buffer
Definition: xbutton_private.c:243
Widget_t::adj
Adjustment_t * adj
Definition: xwidget.h:334
Widget_t::scale
Resize_t scale
Definition: xwidget.h:356
_draw_button
void _draw_button(void *w_, void *user_data)
_draw_button - internal draw the button to the buffer
Definition: xbutton_private.c:191
Widget_t::app
Xputty * app
Definition: xwidget.h:300
Func_t::button_press_callback
evfunc button_press_callback
Definition: xwidget.h:93
_draw_switch_image_button
void _draw_switch_image_button(void *w_, void *user_data)
draw switch_image_button - internal draw the button to the buffer
Definition: xbutton_private.c:114
Widget_t
Widget_t - struct to hold the basic Widget_t info.
Definition: xwidget.h:298
_button_released
void _button_released(void *w_, void *button_, void *user_data)
_button_released - redraw the button and send state via user_callback
Definition: xbutton_private.c:394
ASPECT
@ ASPECT
Definition: xwidget.h:167
_button_pressed
void _button_pressed(void *w_, void *button, void *user_data)
_button_pressed - redraw the button and send state via user_callback
Definition: xbutton_private.c:389
Func_t::button_release_callback
evfunc button_release_callback
Definition: xwidget.h:94
_toggle_button_released
void _toggle_button_released(void *w_, void *button_, void *user_data)
_toggle_button_released - redraw the button and send state via user_callback
Definition: xbutton_private.c:411
_draw_ti_button
void _draw_ti_button(void *w_, void *user_data)
_draw_ti_button - internal draw the button to the buffer
Definition: xbutton_private.c:285
Widget_t::adj_y
Adjustment_t * adj_y
Definition: xwidget.h:332
Widget_t::func
Func_t func
Definition: xwidget.h:310
add_adjustment
Adjustment_t * add_adjustment(Widget_t *w, float std_value, float value, float min_value, float max_value, float step, CL_type type)
*add_adjustment - adding a adjustment to a Widget_t
Definition: xadjustment.c:25
max
#define max(x, y)
max - set a minimal value (x) as return value
Definition: xputty.h:86
_toggle_button_pressed
void _toggle_button_pressed(void *w_, void *button, void *user_data)
_toggle_button_pressed - redraw the button and send state via user_callback
Definition: xbutton_private.c:406
_draw_check_box
void _draw_check_box(void *w_, void *user_data)
_draw_check_box - internal draw the check box to the buffer
Definition: xbutton_private.c:343
Widget_t::label
const char * label
Definition: xwidget.h:326