From: Enlightenment S. <no-...@en...> - 2012-06-12 13:16:58
|
Log: xx notes Author: raster Date: 2012-06-12 06:16:47 -0700 (Tue, 12 Jun 2012) New Revision: 72028 Trac: http://trac.enlightenment.org/e/changeset/72028 Modified: trunk/terminology/src/bin/main.c Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-12 13:08:51 UTC (rev 72027) +++ trunk/terminology/src/bin/main.c 2012-06-12 13:16:47 UTC (rev 72028) @@ -176,6 +176,7 @@ Evas_Object *o; elm_box_clear(op_opbox); + // XXX: not done yet } static void @@ -184,6 +185,7 @@ Evas_Object *o; elm_box_clear(op_opbox); + // XXX: not done yet } static void |
From: Enlightenment S. <no-...@en...> - 2012-06-12 13:17:23
|
Log: xx notes Author: raster Date: 2012-06-12 06:17:17 -0700 (Tue, 12 Jun 2012) New Revision: 72029 Trac: http://trac.enlightenment.org/e/changeset/72029 Modified: trunk/terminology/src/bin/config.c Modified: trunk/terminology/src/bin/config.c =================================================================== --- trunk/terminology/src/bin/config.c 2012-06-12 13:16:47 UTC (rev 72028) +++ trunk/terminology/src/bin/config.c 2012-06-12 13:17:17 UTC (rev 72029) @@ -6,6 +6,7 @@ void config_init(void) { + // XXX: need to load config and only if not found use this config = calloc(1, sizeof(Config)); // config->font.bitmap = 0; // config->font.name = eina_stringshare_add("Monospace"); @@ -21,4 +22,5 @@ void config_shutdown(void) { + // XXX: free config } |
From: Enlightenment S. <no-...@en...> - 2012-06-12 16:03:08
|
Log: use images/terminology.png Author: raster Date: 2012-06-12 09:02:57 -0700 (Tue, 12 Jun 2012) New Revision: 72038 Trac: http://trac.enlightenment.org/e/changeset/72038 Modified: trunk/terminology/src/bin/win.c Modified: trunk/terminology/src/bin/win.c =================================================================== --- trunk/terminology/src/bin/win.c 2012-06-12 16:02:25 UTC (rev 72037) +++ trunk/terminology/src/bin/win.c 2012-06-12 16:02:57 UTC (rev 72038) @@ -15,7 +15,7 @@ elm_win_icon_name_set(win, "Terminology"); o = evas_object_image_add(evas_object_evas_get(win)); - snprintf(buf, sizeof(buf), "%s/icons/terminology.png", + snprintf(buf, sizeof(buf), "%s/images/terminology.png", elm_app_data_dir_get()); evas_object_image_file_set(o, buf, NULL); elm_win_icon_object_set(win, o); |
From: Enlightenment S. <no-...@en...> - 2012-06-12 16:16:07
|
Log: much better sizing behavior ith font changing Author: raster Date: 2012-06-12 09:15:55 -0700 (Tue, 12 Jun 2012) New Revision: 72039 Trac: http://trac.enlightenment.org/e/changeset/72039 Modified: trunk/terminology/src/bin/main.c trunk/terminology/src/bin/termio.c Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-12 16:02:57 UTC (rev 72038) +++ trunk/terminology/src/bin/main.c 2012-06-12 16:15:55 UTC (rev 72039) @@ -7,7 +7,7 @@ static Evas_Object *win, *bg, *term; static Evas_Object *op_frame, *op_box, *op_toolbar, *op_opbox, - *op_fontslider, *op_fontllist; + *op_fontslider, *op_fontlist; static Eina_Bool op_out = EINA_FALSE; static void @@ -55,6 +55,23 @@ static Eina_Hash *fonthash = NULL; static void +_update_sizing(void) +{ + Evas_Coord ow = 0, oh = 0, mw = 1, mh = 1, w, h; + + evas_object_data_del(term, "sizedone"); + termio_config_update(term); + evas_object_geometry_get(term, NULL, NULL, &ow, &oh); + evas_object_size_hint_min_get(term, &mw, &mh); + if (mw < 1) mw = 1; + if (mh < 1) mh = 1; + w = ow / mw; + h = oh / mh; + evas_object_data_del(term, "sizedone"); + evas_object_size_hint_request_set(term, w * mw, h * mh); +} + +static void _cb_op_font_sel(void *data, Evas_Object *obj, void *event) { Font *f = data; @@ -63,8 +80,7 @@ if (config->font.name) eina_stringshare_del(config->font.name); config->font.name = eina_stringshare_add(f->name); config->font.bitmap = f->bitmap; - evas_object_data_del(term, "sizedone"); - termio_config_update(term); + _update_sizing(); } static void @@ -74,8 +90,7 @@ if (config->font.size == size) return; config->font.size = size; - evas_object_data_del(term, "sizedone"); - termio_config_update(term); + _update_sizing(); } static int @@ -118,7 +133,7 @@ evas_object_smart_callback_add(o, "delay,changed", _cb_op_fontsize_sel, NULL); - o = elm_list_add(win); + op_fontlist = o = elm_list_add(win); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-12 16:02:57 UTC (rev 72038) +++ trunk/terminology/src/bin/termio.c 2012-06-12 16:15:55 UTC (rev 72039) @@ -315,6 +315,7 @@ evas_object_raise(sd->cur.obj); evas_object_resize(sd->cur.obj, sd->font.chw, sd->font.chh); evas_object_size_hint_min_set(obj, sd->font.chw, sd->font.chh); + printf("req grid %ix%i\n", sd->grid.w, sd->grid.h); evas_object_size_hint_request_set(obj, sd->font.chw * sd->grid.w, sd->font.chh * sd->grid.h); |
From: Enlightenment S. <no-...@en...> - 2012-06-13 01:09:27
|
Log: show selected font in font selector Author: raster Date: 2012-06-12 18:09:20 -0700 (Tue, 12 Jun 2012) New Revision: 72056 Trac: http://trac.enlightenment.org/e/changeset/72056 Modified: trunk/terminology/src/bin/main.c Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-13 00:54:27 UTC (rev 72055) +++ trunk/terminology/src/bin/main.c 2012-06-13 01:09:20 UTC (rev 72056) @@ -106,7 +106,8 @@ char buf[4096], *file, *fname, *s; Eina_List *files, *fontlist, *l; Font *f; - + Elm_Object_Item *it, *sel_it; + EINA_LIST_FREE(fonts, f) { eina_stringshare_del(f->name); @@ -137,6 +138,8 @@ evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_list_select_mode_set(o, ELM_OBJECT_SELECT_MODE_DEFAULT); + evas_event_freeze(evas_object_evas_get(win)); edje_freeze(); @@ -148,15 +151,27 @@ f->name = eina_stringshare_add(file); f->bitmap = EINA_TRUE; fonts = eina_list_append(fonts, f); - elm_list_item_append(o, f->name, NULL, NULL, _cb_op_font_sel, f); + it = elm_list_item_append(o, f->name, NULL, NULL, _cb_op_font_sel, f); + if ((config->font.bitmap) && (config->font.name) && + (!strcmp(config->font.name, f->name))) + { + elm_list_item_selected_set(it, EINA_TRUE); + sel_it = it; + } free(file); } fontlist = evas_font_available_list(evas_object_evas_get(win)); + fontlist = eina_list_sort(fontlist, eina_list_count(fontlist), + _cb_op_font_sort); fonthash = eina_hash_string_superfast_new(NULL); - fontlist = eina_list_sort(fontlist, eina_list_count(fontlist), - _cb_op_font_sort); + if ((files) && (fontlist)) + { + it = elm_list_item_append(o, "", NULL, NULL, NULL, NULL); + elm_list_item_separator_set(it, EINA_TRUE); + } + EINA_LIST_FOREACH(fontlist, l, fname) { snprintf(buf, sizeof(buf), "%s", fname); @@ -170,14 +185,21 @@ f->bitmap = EINA_FALSE; eina_hash_add(fonthash, fname, f); fonts = eina_list_append(fonts, f); - elm_list_item_append(o, f->name, NULL, NULL, _cb_op_font_sel, f); + it = elm_list_item_append(o, f->name, NULL, NULL, _cb_op_font_sel, f); + if ((!config->font.bitmap) && (config->font.name) && + (!strcmp(config->font.name, f->name))) + { + elm_list_item_selected_set(it, EINA_TRUE); + sel_it = it; + } } } if (fontlist) evas_font_available_list_free(evas_object_evas_get(win), fontlist); elm_list_go(o); - + if (sel_it) elm_list_item_show(sel_it); + edje_thaw(); evas_event_thaw(evas_object_evas_get(win)); |
From: Enlightenment S. <no-...@en...> - 2012-06-13 08:23:24
|
Log: fix selection get of backscrolled text! Author: raster Date: 2012-06-13 01:23:18 -0700 (Wed, 13 Jun 2012) New Revision: 72073 Trac: http://trac.enlightenment.org/e/changeset/72073 Modified: trunk/terminology/src/bin/termio.c Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-13 08:23:17 UTC (rev 72072) +++ trunk/terminology/src/bin/termio.c 2012-06-13 08:23:18 UTC (rev 72073) @@ -385,15 +385,6 @@ } } -static void -_clear_selection(Evas_Object *obj) -{ - Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; - if (!sd->win) return; - elm_object_cnp_selection_clear(sd->win, ELM_SEL_TYPE_PRIMARY); -} - static Eina_Bool _getsel_cb(void *data, Evas_Object *obj, Elm_Selection_Data *ev) { @@ -593,11 +584,7 @@ } else { - if (sd->cur.sel) - { - sd->cur.sel = 0; - _clear_selection(data); - } + if (sd->cur.sel) sd->cur.sel = 0; sd->cur.makesel = 1; sd->cur.sel1.x = cx; sd->cur.sel1.y = cy - sd->scroll; @@ -1017,7 +1004,7 @@ w = 0; last0 = -1; - cells = termpty_cellrow_get(sd->pty, y - sd->scroll, &w); + cells = termpty_cellrow_get(sd->pty, y, &w); if (w > sd->grid.w) w = sd->grid.w; x1 = c1x; x2 = c2x; |
From: Enlightenment S. <no-...@en...> - 2012-06-13 15:10:28
|
Log: move optiosn to their own files now. cleaner. Author: raster Date: 2012-06-13 08:10:18 -0700 (Wed, 13 Jun 2012) New Revision: 72088 Trac: http://trac.enlightenment.org/e/changeset/72088 Added: trunk/terminology/src/bin/main.h trunk/terminology/src/bin/options.c trunk/terminology/src/bin/options.h trunk/terminology/src/bin/options_font.c trunk/terminology/src/bin/options_font.h Modified: trunk/terminology/src/bin/Makefile.am trunk/terminology/src/bin/main.c Modified: trunk/terminology/src/bin/Makefile.am =================================================================== --- trunk/terminology/src/bin/Makefile.am 2012-06-13 15:00:16 UTC (rev 72087) +++ trunk/terminology/src/bin/Makefile.am 2012-06-13 15:10:18 UTC (rev 72088) @@ -12,7 +12,9 @@ col.c col.h \ config.c config.h \ keyin.c keyin.h \ -main.c \ +main.c main.h \ +options.c options.h \ +options_font.c options_font.h \ termio.c termio.h \ termpty.c termpty.h \ utf8.c utf8.h \ Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-13 15:00:16 UTC (rev 72087) +++ trunk/terminology/src/bin/main.c 2012-06-13 15:10:18 UTC (rev 72088) @@ -1,14 +1,12 @@ #include <Elementary.h> +#include "main.h" #include "win.h" #include "termio.h" #include "config.h" +#include "options.h" const char *cmd = NULL; -static Evas_Object *win, *bg, *term; -static Evas_Object - *op_frame, *op_box, *op_toolbar, *op_opbox, - *op_fontslider, *op_fontlist; -static Eina_Bool op_out = EINA_FALSE; +static Evas_Object *win = NULL, *bg = NULL, *term = NULL; static void _cb_focus_in(void *data, Evas_Object *obj, void *event) @@ -43,251 +41,10 @@ } } -typedef struct _Font Font; - -struct _Font -{ - const char *name; - Eina_Bool bitmap : 1; -}; - -static Eina_List *fonts = NULL; -static Eina_Hash *fonthash = NULL; - static void -_update_sizing(void) -{ - Evas_Coord ow = 0, oh = 0, mw = 1, mh = 1, w, h; - - evas_object_data_del(term, "sizedone"); - termio_config_update(term); - evas_object_geometry_get(term, NULL, NULL, &ow, &oh); - evas_object_size_hint_min_get(term, &mw, &mh); - if (mw < 1) mw = 1; - if (mh < 1) mh = 1; - w = ow / mw; - h = oh / mh; - evas_object_data_del(term, "sizedone"); - evas_object_size_hint_request_set(term, w * mw, h * mh); -} - -static void -_cb_op_font_sel(void *data, Evas_Object *obj, void *event) -{ - Font *f = data; - if ((config->font.name) && (!strcmp(f->name, config->font.name))) - return; - if (config->font.name) eina_stringshare_del(config->font.name); - config->font.name = eina_stringshare_add(f->name); - config->font.bitmap = f->bitmap; - _update_sizing(); -} - -static void -_cb_op_fontsize_sel(void *data, Evas_Object *obj, void *event) -{ - int size =elm_slider_value_get(obj) + 0.5; - - if (config->font.size == size) return; - config->font.size = size; - _update_sizing(); -} - -static int -_cb_op_font_sort(const void *d1, const void *d2) -{ - return strcasecmp(d1, d2); -} - -static void -_cb_op_font(void *data, Evas_Object *obj, void *event) -{ - Evas_Object *o; - char buf[4096], *file, *fname, *s; - Eina_List *files, *fontlist, *l; - Font *f; - Elm_Object_Item *it, *sel_it; - - EINA_LIST_FREE(fonts, f) - { - eina_stringshare_del(f->name); - free(f); - } - if (fonthash) - { - eina_hash_free(fonthash); - fonthash = NULL; - } - elm_box_clear(op_opbox); - - op_fontslider = o = elm_slider_add(win); - 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_slider_span_size_set(o, 160); - elm_slider_unit_format_set(o, "%1.0f"); - elm_slider_indicator_format_set(o, "%1.0f"); - elm_slider_min_max_set(o, 5, 45); - elm_slider_value_set(o, config->font.size); - elm_box_pack_end(op_opbox, o); - evas_object_show(o); - - evas_object_smart_callback_add(o, "delay,changed", - _cb_op_fontsize_sel, NULL); - - op_fontlist = o = elm_list_add(win); - evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_list_select_mode_set(o, ELM_OBJECT_SELECT_MODE_DEFAULT); - - evas_event_freeze(evas_object_evas_get(win)); - edje_freeze(); - - snprintf(buf, sizeof(buf), "%s/fonts", elm_app_data_dir_get()); - files = ecore_file_ls(buf); - EINA_LIST_FREE(files, file) - { - f = calloc(1, sizeof(Font)); - f->name = eina_stringshare_add(file); - f->bitmap = EINA_TRUE; - fonts = eina_list_append(fonts, f); - it = elm_list_item_append(o, f->name, NULL, NULL, _cb_op_font_sel, f); - if ((config->font.bitmap) && (config->font.name) && - (!strcmp(config->font.name, f->name))) - { - elm_list_item_selected_set(it, EINA_TRUE); - sel_it = it; - } - free(file); - } - - fontlist = evas_font_available_list(evas_object_evas_get(win)); - fontlist = eina_list_sort(fontlist, eina_list_count(fontlist), - _cb_op_font_sort); - fonthash = eina_hash_string_superfast_new(NULL); - - if ((files) && (fontlist)) - { - it = elm_list_item_append(o, "", NULL, NULL, NULL, NULL); - elm_list_item_separator_set(it, EINA_TRUE); - } - - EINA_LIST_FOREACH(fontlist, l, fname) - { - snprintf(buf, sizeof(buf), "%s", fname); - s = strchr(buf, ':'); - if (s) *s = 0; - fname = buf; - if (!eina_hash_find(fonthash, fname)) - { - f = calloc(1, sizeof(Font)); - f->name = eina_stringshare_add(fname); - f->bitmap = EINA_FALSE; - eina_hash_add(fonthash, fname, f); - fonts = eina_list_append(fonts, f); - it = elm_list_item_append(o, f->name, NULL, NULL, _cb_op_font_sel, f); - if ((!config->font.bitmap) && (config->font.name) && - (!strcmp(config->font.name, f->name))) - { - elm_list_item_selected_set(it, EINA_TRUE); - sel_it = it; - } - } - } - if (fontlist) - evas_font_available_list_free(evas_object_evas_get(win), fontlist); - - elm_list_go(o); - if (sel_it) elm_list_item_show(sel_it); - - edje_thaw(); - evas_event_thaw(evas_object_evas_get(win)); - - elm_box_pack_end(op_opbox, o); - evas_object_show(o); -} - -static void -_cb_op_theme(void *data, Evas_Object *obj, void *event) -{ - Evas_Object *o; - - elm_box_clear(op_opbox); - // XXX: not done yet -} - -static void -_cb_op_behavior(void *data, Evas_Object *obj, void *event) -{ - Evas_Object *o; - - elm_box_clear(op_opbox); - // XXX: not done yet -} - -static void _cb_options(void *data, Evas_Object *obj, void *event) { - Evas_Object *o; - - if (!op_frame) - { - Elm_Object_Item *it_fn, *it_th, *it_bh; - - op_frame = o = elm_frame_add(win); - evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_text_set(o, "Options"); - - op_box = o = elm_box_add(win); - 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_content_set(op_frame, o); - evas_object_show(o); - - op_toolbar = o = elm_toolbar_add(win); - elm_object_style_set(o, "item_horizontal"); - 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_toolbar_icon_size_set(o, 16); - elm_toolbar_shrink_mode_set(o, ELM_TOOLBAR_SHRINK_NONE); - elm_toolbar_select_mode_set(o, ELM_OBJECT_SELECT_MODE_DEFAULT); - elm_toolbar_menu_parent_set(o, win); - elm_toolbar_homogeneous_set(o, EINA_FALSE); - - it_fn = elm_toolbar_item_append(o, "preferences-desktop-font", "Font", - _cb_op_font, NULL); - it_th = elm_toolbar_item_append(o, "preferences-desktop-theme", "Theme", - _cb_op_theme, NULL); - it_bh = elm_toolbar_item_append(o, "system-run", "Behavior", - _cb_op_behavior, NULL); - - elm_box_pack_end(op_box, o); - evas_object_show(o); - - op_opbox = o = elm_box_add(win); - evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(op_box, o); - evas_object_show(o); - - elm_toolbar_item_selected_set(it_fn, EINA_TRUE); - - evas_smart_objects_calculate(evas_object_evas_get(win)); - edje_object_part_swallow(bg, "terminology.options", op_frame); - evas_object_show(o); - } - if (!op_out) - { - edje_object_signal_emit(bg, "options,show", "terminology"); - op_out = EINA_TRUE; - } - else - { - edje_object_signal_emit(bg, "options,hide", "terminology"); - op_out = EINA_FALSE; - elm_object_focus_set(term, EINA_TRUE); - } + options_toggle(win, bg, term); } EAPI_MAIN int |
From: Enlightenment S. <no-...@en...> - 2012-06-14 14:18:18
|
Log: new options arrangment - more efficient and practical Author: raster Date: 2012-06-14 07:18:11 -0700 (Thu, 14 Jun 2012) New Revision: 72140 Trac: http://trac.enlightenment.org/e/changeset/72140 Modified: trunk/terminology/src/bin/options.c Modified: trunk/terminology/src/bin/options.c =================================================================== --- trunk/terminology/src/bin/options.c 2012-06-14 14:11:04 UTC (rev 72139) +++ trunk/terminology/src/bin/options.c 2012-06-14 14:18:11 UTC (rev 72140) @@ -20,6 +20,13 @@ } static void +_cb_op_wallpaper(void *data, Evas_Object *obj, void *event) +{ + elm_box_clear(op_opbox); + // XXX: not done yet +} + +static void _cb_op_behavior(void *data, Evas_Object *obj, void *event) { elm_box_clear(op_opbox); @@ -33,7 +40,7 @@ if (!op_frame) { - Elm_Object_Item *it_fn, *it_th, *it_bh; + Elm_Object_Item *it_fn, *it_th, *it_wp, *it_bh; op_frame = o = elm_frame_add(win); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -41,15 +48,15 @@ elm_object_text_set(o, "Options"); op_box = o = elm_box_add(win); - 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_box_horizontal_set(o, EINA_TRUE); elm_object_content_set(op_frame, o); evas_object_show(o); op_toolbar = o = elm_toolbar_add(win); + elm_toolbar_horizontal_set(o, EINA_FALSE); elm_object_style_set(o, "item_horizontal"); - evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); + evas_object_size_hint_weight_set(o, 0.0, 0.0); + evas_object_size_hint_align_set(o, 0.5, 0.0); elm_toolbar_icon_size_set(o, 16); elm_toolbar_shrink_mode_set(o, ELM_TOOLBAR_SHRINK_NONE); elm_toolbar_select_mode_set(o, ELM_OBJECT_SELECT_MODE_DEFAULT); @@ -60,6 +67,8 @@ _cb_op_font, term); it_th = elm_toolbar_item_append(o, "preferences-desktop-theme", "Theme", _cb_op_theme, NULL); + it_wp = elm_toolbar_item_append(o, "video-display", "Wallpaper", + _cb_op_wallpaper, NULL); it_bh = elm_toolbar_item_append(o, "system-run", "Behavior", _cb_op_behavior, NULL); |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:04
|
Log: terminology now uses textgrid.. .oh so much FAAAASTER... and saves gobs and gobs of ram. Author: raster Date: 2012-06-15 22:07:33 -0700 (Fri, 15 Jun 2012) New Revision: 72209 Trac: http://trac.enlightenment.org/e/changeset/72209 Modified: trunk/terminology/src/bin/col.c trunk/terminology/src/bin/col.h trunk/terminology/src/bin/config.c trunk/terminology/src/bin/termio.c trunk/terminology/src/bin/termpty.h Modified: trunk/terminology/src/bin/col.c =================================================================== --- trunk/terminology/src/bin/col.c 2012-06-16 05:06:29 UTC (rev 72208) +++ trunk/terminology/src/bin/col.c 2012-06-16 05:07:33 UTC (rev 72209) @@ -1,6 +1,6 @@ #include "col.h" -const Color colors[2][11] = +const Color colors[2][12] = { { // normal { 0xaa, 0xaa, 0xaa, 0xff }, // COL_DEF @@ -12,6 +12,7 @@ { 0xcc, 0x33, 0xcc, 0xff }, // COL_MAGENTA { 0x33, 0xcc, 0xcc, 0xff }, // COL_CYAN { 0xcc, 0xcc, 0xcc, 0xff }, // COL_WHITE + { 0x00, 0x00, 0x00, 0x00 }, // COL_INVIS { 0x22, 0x22, 0x22, 0xff }, // COL_INVERSE { 0xaa, 0xaa, 0xaa, 0xff }, // COL_INVERSEBG }, @@ -25,6 +26,7 @@ { 0xff, 0x66, 0xff, 0xff }, // COL_MAGENTA { 0x66, 0xff, 0xff, 0xff }, // COL_CYAN { 0xff, 0xff, 0xff, 0xff }, // COL_WHITE + { 0x00, 0x00, 0x00, 0x00 }, // COL_INVIS { 0x11, 0x11, 0x11, 0xff }, // COL_INVERSE { 0xee, 0xee, 0xee, 0xff }, // COL_INVERSEBG } Modified: trunk/terminology/src/bin/col.h =================================================================== --- trunk/terminology/src/bin/col.h 2012-06-16 05:06:29 UTC (rev 72208) +++ trunk/terminology/src/bin/col.h 2012-06-16 05:07:33 UTC (rev 72209) @@ -5,5 +5,5 @@ unsigned char r, g, b, a; }; -extern const Color colors[2][11]; +extern const Color colors[2][12]; extern const Color colors256[256]; Modified: trunk/terminology/src/bin/config.c =================================================================== --- trunk/terminology/src/bin/config.c 2012-06-16 05:06:29 UTC (rev 72208) +++ trunk/terminology/src/bin/config.c 2012-06-16 05:07:33 UTC (rev 72209) @@ -9,7 +9,7 @@ // XXX: need to load config and only if not found use this config = calloc(1, sizeof(Config)); // config->font.bitmap = 0; -// config->font.name = eina_stringshare_add("Monospace"); +// config->font.name = eina_stringshare_add("Monospace"); config->font.bitmap = 1; config->font.name = eina_stringshare_add("nex6x10.pcf"); config->font.size = 10; Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-16 05:06:29 UTC (rev 72208) +++ trunk/terminology/src/bin/termio.c 2012-06-16 05:07:33 UTC (rev 72209) @@ -19,7 +19,7 @@ } font; struct { int w, h; - Termch *array; + Evas_Object *obj; } grid; struct { Evas_Object *obj, *selo1, *selo2, *selo3; @@ -56,128 +56,131 @@ Termio *sd = evas_object_smart_data_get(obj); Evas_Coord ox, oy, ow, oh; char txt[8]; + int i, j, x, y, w, ch1, ch2; + if (!sd) return; evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); - if (sd->grid.array) + for (y = 0; y < sd->grid.h; y++) { - int i, j, x, y, w; + Termcell *cells; + Evas_Textgrid_Cell *tc; - i = 0; - for (y = 0; y < sd->grid.h; y++) + w = 0; j = 0; + cells = termpty_cellrow_get(sd->pty, y - sd->scroll, &w); + tc = evas_object_textgrid_cellrow_get(sd->grid.obj, y); + ch1 = -1; + for (x = 0; x < sd->grid.w; x++) { - Termcell *cells; - - w = 0; - cells = termpty_cellrow_get(sd->pty, y - sd->scroll, &w); - j = 0; - for (x = 0; x < sd->grid.w; x++) + if ((!cells) || (x >= w)) { - Evas_Object *bg = sd->grid.array[i].bg; - Evas_Object *tx = sd->grid.array[i].tx; - - if ((!cells) || (x >= w)) + if ((tc[x].codepoint != 0) || + (tc[x].bg != COL_INVIS) || + (tc[x].bg_extended)) { - evas_object_hide(bg); - evas_object_hide(tx); + if (ch1 < 0) ch1 = x; + ch2 = x; } - else + tc[x].codepoint = 0; + tc[x].bg = COL_INVIS; + tc[x].bg_extended = 0; + } + else + { + if (cells[j].att.invisible) { - Color c1, c2; - - if (cells[j].att.invisible) + if ((tc[x].codepoint != 0) || + (tc[x].bg != COL_INVIS) || + (tc[x].bg_extended)) { - evas_object_hide(tx); - evas_object_hide(bg); + if (ch1 < 0) ch1 = x; + ch2 = x; } - else + tc[x].codepoint = 0; + tc[x].bg = COL_INVIS; + tc[x].bg_extended = 0; + } + else + { + int bold, fg, bg, fgext, bgext, glyph; + + // colors + bold = cells[j].att.bold; + fgext = cells[j].att.fg256; + bgext = cells[j].att.bg256; + glyph = cells[j].glyph; + + if (cells[j].att.inverse) { - int cbd, cbdbg, cfg, cbg; - - // colors - cbd = cells[j].att.bold; - cbdbg = 0; - cfg = cells[j].att.fg; - cbg = cells[j].att.bg; - - if (cells[j].att.inverse) + fgext = 0; + bgext = 0; + fg = COL_INVERSE; + bg = COL_INVERSEBG; + if (bold) { - cfg = COL_INVERSE; - cbg = COL_INVERSEBG; - cbdbg = cbd; - c1 = colors[cbd][cfg]; - c2 = colors[cbdbg][cbg]; - if (cbg == COL_DEF) evas_object_hide(bg); - else evas_object_show(bg); + fg += 12; + bg += 12; } - else + if (cells[j].att.faint) { - if (cells[j].att.fg256) - c1 = colors256[cfg]; - else - c1 = colors[cbd][cfg]; - if (cells[j].att.bg256) - { - c2 = colors256[cbg]; - evas_object_show(bg); - } - else - { - c2 = colors[cbdbg][cbg]; - if (cbg == COL_DEF) evas_object_hide(bg); - else evas_object_show(bg); - } + fg += 24; + bg += 24; } - if (cells[j].att.faint) + } + else + { + fg = cells[j].att.fg; + bg = cells[j].att.bg; + + if (!fgext) { - c1.r /= 2; - c1.g /= 2; - c1.b /= 2; - c1.a /= 2; - - c2.r /= 2; - c2.g /= 2; - c2.b /= 2; - c2.a /= 2; + if (bold) fg += 12; } -// if (cells[j].att.unerline) {} -// if (cells[j].att.italic) {} // never going 2 support -// if (cells[j].att.strike) {} -// if (cells[j].att.blink) {} -// if (cells[j].att.blink2) {} - evas_object_color_set(tx, c1.r, c1.g, c1.b, c1.a); - evas_object_color_set(bg, c2.r, c2.g, c2.b, c2.a); - - // text - convert glyph back to utf8 str seq - if (cells[j].glyph > 0) + if (!bgext) { - int g = cells[j].glyph; - - glyph_to_utf8(g, txt); - // special case for whitespace :) - if (cells[j].glyph == ' ') - { - evas_object_hide(tx); - } - else - { - evas_object_text_text_set(tx, txt); - evas_object_show(tx); - } + if (bg == COL_DEF) bg = COL_INVIS; } - else + if (cells[j].att.faint) { - evas_object_hide(tx); - if (cbg == COL_DEF) evas_object_hide(bg); - else evas_object_show(bg); + if (!fgext) fg += 24; + if (!bgext) bg += 24; } + if ((glyph == ' ') || (glyph == 0)) + fg = COL_INVIS; } + if ((tc[x].codepoint != glyph) || + (tc[x].fg != fg) || + (tc[x].bg != bg) || + (tc[x].fg_extended != fgext) || + (tc[x].bg_extended != bgext) || + (tc[x].underline != cells[j].att.underline) || + (tc[x].strikethrough != cells[j].att.strike)) + { + if (ch1 < 0) ch1 = x; + ch2 = x; + } + tc[x].fg_extended = fgext; + tc[x].bg_extended = bgext; + tc[x].underline = cells[j].att.underline; + tc[x].strikethrough = cells[j].att.strike; + tc[x].fg = fg; + tc[x].bg = bg; + tc[x].codepoint = glyph; + // cells[j].att.italic // never going 2 support + // cells[j].att.blink + // cells[j].att.blink2 } - j++; - i++; } + j++; } + evas_object_textgrid_cellrow_set(sd->grid.obj, y, tc); + /* only bothering to keep 1 change span per row - not worth doing + * more really */ + if (ch1 >= 0) + evas_object_textgrid_update_add(sd->grid.obj, ch1, y, + ch2 - ch1 + 1, 1); } + if ((sd->scroll != 0) || (sd->pty->state.hidecursor)) evas_object_hide(sd->cur.obj); else @@ -265,61 +268,14 @@ } evas_event_freeze(evas_object_evas_get(obj)); - if (sd->grid.array) - { - int i, size = sd->grid.w * sd->grid.h; - - for (i = 0; i < size; i++) - { - if (sd->grid.array[i].bg) evas_object_del(sd->grid.array[i].bg); - if (sd->grid.array[i].tx) evas_object_del(sd->grid.array[i].tx); - } - free(sd->grid.array); - sd->grid.array = NULL; - } + evas_object_textgrid_size_set(sd->grid.obj, w, h); sd->grid.w = w; sd->grid.h = h; - sd->grid.array = calloc(1, sizeof(Termch) * sd->grid.w * sd->grid.h); - if (sd->grid.array) - { - int i, x, y; - - i = 0; - for (y = 0; y < sd->grid.h; y++) - { - for (x = 0; x < sd->grid.w; x++) - { - Evas_Object *bg, *tx; - - bg = evas_object_rectangle_add(evas_object_evas_get(obj)); - tx = evas_object_text_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(bg, EINA_TRUE); - evas_object_pass_events_set(tx, EINA_TRUE); - evas_object_propagate_events_set(bg, EINA_FALSE); - evas_object_propagate_events_set(tx, EINA_FALSE); - sd->grid.array[i].bg = bg; - sd->grid.array[i].tx = tx; - evas_object_smart_member_add(bg, obj); - evas_object_smart_member_add(tx, obj); - evas_object_resize(bg, sd->font.chw, sd->font.chh); - evas_object_text_font_set(tx, sd->font.name, sd->font.size); - evas_object_color_set(tx, 0, 0, 0, 0); - evas_object_color_set(bg, 0, 0, 0, 0); - i++; - } - } - } - evas_object_raise(sd->cur.selo1); - evas_object_raise(sd->cur.selo2); - evas_object_raise(sd->cur.selo3); - evas_object_raise(sd->cur.obj); evas_object_resize(sd->cur.obj, sd->font.chw, sd->font.chh); evas_object_size_hint_min_set(obj, sd->font.chw, sd->font.chh); - printf("req grid %ix%i\n", sd->grid.w, sd->grid.h); evas_object_size_hint_request_set(obj, sd->font.chw * sd->grid.w, sd->font.chh * sd->grid.h); - evas_object_raise(sd->event); termpty_resize(sd->pty, w, h); _smart_calculate(obj); _smart_apply(obj); @@ -667,10 +623,30 @@ } static void +_win_obj_del(void *data, Evas *e, Evas_Object *obj, void *event) +{ + Termio *sd; + + sd = evas_object_smart_data_get(data); + if (!sd) return; + if (obj == sd->win) + { + evas_object_event_callback_del_full(sd->win, EVAS_CALLBACK_DEL, + _win_obj_del, data); + sd->win = NULL; + } +} + +static void _smart_add(Evas_Object *obj) { Termio *sd; Evas_Object_Smart_Clipped_Data *cd; + Evas_Object *o; + Evas_Coord w = 2, h = 2; + char buf[4096]; + int i, j, k, n; + _termio_sc.add(obj); cd = evas_object_smart_data_get(obj); if (!cd) return; @@ -682,75 +658,92 @@ sd->jump_on_change = config->jump_on_change; + if (config->font.bitmap) { - Evas_Object *o; - Evas_Coord w = 2, h = 2; - char buf[4096]; - - if (config->font.bitmap) + snprintf(buf, sizeof(buf), "%s/fonts/%s", + elm_app_data_dir_get(), config->font.name); + sd->font.name = eina_stringshare_add(buf); + } + else + sd->font.name = eina_stringshare_add(config->font.name); + sd->font.size = config->font.size; + + o = evas_object_textgrid_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(o, EINA_TRUE); + evas_object_propagate_events_set(o, EINA_FALSE); + evas_object_smart_member_add(o, obj); + evas_object_show(o); + sd->grid.obj = o; + evas_object_textgrid_font_set(o, sd->font.name, sd->font.size); + evas_object_textgrid_size_set(o, 1, 1); + evas_object_textgrid_cell_size_get(o, &w, &h); + if (w < 1) w = 1; + if (h < 1) h = 1; + sd->font.chw = w; + sd->font.chh = h; + + for (n = 0, k = 0; k < 2; k++) + { + for (j = 0; j < 2; j++) { - snprintf(buf, sizeof(buf), "%s/fonts/%s", - elm_app_data_dir_get(), config->font.name); - sd->font.name = eina_stringshare_add(buf); + for (i = 0; i < 12; i++, n++) + evas_object_textgrid_palette_set + (o, EVAS_TEXTGRID_PALETTE_STANDARD, n, + colors[j][i].r / (k + 1), colors[j][i].g / (k + 1), + colors[j][i].b / (k + 1), colors[j][i].a / (k + 1)); } - else - sd->font.name = eina_stringshare_add(config->font.name); - sd->font.size = config->font.size; - o = evas_object_text_add(evas_object_evas_get(obj)); - evas_object_text_font_set(o, sd->font.name, sd->font.size); - evas_object_text_text_set(o, "X"); - evas_object_geometry_get(o, NULL, NULL, &w, &h); - evas_object_del(o); - if (w < 1) w = 1; - if (h < 1) h = 1; - sd->font.chw = w; - sd->font.chh = h; - - o = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(o, EINA_TRUE); - evas_object_propagate_events_set(o, EINA_FALSE); - evas_object_smart_member_add(o, obj); - sd->cur.selo1 = o; - evas_object_color_set(o, 64, 64, 64, 64); - o = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(o, EINA_TRUE); - evas_object_propagate_events_set(o, EINA_FALSE); - evas_object_smart_member_add(o, obj); - sd->cur.selo2 = o; - evas_object_color_set(o, 64, 64, 64, 64); - o = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(o, EINA_TRUE); - evas_object_propagate_events_set(o, EINA_FALSE); - evas_object_smart_member_add(o, obj); - sd->cur.selo3 = o; - evas_object_color_set(o, 64, 64, 64, 64); - - o = edje_object_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(o, EINA_TRUE); - evas_object_propagate_events_set(o, EINA_FALSE); - evas_object_smart_member_add(o, obj); - sd->cur.obj = o; - snprintf(buf, sizeof(buf), "%s/themes/%s", - elm_app_data_dir_get(), config->theme); - edje_object_file_set(o, buf, "terminology/cursor"); - evas_object_resize(o, sd->font.chw, sd->font.chh); - evas_object_show(o); - - o = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_smart_member_add(o, obj); - sd->event = o; - evas_object_color_set(o, 0, 0, 0, 0); - evas_object_show(o); - - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, - _smart_cb_mouse_down, obj); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, - _smart_cb_mouse_up, obj); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, - _smart_cb_mouse_move, obj); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, - _smart_cb_mouse_wheel, obj); } + for (n = 0; n < 256; n++) + { + evas_object_textgrid_palette_set + (o, EVAS_TEXTGRID_PALETTE_EXTENDED, n, + colors256[n].r, colors256[n].g, + colors256[n].b, colors256[n].a); + } + o = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(o, EINA_TRUE); + evas_object_propagate_events_set(o, EINA_FALSE); + evas_object_smart_member_add(o, obj); + sd->cur.selo1 = o; + evas_object_color_set(o, 64, 64, 64, 64); + o = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(o, EINA_TRUE); + evas_object_propagate_events_set(o, EINA_FALSE); + evas_object_smart_member_add(o, obj); + sd->cur.selo2 = o; + evas_object_color_set(o, 64, 64, 64, 64); + o = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(o, EINA_TRUE); + evas_object_propagate_events_set(o, EINA_FALSE); + evas_object_smart_member_add(o, obj); + sd->cur.selo3 = o; + evas_object_color_set(o, 64, 64, 64, 64); + + o = edje_object_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(o, EINA_TRUE); + evas_object_propagate_events_set(o, EINA_FALSE); + evas_object_smart_member_add(o, obj); + sd->cur.obj = o; + snprintf(buf, sizeof(buf), "%s/themes/%s", + elm_app_data_dir_get(), config->theme); + edje_object_file_set(o, buf, "terminology/cursor"); + evas_object_resize(o, sd->font.chw, sd->font.chh); + evas_object_show(o); + + o = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_smart_member_add(o, obj); + sd->event = o; + evas_object_color_set(o, 0, 0, 0, 0); + evas_object_show(o); + + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, + _smart_cb_mouse_down, obj); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, + _smart_cb_mouse_up, obj); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, + _smart_cb_mouse_move, obj); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, + _smart_cb_mouse_wheel, obj); evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _smart_cb_key_down, obj); @@ -772,7 +765,6 @@ if (sd->cur.selo3) evas_object_del(sd->cur.selo3); if (sd->job) ecore_job_del(sd->job); if (sd->delayed_size_timer) ecore_timer_del(sd->delayed_size_timer); - if (sd->grid.array) free(sd->grid.array); if (sd->font.name) eina_stringshare_del(sd->font.name); if (sd->pty) termpty_free(sd->pty); sd->cur.obj = NULL; @@ -782,7 +774,6 @@ sd->cur.selo3 = NULL; sd->job = NULL; sd->delayed_size_timer = NULL; - sd->grid.array = NULL; sd->font.name = NULL; sd->pty = NULL; _termio_sc.del(obj); @@ -812,25 +803,10 @@ if (!sd) return; evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); - if (sd->grid.array) - { - int i, x, y; - - i = 0; - for (y = 0; y < sd->grid.h; y++) - { - for (x = 0; x < sd->grid.w; x++) - { - evas_object_move(sd->grid.array[i].bg, - ox + (x * sd->font.chw), - oy + (y * sd->font.chh)); - evas_object_move(sd->grid.array[i].tx, - ox + (x * sd->font.chw), - oy + (y * sd->font.chh)); - i++; - } - } - } + evas_object_move(sd->grid.obj, ox, oy); + evas_object_resize(sd->grid.obj, + sd->grid.w * sd->font.chw, + sd->grid.h * sd->font.chh); evas_object_move(sd->cur.obj, ox + (sd->cur.x * sd->font.chw), oy + (sd->cur.y * sd->font.chh)); @@ -984,7 +960,18 @@ { Termio *sd = evas_object_smart_data_get(obj); if (!sd) return; - sd->win = win; + if (sd->win) + { + evas_object_event_callback_del_full(sd->win, EVAS_CALLBACK_DEL, + _win_obj_del, obj); + sd->win = NULL; + } + if (!win) return; + { + sd->win = win; + evas_object_event_callback_add(sd->win, EVAS_CALLBACK_DEL, + _win_obj_del, obj); + } } char * Modified: trunk/terminology/src/bin/termpty.h =================================================================== --- trunk/terminology/src/bin/termpty.h 2012-06-16 05:06:29 UTC (rev 72208) +++ trunk/terminology/src/bin/termpty.h 2012-06-16 05:07:33 UTC (rev 72209) @@ -13,9 +13,10 @@ #define COL_MAGENTA 6 #define COL_CYAN 7 #define COL_WHITE 8 +#define COL_INVIS 9 -#define COL_INVERSE 9 -#define COL_INVERSEBG 10 +#define COL_INVERSE 10 +#define COL_INVERSEBG 11 struct _Termatt { |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:04
|
Log: handle null term row return - in case. Author: raster Date: 2012-06-15 22:27:03 -0700 (Fri, 15 Jun 2012) New Revision: 72210 Trac: http://trac.enlightenment.org/e/changeset/72210 Modified: trunk/terminology/src/bin/termio.c Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-16 05:07:33 UTC (rev 72209) +++ trunk/terminology/src/bin/termio.c 2012-06-16 05:27:03 UTC (rev 72210) @@ -69,6 +69,7 @@ w = 0; j = 0; cells = termpty_cellrow_get(sd->pty, y - sd->scroll, &w); tc = evas_object_textgrid_cellrow_get(sd->grid.obj, y); + if (!tc) continue; ch1 = -1; for (x = 0; x < sd->grid.w; x++) { |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:11
|
Log: oh and make genlist items update for font size changes... oh this is gorgeously good for usability! Author: raster Date: 2012-06-16 03:48:04 -0700 (Sat, 16 Jun 2012) New Revision: 72226 Trac: http://trac.enlightenment.org/e/changeset/72226 Modified: trunk/terminology/src/bin/options_font.c Modified: trunk/terminology/src/bin/options_font.c =================================================================== --- trunk/terminology/src/bin/options_font.c 2012-06-16 10:45:50 UTC (rev 72225) +++ trunk/terminology/src/bin/options_font.c 2012-06-16 10:48:04 UTC (rev 72226) @@ -56,6 +56,7 @@ if (config->font.size == size) return; config->font.size = size; _update_sizing(data); + elm_genlist_realized_items_update(op_fontlist); config_save(); } |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:13
|
Log: touch up options Author: raster Date: 2012-06-16 11:21:48 -0700 (Sat, 16 Jun 2012) New Revision: 72245 Trac: http://trac.enlightenment.org/e/changeset/72245 Modified: trunk/terminology/src/bin/options_behavior.c Modified: trunk/terminology/src/bin/options_behavior.c =================================================================== --- trunk/terminology/src/bin/options_behavior.c 2012-06-16 18:19:23 UTC (rev 72244) +++ trunk/terminology/src/bin/options_behavior.c 2012-06-16 18:21:48 UTC (rev 72245) @@ -87,8 +87,9 @@ op_wordsep = o = elm_entry_add(opbox); 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_entry_single_line_set(o, EINA_TRUE); elm_entry_scrollable_set(o, EINA_TRUE); - elm_entry_single_line_set(o, EINA_TRUE); + elm_entry_scrollbar_policy_set(o, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); txt = elm_entry_utf8_to_markup(config->wordsep); if (txt) { |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:11
|
Log: handle textgrid font size changes properly save and load config now (font size/font changes stick now) Author: raster Date: 2012-06-15 23:28:39 -0700 (Fri, 15 Jun 2012) New Revision: 72216 Trac: http://trac.enlightenment.org/e/changeset/72216 Modified: trunk/terminology/src/bin/config.c trunk/terminology/src/bin/config.h trunk/terminology/src/bin/main.c trunk/terminology/src/bin/options_font.c trunk/terminology/src/bin/termio.c Modified: trunk/terminology/src/bin/config.c =================================================================== --- trunk/terminology/src/bin/config.c 2012-06-16 06:28:11 UTC (rev 72215) +++ trunk/terminology/src/bin/config.c 2012-06-16 06:28:39 UTC (rev 72216) @@ -1,26 +1,117 @@ #include <Elementary.h> #include "config.h" +#define LIM(v, min, max) {if (v >= max) v = max; else if (v <= min) v = min;} + +static Eet_Data_Descriptor *edd_base = NULL; Config *config = NULL; +static const char * +_homedir(void) +{ + const char *home; + + home = getenv("HOME"); + if (!home) home = getenv("TMP"); + if (!home) home = "/tmp"; + return home; +} + void config_init(void) { - // XXX: need to load config and only if not found use this - config = calloc(1, sizeof(Config)); -// config->font.bitmap = 0; -// config->font.name = eina_stringshare_add("Monospace"); - config->font.bitmap = 1; - config->font.name = eina_stringshare_add("nex6x10.pcf"); - config->font.size = 10; - config->scrollback = 4096; - config->theme = "default.edj"; - config->jump_on_change = 1; - config->wordsep = "'\"()[]{}=*!#$^\\:;,?` "; + Eet_Data_Descriptor_Class eddc; + Eet_File *ef; + char buf[4096], *home; + + eet_eina_stream_data_descriptor_class_set + (&eddc, sizeof(eddc), "Config", sizeof(Config)); + edd_base = eet_data_descriptor_stream_new(&eddc); + + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "font.name", font.name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "font.size", font.size, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "font.bitmap", font.bitmap, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "scrollback", scrollback, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "theme", theme, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "background", background, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "jump_on_change", jump_on_change, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "translucent", translucent, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "wordsep", wordsep, EET_T_STRING); + + home = (char *)_homedir(); + snprintf(buf, sizeof(buf), "%s/.terminology/config/standard/base.cfg", home); + ef = eet_open(buf, EET_FILE_MODE_READ); + if (ef) + { + config = eet_data_read(ef, edd_base, "config"); + eet_close(ef); + if (config) + { + LIM(config->font.size, 3, 400); + } + } + if (!config) + { + config = calloc(1, sizeof(Config)); +// config->font.bitmap = 0; +// config->font.name = eina_stringshare_add("Monospace"); + config->font.bitmap = 1; + config->font.name = eina_stringshare_add("nex6x10.pcf"); + config->font.size = 10; + config->scrollback = 4096; + config->theme = eina_stringshare_add("default.edj"); + config->background = NULL; + config->translucent = 0; + config->jump_on_change = 1; + config->wordsep = eina_stringshare_add("'\"()[]{}=*!#$^\\:;,?` "); + } } void config_shutdown(void) { - // XXX: free config + if (config) + { + if (config->font.name) eina_stringshare_del(config->font.name); + if (config->theme) eina_stringshare_del(config->theme); + if (config->background) eina_stringshare_del(config->background); + if (config->wordsep) eina_stringshare_del(config->wordsep); + free(config); + config = NULL; + } + if (edd_base) + { + eet_data_descriptor_free(edd_base); + edd_base = NULL; + } } + +void +config_save(void) +{ + Eet_File *ef; + char buf[4096], buf2[4096], *home; + int ok; + + home = (char *)_homedir(); + snprintf(buf, sizeof(buf), "%s/.terminology/config/standard", home); + ecore_file_mkpath(buf); + snprintf(buf, sizeof(buf), "%s/.terminology/config/standard/base.cfg.tmp", home); + snprintf(buf2, sizeof(buf2), "%s/.terminology/config/standard/base.cfg", home); + ef = eet_open(buf, EET_FILE_MODE_WRITE); + if (ef) + { + ok = eet_data_write(ef, edd_base, "config", config, 1); + eet_close(ef); + if (ok) ecore_file_mv(buf, buf2); + } +} Modified: trunk/terminology/src/bin/config.h =================================================================== --- trunk/terminology/src/bin/config.h 2012-06-16 06:28:11 UTC (rev 72215) +++ trunk/terminology/src/bin/config.h 2012-06-16 06:28:39 UTC (rev 72216) @@ -9,7 +9,9 @@ } font; int scrollback; const char *theme; + const char *background; unsigned char jump_on_change; + unsigned char translucent; const char *wordsep; }; @@ -17,4 +19,4 @@ void config_init(void); void config_shutdown(void); - +void config_save(void); Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-16 06:28:11 UTC (rev 72215) +++ trunk/terminology/src/bin/main.c 2012-06-16 06:28:39 UTC (rev 72216) @@ -97,8 +97,8 @@ evas_object_show(win); elm_run(); + config_shutdown(); elm_shutdown(); - config_shutdown(); return 0; } ELM_MAIN() Modified: trunk/terminology/src/bin/options_font.c =================================================================== --- trunk/terminology/src/bin/options_font.c 2012-06-16 06:28:11 UTC (rev 72215) +++ trunk/terminology/src/bin/options_font.c 2012-06-16 06:28:39 UTC (rev 72216) @@ -45,6 +45,7 @@ config->font.name = eina_stringshare_add(f->name); config->font.bitmap = f->bitmap; _update_sizing(f->term); + config_save(); } static void @@ -55,6 +56,7 @@ if (config->font.size == size) return; config->font.size = size; _update_sizing(data); + config_save(); } static int Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-16 06:28:11 UTC (rev 72215) +++ trunk/terminology/src/bin/termio.c 2012-06-16 06:28:39 UTC (rev 72216) @@ -791,7 +791,7 @@ if ((ow == w) && (oh == h)) return; evas_object_smart_changed(obj); if (sd->delayed_size_timer) ecore_timer_del(sd->delayed_size_timer); - sd->delayed_size_timer = ecore_timer_add(0.02, _smart_cb_delayed_size, obj); + sd->delayed_size_timer = ecore_timer_add(0.0, _smart_cb_delayed_size, obj); evas_object_resize(sd->event, ow, oh); } @@ -1061,7 +1061,6 @@ termio_config_update(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - Evas_Object *o; Evas_Coord w, h; char buf[4096]; @@ -1080,11 +1079,8 @@ sd->font.name = eina_stringshare_add(config->font.name); sd->font.size = config->font.size; - o = evas_object_text_add(evas_object_evas_get(obj)); - evas_object_text_font_set(o, sd->font.name, sd->font.size); - evas_object_text_text_set(o, "X"); - evas_object_geometry_get(o, NULL, NULL, &w, &h); - evas_object_del(o); + evas_object_textgrid_font_set(sd->grid.obj, sd->font.name, sd->font.size); + evas_object_textgrid_cell_size_get(sd->grid.obj, &w, &h); if (w < 1) w = 1; if (h < 1) h = 1; sd->font.chw = w; |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:12
|
Log: and add mini+maxi "A" labels either side of the slider. now that looks awesome. Author: raster Date: 2012-06-16 03:57:20 -0700 (Sat, 16 Jun 2012) New Revision: 72228 Trac: http://trac.enlightenment.org/e/changeset/72228 Modified: trunk/terminology/src/bin/options_font.c Modified: trunk/terminology/src/bin/options_font.c =================================================================== --- trunk/terminology/src/bin/options_font.c 2012-06-16 10:50:48 UTC (rev 72227) +++ trunk/terminology/src/bin/options_font.c 2012-06-16 10:57:20 UTC (rev 72228) @@ -164,7 +164,7 @@ void options_font(Evas_Object *opbox, Evas_Object *term) { - Evas_Object *o; + Evas_Object *o, *bx; char buf[4096], *file, *fname, *s; Eina_List *files, *fontlist, *l; Font *f; @@ -182,6 +182,14 @@ fonthash = NULL; } + bx = o = elm_box_add(opbox); + elm_box_horizontal_set(o, EINA_TRUE); + + o = elm_label_add(opbox); + elm_object_text_set(o, "<font_size=6>A</font_size>"); + elm_box_pack_end(bx, o); + evas_object_show(o); + op_fontslider = o = elm_slider_add(opbox); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); @@ -190,9 +198,17 @@ elm_slider_indicator_format_set(o, "%1.0f"); elm_slider_min_max_set(o, 5, 45); elm_slider_value_set(o, config->font.size); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); + o = elm_label_add(opbox); + elm_object_text_set(o, "<font_size=24>A</font_size>"); + elm_box_pack_end(bx, o); + evas_object_show(o); + + elm_box_pack_end(opbox, bx); + evas_object_show(bx); + evas_object_smart_callback_add(o, "delay,changed", _cb_op_fontsize_sel, term); |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:15
|
Log: fix jump on change option to work. Author: raster Date: 2012-06-16 19:35:07 -0700 (Sat, 16 Jun 2012) New Revision: 72257 Trac: http://trac.enlightenment.org/e/changeset/72257 Modified: trunk/terminology/src/bin/config.c trunk/terminology/src/bin/main.c trunk/terminology/src/bin/options.c trunk/terminology/src/bin/termio.c Modified: trunk/terminology/src/bin/config.c =================================================================== --- trunk/terminology/src/bin/config.c 2012-06-17 02:23:49 UTC (rev 72256) +++ trunk/terminology/src/bin/config.c 2012-06-17 02:35:07 UTC (rev 72257) @@ -69,7 +69,7 @@ config->theme = eina_stringshare_add("default.edj"); config->background = NULL; config->translucent = 0; - config->jump_on_change = 1; + config->jump_on_change = 0; config->wordsep = eina_stringshare_add("'\"()[]{}=*!#$^\\:;,?` "); } } Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-17 02:23:49 UTC (rev 72256) +++ trunk/terminology/src/bin/main.c 2012-06-17 02:35:07 UTC (rev 72257) @@ -7,6 +7,7 @@ const char *cmd = NULL; static Evas_Object *win = NULL, *bg = NULL, *term = NULL; +static Ecore_Timer *flush_timer = NULL; static void _cb_focus_in(void *data, Evas_Object *obj, void *event) @@ -20,6 +21,7 @@ { edje_object_signal_emit(bg, "focus,out", "terminology"); elm_object_focus_set(data, EINA_FALSE); + elm_cache_all_flush(); } static void @@ -47,6 +49,21 @@ options_toggle(win, bg, term); } +static Eina_Bool +_cb_flush(void *data) +{ + flush_timer = NULL; + elm_cache_all_flush(); + return EINA_FALSE; +} + +static void +_cb_change(void *data, Evas_Object *obj, void *event) +{ + if (!flush_timer) flush_timer = ecore_timer_add(0.25, _cb_flush, NULL); + else ecore_timer_delay(flush_timer, 0.25); +} + void main_trans_update(void) { @@ -103,6 +120,7 @@ _cb_size_hint, win); edje_object_part_swallow(bg, "terminology.content", o); evas_object_smart_callback_add(o, "options", _cb_options, NULL); + evas_object_smart_callback_add(o, "options", _cb_change, NULL); evas_object_show(o); main_trans_update(); Modified: trunk/terminology/src/bin/options.c =================================================================== --- trunk/terminology/src/bin/options.c 2012-06-17 02:23:49 UTC (rev 72256) +++ trunk/terminology/src/bin/options.c 2012-06-17 02:35:07 UTC (rev 72257) @@ -71,7 +71,7 @@ it_wp = elm_toolbar_item_append(o, "video-display", "Wallpaper", _cb_op_wallpaper, NULL); it_bh = elm_toolbar_item_append(o, "system-run", "Behavior", - _cb_op_behavior, NULL); + _cb_op_behavior, term); elm_box_pack_end(op_box, o); evas_object_show(o); Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-17 02:23:49 UTC (rev 72256) +++ trunk/terminology/src/bin/termio.c 2012-06-17 02:35:07 UTC (rev 72257) @@ -304,6 +304,7 @@ if (!sd) return; sd->job = NULL; _smart_apply(obj); + evas_object_smart_callback_call(obj, "changed", NULL); } static void @@ -783,8 +784,9 @@ evas_object_geometry_get(obj, NULL, NULL, &ow, &oh); if ((ow == w) && (oh == h)) return; evas_object_smart_changed(obj); - if (sd->delayed_size_timer) ecore_timer_del(sd->delayed_size_timer); - sd->delayed_size_timer = ecore_timer_add(0.0, _smart_cb_delayed_size, obj); + if (!sd->delayed_size_timer) sd->delayed_size_timer = + ecore_timer_add(0.0, _smart_cb_delayed_size, obj); + else ecore_timer_delay(sd->delayed_size_timer, 0.0); evas_object_resize(sd->event, ow, oh); } |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:15
|
Log: default backscroll -> 2000 lines, default wordsep string move space to start :) Author: raster Date: 2012-06-16 20:00:01 -0700 (Sat, 16 Jun 2012) New Revision: 72261 Trac: http://trac.enlightenment.org/e/changeset/72261 Modified: trunk/terminology/src/bin/config.c Modified: trunk/terminology/src/bin/config.c =================================================================== --- trunk/terminology/src/bin/config.c 2012-06-17 02:45:12 UTC (rev 72260) +++ trunk/terminology/src/bin/config.c 2012-06-17 03:00:01 UTC (rev 72261) @@ -65,12 +65,12 @@ config->font.bitmap = 1; config->font.name = eina_stringshare_add("nexus.pcf"); config->font.size = 10; - config->scrollback = 4096; + config->scrollback = 2000; config->theme = eina_stringshare_add("default.edj"); config->background = NULL; config->translucent = 0; config->jump_on_change = 0; - config->wordsep = eina_stringshare_add("'\"()[]{}=*!#$^\\:;,?` "); + config->wordsep = eina_stringshare_add(" '\"()[]{}=*!#$^\\:;,?`"); } } |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:16
|
Log: cmd shoudl be static const Author: raster Date: 2012-06-16 21:11:07 -0700 (Sat, 16 Jun 2012) New Revision: 72265 Trac: http://trac.enlightenment.org/e/changeset/72265 Modified: trunk/terminology/src/bin/main.c Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-17 04:10:17 UTC (rev 72264) +++ trunk/terminology/src/bin/main.c 2012-06-17 04:11:07 UTC (rev 72265) @@ -6,7 +6,7 @@ #include "options.h" #include "media.h" -const char *cmd = NULL; +static const char *cmd = NULL; static Evas_Object *win = NULL, *bg = NULL, *term = NULL, *media = NULL; static Ecore_Timer *flush_timer = NULL; |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:17
|
Log: make 40x40 preview scale too. Author: raster Date: 2012-06-16 03:50:48 -0700 (Sat, 16 Jun 2012) New Revision: 72227 Trac: http://trac.enlightenment.org/e/changeset/72227 Modified: trunk/terminology/src/bin/options_font.c Modified: trunk/terminology/src/bin/options_font.c =================================================================== --- trunk/terminology/src/bin/options_font.c 2012-06-16 10:48:04 UTC (rev 72226) +++ trunk/terminology/src/bin/options_font.c 2012-06-16 10:50:48 UTC (rev 72227) @@ -104,6 +104,8 @@ } else evas_object_text_font_set(o, f->name, config->font.size); + evas_object_geometry_get(o, NULL, NULL, &ow, &oh); + evas_object_size_hint_min_set(o, ow, oh); edje_object_part_swallow(obj, "terminology.content", o); } } @@ -122,7 +124,9 @@ snprintf(buf, sizeof(buf), "%s/themes/%s", elm_app_data_dir_get(), config->theme); edje_object_file_set(o, buf, "terminology/fontpreview"); - evas_object_size_hint_min_set(o, 40, 40); + evas_object_size_hint_min_set(o, + 40 * elm_config_scale_get(), + 40 * elm_config_scale_get()); evas_object_event_callback_add(o, EVAS_CALLBACK_MOVE, _cb_op_font_preview_eval, f); evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:17
|
Log: terminology does animated gif bg's now. Author: raster Date: 2012-06-16 22:41:02 -0700 (Sat, 16 Jun 2012) New Revision: 72269 Trac: http://trac.enlightenment.org/e/changeset/72269 Modified: trunk/terminology/src/bin/main.c trunk/terminology/src/bin/media.c Modified: trunk/terminology/src/bin/main.c =================================================================== --- trunk/terminology/src/bin/main.c 2012-06-17 05:19:21 UTC (rev 72268) +++ trunk/terminology/src/bin/main.c 2012-06-17 05:41:02 UTC (rev 72269) @@ -85,7 +85,7 @@ { Evas_Object *o; - if (config->background) + if ((config->background) && (config->background[0])) { if (media) evas_object_del(media); o = media = media_add(win, config->background, MEDIA_BG); Modified: trunk/terminology/src/bin/media.c =================================================================== --- trunk/terminology/src/bin/media.c 2012-06-17 05:19:21 UTC (rev 72268) +++ trunk/terminology/src/bin/media.c 2012-06-17 05:41:02 UTC (rev 72269) @@ -12,8 +12,10 @@ { Evas_Object_Smart_Clipped_Data __clipped_data; Evas_Object *clip, *o_img; + Ecore_Timer *anim; const char *src; int iw, ih; + int fr, frnum; int mode, type; }; @@ -78,7 +80,37 @@ printf("preloaded\n"); } +static Eina_Bool +_cb_img_frame(void *data) +{ + double t; + int fr; + Media *sd = evas_object_smart_data_get(data); + if (!sd) return EINA_FALSE; + sd->fr++; + fr = ((sd->fr - 1) % (sd->frnum)) + 1; + evas_object_image_animated_frame_set(sd->o_img, fr); + t = evas_object_image_animated_frame_duration_get(sd->o_img, fr, 0); + ecore_timer_interval_set(sd->anim, t); +// sd->anim = ecore_timer_add(t, _cb_img_frame, data); + return EINA_TRUE; +} + static void +_type_img_anim_handle(Evas_Object *obj) +{ + double t; + Media *sd = evas_object_smart_data_get(obj); + if (!sd) return; + if (!evas_object_image_animated_get(sd->o_img)) return; + sd->fr = 1; + sd->frnum = evas_object_image_animated_frame_count_get(sd->o_img); + if (sd->frnum < 2) return; + t = evas_object_image_animated_frame_duration_get(sd->o_img, sd->fr, 0); + sd->anim = ecore_timer_add(t, _cb_img_frame, obj); +} + +static void _type_img_init(Evas_Object *obj) { Evas_Object *o; @@ -95,6 +127,7 @@ printf("start preload\n"); evas_object_image_preload(o, EINA_FALSE); printf("start preload done\n"); + _type_img_anim_handle(obj); } static void @@ -251,6 +284,7 @@ if (!sd) return; if (sd->clip) evas_object_del(sd->clip); if (sd->o_img) evas_object_del(sd->o_img); + if (sd->anim) ecore_timer_del(sd->anim); _meida_sc.del(obj); evas_object_smart_data_set(obj, NULL); } |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:18
|
Log: fix typo Author: raster Date: 2012-06-17 04:04:33 -0700 (Sun, 17 Jun 2012) New Revision: 72292 Trac: http://trac.enlightenment.org/e/changeset/72292 Modified: trunk/terminology/src/bin/options_video.c Modified: trunk/terminology/src/bin/options_video.c =================================================================== --- trunk/terminology/src/bin/options_video.c 2012-06-17 10:57:32 UTC (rev 72291) +++ trunk/terminology/src/bin/options_video.c 2012-06-17 11:04:33 UTC (rev 72292) @@ -59,7 +59,7 @@ op_mute = o = elm_check_add(opbox); 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, "Audo muted"); + elm_object_text_set(o, "Audio muted"); elm_check_state_set(o, config->mute); elm_box_pack_end(opbox, o); evas_object_show(o); |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:16
|
Log: scalable formats now re-load/render/scale themselevs on resize (svg, ps, pdf) in terminology. Author: raster Date: 2012-06-16 23:01:14 -0700 (Sat, 16 Jun 2012) New Revision: 72271 Trac: http://trac.enlightenment.org/e/changeset/72271 Modified: trunk/terminology/src/bin/media.c Modified: trunk/terminology/src/bin/media.c =================================================================== --- trunk/terminology/src/bin/media.c 2012-06-17 05:46:54 UTC (rev 72270) +++ trunk/terminology/src/bin/media.c 2012-06-17 06:01:14 UTC (rev 72271) @@ -11,10 +11,11 @@ struct _Media { Evas_Object_Smart_Clipped_Data __clipped_data; - Evas_Object *clip, *o_img; + Evas_Object *clip, *o_img, *o_tmp; Ecore_Timer *anim; const char *src; int iw, ih; + int sw, sh; int fr, frnum; int mode, type; }; @@ -34,7 +35,7 @@ static const char *extn_scale[] = { - ".svg", ".svgz", ".svg.gz", ".ps", ".psd", + ".svg", ".svgz", ".svg.gz", ".ps", ".ps.gz", ".pdf", NULL }; @@ -77,7 +78,6 @@ Media *sd = evas_object_smart_data_get(data); if (!sd) return; evas_object_show(sd->o_img); - printf("preloaded\n"); } static Eina_Bool @@ -92,7 +92,6 @@ evas_object_image_animated_frame_set(sd->o_img, fr); t = evas_object_image_animated_frame_duration_get(sd->o_img, fr, 0); ecore_timer_interval_set(sd->anim, t); -// sd->anim = ecore_timer_add(t, _cb_img_frame, data); return EINA_TRUE; } @@ -124,9 +123,7 @@ _cb_img_preloaded, obj); evas_object_image_file_set(o, sd->src, NULL); evas_object_image_size_get(o, &(sd->iw), &(sd->ih)); - printf("start preload\n"); evas_object_image_preload(o, EINA_FALSE); - printf("start preload done\n"); _type_img_anim_handle(obj); } @@ -163,25 +160,83 @@ //////////////////////// scalable img static void +_cb_scale_preloaded(void *data, Evas *e, Evas_Object *obj, void *event) +{ + Media *sd = evas_object_smart_data_get(data); + if (!sd) return; + if (!sd->o_tmp) evas_object_show(sd->o_img); + else + { + evas_object_del(sd->o_img); + sd->o_img = sd->o_tmp; + sd->o_tmp = NULL; + evas_object_show(sd->o_img); + } +} + +static void _type_scale_init(Evas_Object *obj) { Evas_Object *o; Media *sd = evas_object_smart_data_get(obj); if (!sd) return; sd->type = TYPE_SCALE; - // XXX o = sd->o_img = evas_object_image_filled_add(evas_object_evas_get(obj)); evas_object_smart_member_add(o, obj); evas_object_clip_set(o, sd->clip); - evas_object_show(o); + evas_object_event_callback_add(o, EVAS_CALLBACK_IMAGE_PRELOADED, + _cb_scale_preloaded, obj); evas_object_image_file_set(o, sd->src, NULL); + evas_object_image_size_get(o, &(sd->iw), &(sd->ih)); + evas_object_image_preload(o, EINA_FALSE); } static void _type_scale_calc(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) { + Evas_Object *o; Media *sd = evas_object_smart_data_get(obj); if (!sd) return; + if ((w <= 0) || (h <= 0) || (sd->iw <= 0) || (sd->ih <= 0)) + { + w = 1; + h = 1; + } + else + { + int iw, ih; + + iw = w; + ih = (sd->ih * w) / sd->iw; + if (ih < h) + { + ih = h; + iw = (sd->iw * h) / sd->ih; + if (iw < w) iw = w; + } + x += ((w - iw) / 2); + y += ((h - ih) / 2); + w = iw; + h = ih; + } + if ((w != sd->sw) || (h != sd->sh)) + { + o = sd->o_tmp = evas_object_image_filled_add(evas_object_evas_get(obj)); + evas_object_smart_member_add(o, obj); + evas_object_clip_set(o, sd->clip); + evas_object_event_callback_add(o, EVAS_CALLBACK_IMAGE_PRELOADED, + _cb_scale_preloaded, obj); + evas_object_image_file_set(o, sd->src, NULL); + evas_object_image_load_size_set(sd->o_tmp, w, h); + evas_object_image_preload(o, EINA_FALSE); + } + sd->sw = w; + sd->sh = h; + if (sd->o_tmp) + { + evas_object_move(sd->o_tmp, x, y); + evas_object_resize(sd->o_tmp, w, h); + } evas_object_move(sd->o_img, x, y); evas_object_resize(sd->o_img, w, h); } @@ -284,6 +339,7 @@ if (!sd) return; if (sd->clip) evas_object_del(sd->clip); if (sd->o_img) evas_object_del(sd->o_img); + if (sd->o_tmp) evas_object_del(sd->o_tmp); if (sd->anim) ecore_timer_del(sd->anim); _meida_sc.del(obj); evas_object_smart_data_set(obj, NULL); |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:18
|
Log: set genlist to homogenous for fonts. Author: raster Date: 2012-06-17 02:30:10 -0700 (Sun, 17 Jun 2012) New Revision: 72283 Trac: http://trac.enlightenment.org/e/changeset/72283 Modified: trunk/terminology/src/bin/options_font.c Modified: trunk/terminology/src/bin/options_font.c =================================================================== --- trunk/terminology/src/bin/options_font.c 2012-06-17 09:26:01 UTC (rev 72282) +++ trunk/terminology/src/bin/options_font.c 2012-06-17 09:30:10 UTC (rev 72283) @@ -225,6 +225,7 @@ evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_genlist_mode_set(o, ELM_LIST_COMPRESS); + elm_genlist_homogeneous_set(o, EINA_TRUE); snprintf(buf, sizeof(buf), "%s/fonts", elm_app_data_dir_get()); files = ecore_file_ls(buf); |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:18
|
Log: dont need calc call. Author: raster Date: 2012-06-17 02:45:28 -0700 (Sun, 17 Jun 2012) New Revision: 72286 Trac: http://trac.enlightenment.org/e/changeset/72286 Modified: trunk/terminology/src/bin/options.c Modified: trunk/terminology/src/bin/options.c =================================================================== --- trunk/terminology/src/bin/options.c 2012-06-17 09:44:55 UTC (rev 72285) +++ trunk/terminology/src/bin/options.c 2012-06-17 09:45:28 UTC (rev 72286) @@ -119,7 +119,6 @@ evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_tmp_chg, NULL); -// evas_smart_objects_calculate(evas_object_evas_get(win)); edje_object_part_swallow(bg, "terminology.options", op_frame); evas_object_show(o); } |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:18
|
Log: weird if case in termio - fix. Author: raster Date: 2012-06-17 03:56:21 -0700 (Sun, 17 Jun 2012) New Revision: 72290 Trac: http://trac.enlightenment.org/e/changeset/72290 Modified: trunk/terminology/src/bin/termio.c Modified: trunk/terminology/src/bin/termio.c =================================================================== --- trunk/terminology/src/bin/termio.c 2012-06-17 10:41:54 UTC (rev 72289) +++ trunk/terminology/src/bin/termio.c 2012-06-17 10:56:21 UTC (rev 72290) @@ -962,7 +962,7 @@ _win_obj_del, obj); sd->win = NULL; } - if (!win) return; + if (win) { sd->win = win; evas_object_event_callback_add(sd->win, EVAS_CALLBACK_DEL, |
From: Enlightenment S. <no-...@en...> - 2012-06-19 01:15:17
|
Log: and hok to right object for slider cb again Author: raster Date: 2012-06-16 04:12:39 -0700 (Sat, 16 Jun 2012) New Revision: 72231 Trac: http://trac.enlightenment.org/e/changeset/72231 Modified: trunk/terminology/src/bin/options_font.c Modified: trunk/terminology/src/bin/options_font.c =================================================================== --- trunk/terminology/src/bin/options_font.c 2012-06-16 11:09:50 UTC (rev 72230) +++ trunk/terminology/src/bin/options_font.c 2012-06-16 11:12:39 UTC (rev 72231) @@ -200,6 +200,9 @@ elm_slider_value_set(o, config->font.size); elm_box_pack_end(bx, o); evas_object_show(o); + + evas_object_smart_callback_add(o, "delay,changed", + _cb_op_fontsize_sel, term); o = elm_label_add(opbox); elm_object_text_set(o, "<font_size=24>A</font_size>"); @@ -209,9 +212,6 @@ elm_box_pack_end(opbox, bx); evas_object_show(bx); - evas_object_smart_callback_add(o, "delay,changed", - _cb_op_fontsize_sel, term); - it_class = elm_genlist_item_class_new(); it_class->item_style = "default"; it_class->func.text_get = _cb_op_font_text_get; |