enventor - implementing group view switching.
This commit is contained in:
parent
f6f95b5d31
commit
2e91d7700b
|
@ -23,7 +23,8 @@ enventor_SOURCES = \
|
|||
ctxpopup.c \
|
||||
syntax_helper.c \
|
||||
indent.c \
|
||||
globals.c
|
||||
edj_mgr.c \
|
||||
globals.c
|
||||
|
||||
# QuickLaunch
|
||||
enventorql_SOURCES = $(enventor_SOURCES)
|
||||
|
|
|
@ -433,7 +433,6 @@ program_run(edit_data *ed, char *cur)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//This function is called when user press up/down key or mouse wheel up/down
|
||||
static void
|
||||
preview_img_relay_show(edit_data *ed, Evas_Object *ctxpopup, Eina_Bool next)
|
||||
|
@ -603,6 +602,15 @@ part_name_get_cb(void *data, Eina_Stringshare *part_name)
|
|||
ed->part_changed_cb(ed->part_changed_cb_data, ed->part_name);
|
||||
}
|
||||
|
||||
static void
|
||||
group_name_get_cb(void *data, Eina_Stringshare *part_name)
|
||||
{
|
||||
edit_data *ed = data;
|
||||
/* ed->part_name = part_name;
|
||||
if (ed->part_changed_cb)
|
||||
ed->part_changed_cb(ed->part_changed_cb_data, ed->part_name); */
|
||||
}
|
||||
|
||||
void
|
||||
edit_cur_part_update(edit_data *ed)
|
||||
{
|
||||
|
@ -611,12 +619,19 @@ edit_cur_part_update(edit_data *ed)
|
|||
parser_part_name_get(ed->pd, ed->en_edit, part_name_get_cb, ed);
|
||||
}
|
||||
|
||||
static void
|
||||
edit_cur_group_update(edit_data *ed)
|
||||
{
|
||||
parser_group_name_get(ed->pd, ed->en_edit, group_name_get_cb, ed);
|
||||
}
|
||||
|
||||
static void
|
||||
edit_cursor_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
edit_data *ed = data;
|
||||
cur_line_pos_set(ed);
|
||||
edit_cur_group_update(ed);
|
||||
edit_cur_part_update(ed);
|
||||
}
|
||||
|
||||
|
@ -798,7 +813,7 @@ edit_edc_read(edit_data *ed, const char *file_path)
|
|||
|
||||
ed->line_max = line_num;
|
||||
if (ed->group_name) eina_stringshare_del(ed->group_name);
|
||||
ed->group_name = parser_group_name_get(ed->pd, ed->en_edit);
|
||||
ed->group_name = parser_first_group_name_get(ed->pd, ed->en_edit);
|
||||
|
||||
stats_edc_file_set(ed->sd, ed->group_name);
|
||||
ecore_animator_add(syntax_color_animator_cb, ed);
|
||||
|
|
|
@ -14,15 +14,15 @@ typedef struct parser_attr_s
|
|||
attr_value value;
|
||||
} parser_attr;
|
||||
|
||||
typedef struct part_name_thread_data_s
|
||||
typedef struct cur_name_thread_data_s
|
||||
{
|
||||
parser_data *pd;
|
||||
char *utf8;
|
||||
int cur_pos;
|
||||
const char *part_name;
|
||||
void (*cb)(void *data, Eina_Stringshare *part_name);
|
||||
const char *cur_name;
|
||||
void (*cb)(void *data, Eina_Stringshare *cur_name);
|
||||
void *cb_data;
|
||||
} part_name_td;
|
||||
} cur_name_td;
|
||||
|
||||
static void
|
||||
parser_type_init(parser_data *pd)
|
||||
|
@ -276,7 +276,7 @@ parser_markup_escape(parser_data *pd EINA_UNUSED, const char *str)
|
|||
static void
|
||||
part_name_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED)
|
||||
{
|
||||
part_name_td *td = data;
|
||||
cur_name_td *td = data;
|
||||
|
||||
char *utf8 = td->utf8;
|
||||
int cur_pos = td->cur_pos;
|
||||
|
@ -359,14 +359,14 @@ end:
|
|||
free(utf8);
|
||||
td->utf8 = NULL;
|
||||
}
|
||||
td->part_name = part_name;
|
||||
td->cur_name = part_name;
|
||||
}
|
||||
|
||||
static void
|
||||
part_name_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED)
|
||||
{
|
||||
part_name_td *td = data;
|
||||
Eina_Stringshare *part_name = td->part_name;
|
||||
cur_name_td *td = data;
|
||||
Eina_Stringshare *part_name = td->cur_name;
|
||||
td->cb(td->cb_data, part_name);
|
||||
td->pd->thread = NULL;
|
||||
free(td);
|
||||
|
@ -375,7 +375,7 @@ part_name_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED)
|
|||
static void
|
||||
part_name_thread_cancel(void *data, Ecore_Thread *thread EINA_UNUSED)
|
||||
{
|
||||
part_name_td *td = data;
|
||||
cur_name_td *td = data;
|
||||
td->pd->thread = NULL;
|
||||
if (td->utf8) free(td->utf8);
|
||||
free(td);
|
||||
|
@ -469,12 +469,19 @@ parser_paragh_name_get(parser_data *pd EINA_UNUSED, Evas_Object *entry)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
parser_group_name_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data, Eina_Stringshare *group_name), void *data)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
parser_part_name_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data, Eina_Stringshare *part_name), void *data)
|
||||
{
|
||||
if (pd->thread) ecore_thread_cancel(pd->thread);
|
||||
|
||||
part_name_td *td = calloc(1, sizeof(part_name_td));
|
||||
cur_name_td *td = calloc(1, sizeof(cur_name_td));
|
||||
if (!td) return;
|
||||
|
||||
Evas_Object *tb = elm_entry_textblock_get(entry);
|
||||
|
@ -497,7 +504,7 @@ parser_part_name_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data,
|
|||
}
|
||||
|
||||
Eina_Stringshare
|
||||
*parser_group_name_get(parser_data *pd EINA_UNUSED, Evas_Object *entry)
|
||||
*parser_first_group_name_get(parser_data *pd EINA_UNUSED, Evas_Object *entry)
|
||||
{
|
||||
Evas_Object *tb = elm_entry_textblock_get(entry);
|
||||
char *text = (char *) evas_object_textblock_text_markup_get(tb);
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
#include <Elementary.h>
|
||||
#include "common.h"
|
||||
|
||||
|
||||
struct edj_mgr_s
|
||||
{
|
||||
Eina_List *vds;
|
||||
};
|
||||
|
||||
|
||||
edj_mgr *
|
||||
edj_mgr_init()
|
||||
{
|
||||
edj_mgr *em = calloc(1, sizeof(edj_mgr));
|
||||
return em;
|
||||
}
|
||||
|
||||
void
|
||||
edj_mgr_term(edj_mgr *em)
|
||||
{
|
||||
view_data *vd;
|
||||
EINA_LIST_FREE(em->vds, vd)
|
||||
view_term(vd);
|
||||
free(em);
|
||||
}
|
||||
|
||||
view_data *
|
||||
edj_mgr_view_get(edj_mgr *em, Eina_Stringshare *group)
|
||||
{
|
||||
view_data *vd = NULL;
|
||||
Eina_List *l;
|
||||
EINA_LIST_FOREACH(em->vds, l, vd)
|
||||
{
|
||||
if (view_group_name_get(vd) == group)
|
||||
return vd;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
view_data *
|
||||
edj_mgr_view_new(edj_mgr *em, Evas_Object *parent, const char *group,
|
||||
stats_data *sd, config_data *cd)
|
||||
{
|
||||
view_data *vd = view_init(parent, group, sd, cd);
|
||||
if (!vd) return NULL;
|
||||
|
||||
em->vds = eina_list_append(em->vds, vd);
|
||||
|
||||
return vd;
|
||||
}
|
||||
|
|
@ -244,7 +244,6 @@ view_term(view_data *vd)
|
|||
if (vd->part_obj)
|
||||
evas_object_event_callback_del(vd->part_obj, EVAS_CALLBACK_DEL,
|
||||
part_obj_del_cb);
|
||||
|
||||
free(vd);
|
||||
}
|
||||
|
||||
|
@ -309,3 +308,9 @@ view_part_highlight_set(view_data *vd, const char *part_name)
|
|||
eina_stringshare_replace(&vd->part_name, part_name);
|
||||
part_obj_geom_cb(vd, evas_object_evas_get(vd->layout), part_obj, NULL);
|
||||
}
|
||||
|
||||
Eina_Stringshare *
|
||||
view_group_name_get(view_data *vd)
|
||||
{
|
||||
return vd->group_name;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue