2022-03-04 06:14:11 -08:00
|
|
|
#ifndef TERMINOLOGY_TERMINOLOGY_OPTIONS_H_
|
|
|
|
#define TERMINOLOGY_TERMINOLOGY_OPTIONS_H_ 1
|
2014-05-24 07:14:20 -07:00
|
|
|
|
2018-01-15 13:45:32 -08:00
|
|
|
void options_show(Evas_Object *win, Evas_Object *base, Evas_Object *bg,
|
|
|
|
Evas_Object *term,
|
|
|
|
void (*donecb) (void *data), void *donedata);
|
2016-03-18 11:08:58 -07:00
|
|
|
|
2020-06-14 14:14:10 -07:00
|
|
|
|
|
|
|
/* helpers to generate callbacks and checkbox to change config parameters */
|
|
|
|
#define OPTIONS_CB(_ctx, _cfg_name, _inv) \
|
|
|
|
static void \
|
|
|
|
_cb_op_##_cfg_name(void *data, Evas_Object *obj, \
|
|
|
|
void *_event EINA_UNUSED) \
|
|
|
|
{ \
|
|
|
|
_ctx *ctx = data; \
|
|
|
|
Config *config = ctx->config; \
|
|
|
|
if (_inv) \
|
|
|
|
config->_cfg_name = !elm_check_state_get(obj); \
|
|
|
|
else \
|
|
|
|
config->_cfg_name = elm_check_state_get(obj); \
|
|
|
|
termio_config_update(ctx->term); \
|
|
|
|
windows_update(); \
|
|
|
|
config_save(config); \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define OPTIONS_CX(_lbl, _cfg_name, _inv) \
|
|
|
|
do { \
|
|
|
|
o = elm_check_add(bx); \
|
|
|
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); \
|
|
|
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); \
|
|
|
|
elm_object_text_set(o, _lbl); \
|
|
|
|
elm_check_state_set(o, _inv ? !config->_cfg_name : config->_cfg_name); \
|
|
|
|
elm_box_pack_end(bx, o); \
|
|
|
|
evas_object_show(o); \
|
|
|
|
evas_object_smart_callback_add(o, "changed", \
|
|
|
|
_cb_op_##_cfg_name, ctx); \
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
#define OPTIONS_SEPARATOR \
|
|
|
|
do { \
|
|
|
|
o = elm_separator_add(bx); \
|
|
|
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); \
|
|
|
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); \
|
|
|
|
elm_separator_horizontal_set(o, EINA_TRUE); \
|
|
|
|
elm_box_pack_end(bx, o); \
|
|
|
|
evas_object_show(o); \
|
|
|
|
} while (0)
|
|
|
|
|
2014-05-24 07:14:20 -07:00
|
|
|
#endif
|