From 2307203d491fbbf082733bb40b6987746865198c Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 17 Jul 2012 06:57:41 +0000 Subject: [PATCH] 1. note a bug i spotted in elm-scroller, and make terminology use the feature.. so i can debug it. also fix errant clearing out of email helper string in options dialog. SVN revision: 73949 --- TODO | 3 ++ src/bin/options_behavior.c | 63 +++++++++++++++++++++++--------------- src/bin/options_helpers.c | 13 ++++---- 3 files changed, 48 insertions(+), 31 deletions(-) diff --git a/TODO b/TODO index 3c00597a..1a515af6 100644 --- a/TODO +++ b/TODO @@ -2,6 +2,9 @@ here's a short list of things i think we can do in the short to medium term to make it a first-class terminal: +[ ] elm_scroller_content_min_limit not working on behavior scroller :( +[ ] finish off remote http fetch code for media +[ ] filenames is `xxx' quotes not recognized (as ` different to ') [ ] blink and blink2 attributes need to be supported [ ] dnd text (to/from terminal) [ ] general input mode handling improvements (keypad, other key diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c index 458ce454..399721ff 100644 --- a/src/bin/options_behavior.c +++ b/src/bin/options_behavior.c @@ -95,74 +95,87 @@ void options_behavior(Evas_Object *opbox, Evas_Object *term) { Config *config = termio_config_get(term); - Evas_Object *o; + Evas_Object *o, *bx, *sc; char *txt; - op_jumpcheck = o = elm_check_add(opbox); + sc = o = elm_scroller_add(opbox); + elm_scroller_content_min_limit(sc, EINA_TRUE, EINA_FALSE); + 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(opbox, o); + evas_object_show(o); + + bx = o = elm_box_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.0); + elm_object_content_set(sc, o); + evas_object_show(o); + + op_jumpcheck = 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, "Jump to bottom on change"); elm_check_state_set(o, config->jump_on_change); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_jump_chg, term); - o = elm_check_add(opbox); + 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, "Jump to bottom on keypress"); elm_check_state_set(o, config->jump_on_keypress); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_jump_keypress_chg, term); - o = elm_check_add(opbox); + 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, "React to key press"); elm_check_state_set(o, config->flicker_on_key); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_flicker_chg, term); - o = elm_check_add(opbox); + 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, "Disable cursor blinking"); elm_check_state_set(o, config->disable_cursor_blink); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_cursor_blink_chg, term); - o = elm_check_add(opbox); + 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, "Urgent on bell"); elm_check_state_set(o, config->urg_bell); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_urg_bell_chg, term); - o = elm_separator_add(opbox); + 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(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); - o = elm_label_add(opbox); + o = elm_label_add(bx); evas_object_size_hint_weight_set(o, 0.0, 0.0); evas_object_size_hint_align_set(o, 0.0, 0.5); elm_object_text_set(o, "Word separators:"); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); - op_wordsep = o = elm_entry_add(opbox); + op_wordsep = o = elm_entry_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_entry_single_line_set(o, EINA_TRUE); @@ -174,26 +187,26 @@ options_behavior(Evas_Object *opbox, Evas_Object *term) elm_object_text_set(o, txt); free(txt); } - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_wsep_chg, term); - o = elm_separator_add(opbox); + 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(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); - o = elm_label_add(opbox); + o = elm_label_add(bx); evas_object_size_hint_weight_set(o, 0.0, 0.0); evas_object_size_hint_align_set(o, 0.0, 0.5); elm_object_text_set(o, "Scrollback lines:"); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); - op_sbslider = o = elm_slider_add(opbox); + op_sbslider = o = elm_slider_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.0); elm_slider_span_size_set(o, 160); @@ -201,12 +214,12 @@ options_behavior(Evas_Object *opbox, Evas_Object *term) elm_slider_indicator_format_set(o, "%1.0f"); elm_slider_min_max_set(o, 0, 10000); elm_slider_value_set(o, config->scrollback); - elm_box_pack_end(opbox, o); + elm_box_pack_end(bx, o); evas_object_show(o); evas_object_smart_callback_add(o, "delay,changed", _cb_op_behavior_sback_chg, term); - evas_object_size_hint_weight_set(opbox, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(opbox, EVAS_HINT_FILL, 0.0); + evas_object_size_hint_weight_set(opbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(opbox, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(o); } diff --git a/src/bin/options_helpers.c b/src/bin/options_helpers.c index 7f300f5a..9990b5d8 100644 --- a/src/bin/options_helpers.c +++ b/src/bin/options_helpers.c @@ -47,7 +47,7 @@ _cb_op_helper_url_image_chg(void *data, Evas_Object *obj, void *event __UNUSED__ if (config->helper.url.image) { eina_stringshare_del(config->helper.url.image); - config->helper.email = NULL; + config->helper.url.image = NULL; } txt = elm_entry_markup_to_utf8(elm_object_text_get(obj)); if (txt) @@ -68,7 +68,7 @@ _cb_op_helper_url_video_chg(void *data, Evas_Object *obj, void *event __UNUSED__ if (config->helper.url.video) { eina_stringshare_del(config->helper.url.video); - config->helper.email = NULL; + config->helper.url.video = NULL; } txt = elm_entry_markup_to_utf8(elm_object_text_get(obj)); if (txt) @@ -89,7 +89,7 @@ _cb_op_helper_url_general_chg(void *data, Evas_Object *obj, void *event __UNUSED if (config->helper.url.general) { eina_stringshare_del(config->helper.url.general); - config->helper.email = NULL; + config->helper.url.general = NULL; } txt = elm_entry_markup_to_utf8(elm_object_text_get(obj)); if (txt) @@ -110,7 +110,7 @@ _cb_op_helper_local_image_chg(void *data, Evas_Object *obj, void *event __UNUSED if (config->helper.local.image) { eina_stringshare_del(config->helper.local.image); - config->helper.email = NULL; + config->helper.local.image = NULL; } txt = elm_entry_markup_to_utf8(elm_object_text_get(obj)); if (txt) @@ -131,7 +131,7 @@ _cb_op_helper_local_video_chg(void *data, Evas_Object *obj, void *event __UNUSED if (config->helper.local.video) { eina_stringshare_del(config->helper.local.video); - config->helper.email = NULL; + config->helper.local.video = NULL; } txt = elm_entry_markup_to_utf8(elm_object_text_get(obj)); if (txt) @@ -152,7 +152,7 @@ _cb_op_helper_local_general_chg(void *data, Evas_Object *obj, void *event __UNUS if (config->helper.local.general) { eina_stringshare_del(config->helper.local.general); - config->helper.email = NULL; + config->helper.local.general = NULL; } txt = elm_entry_markup_to_utf8(elm_object_text_get(obj)); if (txt) @@ -188,6 +188,7 @@ options_helpers(Evas_Object *opbox, Evas_Object *term) evas_object_show(o); sc = o = elm_scroller_add(opbox); + elm_scroller_content_min_limit(sc, EINA_TRUE, EINA_FALSE); 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(opbox, o);