apply zoom level/font size to all terms in a window
This commit is contained in:
parent
fc79e38575
commit
3716c7ec51
|
@ -23,12 +23,17 @@ _termcmd_search(Evas_Object *obj EINA_UNUSED, Evas_Object *win EINA_UNUSED, Evas
|
|||
}
|
||||
|
||||
static Eina_Bool
|
||||
_termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, Evas_Object *bg EINA_UNUSED, const char *cmd)
|
||||
_termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED,
|
||||
Evas_Object *bg EINA_UNUSED, const char *cmd)
|
||||
{
|
||||
Config *config = termio_config_get(obj);
|
||||
|
||||
if (config)
|
||||
{
|
||||
Term *term = termio_term_get(obj);
|
||||
Win *wn = term_win_get(term);
|
||||
int new_size;
|
||||
|
||||
if (cmd[0] == 0) // back to default
|
||||
{
|
||||
config->font.bitmap = config->font.orig_bitmap;
|
||||
|
@ -37,8 +42,7 @@ _termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, Evas_Object *
|
|||
eina_stringshare_del(config->font.name);
|
||||
config->font.name = eina_stringshare_add(config->font.orig_name);
|
||||
}
|
||||
termio_font_size_set(obj, config->font.orig_size);
|
||||
return EINA_TRUE;
|
||||
new_size = config->font.orig_size;
|
||||
}
|
||||
else if (cmd[0] == 'b') // big font size
|
||||
{
|
||||
|
@ -47,23 +51,24 @@ _termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, Evas_Object *
|
|||
config->font.bitmap = 1;
|
||||
eina_stringshare_del(config->font.name);
|
||||
config->font.name = eina_stringshare_add("10x20.pcf");
|
||||
termio_font_size_set(obj, 20);
|
||||
}
|
||||
else
|
||||
{
|
||||
termio_font_size_set(obj, 20);
|
||||
}
|
||||
new_size = 20;
|
||||
}
|
||||
else if (cmd[0] == '+') // size up
|
||||
{
|
||||
termio_font_size_set(obj, config->font.size + 1);
|
||||
new_size = config->font.size + 1;
|
||||
}
|
||||
else if (cmd[0] == '-') // size down
|
||||
{
|
||||
termio_font_size_set(obj, config->font.size - 1);
|
||||
new_size = config->font.size - 1;
|
||||
}
|
||||
else
|
||||
ERR(_("Unknown font command: %s"), cmd);
|
||||
{
|
||||
ERR(_("Unknown font command: %s"), cmd);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
win_font_size_set(wn, new_size);
|
||||
}
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -4422,11 +4422,10 @@ _smart_cb_gest_zoom_start(void *data, void *event)
|
|||
config = sd->config;
|
||||
if (config)
|
||||
{
|
||||
int sz;
|
||||
|
||||
int sz = (double)config->font.size * p->zoom;
|
||||
sd->zoom_fontsize_start = config->font.size;
|
||||
sz = (double)sd->zoom_fontsize_start * p->zoom;
|
||||
if (sz != config->font.size) _font_size_set(data, sz);
|
||||
if (sz != config->font.size)
|
||||
win_font_size_set(term_win_get(sd->term), sz);
|
||||
}
|
||||
sd->didclick = EINA_TRUE;
|
||||
return EVAS_EVENT_FLAG_ON_HOLD;
|
||||
|
@ -4443,8 +4442,9 @@ _smart_cb_gest_zoom_move(void *data, void *event)
|
|||
config = sd->config;
|
||||
if (config)
|
||||
{
|
||||
int sz = (double)sd->zoom_fontsize_start * p->zoom;
|
||||
if (sz != config->font.size) _font_size_set(data, sz);
|
||||
int sz = (double)config->font.size * p->zoom;
|
||||
if (sz != config->font.size)
|
||||
win_font_size_set(term_win_get(sd->term), sz);
|
||||
}
|
||||
sd->didclick = EINA_TRUE;
|
||||
return EVAS_EVENT_FLAG_ON_HOLD;
|
||||
|
@ -4461,8 +4461,9 @@ _smart_cb_gest_zoom_end(void *data, void *event)
|
|||
config = sd->config;
|
||||
if (config)
|
||||
{
|
||||
int sz = (double)sd->zoom_fontsize_start * p->zoom;
|
||||
if (sz != config->font.size) _font_size_set(data, sz);
|
||||
int sz = (double)config->font.size * p->zoom;
|
||||
if (sz != config->font.size)
|
||||
win_font_size_set(term_win_get(sd->term), sz);
|
||||
}
|
||||
sd->didclick = EINA_TRUE;
|
||||
return EVAS_EVENT_FLAG_ON_HOLD;
|
||||
|
@ -4471,7 +4472,6 @@ _smart_cb_gest_zoom_end(void *data, void *event)
|
|||
static Evas_Event_Flags
|
||||
_smart_cb_gest_zoom_abort(void *data, void *event EINA_UNUSED)
|
||||
{
|
||||
// Elm_Gesture_Zoom_Info *p = event;
|
||||
Termio *sd = evas_object_smart_data_get(data);
|
||||
Config *config;
|
||||
|
||||
|
@ -4480,7 +4480,7 @@ _smart_cb_gest_zoom_abort(void *data, void *event EINA_UNUSED)
|
|||
if (config)
|
||||
{
|
||||
if (sd->zoom_fontsize_start != config->font.size)
|
||||
_font_size_set(data, sd->zoom_fontsize_start);
|
||||
win_font_size_set(term_win_get(sd->term), sd->zoom_fontsize_start);
|
||||
}
|
||||
sd->didclick = EINA_TRUE;
|
||||
return EVAS_EVENT_FLAG_ON_HOLD;
|
||||
|
|
|
@ -4117,6 +4117,24 @@ term_new(Win *wn, Config *config, const char *cmd,
|
|||
|
||||
/* }}} */
|
||||
|
||||
|
||||
|
||||
static Eina_Bool
|
||||
_font_size_set(Term *term, void *data)
|
||||
{
|
||||
int fontsize = (intptr_t) data;
|
||||
|
||||
termio_font_size_set(term->termio, fontsize);
|
||||
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
||||
void
|
||||
win_font_size_set(Win *wn, int new_size)
|
||||
{
|
||||
for_each_term_do(wn, &_font_size_set, (void*)(intptr_t)new_size);
|
||||
}
|
||||
|
||||
void
|
||||
windows_free(void)
|
||||
{
|
||||
|
@ -4146,3 +4164,19 @@ windows_update(void)
|
|||
tc->update(tc);
|
||||
}
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
for_each_term_do(Win *wn, For_Each_Term cb, void *data)
|
||||
{
|
||||
Eina_List *l;
|
||||
Term *term;
|
||||
Eina_Bool res = ECORE_CALLBACK_DONE;
|
||||
|
||||
EINA_LIST_FOREACH(wn->terms, l, term)
|
||||
{
|
||||
res = cb(term, data);
|
||||
if (res == ECORE_CALLBACK_CANCEL)
|
||||
return res;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -52,10 +52,18 @@ void term_next(Term *term);
|
|||
void term_prev(Term *term);
|
||||
Win * term_win_get(Term *term);
|
||||
|
||||
void
|
||||
win_font_size_set(Win *wn, int new_size);
|
||||
|
||||
Eina_Bool
|
||||
term_has_popmedia(const Term *term);
|
||||
void
|
||||
term_popmedia_close(Term *term);
|
||||
|
||||
typedef Eina_Bool (*For_Each_Term)(Term *term, void *data);
|
||||
|
||||
Eina_Bool
|
||||
for_each_term_do(Win *wn, For_Each_Term cb, void *data);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue