forked from enlightenment/ecrire
ecrire: one instance, one win...
one arm, one leg, one nod of the head...keep borking.
This commit is contained in:
parent
74ef59427e
commit
642847fa74
|
@ -43,6 +43,7 @@ struct _Ecrire_Entry {
|
|||
|
||||
typedef struct _Ecrire_Entry Ecrire_Entry;
|
||||
|
||||
void ecrire_open(const char *filename, const char *font_name, int font_size);
|
||||
void ecrire_font_set_save(Ecrire_Entry *inst, const char *font, int size);
|
||||
void ecrire_entry_font_set(Ecrire_Entry *inst, const char *font, int font_size);
|
||||
void ecrire_save(Ecrire_Entry *inst, void *callback_func);
|
||||
|
|
182
src/bin/main.c
182
src/bin/main.c
|
@ -19,6 +19,8 @@ _win_del_do(void *data)
|
|||
{
|
||||
Ecrire_Entry *inst = data;
|
||||
evas_object_del(inst->win);
|
||||
eina_stringshare_del(inst->filename);
|
||||
free(inst);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -382,19 +384,14 @@ _load_to_entry(Ecrire_Entry *inst, const char *file)
|
|||
}
|
||||
|
||||
static void
|
||||
_cb_fs_open_done(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
_cb_fs_open_done(void *data EINA_UNUSED, 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);
|
||||
else
|
||||
_load_to_entry(inst, selected);
|
||||
ecrire_open(selected, _ent_cfg->font.name, _ent_cfg->font.size);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -432,6 +429,7 @@ static void
|
|||
_open_do(void *data)
|
||||
{
|
||||
Ecrire_Entry *inst = data;
|
||||
|
||||
ui_file_open_save_dialog_open(inst->win, EINA_FALSE, _cb_fs_open_done, inst);
|
||||
}
|
||||
|
||||
|
@ -443,10 +441,11 @@ _cb_goto_line(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UN
|
|||
}
|
||||
|
||||
static void
|
||||
_cb_open(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
_cb_open(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ecrire_Entry *inst = data;
|
||||
_alert_if_need_saving(_open_do, inst);
|
||||
|
||||
_open_do(inst);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -473,31 +472,13 @@ _cb_save_as(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUS
|
|||
}
|
||||
|
||||
static void
|
||||
_new_do(void *data)
|
||||
_cb_new(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ecrire_Entry *inst = data;
|
||||
|
||||
if (ecore_file_app_installed("ecrire"))
|
||||
ecore_exe_run("ecrire", NULL);
|
||||
else
|
||||
{
|
||||
elm_object_text_set(inst->entry, "");
|
||||
_init_entry(inst);
|
||||
elm_object_item_disabled_set(inst->menu.save, EINA_TRUE);
|
||||
elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE);
|
||||
_update_cur_file(NULL, inst);
|
||||
}
|
||||
ecrire_open(NULL, _ent_cfg->font.name, _ent_cfg->font.size);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_new(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ecrire_Entry *inst = data;
|
||||
_alert_if_need_saving(_new_do, inst);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_exit(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
_cb_close(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ecrire_Entry *inst = data;
|
||||
_alert_if_need_saving(_win_del_do, inst);
|
||||
|
@ -670,7 +651,7 @@ _ecrire_menu_add(Ecrire_Entry *inst)
|
|||
elm_menu_item_add(menu, it, "document-save", _("Save"), _cb_save, inst);
|
||||
elm_menu_item_add(menu, it, "document-save-as", _("Save As"), _cb_save_as, inst);
|
||||
elm_menu_item_separator_add(menu, it);
|
||||
elm_menu_item_add(menu, it, "application-exit", _("Exit"), _cb_exit, inst);
|
||||
elm_menu_item_add(menu, it, "application-exit", _("Close"), _cb_close, inst);
|
||||
|
||||
it = elm_menu_item_add(menu, NULL, NULL, _("Edit"), NULL, NULL);
|
||||
inst->menu.cut =
|
||||
|
@ -697,59 +678,12 @@ _ecrire_menu_add(Ecrire_Entry *inst)
|
|||
|
||||
}
|
||||
|
||||
EAPI_MAIN int
|
||||
elm_main(int argc, char **argv)
|
||||
void
|
||||
ecrire_open(const char *filename, const char *font_name, int font_size)
|
||||
{
|
||||
Evas_Object *win, *pad, *fr, *bx, *entry, *cur_info;
|
||||
Evas_Object *toolbar;
|
||||
Evas_Coord w = 600, h = 600;
|
||||
int c;
|
||||
|
||||
opterr = 0;
|
||||
|
||||
_ecrire_log_dom = eina_log_domain_register("ecrire", ECRIRE_DEFAULT_LOG_COLOR);
|
||||
if (_ecrire_log_dom < 0)
|
||||
{
|
||||
EINA_LOG_ERR("Unable to create a log domain.");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
while ((c = getopt (argc, argv, "")) != -1)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case '?':
|
||||
print_usage(argv[0]);
|
||||
if (isprint (optopt))
|
||||
{
|
||||
ERR("Unknown option or requires an argument `-%c'.",
|
||||
optopt);
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR("Unknown option character `\\x%x'.", optopt);
|
||||
}
|
||||
return 1;
|
||||
break;
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR);
|
||||
elm_app_compile_lib_dir_set(PACKAGE_LIB_DIR);
|
||||
elm_app_compile_data_dir_set(PACKAGE_DATA_DIR);
|
||||
#ifdef ENABLE_NLS
|
||||
elm_app_compile_locale_set(LOCALEDIR);
|
||||
#endif
|
||||
elm_app_info_set(elm_main, "ecrire", "COPYING");
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
bindtextdomain(PACKAGE, LOCALE_DIR);
|
||||
textdomain(PACKAGE);
|
||||
|
||||
ecrire_cfg_init(PACKAGE_NAME);
|
||||
ecrire_cfg_load();
|
||||
|
||||
Ecrire_Entry *inst = calloc(1, sizeof(Ecrire_Entry));
|
||||
inst->unsaved = 1;
|
||||
|
@ -758,24 +692,11 @@ elm_main(int argc, char **argv)
|
|||
inst->undo_stack_can_merge = EINA_FALSE;
|
||||
inst->font.name = _ent_cfg->font.name;
|
||||
inst->font.size = _ent_cfg->font.size;
|
||||
|
||||
if (optind < argc)
|
||||
{
|
||||
if (!ecore_file_exists(argv[optind]))
|
||||
return 1;
|
||||
char *path = ecore_file_realpath(argv[optind]);
|
||||
if (path)
|
||||
{
|
||||
if (ecore_file_is_dir(argv[optind])) return 1;
|
||||
|
||||
inst->filename = eina_stringshare_add(path);
|
||||
}
|
||||
}
|
||||
inst->filename = filename;
|
||||
|
||||
DBG("Opening filename: '%s'", inst->filename);
|
||||
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
inst->win = win = elm_win_util_standard_add("erire", "Ecrire");
|
||||
inst->win = win = elm_win_util_standard_add("ecrire", "Ecrire");
|
||||
elm_win_autodel_set(inst->win, EINA_FALSE);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
|
@ -841,11 +762,78 @@ elm_main(int argc, char **argv)
|
|||
evas_object_show(win);
|
||||
|
||||
_load_to_entry(inst, inst->filename);
|
||||
}
|
||||
|
||||
EAPI_MAIN int
|
||||
elm_main(int argc, char **argv)
|
||||
{
|
||||
const char *filename = NULL;
|
||||
int c;
|
||||
|
||||
opterr = 0;
|
||||
|
||||
_ecrire_log_dom = eina_log_domain_register("ecrire", ECRIRE_DEFAULT_LOG_COLOR);
|
||||
if (_ecrire_log_dom < 0)
|
||||
{
|
||||
EINA_LOG_ERR("Unable to create a log domain.");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
while ((c = getopt (argc, argv, "")) != -1)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case '?':
|
||||
print_usage(argv[0]);
|
||||
if (isprint (optopt))
|
||||
{
|
||||
ERR("Unknown option or requires an argument `-%c'.",
|
||||
optopt);
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR("Unknown option character `\\x%x'.", optopt);
|
||||
}
|
||||
return 1;
|
||||
break;
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR);
|
||||
elm_app_compile_lib_dir_set(PACKAGE_LIB_DIR);
|
||||
elm_app_compile_data_dir_set(PACKAGE_DATA_DIR);
|
||||
#ifdef ENABLE_NLS
|
||||
elm_app_compile_locale_set(LOCALEDIR);
|
||||
#endif
|
||||
elm_app_info_set(elm_main, "ecrire", "COPYING");
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
bindtextdomain(PACKAGE, LOCALE_DIR);
|
||||
textdomain(PACKAGE);
|
||||
|
||||
ecrire_cfg_init(PACKAGE_NAME);
|
||||
ecrire_cfg_load();
|
||||
|
||||
if (optind < argc)
|
||||
{
|
||||
if (!ecore_file_exists(argv[optind]))
|
||||
return 1;
|
||||
char *path = ecore_file_realpath(argv[optind]);
|
||||
if (path)
|
||||
{
|
||||
if (ecore_file_is_dir(argv[optind])) return 1;
|
||||
|
||||
filename = eina_stringshare_add(path);
|
||||
}
|
||||
}
|
||||
|
||||
ecrire_open(filename, _ent_cfg->font.name, _ent_cfg->font.size);
|
||||
|
||||
elm_run();
|
||||
|
||||
eina_stringshare_del(inst->filename);
|
||||
free(inst);
|
||||
|
||||
ecrire_cfg_shutdown();
|
||||
eina_log_domain_unregister(_ecrire_log_dom);
|
||||
|
|
Loading…
Reference in New Issue