hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=06be86982c2726698575ecd1616d4a05a46ae5c8
commit 06be86982c2726698575ecd1616d4a05a46ae5c8 Author: ChunEon Park <[email protected]> Date: Fri Feb 28 23:41:16 2014 +0900 search - on implementing find/replace --- data/themes/default/layout.edc | 103 +++++++++++++++++++++++++++++++++++++++++ src/bin/search.c | 76 ++++++++++++++++-------------- 2 files changed, 145 insertions(+), 34 deletions(-) diff --git a/data/themes/default/layout.edc b/data/themes/default/layout.edc index d6dc5e5..54f6eff 100644 --- a/data/themes/default/layout.edc +++ b/data/themes/default/layout.edc @@ -8,6 +8,109 @@ images { image: "hotkey_inset_light.png" COMP; } +group { name: "search"; + parts { + part { name: "base"; + type: SPACER; + description { state: "default" 0.0; + min: 300 100; + } + } + part { name: "left_top_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 0 0; + fixed: 1 1; + align: 0 0; + min: 5 5; + } + } + part { name: "elm.text.find"; + type: TEXT; + scale: 1; + effect: SHADOW BOTTOM; + description { state: "default" 0.0; + align: 0 0; + rel1.to: "left_top_padding"; + rel2.to: "left_top_padding"; + rel1.relative: 1 1; + rel2.relative: 1 1; + text { + font: FN; + size: 11; + align: 0 0; + text: "Find:"; + } + color: 255 255 255 255; + color3: 0 0 0 128; + min: 60 20; + fixed: 1 1; + } + } + part { name: "elm.text.replace"; + type: TEXT; + scale: 1; + effect: SHADOW BOTTOM; + description { state: "default" 0.0; + align: 0 0; + rel1.to: "elm.text.find"; + rel2.to: "elm.text.find"; + rel1.relative: 0 1; + rel2.relative: 0 1; + rel1.offset: 0 5; + text { + font: FN; + size: 11; + align: 0 0; + text: "Replace:"; + } + color: 255 255 255 255; + color3: 0 0 0 128; + min: 60 20; + fixed: 1 1; + } + } + part { name: "elm.swallow.find_entry"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 1 0; + rel2.relative: 1 1; + rel1.to: "elm.text.find"; + rel2.to_y: "elm.text.find"; + rel2.offset: -5 -1; + fixed: 1 1; + } + } + part { name: "elm.swallow.replace_entry"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 1 0; + rel2.relative: 1 1; + rel1.to: "elm.text.replace"; + rel2.to_y: "elm.text.replace"; + rel2.offset: -5 -1; + fixed: 1 1; + } + } +/* part { name: "elm.swallow.find"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 1 0; + rel2.relative: 1 1; + rel1.to: "elm.text.replace"; + rel2.to_y: "elm.text.replace"; + rel2.offset: -5 -1; + fixed: 1 1; + } + } */ + } +} + group { name: "viewer_layout"; parts { part { name: "prev_clipper"; diff --git a/src/bin/search.c b/src/bin/search.c index d5c3a6f..1a79712 100644 --- a/src/bin/search.c +++ b/src/bin/search.c @@ -20,59 +20,68 @@ win_delete_request_cb(void *data, Evas_Object *obj, void *event_info) search_close(); } +static void +win_moved_cb(void *data, Evas_Object *obj, void *event_info) +{ + /* Move the window with the previous remembered position when the window is + moved by window manager first time. */ + if ((win_x != -1) || (win_y != -1)) evas_object_move(obj, win_x, win_y); + evas_object_smart_callback_del(obj, "moved", win_moved_cb); +} + void search_open() { + if (g_sd) return; + search_data *sd = calloc(1, sizeof(search_data)); g_sd = sd; //Win Evas_Object *win = elm_win_add(base_win_get(), "Enventor Search", - ELM_WIN_DIALOG_BASIC); + ELM_WIN_UTILITY); elm_win_focus_highlight_enabled_set(win, EINA_TRUE); elm_win_title_set(win, "Find/Replace"); - //FIXME: doesn't moved - if ((win_x == -1) && (win_y == -1)) evas_object_move(win, win_x, win_y); + evas_object_resize(win, win_w, win_h); evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb, sd); + evas_object_smart_callback_add(win, "moved", win_moved_cb, sd); evas_object_show(win); - //BG + //Bg Evas_Object *bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bg); - elm_win_resize_object_add(win, bg); - //Box - Evas_Object *box = elm_box_add(win); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(box); - elm_win_resize_object_add(win, box); - - //Box 2 - Evas_Object *box2 = elm_box_add(box); - evas_object_size_hint_align_set(box2, 0, 0); - evas_object_show(box2); - elm_box_pack_end(box, box2); - - //Label (find) - Evas_Object *label_find; - label_find = elm_label_add(box2); - evas_object_size_hint_align_set(label_find, 0, 0); - elm_object_text_set(label_find, "Find:"); - evas_object_show(label_find); - elm_box_pack_end(box2, label_find); - - //Label (find) - Evas_Object *label_replace; - label_replace = elm_label_add(box2); - evas_object_size_hint_align_set(label_replace, 0, 0); - elm_object_text_set(label_replace, "Replace with:"); - evas_object_show(label_replace); - elm_box_pack_end(box2, label_replace); - + //Layout + Evas_Object *layout = elm_layout_add(win); + elm_layout_file_set(layout, EDJE_PATH, "search"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(layout); + elm_win_resize_object_add(win, layout); + + //Entry (find) + Evas_Object *entry_find = elm_entry_add(layout); + elm_object_style_set(entry_find, elm_app_name_get()); + elm_entry_single_line_set(entry_find, EINA_TRUE); + elm_entry_scrollable_set(entry_find, EINA_TRUE); + evas_object_size_hint_weight_set(entry_find, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(entry_find, EVAS_HINT_FILL, 0); + evas_object_show(entry_find); + elm_object_part_content_set(layout, "elm.swallow.find_entry", entry_find); + + //Entry (replace) + Evas_Object *entry_replace = elm_entry_add(layout); + elm_object_style_set(entry_replace, elm_app_name_get()); + elm_entry_single_line_set(entry_replace, EINA_TRUE); + elm_entry_scrollable_set(entry_replace, EINA_TRUE); + evas_object_size_hint_weight_set(entry_replace, EVAS_HINT_EXPAND,0); + evas_object_size_hint_align_set(entry_replace, EVAS_HINT_FILL, 0); + evas_object_show(entry_replace); + elm_object_part_content_set(layout, "elm.swallow.replace_entry", + entry_replace); sd->win = win; } @@ -84,7 +93,6 @@ search_close() //Save last state evas_object_geometry_get(sd->win, NULL, NULL, &win_w, &win_h); elm_win_screen_position_get(sd->win, &win_x, &win_y); - printf("%d %d\n", win_x, win_y); evas_object_del(sd->win); free(sd); g_sd = NULL; --
