netstar pushed a commit to branch master. http://git.enlightenment.org/apps/ecrire.git/commit/?id=60129da3e14dcead6b770151466b2c2e091e70c9
commit 60129da3e14dcead6b770151466b2c2e091e70c9 Author: Alastair Poole <nets...@gmail.com> Date: Sat Feb 27 10:44:38 2021 +0000 ecrire: small tidy --- src/bin/main.c | 332 +++++++++++++++++++++++----------------------- src/bin/ui/file_related.c | 28 +++- src/bin/ui/ui.h | 2 +- 3 files changed, 185 insertions(+), 177 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 9097b9f..16052e3 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -8,22 +8,21 @@ #include "ui/ui.h" static Eina_Unicode plain_utf8 = EINA_TRUE; -static Ecrire_Entry *inst; static void print_usage(const char *bin); -static void editor_font_set(Ecrire_Entry *ent, const char *font, int font_size); +static void editor_font_set(Ecrire_Entry *inst, const char *font, int font_size); /* specific log domain to help debug only ecrire */ int _ecrire_log_dom = -1; static void -_init_entry(Ecrire_Entry *ent) +_init_entry(Ecrire_Entry *inst) { Elm_Entry_Change_Info *inf; - editor_font_set(ent, _ent_cfg->font.name, _ent_cfg->font.size); + editor_font_set(inst, _ent_cfg->font.name, _ent_cfg->font.size); /* Init the undo stack */ - EINA_LIST_FREE(ent->undo_stack, inf) + EINA_LIST_FREE(inst->undo_stack, inf) { if (inf) { @@ -38,25 +37,25 @@ _init_entry(Ecrire_Entry *ent) free(inf); } } - ent->undo_stack = ent->undo_stack_ptr = - eina_list_append(ent->undo_stack, NULL); - ent->last_saved_stack_ptr = ent->undo_stack_ptr; - ent->undo_stack_can_merge = EINA_FALSE; + inst->undo_stack = inst->undo_stack_ptr = + eina_list_append(inst->undo_stack, NULL); + inst->last_saved_stack_ptr = inst->undo_stack_ptr; + inst->undo_stack_can_merge = EINA_FALSE; - elm_object_item_disabled_set(ent->undo_item, EINA_TRUE); - elm_object_item_disabled_set(ent->redo_item, EINA_TRUE); + elm_object_item_disabled_set(inst->undo_item, EINA_TRUE); + elm_object_item_disabled_set(inst->redo_item, EINA_TRUE); } static void -_alert_if_need_saving(void (*done)(void *data), Ecrire_Entry *ent) +_alert_if_need_saving(void (*done)(void *data), Ecrire_Entry *inst) { - if (!elm_object_item_disabled_get(ent->save_item)) + if (!elm_object_item_disabled_get(inst->save_item)) { - ui_alert_need_saving(ent->entry, done, ent); + ui_alert_need_saving(inst->entry, done, inst); } else { - done(ent); + done(inst); } } @@ -64,40 +63,40 @@ static void _cb_sel_start(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - elm_object_item_disabled_set(ent->copy_item, EINA_FALSE); - elm_object_item_disabled_set(ent->cut_item, EINA_FALSE); + Ecrire_Entry *inst = data; + elm_object_item_disabled_set(inst->copy_item, EINA_FALSE); + elm_object_item_disabled_set(inst->cut_item, EINA_FALSE); } static void _cb_sel_clear(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - elm_object_item_disabled_set(ent->copy_item, EINA_TRUE); - elm_object_item_disabled_set(ent->cut_item, EINA_TRUE); + Ecrire_Entry *inst = data; + elm_object_item_disabled_set(inst->copy_item, EINA_TRUE); + elm_object_item_disabled_set(inst->cut_item, EINA_TRUE); } static void -_update_cur_file(const char *file, Ecrire_Entry *ent) +_update_cur_file(const char *file, Ecrire_Entry *inst) { - const char *saving = (!elm_object_item_disabled_get(ent->save_item)) ? + const char *saving = (!elm_object_item_disabled_get(inst->save_item)) ? "*" : ""; - eina_stringshare_replace(&ent->filename, file); + eina_stringshare_replace(&inst->filename, file); { char buf[1024]; - if (ent->filename) - snprintf(buf, sizeof(buf), _("%s%s - %s"), saving, ent->filename, - PACKAGE_NAME); + if (inst->filename) + snprintf(buf, sizeof(buf), _("%s%s - %s"), saving, inst->filename, + PACKAGE_NAME); else snprintf(buf, sizeof(buf), _("%sUntitled %d - %s"), saving, - ent->unsaved, PACKAGE_NAME); + inst->unsaved, PACKAGE_NAME); - if (ent->filename) - elm_object_text_set(ent->frame, ent->filename); + if (inst->filename) + elm_object_text_set(inst->frame, inst->filename); else - elm_object_text_set(ent->frame, buf); - elm_win_title_set(ent->win, buf); + elm_object_text_set(inst->frame, buf); + elm_win_title_set(inst->win, buf); } } @@ -125,40 +124,39 @@ _cb_cur_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) static void _cb_cur_changed_manual(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - ent->undo_stack_can_merge = EINA_FALSE; + Ecrire_Entry *inst = data; + inst->undo_stack_can_merge = EINA_FALSE; } static void -_update_undo_redo_items(Ecrire_Entry *ent) +_update_undo_redo_items(Ecrire_Entry *inst) { - elm_object_item_disabled_set(ent->undo_item, - !eina_list_next(ent->undo_stack_ptr)); - elm_object_item_disabled_set(ent->redo_item, - !eina_list_prev(ent->undo_stack_ptr)); + elm_object_item_disabled_set(inst->undo_item, + !eina_list_next(inst->undo_stack_ptr)); + elm_object_item_disabled_set(inst->redo_item, + !eina_list_prev(inst->undo_stack_ptr)); - if (ent->undo_stack_ptr == ent->last_saved_stack_ptr) + if (inst->undo_stack_ptr == inst->last_saved_stack_ptr) { - elm_object_item_disabled_set(ent->save_item, EINA_TRUE); - _update_cur_file(ent->filename, ent); + elm_object_item_disabled_set(inst->save_item, EINA_TRUE); + _update_cur_file(inst->filename, inst); } - else if (elm_object_item_disabled_get(ent->save_item)) + else if (elm_object_item_disabled_get(inst->save_item)) { - elm_object_item_disabled_set(ent->save_item, EINA_FALSE); - _update_cur_file(ent->filename, ent); + elm_object_item_disabled_set(inst->save_item, EINA_FALSE); + _update_cur_file(inst->filename, inst); } - } static void -_undo_stack_add(Ecrire_Entry *ent, Elm_Entry_Change_Info *_info) +_undo_stack_add(Ecrire_Entry *inst, Elm_Entry_Change_Info *_info) { Elm_Entry_Change_Info *inf; - ent->undo_stack = eina_list_split_list(ent->undo_stack, eina_list_prev(ent->undo_stack_ptr), - &ent->undo_stack_ptr); + inst->undo_stack = eina_list_split_list(inst->undo_stack, eina_list_prev(inst->undo_stack_ptr), + &inst->undo_stack_ptr); - EINA_LIST_FREE(ent->undo_stack, inf) + EINA_LIST_FREE(inst->undo_stack, inf) { if (inf->insert) { @@ -182,7 +180,7 @@ _undo_stack_add(Ecrire_Entry *ent, Elm_Entry_Change_Info *_info) else #endif { - Elm_Entry_Change_Info *head_inf = eina_list_data_get(ent->undo_stack_ptr); + Elm_Entry_Change_Info *head_inf = eina_list_data_get(inst->undo_stack_ptr); inf = calloc(1, sizeof(*inf)); memcpy(inf, _info, sizeof(*inf)); @@ -195,54 +193,54 @@ _undo_stack_add(Ecrire_Entry *ent, Elm_Entry_Change_Info *_info) eina_stringshare_ref(inf->change.del.content); } - if (ent->undo_stack_can_merge && (inf->insert == head_inf->insert)) + if (inst->undo_stack_can_merge && (inf->insert == head_inf->insert)) inf->merge = EINA_TRUE; - ent->undo_stack_ptr = eina_list_prepend(ent->undo_stack_ptr, inf); + inst->undo_stack_ptr = eina_list_prepend(inst->undo_stack_ptr, inf); } - ent->undo_stack = ent->undo_stack_ptr; + inst->undo_stack = inst->undo_stack_ptr; - ent->undo_stack_can_merge = EINA_TRUE; + inst->undo_stack_can_merge = EINA_TRUE; - _update_undo_redo_items(ent); + _update_undo_redo_items(inst); } static void -_undo_redo_do(Ecrire_Entry *ent, Elm_Entry_Change_Info *inf, Eina_Bool undo) +_undo_redo_do(Ecrire_Entry *inst, Elm_Entry_Change_Info *inf, Eina_Bool undo) { DBG("%s: %s", (undo) ? "Undo" : "Redo", inf->change.insert.content); if ((inf->insert && undo) || (!inf->insert && !undo)) { - const Evas_Object *tb = elm_entry_textblock_get(ent->entry); + const Evas_Object *tb = elm_entry_textblock_get(inst->entry); Evas_Textblock_Cursor *mcur, *end; mcur = (Evas_Textblock_Cursor *) evas_object_textblock_cursor_get(tb); end = evas_object_textblock_cursor_new(tb); if (inf->insert) { - elm_entry_cursor_pos_set(ent->entry, inf->change.insert.pos); + elm_entry_cursor_pos_set(inst->entry, inf->change.insert.pos); evas_textblock_cursor_pos_set(end, inf->change.insert.pos + inf->change.insert.plain_length); } else { - elm_entry_cursor_pos_set(ent->entry, inf->change.del.start); + elm_entry_cursor_pos_set(inst->entry, inf->change.del.start); evas_textblock_cursor_pos_set(end, inf->change.del.end); } evas_textblock_cursor_range_delete(mcur, end); evas_textblock_cursor_free(end); - elm_entry_calc_force(ent->entry); + elm_entry_calc_force(inst->entry); } else { if (inf->insert) { - elm_entry_cursor_pos_set(ent->entry, inf->change.insert.pos); - elm_entry_entry_insert(ent->entry, inf->change.insert.content); + elm_entry_cursor_pos_set(inst->entry, inf->change.insert.pos); + elm_entry_entry_insert(inst->entry, inf->change.insert.content); } else { @@ -250,35 +248,35 @@ _undo_redo_do(Ecrire_Entry *ent, Elm_Entry_Change_Info *inf, Eina_Bool undo) start = (inf->change.del.start < inf->change.del.end) ? inf->change.del.start : inf->change.del.end; - elm_entry_cursor_pos_set(ent->entry, start); - elm_entry_entry_insert(ent->entry, inf->change.insert.content); - elm_entry_cursor_pos_set(ent->entry, inf->change.del.end); + elm_entry_cursor_pos_set(inst->entry, start); + elm_entry_entry_insert(inst->entry, inf->change.insert.content); + elm_entry_cursor_pos_set(inst->entry, inf->change.del.end); } } /* No matter what, once we did an undo/redo we don't want to merge, * even if we got backt to the top of the stack. */ - ent->undo_stack_can_merge = EINA_FALSE; + inst->undo_stack_can_merge = EINA_FALSE; } static void _cb_undo(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { /* In undo we care about the current item */ - Ecrire_Entry *ent = data; + Ecrire_Entry *inst = data; Elm_Entry_Change_Info *inf = NULL; - if (!eina_list_next(ent->undo_stack_ptr)) + if (!eina_list_next(inst->undo_stack_ptr)) return; do { - inf = eina_list_data_get(ent->undo_stack_ptr); + inf = eina_list_data_get(inst->undo_stack_ptr); - _undo_redo_do(ent, inf, EINA_TRUE); + _undo_redo_do(inst, inf, EINA_TRUE); - if (eina_list_next(ent->undo_stack_ptr)) + if (eina_list_next(inst->undo_stack_ptr)) { - ent->undo_stack_ptr = eina_list_next(ent->undo_stack_ptr); + inst->undo_stack_ptr = eina_list_next(inst->undo_stack_ptr); } else { @@ -287,25 +285,25 @@ _cb_undo(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) } while (inf && inf->merge); - _update_undo_redo_items(ent); + _update_undo_redo_items(inst); } static void _cb_redo(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; + Ecrire_Entry *inst = data; Elm_Entry_Change_Info *inf = NULL; - if (!eina_list_prev(ent->undo_stack_ptr)) + if (!eina_list_prev(inst->undo_stack_ptr)) return; do { - if (eina_list_prev(ent->undo_stack_ptr)) + if (eina_list_prev(inst->undo_stack_ptr)) { - ent->undo_stack_ptr = eina_list_prev(ent->undo_stack_ptr); + inst->undo_stack_ptr = eina_list_prev(inst->undo_stack_ptr); /* In redo we care about the NEW item */ - inf = eina_list_data_get(ent->undo_stack_ptr); - _undo_redo_do(ent, inf, EINA_FALSE); + inf = eina_list_data_get(inst->undo_stack_ptr); + _undo_redo_do(inst, inf, EINA_FALSE); } else { @@ -313,31 +311,33 @@ _cb_redo(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) } /* Update inf to next for the condition. */ - if (eina_list_prev(ent->undo_stack_ptr)) + if (eina_list_prev(inst->undo_stack_ptr)) { - inf = eina_list_data_get(eina_list_prev(ent->undo_stack_ptr)); + inf = eina_list_data_get(eina_list_prev(inst->undo_stack_ptr)); } } while (inf && inf->merge); - _update_undo_redo_items(ent); + _update_undo_redo_items(inst); } static void _cb_ent_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) { - Ecrire_Entry *ent = data; - elm_object_item_disabled_set(ent->save_item, EINA_FALSE); - _update_cur_file(ent->filename, ent); + Ecrire_Entry *inst = data; + elm_object_item_disabled_set(inst->save_item, EINA_FALSE); + _update_cur_file(inst->filename, inst); /* Undo/redo */ - _undo_stack_add(ent, event_info); + _undo_stack_add(inst, event_info); } static void -_load_to_entry(Ecrire_Entry *ent, const char *file) +_load_to_entry(Ecrire_Entry *inst, const char *file) { - if (file) + if (!file) + _init_entry(inst); + else { char *buf; @@ -346,27 +346,25 @@ _load_to_entry(Ecrire_Entry *ent, const char *file) else buf = file_load(file); - elm_object_text_set(ent->entry, ""); - _init_entry(ent); - elm_entry_entry_append(ent->entry, buf); - elm_object_item_disabled_set(ent->save_item, EINA_TRUE); + elm_object_text_set(inst->entry, ""); + _init_entry(inst); + elm_entry_entry_append(inst->entry, buf); + elm_object_item_disabled_set(inst->save_item, EINA_TRUE); free(buf); } - else - { - _init_entry(ent); - } - _update_cur_file(file, ent); + _update_cur_file(file, inst); } static void -_fs_open_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, - void *event_info) +_cb_fs_open_done(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info) { + Ecrire_Entry *inst; const char *selected = event_info; if (!selected) return; + inst = data; if (ecore_file_app_installed("ecrire")) ecore_exe_run(eina_slstr_printf("ecrire %s", selected), NULL); @@ -375,76 +373,71 @@ _fs_open_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } void -save_do(const char *file, Ecrire_Entry *ent) +save_do(const char *file, Ecrire_Entry *inst) { if (plain_utf8) - file_plain_save(file, elm_object_text_get(ent->entry)); + file_plain_save(file, elm_object_text_get(inst->entry)); else - file_save(file, elm_object_text_get(ent->entry)); + file_save(file, elm_object_text_get(inst->entry)); - elm_object_item_disabled_set(ent->save_item, EINA_TRUE); - ent->last_saved_stack_ptr = ent->undo_stack_ptr; - _update_cur_file(file, ent); + elm_object_item_disabled_set(inst->save_item, EINA_TRUE); + inst->last_saved_stack_ptr = inst->undo_stack_ptr; + _update_cur_file(file, inst); } static void -_fs_save_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, - void *event_info) +_cb_fs_save_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info) { + Ecrire_Entry *inst = data; const char *selected = event_info; if (selected) - { - save_do(selected, inst); - } + save_do(selected, inst); } static void _open_do(void *data) { - Ecrire_Entry *ent = data; - ui_file_open_save_dialog_open(ent->win, _fs_open_done, EINA_FALSE); + Ecrire_Entry *inst = data; + ui_file_open_save_dialog_open(inst->win, EINA_FALSE, _cb_fs_open_done, inst); } static void _cb_goto_line(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - ui_goto_dialog_open(ent->win, ent); + Ecrire_Entry *inst = data; + ui_goto_dialog_open(inst->win, inst); } static void _cb_open(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - _alert_if_need_saving(_open_do, ent); + Ecrire_Entry *inst = data; + _alert_if_need_saving(_open_do, inst); } void -editor_save(Ecrire_Entry *ent, void *callback_func) +editor_save(Ecrire_Entry *inst, void *callback_func) { - if (ent->filename) - { - save_do(ent->filename, ent); - } + if (inst->filename) + save_do(inst->filename, inst); else - { - ui_file_open_save_dialog_open(ent->win, callback_func, EINA_TRUE); - } + ui_file_open_save_dialog_open(inst->win, EINA_TRUE, callback_func, inst); } static void _cb_save(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - editor_save(ent, _fs_save_done); + Ecrire_Entry *inst = data; + editor_save(inst, _cb_fs_save_done); } static void _cb_save_as(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - ui_file_open_save_dialog_open(ent->win, _fs_save_done, EINA_TRUE); + Ecrire_Entry *inst = data; + ui_file_open_save_dialog_open(inst->win, EINA_TRUE, _cb_fs_save_done, inst); } static void @@ -456,83 +449,83 @@ _win_del_do(void *data EINA_UNUSED) static void _new_do(void *data) { - Ecrire_Entry *ent = data; + Ecrire_Entry *inst = data; if (ecore_file_app_installed("ecrire")) ecore_exe_run("ecrire", NULL); else { - elm_object_text_set(ent->entry, ""); - _init_entry(ent); - elm_object_item_disabled_set(ent->save_item, EINA_TRUE); - _update_cur_file(NULL, ent); + elm_object_text_set(inst->entry, ""); + _init_entry(inst); + elm_object_item_disabled_set(inst->save_item, EINA_TRUE); + _update_cur_file(NULL, inst); } } static void _cb_new(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - _alert_if_need_saving(_new_do, ent); + Ecrire_Entry *inst = data; + _alert_if_need_saving(_new_do, inst); } static void _app_exit(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - _alert_if_need_saving(_win_del_do, ent); + Ecrire_Entry *inst = data; + _alert_if_need_saving(_win_del_do, inst); } static void _cb_cut(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - elm_entry_selection_cut(ent->entry); + Ecrire_Entry *inst = data; + elm_entry_selection_cut(inst->entry); } static void _cb_copy(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - elm_entry_selection_copy(ent->entry); + Ecrire_Entry *inst = data; + elm_entry_selection_copy(inst->entry); } static void _cb_paste(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - elm_entry_selection_paste(ent->entry); + Ecrire_Entry *inst = data; + elm_entry_selection_paste(inst->entry); } static void _cb_find(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - ui_find_dialog_open(ent->win, ent); + Ecrire_Entry *inst = data; + ui_find_dialog_open(inst->win, inst); } static void _cb_font_settings(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Ecrire_Entry *ent = data; - ui_font_dialog_open(elm_object_top_widget_get(ent->win), ent, _ent_cfg->font.name, _ent_cfg->font.size); + Ecrire_Entry *inst = data; + ui_font_dialog_open(elm_object_top_widget_get(inst->win), inst, _ent_cfg->font.name, _ent_cfg->font.size); } static void _cb_win_del(void *data, Evas_Object *obj, void *event_info) { - Ecrire_Entry *ent = data; + Ecrire_Entry *inst = data; (void) data; (void) obj; (void) event_info; - _alert_if_need_saving(_win_del_do, ent); + _alert_if_need_saving(_win_del_do, inst); } static void _cb_win_focused(void *data, Evas_Object *obj, void *event_info) { -// Ecrire_Entry *ent = data; + Ecrire_Entry *inst = data; (void) data; (void) obj; (void) event_info; @@ -542,7 +535,7 @@ _cb_win_focused(void *data, Evas_Object *obj, void *event_info) static void _cb_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event) { - Ecrire_Entry *ent = data; + Ecrire_Entry *inst = data; Eina_Bool ctrl, alt, shift; Evas_Event_Key_Down *ev = event; @@ -551,7 +544,7 @@ _cb_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event) shift = evas_key_modifier_is_set(ev->modifiers, "Shift"); if ((ctrl) && (!alt) && (!shift)) { - if (!strcmp(ev->keyname, "a")) elm_entry_select_all(ent->entry); + if (!strcmp(ev->keyname, "a")) elm_entry_select_all(inst->entry); else if (!strcmp(ev->keyname, "f")) _cb_find(data, obj, event); else if (!strcmp(ev->keyname, "g")) _cb_goto_line(data, obj, event); else if (!strcmp(ev->keyname, "n")) _cb_new(data, obj, event); @@ -560,9 +553,9 @@ _cb_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event) } static void -editor_font_set(Ecrire_Entry *ent, const char *font, int font_size) +editor_font_set(Ecrire_Entry *inst, const char *font, int font_size) { - const Evas_Object *tb = elm_entry_textblock_get(ent->entry); + const Evas_Object *tb = elm_entry_textblock_get(inst->entry); Eina_Strbuf *sbuf; eina_stringshare_replace(&_ent_cfg->font.name, font); @@ -596,21 +589,20 @@ editor_font_set(Ecrire_Entry *ent, const char *font, int font_size) evas_object_textblock_style_user_pop((Evas_Object *) tb); } - elm_entry_calc_force(ent->entry); + elm_entry_calc_force(inst->entry); eina_strbuf_free(sbuf); } void -editor_font_choose(Ecrire_Entry *ent, const char *font, int size) +editor_font_choose(Ecrire_Entry *inst, const char *font, int size) { - editor_font_set(ent, font, size); + editor_font_set(inst, font, size); /* Save the font for future runs */ ecrire_cfg_save(); } - static void _ecrire_menu_add(Ecrire_Entry *inst) { @@ -654,7 +646,7 @@ _ecrire_menu_add(Ecrire_Entry *inst) EAPI_MAIN int elm_main(int argc, char **argv) { - Evas_Object *win, *pad, *fr, *bx, *entry, *cur_info, *bx2; + Evas_Object *win, *pad, *fr, *bx, *entry, *cur_info; Evas_Coord w = 600, h = 600; int c; @@ -704,7 +696,7 @@ elm_main(int argc, char **argv) ecrire_cfg_init(PACKAGE_NAME); ecrire_cfg_load(); - inst = calloc(1, sizeof(Ecrire_Entry)); + Ecrire_Entry *inst = calloc(1, sizeof(Ecrire_Entry)); inst->unsaved = 1; inst->filename = NULL; inst->last_saved_stack_ptr = NULL; @@ -738,7 +730,7 @@ elm_main(int argc, char **argv) evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_content_set(fr, entry); elm_box_pack_end(bx, fr); - evas_object_show(inst->entry); + evas_object_show(entry); pad = elm_frame_add(win); elm_object_style_set(pad, "pad_medium"); @@ -747,18 +739,18 @@ elm_main(int argc, char **argv) elm_box_pack_end(bx, pad); evas_object_show(pad); - bx2 = elm_box_add(win); - elm_box_horizontal_set(bx2, EINA_TRUE); - evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, 0.5); - evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_content_set(pad, bx2); - evas_object_show(bx2); + bx = elm_box_add(win); + elm_box_horizontal_set(bx, 1); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_content_set(pad, bx); + evas_object_show(bx); cur_info = elm_label_add(win); _cb_cur_changed(cur_info, entry, NULL); evas_object_size_hint_align_set(cur_info, 1.0, 0.5); evas_object_size_hint_weight_set(cur_info, EVAS_HINT_EXPAND, 0.0); - elm_box_pack_end(bx2, cur_info); + elm_box_pack_end(bx, cur_info); evas_object_show(cur_info); evas_object_smart_callback_add(entry, "cursor,changed", _cb_cur_changed, cur_info); @@ -783,6 +775,8 @@ elm_main(int argc, char **argv) elm_run(); + free(inst); + ecrire_cfg_shutdown(); eina_log_domain_unregister(_ecrire_log_dom); _ecrire_log_dom = -1; diff --git a/src/bin/ui/file_related.c b/src/bin/ui/file_related.c index 89bc031..6c33a4d 100644 --- a/src/bin/ui/file_related.c +++ b/src/bin/ui/file_related.c @@ -1,21 +1,30 @@ #include "config.h" #include <Elementary.h> -Evas_Object *inwin; +typedef struct _File_Selector_Data +{ + Evas_Object *inwin; + void (*func)(void *, Evas_Object *, void *); + void *data; +} File_Selector_Data; static void _cleaning_cb(void *data, Evas_Object *obj, void *event_info) { - void (*func) (void *, Evas_Object *, void *) = data; - func(NULL, obj, event_info); - evas_object_del(inwin); /* delete the test window */ + File_Selector_Data *fsdata = data; + fsdata->func(fsdata->data, obj, event_info); + evas_object_del(fsdata->inwin); + free(fsdata); } void -ui_file_open_save_dialog_open(Evas_Object *parent, Evas_Smart_Cb func, - Eina_Bool save) +ui_file_open_save_dialog_open(Evas_Object *parent, Eina_Bool save, + Evas_Smart_Cb func, void *data) { Evas_Object *fs; + Evas_Object *inwin; + File_Selector_Data *fsdata; + inwin = elm_win_inwin_add(parent); evas_object_show(inwin); @@ -26,5 +35,10 @@ ui_file_open_save_dialog_open(Evas_Object *parent, Evas_Smart_Cb func, elm_win_inwin_content_set(inwin, fs); evas_object_show(fs); - evas_object_smart_callback_add(fs, "done", _cleaning_cb, func); + fsdata = malloc(sizeof(File_Selector_Data)); + fsdata->inwin = inwin; + fsdata->func = func; + fsdata->data = data; + + evas_object_smart_callback_add(fs, "done", _cleaning_cb, fsdata); } diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h index 0b77348..db041b4 100644 --- a/src/bin/ui/ui.h +++ b/src/bin/ui/ui.h @@ -3,7 +3,7 @@ #include "../mess_header.h" -void ui_file_open_save_dialog_open(Evas_Object *parent, Evas_Smart_Cb func, Eina_Bool save); +void ui_file_open_save_dialog_open(Evas_Object *parent, Eina_Bool save, Evas_Smart_Cb func, void *data); Evas_Object *ui_find_dialog_open(Evas_Object *parent, Ecrire_Entry *ent); Evas_Object *ui_goto_dialog_open(Evas_Object *parent, Ecrire_Entry *ent); --