[EGIT] [tools/clouseau] master 01/01: Fix build with efl 1.22 release.

2019-05-01 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/clouseau.git/commit/?id=af282ab41abb15a7073f7341ff42b795c15bd841

commit af282ab41abb15a7073f7341ff42b795c15bd841
Author: Mykyta Biliavskyi 
Date:   Wed May 1 12:09:44 2019 +0300

Fix build with efl 1.22 release.

Fixed using efl API accordingly to the latest changes.
---
 src/bin/clouseau_client.c  | 19 ++-
 src/lib/clouseau_debug.c   |  5 ++---
 src/lib/extensions/objects_introspection/gui.c |  5 +++--
 src/lib/extensions/profiling_viewer/CMakeLists.txt |  4 ++--
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/bin/clouseau_client.c b/src/bin/clouseau_client.c
index 499cc21..b216aa5 100644
--- a/src/bin/clouseau_client.c
+++ b/src/bin/clouseau_client.c
@@ -10,6 +10,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -539,15 +540,15 @@ _dialog_box_create(const char *title, const char 
*content, const char *but1_str,
Eo *win, *bx, *lb;
 
win = efl_add(EFL_UI_WIN_CLASS, _main_widgets->main_win,
- efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC),
+ efl_ui_win_type_set(efl_added, ELM_WIN_DIALOG_BASIC),
  efl_ui_win_autodel_set(efl_added, EINA_TRUE),
  efl_text_set(efl_added, title),
  efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
 
bx = efl_add(EFL_UI_BOX_CLASS, win,
  efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL),
- efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, 
EFL_GFX_SIZE_HINT_EXPAND),
- efl_gfx_size_hint_align_set(efl_added, EFL_GFX_SIZE_HINT_FILL, 
EFL_GFX_SIZE_HINT_FILL),
+ efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND),
+ efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
  efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
efl_content_set(win, bx);
 
@@ -555,8 +556,8 @@ _dialog_box_create(const char *title, const char *content, 
const char *but1_str,
  efl_text_multiline_set(efl_added, EINA_TRUE),
  efl_text_halign_set(efl_added, 0.5),
  efl_text_set(efl_added, content),
- efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, 
EFL_GFX_SIZE_HINT_EXPAND),
- efl_gfx_size_hint_align_set(efl_added, EFL_GFX_SIZE_HINT_FILL, 
EFL_GFX_SIZE_HINT_FILL),
+ efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND),
+ efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
  efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
efl_pack(bx, lb);
 
@@ -565,8 +566,8 @@ _dialog_box_create(const char *title, const char *content, 
const char *but1_str,
 Eo *bx2;
 bx2 = efl_add(EFL_UI_BOX_CLASS, win,
   efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL),
-  efl_gfx_size_hint_weight_set(efl_added, 
EFL_GFX_SIZE_HINT_EXPAND, EFL_GFX_SIZE_HINT_EXPAND),
-  efl_gfx_size_hint_align_set(efl_added, EFL_GFX_SIZE_HINT_FILL, 
EFL_GFX_SIZE_HINT_FILL),
+  efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND),
+  efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, 
EVAS_HINT_FILL),
   efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
 efl_pack(bx, bx2);
 
@@ -574,7 +575,7 @@ _dialog_box_create(const char *title, const char *content, 
const char *but1_str,
   {
  Eo *bt1 = efl_add(EFL_UI_BUTTON_CLASS, bx2,
efl_text_set(efl_added, but1_str),
-   efl_gfx_size_hint_weight_set(efl_added, 0, 0),
+   efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
  if (cb1) efl_event_callback_add(bt1, EFL_UI_EVENT_CLICKED, cb1, 
win);
  efl_pack(bx2, bt1);
@@ -583,7 +584,7 @@ _dialog_box_create(const char *title, const char *content, 
const char *but1_str,
   {
  Eo *bt2 = efl_add(EFL_UI_BUTTON_CLASS, bx2,
efl_text_set(efl_added, but2_str),
-   efl_gfx_size_hint_weight_set(efl_added, 0, 0),
+   efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
  if (cb2) efl_event_callback_add(bt2, EFL_UI_EVENT_CLICKED, cb2, 
win);
  efl_pack(bx2, bt2);
diff --git a/src/lib/clouseau_debug.c b/src/lib/clouseau_debug.c
index 8d41ca5..be691f7 100644
--- a/src/lib/clouseau_debug.c
+++ b/src/lib/clouseau_debug.c
@@ -9,7 +9,6 @@
 #include 
 #include 
 #define ELM_INTERNAL_API_ARGESFSDFEFC
-#include 
 
 #include "Clouseau_Debug.h"
 
@@ -338,7 +337,7 @@ _function_invoke(Eo *ptr, const Eolian_Function *foo, 
Eolian_Function_Type foo_t
 ffi_argc--;
  }
 
-   const char *full_func_name = eolian_function_full_c_name_get(foo,  
EOLIAN_PROP_GE

[EGIT] [admin/devs] master 01/01: NikaWhite: Add a new key for home

2017-12-29 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=0bf0294eb5d5eea23f67b5710887b8fdc12bcd12

commit 0bf0294eb5d5eea23f67b5710887b8fdc12bcd12
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Dec 29 10:54:37 2017 +0200

NikaWhite: Add a new key for home

 + update info.txt
---
 developers/nikawhite/id_rsa_home.pub | 1 +
 developers/nikawhite/info.txt| 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/developers/nikawhite/id_rsa_home.pub 
b/developers/nikawhite/id_rsa_home.pub
new file mode 100644
index 000..ddc229d
--- /dev/null
+++ b/developers/nikawhite/id_rsa_home.pub
@@ -0,0 +1 @@
+ssh-rsa 
B3NzaC1yc2EDAQABAAACAQDRfKuc8lGKWGPRXVVH4rovO+yAqG0JbgpyAeUdS+AxFUByvDnXxGzVXDOMp6WwuemUIUD+R2TC55xwmy7J7rkmGm10cyZUvQfbpJXszxjlGYRO65DWy4N8NPHogWkm2KiWBsTgY6T8X8H5fFA1GVrejM3My2DwPK7TtpHwX1LDctwxJxKD8ebFRyKx+BNgHVLkXatFj96xk1x5SVt2gN5WyhEMSCNQmG5jHG2+4xEkAXiu2I/2R2IGdwlqm0+f8nnoS8wd9RLBp+1ZAsWIB8yTjzs+Zvdmf5s/bUHDnYjKdy4cnMMXkx9cNMFMcNXvyb+kBlOeGhJy+WbzJmoaYNLL/jILYF67jrUQWeU6TZowC2OEJTAzD9L54wSp0gOtbahiiVZ6EwBBfGhZaOE4R8dEzkCjs8Yw5R2OJCZ7hYjsWIs1dED3/7zIgiaMVrk8VyjOs6yW
 [...]
diff --git a/developers/nikawhite/info.txt b/developers/nikawhite/info.txt
index 74d6ecf..476ac6c 100644
--- a/developers/nikawhite/info.txt
+++ b/developers/nikawhite/info.txt
@@ -1,10 +1,10 @@
 Login:nikawhite
-IRC Nick: nikawhite
+IRC Nick: NikaWhite
 Cloak:developer/nikawhite
 Name:     Mykyta Biliavskyi
 Location: Kiev, Ukraine
 GeoData:  50.43912 30.496453
 E-Mail:   belyavski...@gmail.com
-Managing: efl edje theme editor (eflete)
-Contributing: efl
+Managing: efl profiling viewer
+Contributing: efl, eflete, clouseau, enventor
 Platform: Arch (Linux)

-- 




[EGIT] [tools/clouseau] master 01/01: Profiling Viewer: improve UI.

2017-12-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/clouseau.git/commit/?id=cfcf900910f7f899746043c818ebbf13b8b7e622

commit cfcf900910f7f899746043c818ebbf13b8b7e622
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Dec 22 13:56:06 2017 +0200

Profiling Viewer: improve UI.

Summary:
Due to latest changes in Profiling Viewer project the UI was  updated.
Added toolbar with next buttons:
 - Start/stop processing data from eina_debug.
 - Update displayed interval by latest received data.
 - Open filters dialog window.
 - Open find dialog window .
 - Open time range dialog window.
 - Open preference window (disable until not merged into Profiling
   Viewer project master branch.)

Reviewers: Deepwarrior, i.furs

Reviewed By: Deepwarrior

Tags: PHID-PROJ-r7aoq2gq7sou6dugjj5o, #clouseau

Maniphest Tasks: T6348

Differential Revision: https://phab.enlightenment.org/D5443
---
 src/lib/extensions/profiling_viewer/main.c | 285 +
 1 file changed, 247 insertions(+), 38 deletions(-)

diff --git a/src/lib/extensions/profiling_viewer/main.c 
b/src/lib/extensions/profiling_viewer/main.c
index 293ea20..fe786e9 100644
--- a/src/lib/extensions/profiling_viewer/main.c
+++ b/src/lib/extensions/profiling_viewer/main.c
@@ -8,17 +8,25 @@
 
 
 typedef enum  {
- STREAM_STOPPED = 0,
- STREAM_PROCESSING,
- STREAM_PAUSED
+ STREAM_PAUSED = 0,
+ STREAM_PROCESSING
 } CLOUSEAU_PROFILER_STATUS;
 
 typedef struct {
Evas_Object *profiler;
Ecore_Timer *record_get_timer;
+   CLOUSEAU_PROFILER_STATUS status; /*<< 0 - stopped, 1 - processing, 2 - 
paused */
struct {
-CLOUSEAU_PROFILER_STATUS status; /*<< 0 - stopped, 1 - processing, 2 - 
paused */
-   } stream;
+Evas_Object *obj;
+Evas_Object *status_btn;
+Evas_Object *follow_btn;
+Evas_Object *filters_btn;
+Evas_Object *find_btn;
+Evas_Object *time_range_btn;
+Evas_Object *setting_btn;
+   } toolbar;
+   Eina_Bool follow;
+   Eina_Bool block_processed;
 } Inf;
 
 static int _clouseau_profiling_extension_log_dom  = 0;
@@ -28,6 +36,7 @@ static int _record_off_op = EINA_DEBUG_OPCODE_INVALID;
 static int _record_get_op = EINA_DEBUG_OPCODE_INVALID;
 
 static Eina_Bool _record_get_cb(Eina_Debug_Session *, int, void *, int);
+static void _follow_interval_status_change_cb(void *data, Evas_Object *obj, 
void *event_info);
 
 EINA_DEBUG_OPCODES_ARRAY_DEFINE(_ops,
{"CPU/Freq/on", &_record_on_op, NULL},
@@ -36,7 +45,6 @@ EINA_DEBUG_OPCODES_ARRAY_DEFINE(_ops,
{NULL, NULL, NULL}
 );
 
-
 EAPI const char *
 extension_name_get()
 {
@@ -52,18 +60,6 @@ _record_request_cb(void *data)
 }
 
 static void
-_stream_processing_pause_cb(void *data,
-Evas_Object *obj EINA_UNUSED,
-void *event_info EINA_UNUSED)
-{
-   Clouseau_Extension *ext = data;
-   Inf *inf = ext->data;
-
-   eina_debug_session_send(ext->session, ext->app_id, _record_off_op, NULL, 0);
-   ecore_timer_del(inf->record_get_timer);
-}
-
-static void
 _stream_processing_resume_cb(void *data,
 Evas_Object *obj EINA_UNUSED,
 void *event_info EINA_UNUSED)
@@ -79,21 +75,10 @@ _stream_processing_resume_cb(void *data,
 static void
 _session_changed(Clouseau_Extension *ext)
 {
-   Inf *inf = ext->data;
int i = 0;
Eina_Debug_Opcode *ops = _ops();
+   Inf *inf = ext->data;
 
-   switch (inf->stream.status)
- {
-  case STREAM_PROCESSING:
- evas_object_smart_callback_call(inf->profiler, 
"stream,processing,pause", NULL);
- break;
-  case STREAM_PAUSED:
-  case STREAM_STOPPED:
-  default:
- evas_object_smart_callback_call(inf->profiler, 
"stream,processing,resume", NULL);
-
- }
EINA_LOG_DOM_DBG(_clouseau_profiling_extension_log_dom, "Session changed");
 
while (ops[i].opcode_name)
@@ -101,12 +86,24 @@ _session_changed(Clouseau_Extension *ext)
 if (ops[i].opcode_id) *(ops[i].opcode_id) = EINA_DEBUG_OPCODE_INVALID;
 i++;
  }
+
if (ext->session)
  {
 eina_debug_session_data_set(ext->session, ext);
 eina_debug_opcodes_register(ext->session, ops, NULL, NULL);
  }
 
+   /*disable controls on toolbar */
+   elm_object_disabled_set(inf->toolbar.status_btn, EINA_TRUE);
+   elm_object_disabled_set(inf->toolbar.follow_btn, EINA_TRUE);
+
+   if (!inf->block_processed)
+ {
+elm_object_disabled_set(inf->toolbar.filters_btn, EINA_TRUE);
+elm_object_disabled_set(inf->toolbar.time_range_btn, EINA_TRUE);
+elm_object_disabled_set(inf->toolbar.find_btn, EINA_TRUE);
+ }
+
return;
 }
 
@@ -114,8 +111,19 @@ static void
 _app_changed(Clouseau_Ext

[EGIT] [tools/clouseau] master 01/01: Eolian api usage fix.

2017-12-10 Thread Mykyta Biliavskyi
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/clouseau.git/commit/?id=318ee74c88eee347eeac9da237af5b562c908b1e

commit 318ee74c88eee347eeac9da237af5b562c908b1e
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Sun Dec 10 21:03:48 2017 +

Eolian api usage fix.

Summary:
All eolian API's require to use Eolian object.
The object introspection still doesn't works for me. At least clouseau
is compiling now.

Test Plan: Compile Clouseau with git efl.

Reviewers: ajwillia.ms, JackDanielZ, Deepwarrior, i.furs

Reviewed By: ajwillia.ms

Differential Revision: https://phab.enlightenment.org/D5632
---
 src/lib/clouseau_debug.c| 8 ++--
 src/lib/extensions/objects_introspection/main.c | 5 -
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/lib/clouseau_debug.c b/src/lib/clouseau_debug.c
index fb2d814..968e2ed 100644
--- a/src/lib/clouseau_debug.c
+++ b/src/lib/clouseau_debug.c
@@ -186,6 +186,7 @@ _class_find_by_name(const char *eo_klname, const 
Eolian_Unit **unit)
 return info->kl;
  }
 
+   Eolian *eos = eolian_new();
char *klname = strdup(eo_klname);
 
Eina_Strbuf *buf = eina_strbuf_new();
@@ -195,7 +196,7 @@ _class_find_by_name(const char *eo_klname, const 
Eolian_Unit **unit)
char *tmp = eina_strbuf_string_steal(buf);
eina_strbuf_free(buf);
eina_str_tolower();
-   *unit = eolian_file_parse(tmp);
+   *unit = eolian_file_parse(eos, tmp);
free(tmp);
 
tmp = klname;
@@ -218,6 +219,7 @@ end:
 eina_hash_set(_eolian_kls_hash, eo_klname, info);
  }
free(klname);
+   eolian_free(eos);
return kl;
 }
 
@@ -1078,13 +1080,15 @@ clouseau_debug_init(void)
eolian_init();
evas_init();
 
+   Eolian *eos = eolian_new();
_eolian_kls_hash = eina_hash_string_superfast_new(NULL);
 
-   eolian_system_directory_scan();
+   eolian_system_directory_scan(eos);
 
eina_debug_opcodes_register(NULL, _debug_ops(), NULL, NULL);
 
printf("%s - In\n", __FUNCTION__);
+   eolian_free(eos);
return EINA_TRUE;
 }
 
diff --git a/src/lib/extensions/objects_introspection/main.c 
b/src/lib/extensions/objects_introspection/main.c
index cea4201..f590675 100644
--- a/src/lib/extensions/objects_introspection/main.c
+++ b/src/lib/extensions/objects_introspection/main.c
@@ -1161,6 +1161,8 @@ extension_start(Clouseau_Extension *ext, Eo *parent)
 
eina_init();
eolian_init();
+   Eolian *eos = eolian_new();
+
 
ext->data = inst;
ext->session_changed_cb = _session_changed;
@@ -1175,11 +1177,12 @@ extension_start(Clouseau_Extension *ext, Eo *parent)
 
memset(&(inst->snapshot), 0, sizeof(inst->snapshot));
 
-   eolian_directory_scan(EOLIAN_EO_DIR);
+   eolian_directory_scan(eos, EOLIAN_EO_DIR);
 
_config_load(ext);
 
ext->ui_object = _ui_get(ext, parent);
+   eolian_free(eos);
return !!ext->ui_object;
 }
 

-- 




[EGIT] [tools/clouseau] master 01/01: Client: delete extensions on close application.

2017-12-08 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/clouseau.git/commit/?id=0130202924dba6c1205e50d2416f62ff7415028e

commit 0130202924dba6c1205e50d2416f62ff7415028e
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Dec 8 10:14:23 2017 +0200

Client: delete extensions on close application.

Summary:
The Profiling viewer extension require to be notifyed that clouseau_client
is closing. Another extensions also could require to make some routine
before extension will be closed. Such as storing session info etc .

Reviewers: i.furs, JackDanielZ, Deepwarrior

Reviewed By: JackDanielZ, Deepwarrior

Differential Revision: https://phab.enlightenment.org/D5608
---
 src/bin/clouseau_client.c | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/src/bin/clouseau_client.c b/src/bin/clouseau_client.c
index 4b60b99..9b6ccd3 100644
--- a/src/bin/clouseau_client.c
+++ b/src/bin/clouseau_client.c
@@ -935,6 +935,14 @@ save_load_perform(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *ev
else _fs_activate(EINA_FALSE);
 }
 
+static void
+_main_window_del(void *data EINA_UNUSED,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+   _all_extensions_delete();
+}
+
 EAPI_MAIN int
 elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 {
@@ -999,6 +1007,8 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
 
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
_main_widgets = gui_main_win_create(NULL);
+   evas_object_smart_callback_add(_main_widgets->main_win, "delete,request",
+  _main_window_del, NULL);
 
for (i = 0; i < LAST_CONNECTION; i++)
  {

-- 




[EGIT] [core/efl] master 01/01: Edje edit: remove color generate from SPACER source.

2016-04-29 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e8138ee7b5d664dad148970988fd9fe904e74dfd

commit e8138ee7b5d664dad148970988fd9fe904e74dfd
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Apr 29 11:25:41 2016 +0300

Edje edit: remove color generate from SPACER source.

It is possible situation when SPACER structure has colors values.
For example:
group { name: "abc";
  parts {
part { name: "rect"; type: RECT;
  description { "default" 0.0;
color: 7 7 7 255;
  }
}
  }
}
group { name:"abc_2";
  inherit: "abc";
  parts {
part { name: "rect"; type: SPACER;
}
  }
}
To avoid failing compilation of generated source code, need avoid
generate color source code for a SPACER part.
---
 src/lib/edje/edje_edit.c | 25 ++---
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 7739521..e97c44f 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -13263,17 +13263,20 @@ _edje_generate_source_of_state(Evas_Object *obj, 
const char *part, const char *s
if (pd->aspect.prefer)
  BUF_APPENDF(I5 "aspect_preference: %s;\n", 
prefers[(int)pd->aspect.prefer]);
 
-   if (pd->color_class)
- BUF_APPENDF(I5 "color_class: \"%s\";\n", pd->color_class);
-
-   if (pd->color.r != 255 || pd->color.g != 255 ||
-   pd->color.b != 255 || pd->color.a != 255)
- BUF_APPENDF(I5 "color: %d %d %d %d;\n",
- pd->color.r, pd->color.g, pd->color.b, pd->color.a);
-   if (pd->color2.r != 0 || pd->color2.g != 0 ||
-   pd->color2.b != 0 || pd->color2.a != 255)
- BUF_APPENDF(I5 "color2: %d %d %d %d;\n",
- pd->color2.r, pd->color2.g, pd->color2.b, pd->color2.a);
+   if (rp->part->type != EDJE_PART_TYPE_SPACER)
+ {
+if (pd->color_class)
+  BUF_APPENDF(I5 "color_class: \"%s\";\n", pd->color_class);
+
+if (pd->color.r != 255 || pd->color.g != 255 ||
+pd->color.b != 255 || pd->color.a != 255)
+  BUF_APPENDF(I5 "color: %d %d %d %d;\n",
+  pd->color.r, pd->color.g, pd->color.b, pd->color.a);
+if (pd->color2.r != 0 || pd->color2.g != 0 ||
+pd->color2.b != 0 || pd->color2.a != 255)
+  BUF_APPENDF(I5 "color2: %d %d %d %d;\n",
+  pd->color2.r, pd->color2.g, pd->color2.b, pd->color2.a);
+ }
 
if (rp->part->type == EDJE_PART_TYPE_TEXT
|| rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)

-- 




[EGIT] [tools/eflete] master 05/06: Ewe theme: ellipsis text in combobox style for colorclass.

2016-04-27 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=e097129002c7976f547a276cbcefe30ec3f51932

commit e097129002c7976f547a276cbcefe30ec3f51932
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Apr 27 09:07:57 2016 +0300

Ewe theme: ellipsis text in combobox style for colorclass.

@fix T3551
---
 data/themes/ewe/widgets/combobox.edc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/data/themes/ewe/widgets/combobox.edc 
b/data/themes/ewe/widgets/combobox.edc
index daf2060..b1a8a72 100644
--- a/data/themes/ewe/widgets/combobox.edc
+++ b/data/themes/ewe/widgets/combobox.edc
@@ -372,13 +372,14 @@ group { name: "ewe/combobox/base/color_class";
 rel2 {
relative: 0.0 1.0;
offset: -7 -1;
-   to_x: "bg.color3";
+   to_x: "bg.color1";
to_y: "base";
 }
 text {
font: "PT";
size: 12;
-   max: 1 1;
+   max: 0 1;
+   align: 0.0 0.5;
 }
  }
   }

-- 




[EGIT] [core/efl] master 01/01: Edje edit: improve state code generation.

2016-04-26 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b1fce61caa1cb9514b91d030be0e1264c44c

commit b1fce61caa1cb9514b91d030be0e1264c44c
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Apr 26 18:08:23 2016 +0300

Edje edit: improve state code generation.

Split function _edje_generate_source_of_state into
separated smallest functions, that represent generation
of source code for different blocks.
List of added internal functions:
  - _edje_generate_source_state_map
  - _edje_generate_source_state_box
  - _edje_generate_source_state_table
  - _edje_generate_source_state_image
  - _edje_generate_source_state_proxy
  - _edje_generate_source_state_relative

Add support collapse blocks, in cases when
block contain only one attribute.
For example:
next EDC code
  description { state: "default";
{
  rel1 {
 relative: 0.5 0;
  }
}

now will be replaced by:
  description { state: "default";
{
   rel1.relative: 0.5 0;
}
---
 src/lib/edje/edje_edit.c | 1044 +++---
 1 file changed, 710 insertions(+), 334 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index cfd06ce..806ca8e 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -11887,12 +11887,705 @@ _edje_source_with_double_values_append(const char 
*param_name, char val_num, dou
eina_strbuf_free(string);
 }
 
+static void
+_edje_generate_source_state_relative(Edje *ed, Edje_Part_Description_Common 
*pd, Eina_Strbuf *buf)
+{
+
+   Eina_Bool ret = EINA_TRUE;
+   int attr_amount = 0;
+   int indent_space = strlen(I6);
+
+   attr_amount += ((pd->rel1.relative_x == 0) && (pd->rel1.relative_y == 0)) ? 
0 : 1;
+   attr_amount += ((pd->rel1.offset_x == 0) && (pd->rel1.offset_y == 0)) ? 0 : 
1;
+   if ((pd->rel1.id_x != -1) || (pd->rel1.id_y != -1))
+ {
+if ((pd->rel1.id_x == -1 && pd->rel1.id_y != -1) ||
+(pd->rel1.id_x != -1 && pd->rel1.id_y == -1) ||
+(pd->rel1.id_x == pd->rel1.id_y))
+  {
+ attr_amount++;
+  }
+else
+  {
+ attr_amount += 2;
+  }
+ }
+
+   indent_space = strlen(I6);
+   if (attr_amount == 1)
+ indent_space = 0;
+
+   //Rel1
+   if (attr_amount)
+ {
+if (attr_amount > 1)
+  BUF_APPEND(I5 "rel1 {\n");
+else
+  BUF_APPEND(I5 "rel1.");
+
+if (pd->rel1.relative_x != 0 || pd->rel1.relative_y != 0)
+  {
+ char relative[strlen("relative") + indent_space + 1];
+ snprintf(relative, strlen("relative") + indent_space + 1,
+  "%*srelative", indent_space, "");
+ _edje_source_with_double_values_append(relative, 2,
+  
TO_DOUBLE(pd->rel1.relative_x),
+  
TO_DOUBLE(pd->rel1.relative_y),
+  buf, );
+  }
+
+if (pd->rel1.offset_x != 0 || pd->rel1.offset_y != 0)
+  BUF_APPENDF("%*soffset: %d %d;\n", indent_space, "",
+  pd->rel1.offset_x, pd->rel1.offset_y);
+
+if (pd->rel1.id_x != -1 && pd->rel1.id_x == pd->rel1.id_y)
+  {
+BUF_APPENDF("%*sto: \"%s\";\n", indent_space, "",
+ed->table_parts[pd->rel1.id_x]->part->name);
+  }
+else
+  {
+ if (pd->rel1.id_x != -1)
+   BUF_APPENDF("%*sto_x: \"%s\";\n", indent_space, "",
+   ed->table_parts[pd->rel1.id_x]->part->name);
+
+ if (pd->rel1.id_y != -1)
+   BUF_APPENDF("%*sto_y: \"%s\";\n", indent_space, "",
+   ed->table_parts[pd->rel1.id_y]->part->name);
+  }
+
+if (attr_amount > 1)
+   BUF_APPEND(I5 "}\n");
+ }
+
+
+   attr_amount = 0;
+   attr_amount += ((pd->rel2.relative_x == 1) && (pd->rel2.relative_y == 1)) ? 
0 : 1;
+   attr_amount += ((pd->rel2.offset_x == -1) && (pd->rel2.offset_y == -1)) ? 0 
: 1;
+   if ((pd->rel2.id_x != -1) || (pd->rel2.id_y != -1))
+ {
+if ((pd->rel2.id_x == -1 && pd->rel2.id_y != -1) ||
+(pd->rel2.id_x != -1 && pd->rel2.id_y == -1) ||
+(pd->rel2.id_x == pd->rel2.id_y))
+  {
+ attr_amount++;
+  }
+else
+  

[EGIT] [tools/eflete] master 03/23: Project manager: fix export resources.

2016-04-21 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=a1030ee57739ce5c91f3a0c63ca722e49d6d7341

commit a1030ee57739ce5c91f3a0c63ca722e49d6d7341
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Apr 19 17:55:36 2016 +0300

Project manager: fix export resources.

Support directories in resource names. (Like "O/image.png").
Correct export font and sound files.

@fix
---
 src/bin/project_manager/project_manager.c | 25 +
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/bin/project_manager/project_manager.c 
b/src/bin/project_manager/project_manager.c
index 978f7ae..59ec058 100644
--- a/src/bin/project_manager/project_manager.c
+++ b/src/bin/project_manager/project_manager.c
@@ -1084,7 +1084,7 @@ _sound_resources_load(Project *project)
   snd_proc, snd_total, sound_file);
 
 res = mem_calloc(1, sizeof(External_Resource));
-res->name = eina_stringshare_add(sound_name);
+res->name = eina_stringshare_add(sound_file);
 res->source = eina_stringshare_printf("%s/%s", resource_folder, 
sound_file);
 project->sounds = eina_list_sorted_insert(project->sounds, 
(Eina_Compare_Cb) resource_cmp, res);
 
@@ -1152,7 +1152,7 @@ _font_resources_load(Project *project)
   fnt_proc, fnt_total, font_file);
 
 res = mem_calloc(1, sizeof(External_Resource));
-res->name = eina_stringshare_add(font_name);
+res->name = eina_stringshare_add(font_file);
 res->source = eina_stringshare_printf("%s/%s", resource_folder, 
font_file);
 project->fonts = eina_list_sorted_insert(project->fonts, 
(Eina_Compare_Cb) resource_cmp, res);
 
@@ -1285,13 +1285,21 @@ _external_resources_export(Eina_List *resources, const 
char *dst)
Eina_Strbuf *buf;
Eina_List *l;
External_Resource *res;
+   char *path;
 
buf = eina_strbuf_new();
EINA_LIST_FOREACH(resources, l, res)
  {
 eina_strbuf_append_printf(buf, "%s/%s", dst, res->name);
+path = ecore_file_dir_get(eina_strbuf_string_get(buf));
+if (!ecore_file_is_dir(path))
+  {
+ ecore_file_mkpath(path);
+  }
 ecore_file_cp(res->source, eina_strbuf_string_get(buf));
 eina_strbuf_reset(buf);
+free(path);
+path = NULL;
  }
eina_strbuf_free(buf);
 }
@@ -1302,6 +1310,7 @@ _external_resource_export(Eina_List *resources, 
Eina_Stringshare *name, const ch
Eina_Strbuf *buf;
Eina_List *l;
External_Resource *res;
+   char *path;
 
buf = eina_strbuf_new();
EINA_LIST_FOREACH(resources, l, res)
@@ -1309,8 +1318,14 @@ _external_resource_export(Eina_List *resources, 
Eina_Stringshare *name, const ch
 if (name == res->name)
   {
  eina_strbuf_append_printf(buf, "%s/%s", dst, res->name);
+ path = ecore_file_dir_get(eina_strbuf_string_get(buf));
+ if (!ecore_file_is_dir(path))
+   {
+  ecore_file_mkpath(path);
+   }
  ecore_file_cp(res->source, eina_strbuf_string_get(buf));
  eina_strbuf_reset(buf);
+ free(path);
  break;
   }
  }
@@ -1385,9 +1400,11 @@ _group_source_code_export(void *data, Eina_Thread 
*thread __UNUSED__)
  EINA_LIST_FOREACH(part->states, ls, state)
{
   resource = edje_edit_state_font_get(group->edit_object, 
part->name, state->parsed_name, state->parsed_val);
-  PROGRESS_SEND(_("Export font '%s'"), resource);
-  _external_resource_export(worker.project->fonts, resource, 
eina_strbuf_string_get(buf));
+  Eina_Stringshare *font_res = 
edje_edit_font_path_get(group->edit_object, resource);
+  PROGRESS_SEND(_("Export font '%s'"), font_res);
+  _external_resource_export(worker.project->fonts, font_res, 
eina_strbuf_string_get(buf));
   eina_stringshare_del(resource);
+  eina_stringshare_del(font_res);
}
   }
  }

-- 




[EGIT] [core/efl] master 02/03: Edje edit: add new program actions into code generate function.

2016-04-21 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2006c01c06fe2d0642d5ec8787513527f6b298d8

commit 2006c01c06fe2d0642d5ec8787513527f6b298d8
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Apr 19 14:06:40 2016 +0300

Edje edit: add new program actions into code generate function.

Generate edc source code for next action types:
  - EDJE_ACTION_TYPE_FOCUS_SET
  - EDJE_ACTION_TYPE_FOCUS_OBJECT
  - EDJE_ACTION_TYPE_PARAM_COPY
  - EDJE_ACTION_TYPE_PARAM_SET
---
 src/lib/edje/edje_edit.c | 49 ++--
 1 file changed, 47 insertions(+), 2 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 542b692..aeba548 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -11558,6 +11558,7 @@ _edje_generate_source_of_program(Evas_Object *obj, 
const char *program, Eina_Str
Edje_Program *epr;
int tweenmode = 0;
 
+   GET_ED_OR_RETURN(EINA_FALSE);
GET_EED_OR_RETURN(EINA_FALSE);
 
epr = _edje_program_get_byname(obj, program);
@@ -11565,14 +11566,16 @@ _edje_generate_source_of_program(Evas_Object *obj, 
const char *program, Eina_Str
BUF_APPENDF(I3 "program { name: \"%s\";\n", program);
 
/* Signal */
-   if ((s = eina_stringshare_add(epr->signal)))
+   s = eina_stringshare_add(epr->signal);
+   if ((s != NULL) && (strcmp(s, "")))
  {
 BUF_APPENDF(I4 "signal: \"%s\";\n", s);
 edje_edit_string_free(s);
  }
 
/* Source */
-   if ((s = eina_stringshare_add(epr->source)))
+   s = eina_stringshare_add(epr->source);
+   if ((s != NULL) && (strcmp(s, "")))
  {
 BUF_APPENDF(I4 "source: \"%s\";\n", s);
 edje_edit_string_free(s);
@@ -11696,6 +11699,48 @@ _edje_generate_source_of_program(Evas_Object *obj, 
const char *program, Eina_Str
  break;
   }
 
+  case EDJE_ACTION_TYPE_FOCUS_SET:
+  {
+ BUF_APPEND(I4 "action: FOCUS_SET;\n");
+ break;
+  }
+
+  case EDJE_ACTION_TYPE_FOCUS_OBJECT:
+  {
+ BUF_APPEND(I4 "action: FOCUS_OBJECT;\n");
+ break;
+  }
+
+  case EDJE_ACTION_TYPE_PARAM_COPY:
+  {
+ Edje_Real_Part *src_part, *dst_part;
+
+ src_part = ed->table_parts[epr->param.src % ed->table_parts_size];
+ dst_part = ed->table_parts[epr->param.dst % ed->table_parts_size];
+
+ if (!src_part || !dst_part) break;
+
+ BUF_APPEND(I4 "action: PARAM_COPY ");
+ BUF_APPENDF("\"%s\" \"%s\" \"%s\" \"%s\";\n",
+ src_part->part->name, epr->state,
+ dst_part->part->name, epr->state2);
+ break;
+  }
+
+  case EDJE_ACTION_TYPE_PARAM_SET:
+  {
+ Edje_Real_Part *part;
+
+ part = ed->table_parts[epr->param.dst % ed->table_parts_size];
+
+ if (!part) break;
+
+ BUF_APPEND(I4 "action: PARAM_SET ");
+ BUF_APPENDF("\"%s\" \"%s\" \"%s\";\n",
+ part->part->name, epr->state, epr->state2);
+ break;
+   }
+
   default:
 break;
  }

-- 




[EGIT] [core/efl] master 03/03: Edje edit: fix aspect_preference value into generate code function.

2016-04-21 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b63b00c1b8c8b07401b47660f6966429dbbae73b

commit b63b00c1b8c8b07401b47660f6966429dbbae73b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Apr 19 14:19:53 2016 +0300

Edje edit: fix aspect_preference value into generate code function.

Add value "SOURCE" as one of possible values for aspect_preference
attributes.
@fix
---
 src/lib/edje/edje_edit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index aeba548..7c4c5e1 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -11079,7 +11079,7 @@ edje_edit_script_error_list_get(Evas_Object *obj)
 static const char *types[] = {"NONE", "RECT", "TEXT", "IMAGE", "SWALLOW", 
"TEXTBLOCK", "GRADIENT", "GROUP", "BOX", "TABLE", "EXTERNAL", "PROXY", 
"SPACER"};
 static const char *effects[] = {"NONE", "PLAIN", "OUTLINE", "SOFT_OUTLINE", 
"SHADOW", "SOFT_SHADOW", "OUTLINE_SHADOW", "OUTLINE_SOFT_SHADOW", "FAR_SHADOW", 
"FAR_SOFT_SHADOW", "GLOW"};
 static const char *shadow_direction[] = {"BOTTOM_RIGHT", "BOTTOM", 
"BOTTOM_LEFT", "LEFT", "TOP_LEFT", "TOP", "TOP_RIGHT", "RIGHT"};
-static const char *prefers[] = {"NONE", "VERTICAL", "HORIZONTAL", "BOTH"};
+static const char *prefers[] = {"NONE", "VERTICAL", "HORIZONTAL", "BOTH", 
"SOURCE"};
 static const char *entry_mode[] = {"NONE", "PLAIN", "EDITABLE", "PASSWORD"};
 static const char *aspect_mode[] = {"NONE", "NEITHER", "HORIZONTAL", 
"VERTICAL", "BOTH"};
 

-- 




[EGIT] [core/efl] master 01/03: Edje edit: fix get list of program tagrets.

2016-04-21 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e634a7cc86db49fb8a1721776a5fc0174db68875

commit e634a7cc86db49fb8a1721776a5fc0174db68875
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Apr 18 16:46:39 2016 +0300

Edje edit: fix get list of program tagrets.

Correct support all types of program actions for constructing
list of targets.
There are 3 group of actions, that related to targets:
 - Does not support targets at all.
 - Support only parts as targets.
 - ACTION_STOP, that supported parts and other programs as targtes.

@fix
---
 src/lib/edje/edje_edit.c | 66 +++-
 1 file changed, 49 insertions(+), 17 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 995a403..542b692 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -10153,28 +10153,60 @@ _edje_program_targets_get(Evas_Object *obj, 
Edje_Program *epr)
 
GET_ED_OR_RETURN(NULL);
 
-   //printf("GET TARGETS for program: %s [count: %d]\n", prog, 
eina_list_count(epr->targets));
EINA_LIST_FOREACH(epr->targets, l, t)
  {
-if (epr->action == EDJE_ACTION_TYPE_STATE_SET)
+switch (epr->action)
   {
- /* the target is a part */
- Edje_Real_Part *p = NULL;
+   /*action types, that does not support targets*/
+   case EDJE_ACTION_TYPE_SCRIPT:
+   case EDJE_ACTION_TYPE_SOUND_SAMPLE:
+   case EDJE_ACTION_TYPE_SOUND_TONE:
+   case EDJE_ACTION_TYPE_VIBRATION_SAMPLE:
+   case EDJE_ACTION_TYPE_PARAM_COPY:
+   case EDJE_ACTION_TYPE_PARAM_SET:
+#ifdef HAVE_EPHYSICS
+   case EDJE_ACTION_TYPE_PHYSICS_IMPULSE:
+   case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE:
+   case EDJE_ACTION_TYPE_PHYSICS_FORCE:
+   case EDJE_ACTION_TYPE_PHYSICS_TORQUE:
+   case EDJE_ACTION_TYPE_PHYSICS_VEL_SET:
+   case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET:
+#endif
+   break;
 
- p = ed->table_parts[t->id % ed->table_parts_size];
- if (p && p->part && p->part->name)
-   targets = eina_list_append(targets,
-  eina_stringshare_add(p->part->name));
-  }
-else if (epr->action == EDJE_ACTION_TYPE_ACTION_STOP)
-  {
- /* the target is a program */
- Edje_Program *p;
+   /* the target is a program */
+   case EDJE_ACTION_TYPE_ACTION_STOP:
+ {
+   Edje_Program *p = NULL;
+
+   p = ed->collection->patterns.table_programs[t->id % 
ed->collection->patterns.table_programs_size];
+   if (p && p->name)
+ targets = eina_list_append(targets,
+eina_stringshare_add(p->name));
+ }
+   break;
 
- p = ed->collection->patterns.table_programs[t->id % 
ed->collection->patterns.table_programs_size];
- if (p && p->name)
-   targets = eina_list_append(targets,
-  eina_stringshare_add(p->name));
+   /* the target is a part */
+   case EDJE_ACTION_TYPE_SIGNAL_EMIT:
+   case EDJE_ACTION_TYPE_STATE_SET:
+   case EDJE_ACTION_TYPE_DRAG_VAL_SET:
+   case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
+   case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
+   case EDJE_ACTION_TYPE_FOCUS_SET:
+   case EDJE_ACTION_TYPE_FOCUS_OBJECT:
+#ifdef HAVE_EPHYSICS
+   case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR:
+   case EDJE_ACTION_TYPE_PHYSICS_STOP:
+   case EDJE_ACTION_TYPE_PHYSICS_ROT_SET:
+#endif
+ {
+Edje_Real_Part *p = NULL;
+p = ed->table_parts[t->id % ed->table_parts_size];
+if (p && p->part && p->part->name)
+  targets = eina_list_append(targets,
+ 
eina_stringshare_add(p->part->name));
+ }
+   break;
   }
  }
return targets;

-- 




[EGIT] [tools/enventor] master 01/01: Undo/redo: correct work with unicode symbols.

2016-04-06 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=aa8dc3a8dd7059eaaeddd495392a8e35f4d3f220

commit aa8dc3a8dd7059eaaeddd495392a8e35f4d3f220
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Apr 6 15:05:21 2016 +0900

Undo/redo: correct work with unicode symbols.

@fix T3420
---
 src/lib/redoundo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c
index a8061ee..30f49ca 100644
--- a/src/lib/redoundo.c
+++ b/src/lib/redoundo.c
@@ -148,7 +148,7 @@ entry_changed_user_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
 if (info->change.insert.plain_length == 0) goto nochange;
 diff->text = eina_stringshare_add(info->change.insert.content);
 char *utf8 = evas_textblock_text_markup_to_utf8(NULL, diff->text);
-diff->length = strlen(utf8);
+diff->length = info->change.insert.plain_length;
 diff->cursor_pos = info->change.insert.pos;
 diff->action = EINA_TRUE;
 free(utf8);

-- 




[EGIT] [tools/enventor] master 01/01: Redoundo: enable smart analyze for a pushed region text.

2016-04-04 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=6ab19b2b8734875817d92f216242d28d1d4efabf

commit 6ab19b2b8734875817d92f216242d28d1d4efabf
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Apr 4 18:01:37 2016 +0900

Redoundo: enable smart analyze for a pushed region text.

Manage text blocks, that used for autocomplete feature.
This  commit make possible to undo or redo whole block of text
including user input. For example: user types "col"
and choose "collections" from ctxpopup. In normal mode
of  undoredo module in case of undo action will be left
"col"  text. In smart mode whole block "collections" will be deleted.
---
 src/lib/redoundo.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c
index c8c144e..a8061ee 100644
--- a/src/lib/redoundo.c
+++ b/src/lib/redoundo.c
@@ -62,9 +62,9 @@ smart_analyser(redoundo_data *rd, diff_data *diff)
 rd->smart.timer = NULL;
  }
 
-   if ((!diff) || (diff->length > 1)) return diff;
+   if (!diff) return diff;
 
-   if (edit_auto_indent_get(rd->edit_data))
+   if (diff->length == 1 && edit_auto_indent_get(rd->edit_data))
  {
if (strstr(diff->text, "")) diff->relative = EINA_TRUE;
  else diff->relative = EINA_FALSE;
@@ -374,6 +374,9 @@ redoundo_text_push(redoundo_data *rd, const char *text, int 
pos, int length,
diff->action = insert;
diff->relative = EINA_FALSE;
 
+   diff = smart_analyser(rd, diff);
+   rd->smart.continues_input = EINA_FALSE;
+
untracked_diff_free(rd);
rd->queue = eina_list_append(rd->queue, diff);
rd->last_diff = diff;

-- 




[EGIT] [tools/enventor] master 01/01: Redoundo: enhance smart functions.

2016-04-04 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=5c95fa6e175d51d2cdbd29d6a8031d034fe914b8

commit 5c95fa6e175d51d2cdbd29d6a8031d034fe914b8
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Apr 4 16:38:32 2016 +0900

Redoundo: enhance smart functions.

Add support autointendation in smart redoundo.
Undo/redo adding or deleting line  will done in one action.
---
 src/lib/redoundo.c | 20 
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c
index 2dee312..c8c144e 100644
--- a/src/lib/redoundo.c
+++ b/src/lib/redoundo.c
@@ -62,21 +62,17 @@ smart_analyser(redoundo_data *rd, diff_data *diff)
 rd->smart.timer = NULL;
  }
 
-   if ((!diff) || (diff->length > 1) || (!rd->last_diff)) return diff;
-
-   /*  Autoindent. Here need  edit_data pointer,
-   *  for check status of autoindent feature.
-   *
-   *  if (edit_auto_indent_get(edit_obj_get))
-   *   {
-   * if (strstr(diff->text, "")) diff->relative = EINA_TRUE;
-   *   else diff->relative = EINA_FALSE;
-   *}
-   */
+   if ((!diff) || (diff->length > 1)) return diff;
+
+   if (edit_auto_indent_get(rd->edit_data))
+ {
+   if (strstr(diff->text, "")) diff->relative = EINA_TRUE;
+ else diff->relative = EINA_FALSE;
+ }
 
// Analyse speed of text input and words separates
if ((rd->smart.continues_input) && (!diff->relative) &&
-   (isalpha(diff->text[0])) && (isalpha(rd->last_diff->text[0])))
+   (isalpha(diff->text[0])) && (rd->last_diff && 
(isalpha(rd->last_diff->text[0]
  {
 diff_data *tmp = diff;
 const char *text;

-- 




[EGIT] [website/www-content] master 01/01: Wiki page about-eflete changed with summary [] by Mykyta Biliavskyi

2016-03-28 Thread Mykyta Biliavskyi
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=7359331396bf65312b71a69897d661289379c1c8

commit 7359331396bf65312b71a69897d661289379c1c8
Author: Mykyta Biliavskyi <belyavski...@gmail.com>
Date:   Mon Mar 28 19:42:08 2016 -0700

Wiki page about-eflete changed with summary [] by Mykyta Biliavskyi
---
 pages/about-eflete.txt | 51 +-
 1 file changed, 26 insertions(+), 25 deletions(-)

diff --git a/pages/about-eflete.txt b/pages/about-eflete.txt
index 0e2d91b..ffa3fef 100644
--- a/pages/about-eflete.txt
+++ b/pages/about-eflete.txt
@@ -6,14 +6,14 @@
 {{ :icon-eflete.png?nolink|}}
 
 {{:eflete-main.png?&200 |}}
-== What is Eflete? ==
+=== What is Eflete? ===
 
 Efl Edje Theme Editor is a rich graphical tool, that provide UI for edc markup.
 It is aimed to simplify creation and editing widgets styles. No one, for sure, 
want to learn EDC syntax. Eflete was
 designed with mind, that target users are not just programmers but also 
designers. Besides styles Eflete is also able
 to create and edit custom layouts. This is useful feature for developers which 
creates applications layouts.
 
-== Eflete projects ==
+=== Eflete projects ===
 {{:eflete-projects.png?&200 |}}
 There are a lot of already existed projects, which are use edc collections for 
theming or layouting. Or binaries, that
 compiled by edje_cc tool. For both cases Eflete has import wizards to help in 
converting existing files into projects,
@@ -23,23 +23,23 @@ required by Elementary library. User is free to modify 
those styles.
 It is possible to open existing project by File Selection tool. List of 
recently opened projects provides fast one-
 mouse-click selection interface.
 
-NOTE: Eflete creates a specific file for each opened edj or edc-file. More 
precisely - for new project or imported file
+Eflete creates a specific file for each opened edj or edc-file. More 
precisely - for new project or imported file
 Eflete creates a folder with project name, than copy imported file and create 
specific file. This file has a .pro
-extension and Eflete used it for manipulations.
-
+extension and Eflete used it for manipulations.
 
 Editor operates with binary edj files, but for developers, source code is the 
must have thing. Of course Eflete support
 exporting of the currently editing project into the *.edc files. Also it can 
be standalone group inside project. The
-export features could be found in main menu by path: File > Export as edc > 
Group (or Project). It is also
+export features could be found in main menu by path: File -> Export as edc -> 
Group (or Project). It is also
 possible to export resources, that is used inside project (or group). There is 
a shell script can be found inside
 folder, where data was exported to. It builds edc source code back to the 
binary file.
 
-== Resource management ==
+=== Resource management ===
+{{ :eflete-images.png?&200|}}
 Usually themes and layouts use a lot of images. Sometimes sounds, tones, fonts 
and other resources. Theme Editor include
 few manage tools, that provide natural way to add, delete or edit existed 
resources. It is also gives fast access to
 resource preview with additional info. Images, sounds, colorclasses and 
textblock style manager tools are represented as
 a pinned tabs.
-{{ :eflete-images.png?&200|}}
+
 Images and sounds could be added into project by using file selection dialog 
(it is possible to add a few files at the
 same time by holding Shift button and selecting necessary files in a dialog).  
Images preview and info block (file
 name, format, resolution, etc.) will be displayed on selection. Also list of 
styles which are used in selected images
@@ -53,14 +53,15 @@ handle manually. Another useful feature - changeable color 
of background preview
 colors preview at the bottom of manager view. Second text resource manager 
responsible for manipulation with
 colorclasses values. It has mostly the same controls as in TextblockStyle 
manager.
 
-== Navigations ==
+=== Navigations ===
 {{:eflete-groups.png?&200 |}}
+{{ :eflete-parts.png?&200|}}
 All navigation controls are represented by a tree-view lists. There are two 
main areas: groups and parts/programs lists.
 The list of groups are placed on the left side of Eflete and holds all groups 
from loaded project. Items sorted
 alphabetically. On the top of navigation bar placed two icons, that provides 
ability to add new group into project or
 delete currently existing. In case of adding new group, simple dialog wizard 
will be shown. It will set name for  new
 group and chose source group if it is required to create copy or alias.
-{{ :eflete-parts.png?&200|}}
+
 Groups list structure is based on splitting group name by tokens, that 
separated one from another by '\' character. What
 kind of benefit from this way?  For example take the default Element

[EGIT] [website/www-content] master 01/01: Add about page for Eflete project.

2016-03-28 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=fe1e6db143253bf7eae098d3e6d10e8bcebfc037

commit fe1e6db143253bf7eae098d3e6d10e8bcebfc037
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Mar 29 09:49:24 2016 +0900

Add about page for Eflete project.
---
 media/eflete-code-mode.png   | Bin 0 -> 162957 bytes
 media/eflete-demo-mode.png   | Bin 0 -> 135099 bytes
 media/eflete-groups.png  | Bin 0 -> 10238 bytes
 media/eflete-history.png | Bin 0 -> 108474 bytes
 media/eflete-images.png  | Bin 0 -> 210009 bytes
 media/eflete-main.png| Bin 0 -> 344264 bytes
 media/eflete-navigation.png  | Bin 0 -> 126453 bytes
 media/eflete-normal-mode.png | Bin 0 -> 143053 bytes
 media/eflete-parts.png   | Bin 0 -> 16618 bytes
 media/eflete-projects.png| Bin 0 -> 44973 bytes
 media/eflete-texts.png   | Bin 0 -> 347389 bytes
 media/icon-eflete.png| Bin 0 -> 24713 bytes
 pages/about-eflete.txt   | 142 +++
 pages/about.txt  |   1 +
 14 files changed, 143 insertions(+)

diff --git a/media/eflete-code-mode.png b/media/eflete-code-mode.png
new file mode 100644
index 000..69af9ed
Binary files /dev/null and b/media/eflete-code-mode.png differ
diff --git a/media/eflete-demo-mode.png b/media/eflete-demo-mode.png
new file mode 100644
index 000..e1deac9
Binary files /dev/null and b/media/eflete-demo-mode.png differ
diff --git a/media/eflete-groups.png b/media/eflete-groups.png
new file mode 100644
index 000..229dc41
Binary files /dev/null and b/media/eflete-groups.png differ
diff --git a/media/eflete-history.png b/media/eflete-history.png
new file mode 100644
index 000..ade57f3
Binary files /dev/null and b/media/eflete-history.png differ
diff --git a/media/eflete-images.png b/media/eflete-images.png
new file mode 100644
index 000..6e7a6ef
Binary files /dev/null and b/media/eflete-images.png differ
diff --git a/media/eflete-main.png b/media/eflete-main.png
new file mode 100644
index 000..4857a19
Binary files /dev/null and b/media/eflete-main.png differ
diff --git a/media/eflete-navigation.png b/media/eflete-navigation.png
new file mode 100644
index 000..d3c8d3f
Binary files /dev/null and b/media/eflete-navigation.png differ
diff --git a/media/eflete-normal-mode.png b/media/eflete-normal-mode.png
new file mode 100644
index 000..13f98fc
Binary files /dev/null and b/media/eflete-normal-mode.png differ
diff --git a/media/eflete-parts.png b/media/eflete-parts.png
new file mode 100644
index 000..3db43f1
Binary files /dev/null and b/media/eflete-parts.png differ
diff --git a/media/eflete-projects.png b/media/eflete-projects.png
new file mode 100644
index 000..f4e96e5
Binary files /dev/null and b/media/eflete-projects.png differ
diff --git a/media/eflete-texts.png b/media/eflete-texts.png
new file mode 100644
index 000..a6b26d2
Binary files /dev/null and b/media/eflete-texts.png differ
diff --git a/media/icon-eflete.png b/media/icon-eflete.png
new file mode 100644
index 000..5c0e6a5
Binary files /dev/null and b/media/icon-eflete.png differ
diff --git a/pages/about-eflete.txt b/pages/about-eflete.txt
new file mode 100644
index 000..0e2d91b
--- /dev/null
+++ b/pages/about-eflete.txt
@@ -0,0 +1,142 @@
+~~Title: About Eflete~~
+ Eflete 
+
+[[download|Download Eflete Here]]
+
+{{ :icon-eflete.png?nolink|}}
+
+{{:eflete-main.png?&200 |}}
+== What is Eflete? ==
+
+Efl Edje Theme Editor is a rich graphical tool, that provide UI for edc markup.
+It is aimed to simplify creation and editing widgets styles. No one, for sure, 
want to learn EDC syntax. Eflete was
+designed with mind, that target users are not just programmers but also 
designers. Besides styles Eflete is also able
+to create and edit custom layouts. This is useful feature for developers which 
creates applications layouts.
+
+== Eflete projects ==
+{{:eflete-projects.png?&200 |}}
+There are a lot of already existed projects, which are use edc collections for 
theming or layouting. Or binaries, that
+compiled by edje_cc tool. For both cases Eflete has import wizards to help in 
converting existing files into projects,
+that supported by theme editor.
+For new projects it is possible to select predefined widget styles. All 
widgets in list contains a sets of groups, that
+required by Elementary library. User is free to modify those styles.
+It is possible to open existing project by File Selection tool. List of 
recently opened projects provides fast one-
+mouse-click selection interface.
+
+NOTE: Eflete creates a specific file for each opened edj or edc-file. More 
precisely - for new project or imported file
+Eflete creates a folder with project name, than copy imported file and create 
specific file. This file has a .pro
+extension and Eflete used it for manipulations.
+
+
+Editor operates with binary edj f

[EGIT] [tools/enventor] master 01/01: Enventor smart: create new empty file in file_set.

2016-03-25 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=7a3aff94c338361f62b59122fe9ada1a5d7a7661

commit 7a3aff94c338361f62b59122fe9ada1a5d7a7661
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Mar 25 17:22:06 2016 +0900

Enventor smart: create new empty file in file_set.

Fix T3275
---
 src/lib/enventor_smart.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 4138de6..e22f4f2 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -304,7 +304,16 @@ _enventor_object_efl_file_file_set(Eo *obj EINA_UNUSED,
 {
build_edc_path_set(file);
autocomp_target_set(pd->ed);
-   if (!edit_load(pd->ed, file)) goto err;
+   if (!file) goto err;
+
+   /* Create empty file*/
+   if (!ecore_file_exists(file))
+ {
+ FILE *fp = fopen(file, "w");
+ fclose(fp);
+ }
+
+   edit_load(pd->ed, file);
build_edc();
edit_changed_set(pd->ed, EINA_FALSE);
 

-- 




[EGIT] [tools/enventor] master 01/01: Layout: change behaviuor for hide edc_navigator swallow object.

2016-03-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=397821a3a4dbbd067ed600be9557314d65a502fc

commit 397821a3a4dbbd067ed600be9557314d65a502fc
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Mar 16 14:50:14 2016 +0900

Layout: change behaviuor for hide edc_navigator swallow object.

When edc.navigator swallow is hidden it placed outside main markup.
---
 data/themes/default/layout_common.edc | 41 +++
 1 file changed, 37 insertions(+), 4 deletions(-)

diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index 5c8712e..d47cb4f 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -2583,11 +2583,21 @@ group { name: "main_layout";
  scale: 1;
  desc { "default";
 rel1.relative: 0 1;
-rel2.relative: 0 0;
-rel2.to: "elm.swallow.edc_navigator";
+rel2.relative: 1 0;
 rel1.to_y: "elm.swallow.tools";
 rel2.to_y: "elm.swallow.statusbar";
  }
+ desc { "visible";
+rel1 {
+   relative: 0.0 1.0;
+   to_y: "elm.swallow.tools";
+}
+rel2 {
+   relative: 0.0 0.0;
+   to_x: "elm.swallow.edc_navigator";
+   to_y: "elm.swallow.statusbar";
+}
+ }
   }
   part { name: "error_alert";
  type: RECT;
@@ -2621,16 +2631,25 @@ group { name: "main_layout";
  scale: 1;
  desc { "default";
 rel1.relative: 1 1;
-rel2.relative: 1 0;
+rel2.relative: 1.5 0;
 rel1.to_y: "elm.swallow.tools";
 rel2.to_y: "elm.swallow.statusbar";
 align: 1 0;
 min: 0 0;
+max: 0 -1;
 fixed: 1 0;
  }
  desc { "visible";
 inherit: "default";
 min: 200 0;
+rel1 {
+   relative: 1.0 1.0;
+   to_y: "elm.swallow.tools";
+}
+rel2 {
+   relative: 1.0 0.0;
+   to_y: "elm.swallow.statusbar";
+}
  }
   }
}
@@ -2644,9 +2663,23 @@ group { name: "main_layout";
   program { "edc_navigator_hide";
  signal: "elm,state,edc_navigator,hide";
  action: STATE_SET "default" 0.0;
- target: "elm.swallow.edc_navigator";
+ target: "elm.swallow.panes";
  transition: DECELERATE 0.25;
   }
+  program { name: "navigator_hide";
+ signal: "elm,state,edc_navigator,hide";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.25;
+ in: 0.05 0.0;
+ target: "elm.swallow.edc_navigator";
+  }
+  program { name: "navigator_show";
+ signal: "elm,state,edc_navigator,show";
+ action: STATE_SET "visible" 0.0;
+ transition: LINEAR 0.25;
+ in: 0.05 0.0;
+ target: "elm.swallow.panes";
+  }
   program { name: "statusbar_show";
  signal: "elm,state,statusbar,show";
  action: STATE_SET "visible" 0.0;

-- 




[EGIT] [website/www-content] master 01/01: Add Eflete link.

2016-03-09 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=9355dd9b78306e5827207356eaf1d15a23ff8519

commit 9355dd9b78306e5827207356eaf1d15a23ff8519
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Mar 10 14:04:27 2016 +0900

Add Eflete link.
---
 pages/download-latest.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pages/download-latest.txt b/pages/download-latest.txt
index 1195e2c..4bce29e 100644
--- a/pages/download-latest.txt
+++ b/pages/download-latest.txt
@@ -12,7 +12,7 @@ econnman_v= 1.1
 epour_v   = 0.6.0
 
 enventor_v= 0.8.1
-eflete_v  = 0.5.0
+eflete_v  = 0.6.0
 
 extn  = .tar.gz
 dlbase= http://download.enlightenment.org/rel/
@@ -34,5 +34,6 @@ dlbase= 
http://download.enlightenment.org/rel/
 
 ^Development Tool^Version^
 
|[[%%dlbase%%apps/enventor/enventor-%%enventor_vextn%%|Enventor]]|%%enventor_v%%|
+|[[%%dlbase%%apps/eflete/eflete-%%eflete_vextn%%|EFL Edje Theme 
Editor]]|%%eflete_v%%|
 
 Go to the [[https://phab.enlightenment.org/w/packaging_status/|package status 
of distributions]] for information on what distributions have packages and how 
up to date they are.

-- 




[EGIT] [tools/enventor] master 01/01: Indent: check last '\n' in file before convert edc source to the markup text.

2016-03-02 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=fb59a491bad2a078b4faa15a84abe2e5ccd8e601

commit fb59a491bad2a078b4faa15a84abe2e5ccd8e601
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Mar 3 13:33:12 2016 +0900

Indent: check last '\n' in file before convert edc source to the markup 
text.

This solve issue when the additional empty line was added
to the bottom of formatted text.

@fix T3128
---
 src/lib/indent.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/indent.c b/src/lib/indent.c
index 6901257..5622ed9 100644
--- a/src/lib/indent.c
+++ b/src/lib/indent.c
@@ -666,6 +666,8 @@ indent_text_check(indent_data *id EINA_UNUSED, const char 
*utf8)
macro_found = EINA_FALSE;
 }
}
+ if (utf8_ptr >= utf8_end - 1)
+   return EINA_FALSE;
  space = 0;
  nonspace_found = EINA_FALSE;
   }

-- 




[EGIT] [tools/enventor] master 01/01: Parser: recognize keyword with context.

2016-02-29 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=01431db641179b9dbc2954ae5f8d379b45b45bed

commit 01431db641179b9dbc2954ae5f8d379b45b45bed
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Feb 29 18:03:32 2016 +0900

Parser: recognize keyword with context.

Uses the autocomplete context parser for recognizing keywords
with the same names in different contexts. For example:
the attributes "min" and "max" for a description context
should be integer values in range from 0 to 1000; but for a
"text" context those attributes should be boolean.

Curently add recognition for a "min" and "max" attributes in the "text" 
content.

@fix T2712
---
 src/lib/auto_comp.c| 11 +
 src/lib/edc_parser.c   | 61 --
 src/lib/enventor_private.h |  1 +
 3 files changed, 71 insertions(+), 2 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 12d0654..664db9e 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -922,3 +922,14 @@ autocomp_enabled_get(void)
autocomp_data *ad = g_ad;
return ad->enabled;
 }
+
+const char **
+autocomp_current_context_get(void)
+{
+   autocomp_data *ad = g_ad;
+
+   if (!ad->lexem_ptr || !ad->lexem_ptr->name)
+ return NULL;
+
+   return (const char **)ad->lexem_ptr->name;
+}
diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index a38998e..868ccb3 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -27,6 +27,7 @@ typedef struct defined_macro_s
 typedef struct parser_attr_s
 {
Eina_Stringshare *keyword;
+   const char *context;
attr_value value;
 } parser_attr;
 
@@ -633,6 +634,49 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 
//FIXME: construct from the configuration file.
 
+
+   //Context depended attributes
+   Eina_Array *wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
+   memset(, 0x00, sizeof(parser_attr));
+   attr.keyword = eina_stringshare_add("min");
+   attr.value.strs = wh;
+   attr.value.cnt = 2;
+   attr.value.min = 0;
+   attr.value.max = 1;
+   attr.value.type = ATTR_VALUE_BOOLEAN;
+   attr.value.prepend_str = ATTR_PREPEND_COLON;
+   attr.value.append_str = ATTR_APPEND_SEMICOLON;
+   attr.context = eina_stringshare_add("text");
+   eina_inarray_push(td->attrs, );
+
+   wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
+   wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
+   memset(, 0x00, sizeof(parser_attr));
+   attr.keyword = eina_stringshare_add("max");
+   attr.value.strs = wh;
+   attr.value.cnt = 2;
+   attr.value.min = 0;
+   attr.value.max = 1;
+   attr.value.type = ATTR_VALUE_BOOLEAN;
+   attr.value.prepend_str = ATTR_PREPEND_COLON;
+   attr.value.append_str = ATTR_APPEND_SEMICOLON;
+   attr.context = eina_stringshare_add("text");
+   eina_inarray_push(td->attrs, );
+
+   wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
+   // Context independed attributes
Eina_Array *trans = eina_array_new(11);
eina_array_push(trans, eina_stringshare_add("LINEAR"));
eina_array_push(trans, eina_stringshare_add("ACCELERATE"));
@@ -899,7 +943,7 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
attr.value.append_str = ATTR_APPEND_SEMICOLON;
eina_inarray_push(td->attrs, );
 
-   Eina_Array *wh = eina_array_new(2);
+   wh = eina_array_new(2);
eina_array_push(wh, eina_stringshare_add("W:"));
eina_array_push(wh, eina_stringshare_add("H:"));
 
@@ -1510,10 +1554,23 @@ parser_attribute_get(parser_data *pd, const char *text, 
const char *cur,
  }
if (instring) return NULL;
 
+   const char **cur_context = autocomp_current_context_get();
+   int i = 0;
+
EINA_INARRAY_FOREACH(pd->attrs, attr)
  {
 if (!strcmp(selected, attr->keyword))
- return >value;
+  {
+ if (!attr->context)
+   return >value;
+
+ while (cur_context && (cur_context[i] != NULL))
+   {
+  if (!strcmp(cur_context[i], attr->context))
+return >value;
+  i++;
+   }
+  }
  }
 
return NULL;
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index a4898ca..c16e5e9 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -109,6 +109,7 @@ Eina_Bool autocomp_enabled_get(void);
 Eina_Bool autocomp_event_dispatch(const char *key);
 void autocomp_list_show(void);
 void autocomp_reset(void);
+const char **autocomp_current_context_get(void);
 
 
 /* syntax color */

-- 




[EGIT] [tools/enventor] master 01/01: Indent: clean code. Delete unused variables.

2016-02-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=2005ee095c10d5fd7f6c2b7224ca9254e12f1613

commit 2005ee095c10d5fd7f6c2b7224ca9254e12f1613
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Feb 23 14:30:05 2016 +0900

Indent: clean code. Delete unused variables.
---
 src/lib/indent.c | 11 +--
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/lib/indent.c b/src/lib/indent.c
index c71db27..6901257 100644
--- a/src/lib/indent.c
+++ b/src/lib/indent.c
@@ -237,7 +237,7 @@ indent_delete_apply(indent_data *id EINA_UNUSED, 
Evas_Object *entry,
 }
 
 static Eina_List *
-indent_code_lines_create(indent_data *id, const char *utf8)
+indent_code_lines_create(indent_data *id EINA_UNUSED, const char *utf8)
 {
Eina_List *code_lines = NULL;
 
@@ -417,9 +417,6 @@ indent_text_auto_format(indent_data *id,
redoundo_data *rd = evas_object_data_get(entry, "redoundo");
 
char *utf8_ptr = utf8;
-   char *utf8_end = utf8 + utf8_size;
-   char *utf8_lexem = NULL;
-   char *utf8_append_ptr = NULL;
 
Eina_List *code_lines = indent_code_lines_create(id, utf8);
free(utf8);
@@ -787,12 +784,6 @@ indent_text_create(indent_data *id,
 return NULL;
  }
 
-   int utf8_size = strlen(utf8);
-   char *utf8_ptr = (char *)utf8;
-   char *utf8_end = (char *)utf8 + utf8_size;
-   char *utf8_lexem = NULL;
-   char *utf8_append_ptr = NULL;
-
Eina_List *code_lines = indent_code_lines_create(id, utf8);
if (!code_lines)
  {

-- 




[EGIT] [tools/enventor] master 01/01: Indent: add logic to paste formatted text above or below current line.

2016-02-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=843f6cc1950b2cceec4641cc5b5adea784b288e1

commit 843f6cc1950b2cceec4641cc5b5adea784b288e1
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Feb 23 14:05:33 2016 +0900

Indent: add logic to paste formatted text above or below current line.

Checking the string from start till cursor position is empty.
And in case if this range is empty - formatted text will be
inserted above the current line.
---
 src/lib/indent.c | 26 --
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/lib/indent.c b/src/lib/indent.c
index 54b89c7..c71db27 100644
--- a/src/lib/indent.c
+++ b/src/lib/indent.c
@@ -432,7 +432,29 @@ indent_text_auto_format(indent_data *id,
Eina_List *l = NULL;
Eina_Stringshare *line;
evas_textblock_cursor_line_char_first(cur_start);
-   evas_textblock_cursor_line_char_last(cur_end);
+
+   /* Checking the string from start till cursor position is empty.
+* And in case if this range is empty - formatted text will be
+* inserted above the current line */
+   char *check_range = evas_textblock_cursor_range_text_get(cur_start,
+   cur_end, EVAS_TEXTBLOCK_TEXT_PLAIN);
+   Eina_Bool above = EINA_TRUE;
+   if (check_range)
+ {
+int check_len = strlen(check_range);
+int space_cnt = 0;
+for (; space_cnt < check_len; space_cnt++)
+  {
+ if (check_range[space_cnt] != ' ')
+   {
+  above = EINA_FALSE;
+  break;
+   }
+  }
+ }
+
+   if (!above)
+ evas_textblock_cursor_line_char_last(cur_end);
int space = indent_space_get(id, entry);
 
utf8 = evas_textblock_cursor_range_text_get(cur_start, cur_end,
@@ -444,7 +466,7 @@ indent_text_auto_format(indent_data *id,
   {
  if ((utf8_ptr[0] == '}') && (space > 0))
space -= TAB_SPACE;
- if (!evas_textblock_cursor_paragraph_next(cur_start))
+ if (!above && !evas_textblock_cursor_paragraph_next(cur_start))
{
   code_lines = eina_list_prepend(code_lines,
  eina_stringshare_add("\n"));

-- 




[EGIT] [tools/enventor] master 01/01: Redoundo: Support the real-time preview when we undo/redo the code.

2016-02-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=02b45c0719b81518ec2c92d95958464fe023f1c3

commit 02b45c0719b81518ec2c92d95958464fe023f1c3
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Feb 22 18:41:22 2016 +0900

Redoundo: Support the real-time preview when we undo/redo the code.

When user undo or redo change, the edc file will be recompiled and the
live view will be updated. There are two flow: in case if the change is 
buildable
(i.e. the edc file was builded sucessfuly, when this change happened)
edc file will be recompiled. In case when change marked as unbilduable -
nothing will happen.

@T3051
---
 src/lib/edc_editor.c   |  2 +-
 src/lib/enventor_private.h |  3 ++-
 src/lib/enventor_smart.c   | 14 ++
 src/lib/redoundo.c | 34 --
 4 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 3b04717..fece9e5 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -1491,7 +1491,7 @@ edit_init(Evas_Object *enventor)
ed->select_pos = -1;
ed->font_scale = 1;
 
-   ed->rd = redoundo_init(en_edit);
+   ed->rd = redoundo_init(en_edit, ed);
evas_object_data_set(ed->en_edit, "redoundo", ed->rd);
 
return ed;
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 8febd4f..41c8acc 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -198,7 +198,7 @@ void edj_mgr_all_views_reload(void);
 
 
 /* redoundo */
-redoundo_data *redoundo_init(Evas_Object *entry);
+redoundo_data *redoundo_init(Evas_Object *entry, edit_data *ed);
 void redoundo_term(redoundo_data *rd);
 void redoundo_clear(redoundo_data *rd);
 void redoundo_text_push(redoundo_data *rd, const char *text, int pos, int 
length, Eina_Bool insert);
@@ -208,6 +208,7 @@ int redoundo_undo(redoundo_data *rd, Eina_Bool *changed);
 int redoundo_redo(redoundo_data *rd, Eina_Bool *changed);
 void redoundo_n_diff_cancel(redoundo_data *rd, unsigned int n);
 void redoundo_smart_set(redoundo_data *rd, Eina_Bool status);
+void redoundo_diff_buildable(redoundo_data *rd, Eina_Bool buildable);
 
 
 /* edj_viewer */
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index b580482..eb195e1 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -154,14 +154,20 @@ call_error:
if (line_num || target)
  edit_syntax_color_full_apply(pd->ed, EINA_TRUE);
 
+   redoundo_data *rd = evas_object_data_get(edit_entry_get(pd->ed), 
"redoundo");
+
// When msg == NULL it mean, that needed to reset error state
if (msg)
  {
-   // Ctxpopup should be dismissed only in cases when error happens
-   edit_ctxpopup_dismiss(pd->ed);
-   evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char 
*)msg);
+// Ctxpopup should be dismissed only in cases when error happens
+edit_ctxpopup_dismiss(pd->ed);
+evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char 
*)msg);
+redoundo_diff_buildable(rd, EINA_FALSE);
+ }
+   else
+ {
+redoundo_diff_buildable(rd, EINA_TRUE);
  }
-
 }
 
 static void
diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c
index 01d7106..2dee312 100644
--- a/src/lib/redoundo.c
+++ b/src/lib/redoundo.c
@@ -15,6 +15,7 @@ typedef struct diff_s
unsigned int cursor_pos;
Eina_Bool action : 1;   //EINA_TRUE: insert, EINA_FALSE, delete
Eina_Bool relative : 1; //If this change relative to prevision or next step
+   Eina_Bool buildable : 1;   //Is this change buildable?
 } diff_data;
 
 struct redoundo_s
@@ -27,6 +28,7 @@ struct redoundo_s
diff_data *last_diff;
unsigned int queue_max;//Maximum queuing data count 0: unlimited
Eina_Bool internal_change : 1; //Entry change by redoundo
+   edit_data *edit_data;
struct {
   Eina_Bool enable;
   Ecore_Timer *timer;
@@ -188,7 +190,12 @@ redoundo_undo(redoundo_data *rd, Eina_Bool *changed)
 {
if (changed) *changed = EINA_FALSE;
 
-   if (!rd->last_diff) return 0;
+   if (!rd->last_diff)
+ {
+edit_save(rd->edit_data, build_edc_path_get());
+build_edc();
+return 0;
+ }
 
rd->internal_change = EINA_TRUE;
 
@@ -246,6 +253,12 @@ redoundo_undo(redoundo_data *rd, Eina_Bool *changed)
 elm_entry_select_none(rd->entry);
  }
 
+   if (rd->last_diff && rd->last_diff->buildable)
+ {
+edit_save(rd->edit_data, build_edc_path_get());
+build_edc();
+ }
+
return lines;
 }
 
@@ -325,6 +338,12 @@ redoundo_redo(redoundo_data *rd, Eina_Bool *changed)
 elm_entry_select_none(rd->entry);
  }
 
+   if (rd->last_diff && rd->last_diff->buildable)
+ {
+edit_save(rd->edit_data, build_edc_path_get());
+  

[EGIT] [tools/enventor] master 01/01: Edj viewer: clean the list of the part names when module terminate.

2016-02-19 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=57c78d0993638b4e377324a90555b98296869465

commit 57c78d0993638b4e377324a90555b98296869465
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Feb 19 11:11:38 2016 +0900

Edj viewer: clean the list of the part names when module terminate.
---
 src/lib/edj_viewer.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index 1222f27..c12c002 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -546,6 +546,7 @@ view_term(view_data *vd)
eina_stringshare_del(vd->part_name);
eina_stringshare_del(vd->changed_part.part);
eina_stringshare_del(vd->changed_part.desc);
+   view_obj_parts_names_free(vd);
 
if (vd->part_obj)
  evas_object_event_callback_del(vd->part_obj, EVAS_CALLBACK_DEL,

-- 




[EGIT] [tools/enventor] master 01/01: Edc parser: fix memory leak.

2016-02-18 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=726cd500a6ad2d00ead3509cc7499864009af721

commit 726cd500a6ad2d00ead3509cc7499864009af721
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Feb 19 10:00:21 2016 +0900

Edc parser: fix memory leak.

Function elm_entry_markup_to_utf8 returned malloc'ed buffer and
it should be freed.
---
 src/lib/edc_parser.c | 25 +
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 472fa68..a38998e 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -55,7 +55,7 @@ typedef struct type_init_thread_data_s
 typedef struct bracket_thread_data_s
 {
int pos;
-   const char *text;
+   char *text;
Bracket_Update_Cb update_cb;
void *data;
Ecore_Thread *thread;
@@ -1446,6 +1446,7 @@ bracket_thread_end(void *data, Ecore_Thread *thread 
EINA_UNUSED)
bracket_td *btd = data;
btd->update_cb(btd->data, btd->left, btd->right);
if (btd->pd->btd == btd) btd->pd->btd = NULL;
+   free(btd->text);
free(btd);
 }
 
@@ -1454,6 +1455,7 @@ bracket_thread_cancel(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 {
bracket_td *btd = data;
if (btd->pd->btd == btd) btd->pd->btd = NULL;
+   free(btd->text);
free(btd);
 }
 
@@ -1918,7 +1920,11 @@ parser_first_group_name_get(parser_data *pd, Evas_Object 
*entry)
   {
  p += quot_len;
  p = strstr(p, quot);
- if (!p) return NULL;
+ if (!p)
+   {
+  group_name = NULL;
+  goto end;;
+   }
  p += quot_len;
  continue;
   }
@@ -1928,7 +1934,11 @@ parser_first_group_name_get(parser_data *pd, Evas_Object 
*entry)
  p += group_len;
 
  char *name_end = strstr(p, semicol);
- if (!name_end) return NULL;
+ if (!name_end)
+   {
+  group_name = NULL;
+  goto end;;
+   }
 
  char *space_pos = NULL;
  char *temp_pos = strchr(p, ' ');
@@ -1949,7 +1959,11 @@ parser_first_group_name_get(parser_data *pd, Evas_Object 
*entry)
}
 
  char *name_begin = space_pos > tab_pos ? space_pos : tab_pos;
- if (!name_begin) return NULL;
+ if (!name_begin)
+   {
+  group_name = NULL;
+  goto end;;
+   }
  name_begin++;
 
  group_name = eina_stringshare_add_length(name_begin,
@@ -1970,6 +1984,9 @@ parser_first_group_name_get(parser_data *pd, Evas_Object 
*entry)
  free(trans_group_name);
   }
  }
+
+end:
+   free(utf8);
return group_name;
 }
 

-- 




[EGIT] [tools/enventor] master 01/01: Edc editor: improve search the cursor position for the selected part.

2016-02-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=269bf8b393912ad21d3c093312e045dad7e4d420

commit 269bf8b393912ad21d3c093312e045dad7e4d420
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Feb 18 15:37:20 2016 +0900

Edc editor: improve search the cursor position for the selected part.

In parsing the part blocks added additional check for a block type name.
This make possible to differ names of the part block and names,
that uses inside attributes, style blocks, programs and etc.

fix T2977
---
 src/lib/edc_editor.c | 82 +++-
 1 file changed, 68 insertions(+), 14 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 5ce44e6..1db95fc 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -1092,6 +1092,7 @@ edit_part_cursor_set(edit_data *ed,
  const char *group_name,
  const char *part_name)
 {
+#define PART_SYNTAX_CNT 13
if (!group_name || !part_name) return;
const char *text = elm_entry_entry_get(ed->en_edit);
char *utf8 = elm_entry_markup_to_utf8(text);
@@ -1108,34 +1109,87 @@ edit_part_cursor_set(edit_data *ed,
 
char *itr = strstr(group_pos, part_name_search);
const char *part_pos = itr;
-   Eina_Bool word_present = EINA_FALSE;
+
+   /* Possible keywords for a parts*/
+   const char *PART[PART_SYNTAX_CNT] = { "part", "image", "textblock",
+"swallow", "rect", "group", "spacer", "proxy", "text", "gradient",
+"box", "table", "external" };
+
+   Eina_Bool word_present = EINA_FALSE; /* Indicate is present any word 
between part name and open brace '{' */
Eina_Bool found_part = EINA_FALSE;
-   /* Search entry of '{ "part_name" ' or  '{ name: "part_name"' patternsd*/
-   for (; (itr != NULL) && (itr > utf8); itr--)
+   Eina_Bool found_brace = EINA_FALSE;
+
+   /* TODO: limit the region of search by 'group { }' block. It is necessary 
for avoiding situations when part can be
+* find inside another group. */
+
+   /* Search patterns:  'PART { "part_name" ' or  'PART { name: "part_name"'*/
+   for (; (itr != NULL) && (itr > group_pos); itr--)
  {
-if (isalnum(*itr))
-  word_present = EINA_TRUE;
-else if (*itr == '{')
+if ((!found_brace) && (*itr == '{'))
   {
+ found_brace = EINA_TRUE;
  if (word_present)
{
+  /* Check word between the part name and  brace.
+   * This word should be a "name". In case if found
+   * other keyword, the search process should be
+   * restarted from another position. */
   char *name_keyword = strstr(itr, "name");
-  if (name_keyword && name_keyword < part_pos)
+  if (!name_keyword || name_keyword > part_pos)
 {
-   found_part = EINA_TRUE;
-   break;
+   itr = strstr(part_pos + 1, part_name_search);
+   part_pos = itr;
+   found_brace = EINA_FALSE;
+   word_present = EINA_FALSE;
 }
}
- else
+  }
+else if (isalpha(*itr))
+  {
+ word_present = EINA_TRUE;
+  }
+
+
+/* If found the opening brace '{', need to parse
+ * the keyword, that describe this block.
+ * And compare this keyword with possible part keywords. */
+if (found_brace)
+  {
+ char *keyword_end = NULL;
+
+ for (; (itr != NULL) && (itr > group_pos); itr--)
{
-  found_part = EINA_TRUE;
-  break;
+  if (!keyword_end && isalpha(*itr))
+{
+   keyword_end = itr;
+}
+  else if (keyword_end && !isalpha(*itr))
+{
+   /* Compare parsed keyword with possible part names. */
+   for (int i = 0; i < PART_SYNTAX_CNT; i++)
+ {
+if (!strncmp(itr + 1, PART[i], strlen(PART[i])))
+  {
+ found_part = EINA_TRUE;
+  }
+ }
+   if (found_part)
+ goto finish;
+   else
+ {
+   itr = strstr(part_pos + 1, part_name_search);
+   part_pos = it

[EGIT] [tools/enventor] master 01/01: Enhance amount of supported keywords for the autocomplete feature.

2016-02-01 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=99155bcbf26419212d517bb1955a8ee060309391

commit 99155bcbf26419212d517bb1955a8ee060309391
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Feb 2 11:22:41 2016 +0900

Enhance amount of supported keywords for the autocomplete feature.

Newly added keywords and blocks:
  - Block Proxy for description.
 attributes are supported:
   - source_clip
   - source_visible
  - Block Params for external parts
 attributes are supportd
   - int
   - double
   - bool
   - string
   - choice
  - Block Filter for descriptions.
 attributes are supported:
   - code
   - source
   - data
  - Block Link
  - Support External part type.
---
 data/autocomp/autocomp.src | 231 -
 1 file changed, 230 insertions(+), 1 deletion(-)

diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src
index d2bcacf..f99a2e9 100644
--- a/data/autocomp/autocomp.src
+++ b/data/autocomp/autocomp.src
@@ -881,6 +881,20 @@ group "lexem" struct {
  group "nodes" list {
  }
  group "txt" var_array {
+ count 1
+ value "string" string: "%s: 
;";
+ }
+ value "cursor_offset" int: 1;
+ value "line_back" int: 0;
+ group "name" var_array {
+count 1;
+value "string" string: "color";
+ }
+ }
+ group "lexem" struct {
+ group "nodes" list {
+ }
+ group "txt" var_array {
  count 1;
  value "string" string: "%s: 
;";
  }
@@ -968,6 +982,148 @@ group "lexem" struct {
  value "line_back" int: 0;
  group "name" var_array {
  count 2;
+ value "string" string: 
"source_clip";
+ value "string" string: 
"source_visible";
+ }
+  }
+   }
+   group "txt" var_array {
+   count 3;
+   value "string" string: "%s {";
+   value "string" string: "   ";
+   value "string" string: "}";
+   }
+   value "cursor_offset" int: 2;
+   value "line_back" int: 1;
+   value "dot" int: 1;
+   group "name" var_array {
+   count 1;
+   value "string" string: "proxy";
+   }
+   }
+   group "lexem" struct {
+   group "nodes" list {
+  group "lexem" struct {
+ group "nodes" list {
+ }
+ group "txt" var_array {
+ count 1;
+ value "string" string: "%s: 
\"\" 0;";
+ }

[EGIT] [tools/enventor] master 01/01: Autocomplete: add support new keywords.

2015-12-29 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=1a9b4de007a29fe6132c030a01322bc2d6087d87

commit 1a9b4de007a29fe6132c030a01322bc2d6087d87
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Dec 30 16:31:17 2015 +0900

Autocomplete: add support new keywords.

Inside "part" block added:
   - effect (for Text parts)
   - anti_alias
   - mask_flags
Inside "description" block added:
   - limit
   - clip_to
Inside "text" block added:
   - domain
---
 data/autocomp/autocomp.src | 41 -
 1 file changed, 36 insertions(+), 5 deletions(-)

diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src
index 68ea63a..2f24e5e 100644
--- a/data/autocomp/autocomp.src
+++ b/data/autocomp/autocomp.src
@@ -1,6 +1,5 @@
 group "lexem" struct {
group "nodes" list {
-
   group "lexem" struct {
  group "nodes" list {
 group "lexem" struct {
@@ -586,13 +585,28 @@ group "lexem" struct {
  }
  group "txt" var_array {
  count 1;
+ value "string" string: "%s: SOFT_SHADOW;";
+ }
+ value "cursor_offset" int: 1;
+ value "line_back" int: 0;
+ group "name" var_array {
+count 1;
+value "string" string: "effect";
+ }
+  }
+  group "lexem" struct {
+ group "nodes" list {
+ }
+ group "txt" var_array {
+ count 1;
  value "string" string: "%s: ;";
  }
  value "cursor_offset" int: 1;
  value "line_back" int: 0;
  group "name" var_array {
-count 7;
+count 8;
 value "string" string: "access";
+value "string" string: "anti_alias";
 value "string" string: "ignore_flags";
 value "string" string: "mouse_events";
 value "string" string: "multiline";
@@ -631,7 +645,8 @@ group "lexem" struct {
value "cursor_offset" int: 2;
value "line_back" int: 0;
group "name" var_array {
-   count 2;
+   count 3;
+   value "string" string: "clip_to";
value "string" string: 
"color_class";
value "string" string: "source";
}
@@ -1100,7 +1115,8 @@ group "lexem" struct {
  value "cursor_offset" int: 2;
  value "line_back" int: 0;
  group "name" var_array {
- count 7;
+ count 8;
+ value "string" string: 
"domain";
  value "string" string: "font";
  value "string" string: 
"repch";
  value "string" string: 
"source";
@@ -1125,6 +1141,20 @@ group "lexem" struct {
value "string" string: "text";
}
 }
+group "lexem" struct {
+   group "n

[EGIT] [tools/enventor] master 01/01: Error notification: dismiss ctxpopup when error happen.

2015-12-29 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=bce72d3f441f444534f213489a87f7d91aa1a92b

commit bce72d3f441f444534f213489a87f7d91aa1a92b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Dec 29 18:15:12 2015 +0900

Error notification: dismiss ctxpopup when error happen.

Callback build_err_noti_cb uses for reset the error state.
Dismiss context popup with attribute values in
case when the error happened.
---
 src/lib/enventor_smart.c | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 3ae1431..7ba9cdf 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -159,11 +159,16 @@ build_err_noti_cb(void *data, const char *msg)
 call_error:
free(utf8);
edit_error_set(pd->ed, line_num - 1, target);
-   edit_ctxpopup_dismiss(pd->ed);
if (line_num || target)
  edit_syntax_color_full_apply(pd->ed, EINA_TRUE);
+
+   // When msg == NULL it mean, that needed to reset error state
if (msg)
- evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg);
+ {
+   // Ctxpopup should be dismissed only in cases when error happens
+   edit_ctxpopup_dismiss(pd->ed);
+   evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char 
*)msg);
+ }
 
 }
 

-- 




[EGIT] [tools/enventor] master 01/01: Build: reset error notification before each build.

2015-12-28 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=a40b1441287d81ac2c1def4b02fef3468b0f2aea

commit a40b1441287d81ac2c1def4b02fef3468b0f2aea
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Dec 29 11:34:59 2015 +0900

Build: reset error notification before each build.

fix T2972
---
 src/lib/build.c  | 1 +
 src/lib/enventor_smart.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/build.c b/src/lib/build.c
index 81911ea..94e6c72 100644
--- a/src/lib/build.c
+++ b/src/lib/build.c
@@ -125,6 +125,7 @@ void
 build_edc(void)
 {
build_data *bd = g_bd;
+   bd->noti_cb(bd->noti_data, NULL);
 
build_cmd_set(bd);
 
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index ece695b..3ae1431 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -162,7 +162,8 @@ call_error:
edit_ctxpopup_dismiss(pd->ed);
if (line_num || target)
  edit_syntax_color_full_apply(pd->ed, EINA_TRUE);
-   evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg);
+   if (msg)
+ evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg);
 
 }
 

-- 




[EGIT] [tools/enventor] master 01/01: Ctxpopup: reload the image content for preview.

2015-12-28 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=f9a5d718961955eab8bbde4dff61bb697a004038

commit f9a5d718961955eab8bbde4dff61bb697a004038
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Dec 28 17:10:13 2015 +0900

Ctxpopup: reload the image content for preview.

The mouse wheel Up/Down to show preview of the
previous/next image. Previously the new ctxpopup
widget was created for each image inside the set.
Now the preview content is reloaded without
creating new ctxpopup widget.

fix T2974
---
 src/lib/ctxpopup.c | 10 ++
 src/lib/edc_editor.c   | 35 +--
 src/lib/enventor_private.h |  2 +-
 3 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index 72acad0..7a86065 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -581,6 +581,16 @@ ctxpopup_key_down_cb(void *data, Evas *e EINA_UNUSED,
 /* Externally accessible calls   */
 /*/
 
+void
+ctxpopup_img_preview_reload(Evas_Object *ctxpopup, const char *imgpath)
+{
+   if (!ctxpopup) return;
+
+   Evas_Object *layout = elm_object_content_get(ctxpopup);
+   Evas_Object *img = elm_object_part_content_get(layout, "elm.swallow.img");
+   evas_object_image_file_set(img, imgpath, NULL);
+}
+
 Evas_Object *
 ctxpopup_img_preview_create(edit_data *ed,
 const char *imgpath,
diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 805e3cc..449bf2d 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -401,10 +401,8 @@ ctxpopup_preview_dismiss_cb(void *data, Evas_Object *obj,
 void *event_info EINA_UNUSED)
 {
edit_data *ed = data;
-   int skip_focus = (int)(uintptr_t) evas_object_data_get(obj, "continue");
 
//Since the ctxpopup will be shown again, Don't revert the focus.
-   if (skip_focus) return;
elm_object_tree_focus_allow_set(ed->layout, EINA_TRUE);
elm_object_focus_set(ed->en_edit, EINA_TRUE);
evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_DISMISSED, NULL);
@@ -448,12 +446,6 @@ preview_img_relay_show(edit_data *ed, Evas_Object 
*ctxpopup, Eina_Bool next)
 
if (image_preview_show(ed, text, x, y))
  {
-/* Since the ctxpopup will be shown again,
-   Don't revert the focus in the dismiss cb. */
-evas_object_data_set(ctxpopup, "continue", (void *) 1);
-evas_object_event_callback_del(ctxpopup, EVAS_CALLBACK_DEL,
-   ctxpopup_del_cb);
-
 //Set the entry selection region to next image.
 const char *colon = parser_colon_pos_get(NULL, text);
 if (!colon) goto end;
@@ -471,6 +463,7 @@ preview_img_relay_show(edit_data *ed, Evas_Object 
*ctxpopup, Eina_Bool next)
 int cursor_pos = elm_entry_cursor_pos_get(ed->en_edit);
 elm_entry_select_region_set(ed->en_edit, (cursor_pos - select_len),
 cursor_pos);
+return;
  }
 end:
elm_ctxpopup_dismiss(ctxpopup);
@@ -519,21 +512,27 @@ image_preview_show(edit_data *ed, char *cur, Evas_Coord 
x, Evas_Coord y)
//Create Ctxpopup with the image pathes.
if (found)
  {
-Evas_Object *ctxpopup =
-   ctxpopup_img_preview_create(ed, fullpath,
-   ctxpopup_preview_dismiss_cb,
-   ctxpopup_preview_relay_cb);
-if (!ctxpopup)
+/*In case if ctxpopup already created, then just reload image. */
+if (ed->ctxpopup)
+  ctxpopup_img_preview_reload(ed->ctxpopup, fullpath);
+else
+  {
+ed->ctxpopup =
+ctxpopup_img_preview_create(ed, fullpath,
+ctxpopup_preview_dismiss_cb,
+ctxpopup_preview_relay_cb);
+ evas_object_event_callback_add(ed->ctxpopup, EVAS_CALLBACK_DEL,
+ctxpopup_del_cb, ed);
+  }
+
+if (!ed->ctxpopup)
   {
  free(filename);
  return EINA_FALSE;
   }
 
-evas_object_move(ctxpopup, x, y);
-evas_object_show(ctxpopup);
-evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL,
-   ctxpopup_del_cb, ed);
-ed->ctxpopup = ctxpopup;
+evas_object_move(ed->ctxpopup, x, y);
+evas_object_show(ed->ctxpopup);
 elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE);
 succeed = EINA_TRUE;
  }
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 30cc449..0e65d61 100644
--- a/src/lib/env

[EGIT] [tools/enventor] master 01/01: Live edit: return focus to the entry, after insert template.

2015-12-28 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=460dfed22641e629d9d30ba9dbea7b80165b9c08

commit 460dfed22641e629d9d30ba9dbea7b80165b9c08
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Dec 29 14:08:11 2015 +0900

Live edit: return focus to the entry, after insert template.

fix T2968
---
 src/lib/edc_editor.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 12b6f99..e45b98c 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -1536,7 +1536,10 @@ edit_disabled_set(edit_data *ed, Eina_Bool disabled)
 elm_entry_select_none(ed->en_edit);
  }
else
- elm_object_signal_emit(ed->layout, "elm,state,enabled", "");
+ {
+elm_object_signal_emit(ed->layout, "elm,state,enabled", "");
+elm_object_focus_set(ed->en_edit, EINA_TRUE);
+ }
 
//Turn off the part highlight in case of disable.
if (disabled) view_part_highlight_set(VIEW_DATA, NULL);

-- 




[EGIT] [tools/enventor] master 01/01: Edc editor: highlight error line number.

2015-12-23 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=3940a0e58e8fa381141fbfc833a517d68693ed6b

commit 3940a0e58e8fa381141fbfc833a517d68693ed6b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Dec 24 09:08:44 2015 +0900

Edc editor: highlight error line number.
---
 src/lib/edc_editor.c | 48 
 1 file changed, 48 insertions(+)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 702ff02..805e3cc 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -71,6 +71,8 @@ static Eina_Bool
 image_preview_show(edit_data *ed, char *cur, Evas_Coord x, Evas_Coord y);
 static void
 edit_font_apply(edit_data *ed, const char *font_name, const char *font_style);
+static void
+error_line_num_highlight(edit_data *ed);
 
 static void
 line_init(edit_data *ed)
@@ -143,6 +145,7 @@ static void
 error_highlight(edit_data *ed, Evas_Object *tb)
 {
Evas_Textblock_Cursor *cur1 = evas_object_textblock_cursor_new(tb);
+   error_line_num_highlight(ed);
if (ed->error_line)
  {
 evas_textblock_cursor_line_set(cur1, ed->error_line);
@@ -1417,6 +1420,51 @@ edit_entry_get(edit_data *ed)
return ed->en_edit;
 }
 
+/*TODO: this function should be more flexible.
+ * Will be better to change prototype like:
+ * line_num_highlight(edit_data *, int line_num, char *color);
+ * And make this function public.
+ */
+static void
+error_line_num_highlight(edit_data *ed)
+{
+#define LINE_NUM_SIZE 5
+   Evas_Object *tb = elm_entry_textblock_get(ed->en_line);
+   char *text = (char *) evas_object_textblock_text_markup_get(tb);
+
+   int from_line = 1;
+   int to_line = -1;
+
+   char *from EINA_UNUSED = NULL;
+   char *to EINA_UNUSED = NULL;
+
+   char *utf8 = (char *)color_cancel(syntax_color_data_get(ed->sh), text,
+ strlen(text), from_line, to_line, ,
+ );
+   if (ed->error_line == 0)
+ {
+evas_object_textblock_text_markup_set(tb, utf8);
+return;
+ }
+
+   char line_str[LINE_NUM_SIZE];
+   snprintf(line_str, LINE_NUM_SIZE, "%d", ed->error_line + 1);
+   char *ptr = strstr(utf8, line_str);
+   if (!ptr) return;
+
+   Eina_Strbuf *strbuf = eina_strbuf_new();
+   eina_strbuf_append_length(strbuf, utf8, ptr - utf8);
+   eina_strbuf_append(strbuf, "

[EGIT] [tools/enventor] master 02/02: Dummy object: change image for spacer.

2015-12-23 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=d51d9ef663dc1c5313d647c8c4bc55c22128e306

commit d51d9ef663dc1c5313d647c8c4bc55c22128e306
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Dec 23 17:38:52 2015 +0900

Dummy object: change image for spacer.
---
 data/themes/default/content.edc   |  11 ++-
 data/themes/default/images/spacer_new.png | Bin 3380 -> 0 bytes
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/data/themes/default/content.edc b/data/themes/default/content.edc
index 6436737..20c17a9 100644
--- a/data/themes/default/content.edc
+++ b/data/themes/default/content.edc
@@ -1,7 +1,7 @@
 images {
image: "part_highlight.png" COMP;
image: "swallow.png" COMP;
-   image: "spacer_new.png" COMP;
+   image: "live_spacer.png" COMP;
 }
 
 group { name: "swallow";
@@ -81,10 +81,11 @@ group { name: "spacer";
  type: IMAGE;
  repeat_events: 1;
  description { state: "default" 0.0;
-image.normal: "spacer_new.png";
-align: 0.5 0.5;
-aspect: 1 1;
-aspect_preference: BOTH;
+image.normal: "live_spacer.png";
+fill.type: TILE;
+color: 255 255 255 50;
+aspect: 0 0;
+aspect_preference: NONE;
  }
   }
}
diff --git a/data/themes/default/images/spacer_new.png 
b/data/themes/default/images/spacer_new.png
deleted file mode 100644
index 48d5041..000
Binary files a/data/themes/default/images/spacer_new.png and /dev/null differ

-- 




[EGIT] [tools/enventor] master 01/01: Parser: rework parser_collections_block_pos_get function.

2015-12-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=47134c410def62b7491a54747840dc2595dcdc8e

commit 47134c410def62b7491a54747840dc2595dcdc8e
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Dec 23 11:23:37 2015 +0900

Parser: rework parser_collections_block_pos_get function.

Make parser recognize the resource blocks (images, styles, etc)
This function uses for getting the insert position of the resource
block.

@fix T2740
---
 src/lib/edc_parser.c | 74 
 1 file changed, 57 insertions(+), 17 deletions(-)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 2fc1d51..2f69baf 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -1013,6 +1013,8 @@ static Eina_Bool
 parser_collections_block_pos_get(const Evas_Object *entry,
  const char *block_name, int *ret)
 {
+   if (!ret) return EINA_FALSE;
+
const char* GROUP_SYNTAX_NAME = "group";
const int BLOCK_NAME_LEN = strlen(block_name);
*ret = -1;
@@ -1023,26 +1025,64 @@ parser_collections_block_pos_get(const Evas_Object 
*entry,
char *utf8 = elm_entry_markup_to_utf8(text);
if (!utf8) return EINA_FALSE;
 
-   const char *pos = strstr(utf8, block_name);
-   if (pos)
- {
-/* TODO: Remove this check and process lines of the form
-   "images.image: "ENVENTOR_EMBEDDED_LOGO.png" COMP;" */
-if (*(pos + BLOCK_NAME_LEN + 1) == '.')
-  return EINA_FALSE;
+   int cur_cursor = elm_entry_cursor_pos_get(entry);
+   const char *pos = utf8 + cur_cursor;
 
-pos = strstr(pos, "{\n");
-if (!pos) return EINA_FALSE;
+   int len = strlen(utf8);
 
-*ret = pos - utf8 + 2;
-return EINA_TRUE;
- }
-   pos = strstr(utf8, GROUP_SYNTAX_NAME);
-   if (pos)
+   /*
+* The next loop processing the text of block "group"
+* from actual cursor postion up to the block name or
+* the "group" position.
+* Returned value for the cases when the position
+* found correctly will be the first symbol of the next line.
+*
+* TODO and FIXME: possible wrong behaviour when before the
+* "group" keyword will be found part with name like "blah.group".
+*/
+
+   while (pos && (pos > utf8))
  {
-*ret = pos - utf8;
-return EINA_FALSE;
- }
+int block_pos = strncmp(block_name, pos, BLOCK_NAME_LEN);
+if (block_pos == 0)
+  {
+ const char *block = pos + BLOCK_NAME_LEN;
+ while (block && (block < utf8 + len))
+   {
+  if (*block == '.')
+{
+   block = strchr(block, '\n');
+   *ret = block - utf8 + 1;
+   return EINA_FALSE;
+}
+  else if (*block == '{')
+{
+   block = strchr(block, '\n');
+   *ret = block - utf8 + 1;
+   return EINA_TRUE;
+}
+  block++;
+   }
+ return EINA_FALSE;
+  }
+int group_pos = strncmp(GROUP_SYNTAX_NAME, pos, 5);
+if (group_pos == 0)
+  {
+ const char *group_block = pos + 5;
+ while (group_block && (group_block < utf8 + len))
+   {
+  if (*group_block == '{')
+{
+   group_block = strchr(group_block, '\n');
+   *ret = group_block - utf8 + 1;
+   return EINA_FALSE;
+}
+  group_block++;
+   }
+ return EINA_FALSE;
+  }
+pos--;
+  }
return EINA_FALSE;
 }
 

-- 




[EGIT] [tools/enventor] master 01/01: Edje viewer: Jump to code of current clicked part.

2015-12-21 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=9863ea304ceecd3c9fa5bde7e9058b27df67e9c5

commit 9863ea304ceecd3c9fa5bde7e9058b27df67e9c5
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Dec 22 09:25:53 2015 +0900

Edje viewer:  Jump to code of current clicked part.

When user click a part in the live view,
the entry cursor jumps to the corresponded part line.

Need additional attention for the invisible parts. Swallow
and spacer parts primitives created after edje-layout. And this
causes situation when this primitives is placed above other
parts.

T2179
---
 src/lib/dummy_obj.c| 18 -
 src/lib/edc_editor.c   | 61 +++
 src/lib/edj_viewer.c   | 65 ++
 src/lib/enventor_private.h |  1 +
 src/lib/enventor_smart.c   | 11 
 5 files changed, 155 insertions(+), 1 deletion(-)

diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c
index 1fcd8b0..11c81d9 100644
--- a/src/lib/dummy_obj.c
+++ b/src/lib/dummy_obj.c
@@ -23,10 +23,19 @@ typedef struct dummy_obj_s
 } dummy_obj;
 
 const char *DUMMYOBJ = "dummy_obj";
+const char *EDIT_LAYOUT_KEY = "edit_layout";
 
 /*/
 /* Internal method implementation*/
 /*/
+static void
+edje_part_clicked(void *data, Evas *e EINA_UNUSED,
+  Evas_Object *obj, void *ei EINA_UNUSED)
+{
+   part_obj *po = (part_obj *)data;
+   Evas_Object *layout = evas_object_data_get(obj, EDIT_LAYOUT_KEY);
+   evas_object_smart_callback_call(layout, "dummy,clicked", (char 
*)(po->name));
+}
 
 static void
 dummy_objs_update(dummy_obj *dummy)
@@ -76,7 +85,7 @@ dummy_objs_update(dummy_obj *dummy)
 
 if (type == EDJE_PART_TYPE_SWALLOW)
   {
- //Check this part is exist 
+ //Check this part is exist
  if (edje_object_part_swallow_get(dummy->layout, part_name))
continue;
 
@@ -93,8 +102,11 @@ dummy_objs_update(dummy_obj *dummy)
  edje_object_part_swallow(dummy->layout, part_name, obj);
 
  po->obj = obj;
+ evas_object_data_set(po->obj, EDIT_LAYOUT_KEY, dummy->layout);
  po->name = eina_stringshare_add(part_name);
  dummy->swallows = eina_list_append(dummy->swallows, po);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN,
+edje_part_clicked, po);
   }
 else if (type == EDJE_PART_TYPE_SPACER)
   {
@@ -126,6 +138,10 @@ dummy_objs_update(dummy_obj *dummy)
   dummy->spacers = eina_list_append(dummy->spacers, po);
   evas_object_show(obj);
   evas_object_clip_set(obj, clipper);
+  evas_object_data_set(obj, EDIT_LAYOUT_KEY, dummy->layout);
+
+  evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN,
+ edje_part_clicked, po);
}
  evas_object_geometry_get(dummy->layout, , , NULL, NULL);
  edje_object_part_geometry_get(dummy->layout, part_name, , , 
, );
diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index bea9119..702ff02 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -936,6 +936,67 @@ edit_focused_cb(void *data, Evas_Object *obj EINA_UNUSED,
 /*/
 
 void
+edit_part_cursor_set(edit_data *ed,
+ const char *group_name,
+ const char *part_name)
+{
+   if (!group_name || !part_name) return;
+   const char *text = elm_entry_entry_get(ed->en_edit);
+   char *utf8 = elm_entry_markup_to_utf8(text);
+
+   int part_name_size = strlen(part_name) + 2; // 2 - is quotes.
+   char *part_name_search = calloc(part_name_size, sizeof(char));
+   snprintf(part_name_search, part_name_size, "\"%s\"", part_name);
+
+   int group_name_size = strlen(group_name) + 2; // 2 - is quotes.
+   char *group_name_search = calloc(group_name_size, sizeof(char));
+   snprintf(group_name_search, group_name_size, "\"%s\"", group_name);
+
+   const char *group_pos = strstr(utf8, group_name_search);
+
+   char *itr = strstr(group_pos, part_name_search);
+   const char *part_pos = itr;
+   Eina_Bool word_present = EINA_FALSE;
+   Eina_Bool found_part = EINA_FALSE;
+   /* Search entry of '{ "part_name" ' or  '{ name: "part_name"' patternsd*/
+   for (; (itr != NULL) && (itr > utf8); itr--)
+ {
+if (isalnum(*itr))
+  word_

[EGIT] [tools/enventor] master 01/01: Dummy object: split remove fake objetcts of Spacer and Swallow.

2015-12-21 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=7d523c5edefa0d8a25a4c7bc98a481eb9d038869

commit 7d523c5edefa0d8a25a4c7bc98a481eb9d038869
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Dec 22 11:01:11 2015 +0900

Dummy object: split remove fake objetcts of Spacer and Swallow.

Fix removing fake objects, that represent deleted parts.
Previous solution wasn't clearing spacer list, and this can
cause undefined behaviour.

Function dummy_objs_update should be optimized. Because in
current state inside this function there are too much loop
with the similar logic.

@fix
---
 src/lib/dummy_obj.c | 36 +---
 1 file changed, 29 insertions(+), 7 deletions(-)

diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c
index 11c81d9..8409e2a 100644
--- a/src/lib/dummy_obj.c
+++ b/src/lib/dummy_obj.c
@@ -56,12 +56,11 @@ dummy_objs_update(dummy_obj *dummy)
 EINA_LIST_FOREACH(parts, l2, part_name)
   {
  if (po->name[0] != part_name[0]) continue;
- if (strlen(po->name) != strlen(part_name)) continue;
+ if ((strlen(po->name) != strlen(part_name))) continue;
  if (!strcmp(po->name, part_name))
{
   type = edje_edit_part_type_get(dummy->layout, part_name);
-  if ((type == EDJE_PART_TYPE_SWALLOW) ||
-   (type == EDJE_PART_TYPE_SPACER))
+  if ((type == EDJE_PART_TYPE_SWALLOW))
 removed = EINA_FALSE;
   break;
}
@@ -70,10 +69,33 @@ dummy_objs_update(dummy_obj *dummy)
   {
  evas_object_del(po->obj);
  eina_stringshare_del(po->name);
- if (type == EDJE_PART_TYPE_SWALLOW)
-   dummy->swallows = eina_list_remove_list(dummy->swallows, l);
- else if (type == EDJE_PART_TYPE_SPACER)
-   dummy->spacers = eina_list_remove_list(dummy->spacers, l);
+ dummy->swallows = eina_list_remove_list(dummy->swallows, l);
+ free(po);
+  }
+ }
+
+   //Remove the fake swallow objects that parts are removed.
+   EINA_LIST_FOREACH_SAFE(dummy->spacers, l, l_next, po)
+ {
+removed = EINA_TRUE;
+
+EINA_LIST_FOREACH(parts, l2, part_name)
+  {
+ if (po->name[0] != part_name[0]) continue;
+ if ((strlen(po->name) != strlen(part_name))) continue;
+ if (!strcmp(po->name, part_name))
+   {
+  type = edje_edit_part_type_get(dummy->layout, part_name);
+  if ((type == EDJE_PART_TYPE_SPACER))
+removed = EINA_FALSE;
+  break;
+   }
+  }
+if (removed)
+  {
+ evas_object_del(po->obj);
+ eina_stringshare_del(po->name);
+ dummy->spacers = eina_list_remove_list(dummy->spacers, l);
  free(po);
   }
  }

-- 




[EGIT] [tools/enventor] master 01/01: Dummy: Support dummy spacer like dummy swallow.

2015-12-16 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=3b4a6767a58163b934fab19f0578795d861b7793

commit 3b4a6767a58163b934fab19f0578795d861b7793
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Dec 16 17:29:55 2015 +0900

Dummy: Support dummy spacer like dummy swallow.

Create dummy object for all spacer in the group.
This feature Enable/Disable by the button on
tools panel "Dummy Swallow" or by hotkey Ctrl+W.
---
 data/themes/default/content.edc   |  18 +++
 data/themes/default/images/spacer_new.png | Bin 0 -> 3380 bytes
 src/lib/dummy_obj.c   |  85 --
 3 files changed, 99 insertions(+), 4 deletions(-)

diff --git a/data/themes/default/content.edc b/data/themes/default/content.edc
index e55b0d5..6436737 100644
--- a/data/themes/default/content.edc
+++ b/data/themes/default/content.edc
@@ -1,6 +1,7 @@
 images {
image: "part_highlight.png" COMP;
image: "swallow.png" COMP;
+   image: "spacer_new.png" COMP;
 }
 
 group { name: "swallow";
@@ -73,6 +74,23 @@ group { name: "swallow";
}
 }
 
+group { name: "spacer";
+   inherit: "swallow";
+   parts {
+  part { name: "img";
+ type: IMAGE;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+image.normal: "spacer_new.png";
+align: 0.5 0.5;
+aspect: 1 1;
+aspect_preference: BOTH;
+ }
+  }
+   }
+}
+
+
 group { name: "part_highlight";
parts {
   part { name: "base";
diff --git a/data/themes/default/images/spacer_new.png 
b/data/themes/default/images/spacer_new.png
new file mode 100644
index 000..48d5041
Binary files /dev/null and b/data/themes/default/images/spacer_new.png differ
diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c
index 9666a11..1fcd8b0 100644
--- a/src/lib/dummy_obj.c
+++ b/src/lib/dummy_obj.c
@@ -18,6 +18,7 @@ typedef struct dummy_obj_s
 {
Evas_Object *layout;
Eina_List *swallows;
+   Eina_List *spacers;
Ecore_Animator *animator;
 } dummy_obj;
 
@@ -33,7 +34,7 @@ dummy_objs_update(dummy_obj *dummy)
Eina_List *parts = edje_edit_parts_list_get(dummy->layout);
Eina_List *l, *l_next, *l2;
char *part_name;
-   Edje_Part_Type type;
+   Edje_Part_Type type = EDJE_PART_TYPE_NONE;
part_obj *po;
Evas *evas = evas_object_evas_get(dummy->layout);
Eina_Bool removed;
@@ -49,8 +50,9 @@ dummy_objs_update(dummy_obj *dummy)
  if (strlen(po->name) != strlen(part_name)) continue;
  if (!strcmp(po->name, part_name))
{
-  if (edje_edit_part_type_get(dummy->layout, part_name) ==
-  EDJE_PART_TYPE_SWALLOW)
+  type = edje_edit_part_type_get(dummy->layout, part_name);
+  if ((type == EDJE_PART_TYPE_SWALLOW) ||
+   (type == EDJE_PART_TYPE_SPACER))
 removed = EINA_FALSE;
   break;
}
@@ -59,7 +61,10 @@ dummy_objs_update(dummy_obj *dummy)
   {
  evas_object_del(po->obj);
  eina_stringshare_del(po->name);
- dummy->swallows = eina_list_remove_list(dummy->swallows, l);
+ if (type == EDJE_PART_TYPE_SWALLOW)
+   dummy->swallows = eina_list_remove_list(dummy->swallows, l);
+ else if (type == EDJE_PART_TYPE_SPACER)
+   dummy->spacers = eina_list_remove_list(dummy->spacers, l);
  free(po);
   }
  }
@@ -91,11 +96,67 @@ dummy_objs_update(dummy_obj *dummy)
  po->name = eina_stringshare_add(part_name);
  dummy->swallows = eina_list_append(dummy->swallows, po);
   }
+else if (type == EDJE_PART_TYPE_SPACER)
+  {
+ Eina_List *spacer_l;
+ Evas_Object *obj = NULL;
+ int x = 0, y = 0, w = 0, h = 0, lx = 0, ly = 0;
+
+ EINA_LIST_FOREACH(dummy->spacers, spacer_l, po)
+if (po->name == part_name)
+  {
+ obj = po->obj;
+ break;
+  }
+ if (!obj)
+   {
+  Evas_Object *scroller = view_obj_get(VIEW_DATA);
+  Evas_Object *scroller_edje = elm_layout_edje_get(scroller);
+  Evas_Object *clipper =
+ (Evas_Object *)edje_object_part_object_get(scroller_edje,
+"clipper");
+  obj = elm_layout_add(scroller);
+  elm_layout_file_set(obj, EDJE_PATH, "spacer");
+  evas_object_smart_member_add(obj, scroller);
+
+

[EGIT] [tools/enventor] master 02/02: Localization: update localization and enventor.pot content.

2015-12-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=3fc121acd54e8b2b7f36b41ed7bcf5cf9814bb69

commit 3fc121acd54e8b2b7f36b41ed7bcf5cf9814bb69
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Dec 16 10:30:30 2015 +0900

Localization: update localization and enventor.pot content.
---
 po/en.po| 100 
 po/enventor.pot | 100 
 po/ru.po|  74 +++--
 3 files changed, 177 insertions(+), 97 deletions(-)

diff --git a/po/en.po b/po/en.po
index 1be1b2f..2783ece 100644
--- a/po/en.po
+++ b/po/en.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: enventor 0.6.0\n"
 "Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
-"POT-Creation-Date: 2015-11-17 17:37+\n"
+"POT-Creation-Date: 2015-12-16 10:22+0900\n"
 "PO-Revision-Date: 2015-11-17 17:37+\n"
 "Last-Translator: nikawhite belyavski...@gmail.com \n"
 "Language-Team: \n"
@@ -21,30 +21,30 @@ msgstr ""
 msgid "%s - Enventor"
 msgstr ""
 
-#: src/bin/config_data.c:66
+#: src/bin/config_data.c:67
 msgid "Failed to generate tmp folder!"
 msgstr ""
 
-#: src/bin/config_data.c:85 src/bin/config_data.c:98
+#: src/bin/config_data.c:86 src/bin/config_data.c:99
 #, c-format
 msgid "Cannot create a config folder \"%s\""
 msgstr ""
 
-#: src/bin/config_data.c:109
+#: src/bin/config_data.c:110
 #, c-format
 msgid "Cannot save a config file \"%s\""
 msgstr ""
 
-#: src/bin/config_data.c:148
+#: src/bin/config_data.c:149
 #, c-format
 msgid "Cannot load a config file \"%s\""
 msgstr ""
 
-#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132
+#: src/bin/config_data.c:157 src/bin/file_mgr.c:193 src/bin/goto.c:132
 #: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281
-#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42
-#: src/bin/text_setting.c:487 src/bin/text_setting.c:540
-#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170
+#: src/bin/search.c:332 src/bin/setting.c:476 src/bin/statusbar.c:42
+#: src/bin/text_setting.c:490 src/bin/text_setting.c:543
+#: src/bin/text_setting.c:574 src/bin/text_setting.c:1087 src/bin/tools.c:170
 msgid "Failed to allocate Memory!"
 msgstr ""
 
@@ -131,37 +131,37 @@ msgstr ""
 msgid "Auto Indentation Disabled."
 msgstr ""
 
-#: src/bin/main.c:179
+#: src/bin/main.c:180
 #, c-format
 msgid "Live View Scale: %2.2fx"
 msgstr ""
 
-#: src/bin/main.c:205
+#: src/bin/main.c:206
 #, c-format
 msgid "Font Size: %1.1fx"
 msgstr ""
 
-#: src/bin/main.c:458
+#: src/bin/main.c:459
 #, c-format
 msgid "Program Run: \"%s\""
 msgstr ""
 
-#: src/bin/main.c:557
+#: src/bin/main.c:558
 msgid "Insertion of template code is disabled while in Live Edit mode"
 msgstr ""
 
-#: src/bin/main.c:565
+#: src/bin/main.c:566
 #, c-format
 msgid "Template code inserted, (%s)"
 msgstr ""
 
-#: src/bin/main.c:571
+#: src/bin/main.c:572
 msgid ""
 "Can't insert template code here. Move the cursor inside the \"Collections,"
 "Images,Parts,Part,Programs\" scope."
 msgstr ""
 
-#: src/bin/main.c:824
+#: src/bin/main.c:825
 #, c-format
 msgid "Failed to grab key - %s"
 msgstr ""
@@ -170,7 +170,7 @@ msgstr ""
 msgid "New File: Choose a template"
 msgstr ""
 
-#: src/bin/menu.c:168 src/bin/menu.c:212 src/bin/setting.c:522
+#: src/bin/menu.c:168 src/bin/menu.c:212 src/bin/setting.c:532
 msgid "Cancel"
 msgstr ""
 
@@ -232,7 +232,7 @@ msgstr ""
 msgid "New"
 msgstr ""
 
-#: src/bin/menu.c:656
+#: src/bin/menu.c:656 src/bin/setting.c:492
 msgid "Settings"
 msgstr ""
 
@@ -292,76 +292,104 @@ msgstr ""
 msgid "Replace All"
 msgstr ""
 
-#: src/bin/setting.c:288
+#: src/bin/setting.c:249
+msgid "Image Paths:"
+msgstr ""
+
+#: src/bin/setting.c:257
+msgid "Sound Paths:"
+msgstr ""
+
+#: src/bin/setting.c:265
+msgid "Font Paths:"
+msgstr ""
+
+#: src/bin/setting.c:273
+msgid "Data Paths:"
+msgstr ""
+
+#: src/bin/setting.c:278
+msgid "Preferences:"
+msgstr ""
+
+#: src/bin/setting.c:297
 msgid "Live View Scale"
 msgstr ""
 
-#: src/bin/setting.c:315
+#: src/bin/setting.c:324
 msgid "Fixed Live View Size"
 msgstr ""
 
-#: src/bin/setting.c

[EGIT] [tools/enventor] master 01/02: Localization: add texts from setting layouts to locale.

2015-12-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=d1c5cebb24e6f3cbdcb297453624aa616123

commit d1c5cebb24e6f3cbdcb297453624aa616123
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Dec 16 10:09:50 2015 +0900

Localization: add texts from setting layouts to locale.
---
 src/bin/setting.c  | 7 +++
 src/bin/text_setting.c | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/bin/setting.c b/src/bin/setting.c
index 3d3c9ca..786d9bc 100644
--- a/src/bin/setting.c
+++ b/src/bin/setting.c
@@ -246,6 +246,7 @@ general_layout_create(setting_data *sd, Evas_Object *parent)
elm_object_focus_set(img_path_entry, EINA_TRUE);
elm_object_part_content_set(layout, "elm.swallow.img_path_entry",
img_path_entry);
+   elm_layout_text_set(layout, "img_path_guide", _("Image Paths:"));
 
//Sound Path Entry
Evas_Object *snd_path_entry = entry_create(layout);
@@ -253,12 +254,15 @@ general_layout_create(setting_data *sd, Evas_Object 
*parent)
  (Eina_List *)config_snd_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.snd_path_entry",
snd_path_entry);
+   elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:"));
+
//Font Path Entry
Evas_Object *fnt_path_entry = entry_create(layout);
fnt_path_entry_update(fnt_path_entry,
  (Eina_List *)config_fnt_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry",
fnt_path_entry);
+   elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:"));
 
//Data Path Entry
Evas_Object *dat_path_entry = entry_create(layout);
@@ -266,10 +270,12 @@ general_layout_create(setting_data *sd, Evas_Object 
*parent)
  (Eina_List *)config_dat_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.dat_path_entry",
dat_path_entry);
+   elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:"));
 
//Preference
Evas_Object *scroller = elm_scroller_add(layout);
elm_object_part_content_set(layout, "elm.swallow.preference", scroller);
+   elm_layout_text_set(layout, "preference_guide", _("Preferences:"));
 
//Box
Evas_Object *box = elm_box_add(scroller);
@@ -483,6 +489,7 @@ setting_open(void)
elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "",
   setting_dismiss_done_cb, sd);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   elm_layout_text_set(layout, "title_name", _("Settings"));
evas_object_show(layout);
base_win_resize_object_add(layout);
 
diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c
index 071eef8..e4fb384 100644
--- a/src/bin/text_setting.c
+++ b/src/bin/text_setting.c
@@ -799,6 +799,7 @@ text_setting_layout_create(Evas_Object *parent)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_layout_text_set(layout, "text_setting_guide", _("Double click a keyword 
to change its color :"));
 
//Font information
const char *font_name;

-- 




[EGIT] [tools/enventor] master 02/02: Localization: add Russian translation.

2015-12-10 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=5843cd1d22835e81142b57ffd96080ee6519e37c

commit 5843cd1d22835e81142b57ffd96080ee6519e37c
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Dec 10 17:37:36 2015 +0900

Localization: add Russian translation.
---
 po/LINGUAS |   2 +-
 po/ru.po   | 452 +
 2 files changed, 453 insertions(+), 1 deletion(-)

diff --git a/po/LINGUAS b/po/LINGUAS
index c574d07..6409b02 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-en
+en ru
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 000..deac4f3
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,452 @@
+# Russian translation for Enventor project
+# Copyright (C) 2015 Enventor development team
+# This file is distributed under the same license as the enventor package.
+# NikaWhite belyavski...@gmail.com
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: enventor 0.6.0\n"
+"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
+"POT-Creation-Date: 2015-12-10 17:11+0900\n"
+"PO-Revision-Date: 2015-12-10 12:07+\n"
+"Last-Translator: NikaWhite belyavski...@gmail.com \n"
+"Language-Team: \n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/bin/base_gui.c:61
+#, c-format
+msgid "%s - Enventor"
+msgstr "%s - Enventor"
+
+#: src/bin/config_data.c:67
+msgid "Failed to generate tmp folder!"
+msgstr "Невозможно создать временную директорию!"
+
+#: src/bin/config_data.c:86 src/bin/config_data.c:99
+#, c-format
+msgid "Cannot create a config folder \"%s\""
+msgstr "Невозможно создать директорию с конфигурационными файлами. \"%s\""
+
+#: src/bin/config_data.c:110
+#, c-format
+msgid "Cannot save a config file \"%s\""
+msgstr "Неудалось сохранить файл настроек \"%s\""
+
+#: src/bin/config_data.c:149
+#, c-format
+msgid "Cannot load a config file \"%s\""
+msgstr "Неудалось загрузить настройки из файла \"%s\""
+
+#: src/bin/config_data.c:157 src/bin/file_mgr.c:193 src/bin/goto.c:132
+#: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281
+#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42
+#: src/bin/text_setting.c:487 src/bin/text_setting.c:540
+#: src/bin/text_setting.c:571 src/bin/text_setting.c:1084 src/bin/tools.c:170
+msgid "Failed to allocate Memory!"
+msgstr "Ошибка выделения памяти!"
+
+#: src/bin/file_mgr.c:70
+msgid "EDC has been changed on the file system."
+msgstr "EDC-файл был изменен друшим приложением."
+
+#: src/bin/file_mgr.c:72
+msgid "Do you want to replace the contents?"
+msgstr "Вы уверенны, что хотите заменить файл?"
+
+#: src/bin/file_mgr.c:83
+msgid "Save As"
+msgstr "Сохранить как"
+
+#: src/bin/file_mgr.c:91 src/bin/search.c:402
+msgid "Replace"
+msgstr "Замена"
+
+#: src/bin/file_mgr.c:97
+msgid "Ignore"
+msgstr "Пропустить"
+
+#: src/bin/file_mgr.c:157
+#, c-format
+msgid "File saved. \"%s\""
+msgstr "Файл сохранен. \"%s\""
+
+#: src/bin/file_mgr.c:159
+#, c-format
+msgid "Already saved. \"%s\""
+msgstr "Сохранен. \"%s\""
+
+#: src/bin/goto.c:89
+msgid "Invalid line number"
+msgstr "Неверный номер строки."
+
+#: src/bin/goto.c:138
+msgid "Enventor Goto Line"
+msgstr "Enventor Перейти к строке"
+
+#: src/bin/goto.c:142
+msgid "Go to Line"
+msgstr "Перейти к строке"
+
+#: src/bin/goto.c:164
+#, c-format
+msgid "Enter line number [1..%d]:"
+msgstr "Введите номер строки [1..%d]:"
+
+#: src/bin/goto.c:188 src/bin/menu.c:162
+msgid "Ok"
+msgstr "Перейти"
+
+#: src/bin/goto.c:200 src/bin/search.c:424
+msgid "Failed to grab key - Escape"
+msgstr "Ошибка перехвата нажатия - Escape"
+
+#: src/bin/live_edit.c:918
+msgid "Double click the part to confirm."
+msgstr "Сделайте двойной клик мыши по примитиву для вставки."
+
+#: src/bin/live_edit.c:988
+msgid "Select a part to add in Live View."
+msgstr "Выбирете тип примитива, который будет добавлен."
+
+#: src/bin/live_edit.c:1063
+msgid "Faild to allocate Memory!"
+msgstr "Ошибка выделения памяти!"
+
+#: src/bin/main.c:24
+msgid "Auto Completion Enabled."
+msgstr "Автодополнение Включено."
+
+#: src/bin/main.c:25
+msgid "Auto Completion Disabled."
+msgstr "Автодополнение Выключенно"
+
+#: src/bin/main.c:34
+msgid &quo

[EGIT] [tools/enventor] master 01/02: Localization: fix localization support.

2015-12-10 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=360170fd7400b973d25c513bc5a0c07342e94c3b

commit 360170fd7400b973d25c513bc5a0c07342e94c3b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Dec 10 17:30:00 2015 +0900

Localization: fix localization support.

Correct initalizing textdomain.
Use LOCALE_DIR environment variable.
Support localization in setting.c and text_setting.c files.
---
 configure.ac   | 8 
 src/bin/Makefile.am| 5 -
 src/bin/main.c | 6 ++
 src/bin/setting.c  | 3 +++
 src/bin/text_setting.c | 3 +++
 5 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index b0e7cc5..7ca0ed9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,6 +40,14 @@ AM_PROG_AS
 AM_GNU_GETTEXT_VERSION(0.18.1)
 AM_GNU_GETTEXT([external])
 
+#===
+if test "x${prefix}" = "xNONE"; then
+   LOCALE_DIR="${ac_default_prefix}/share/locale"
+else
+   LOCALE_DIR="${prefix}/share/locale"
+fi
+AC_SUBST(LOCALE_DIR)
+#===
 
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index 2a27e4f..9f520fd 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -1,5 +1,7 @@
 MAINTAINERCLEANFILES = Makefile.in
 
+LOCALE_DIR = @LOCALE_DIR@
+
 bin_PROGRAMS = enventor
 
 AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \
@@ -35,6 +37,7 @@ enventor_LDFLAGS = $(LTLIBINTL)
 
 enventor_CFLAGS = \
-I$(top_builddir)/src/lib \
-   @ENVENTOR_CFLAGS@
+   @ENVENTOR_CFLAGS@ \
+   -DLOCALE_DIR=\"@LOCALE_DIR@\"
 
 EXTRA_DIST =
diff --git a/src/bin/main.c b/src/bin/main.c
index be0ed0e..92ecfe8 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -875,6 +875,12 @@ keygrabber_init(app_data *ad)
 static Eina_Bool
 init(app_data *ad, int argc, char **argv)
 {
+#ifdef ENABLE_NLS
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALE_DIR);
+  textdomain(PACKAGE);
+#endif /* set locale */
+
elm_setup();
 
enventor_init(argc, argv);
diff --git a/src/bin/setting.c b/src/bin/setting.c
index a299977..3d3c9ca 100644
--- a/src/bin/setting.c
+++ b/src/bin/setting.c
@@ -1,3 +1,6 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 #include "common.h"
 #include "text_setting.h"
 
diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c
index 9292b13..071eef8 100644
--- a/src/bin/text_setting.c
+++ b/src/bin/text_setting.c
@@ -1,3 +1,6 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 #include "common.h"
 #include "text_setting.h"
 

-- 




[EGIT] [tools/enventor] master 01/01: Text settings: Add analysis typed text for redoundo feature.

2015-12-09 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=6aea530622577b3686a7066a1d99422d2f713681

commit 6aea530622577b3686a7066a1d99422d2f713681
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Dec 10 10:53:12 2015 +0900

Text settings: Add analysis typed text for redoundo feature.

Added cases:
Analyse auto indention for new lines. It mean, that redo/undo
line creation will finished by one step.
Analyse input symbols speed. In case when user writes somethenigi
and takes a short delay (by default 0.8sec)
between written symbols - redo/undo action will use this delay
as point to create new node in redo/undo queue.
Analyse input symbols on a "words". Ongoing alphabetic symbols
between nonalphabetic symbols known as
"word". Redo/undo action will use for a step a whole "word".

In text setting added addition toggle named "Smart undo/redo".
By default this feature is disabled.

Todo: make this feature work with auto intendation.

Prortotype here: https://phab.enlightenment.org/D1288
---
 src/bin/config_data.c  | 18 +++
 src/bin/main.c |  1 +
 src/bin/text_setting.c | 15 +-
 src/include/config_data.h  |  2 ++
 src/include/text_setting.h |  2 ++
 src/lib/edc_editor.c   | 16 ++
 src/lib/enventor_object.eo |  9 ++
 src/lib/enventor_private.h |  3 ++
 src/lib/enventor_smart.c   | 13 
 src/lib/redoundo.c | 74 +-
 10 files changed, 151 insertions(+), 2 deletions(-)

diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 3205b27..15327a9 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -38,6 +38,7 @@ typedef struct config_s
Eina_Bool console;
Eina_Bool auto_complete;
Eina_Bool view_size_configurable;
+   Eina_Bool smart_undo_redo;
 } config_data;
 
 static config_data *g_cd = NULL;
@@ -178,6 +179,7 @@ config_load(void)
 cd->auto_complete = EINA_TRUE;
 cd->view_size_configurable = EINA_FALSE;
 cd->version = ENVENTOR_CONFIG_VERSION;
+cd->smart_undo_redo = EINA_FALSE;
  }
 
g_cd = cd;
@@ -282,6 +284,8 @@ eddc_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data,
  "view_size_configurable",
  view_size_configurable, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "smart_undo_redo",
+smart_undo_redo, EET_T_UCHAR);
 }
 
 void
@@ -732,6 +736,20 @@ config_font_scale_get(void)
return cd->font_scale;
 }
 
+Eina_Bool
+config_smart_undo_redo_get(void)
+{
+   config_data *cd = g_cd;
+   return cd->smart_undo_redo;
+}
+
+void
+config_smart_undo_redo_set(Eina_Bool smart_undo_redo)
+{
+   config_data *cd = g_cd;
+   cd->smart_undo_redo = smart_undo_redo;
+}
+
 void
 config_auto_complete_set(Eina_Bool auto_complete)
 {
diff --git a/src/bin/main.c b/src/bin/main.c
index 3e05691..be0ed0e 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -56,6 +56,7 @@ enventor_common_setup(Evas_Object *enventor)
enventor_object_live_view_scale_set(enventor, config_view_scale_get());
enventor_object_auto_indent_set(enventor, config_auto_indent_get());
enventor_object_auto_complete_set(enventor, config_auto_complete_get());
+   enventor_object_smart_undo_redo_set(enventor, config_smart_undo_redo_get());
 
Eina_List *list = eina_list_append(NULL, config_output_path_get());
enventor_object_path_set(enventor, ENVENTOR_PATH_TYPE_EDJ, list);
diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c
index 111916a..9292b13 100644
--- a/src/bin/text_setting.c
+++ b/src/bin/text_setting.c
@@ -864,6 +864,11 @@ text_setting_layout_create(Evas_Object *parent)
 config_auto_complete_get());
elm_box_pack_end(box, toggle_autocomp);
 
+   //Toggle (Smart Undo/Redo)
+   Evas_Object *toggle_smart_undo_redo = toggle_create(box, _("Smart 
Undo/Redo"),
+config_smart_undo_redo_get());
+   elm_box_pack_end(box, toggle_smart_undo_redo);
+
//Font Name and Style (Box)
box = elm_box_add(layout);
elm_box_horizontal_set(box, EINA_TRUE);
@@ -953,7 +958,7 @@ text_setting_layout_create(Evas_Object *parent)
tsd->toggle_linenum = toggle_linenum;
tsd->toggle_indent = toggle_indent;
tsd->toggle_autocomp = toggle_autocomp;
-
+   tsd->toggle_smart_undo_redo = toggle_smart_undo_redo;
return layout;
 }
 
@@ -999,6 +1004,7 @@ text_setting_config_set(void)
config_linenumber_set(elm_check_state_get(tsd->toggle_linenum));
config_auto_indent_set(elm_check_state_get(tsd->toggle

[EGIT] [tools/eflete] master 47/62: Ewe ruler: use Evas_Object* for elm_box_add.

2015-12-02 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=c94a857bd6d5a45f300b3010911f6e563ecf8c99

commit c94a857bd6d5a45f300b3010911f6e563ecf8c99
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Nov 10 17:08:28 2015 +

Ewe ruler: use Evas_Object* for elm_box_add.
---
 src/lib/ewe_ruler.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c
index e3ca6ba..b9b6331 100644
--- a/src/lib/ewe_ruler.c
+++ b/src/lib/ewe_ruler.c
@@ -409,7 +409,7 @@ _ewe_ruler_scale_add(Eo *obj,
 
sd->scales = eina_list_append(sd->scales, ret);
 
-   ret->box = elm_box_add(evas_object_evas_get(obj));
+   ret->box = elm_box_add(obj);
elm_box_align_set(ret->box, 0.0, 0.0);
elm_box_horizontal_set(ret->box, sd->horizontal);
evas_object_smart_member_add(ret->box, obj);

-- 




[EGIT] [tools/eflete] master 45/62: Main window: hide History block controls.

2015-12-02 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=af991782148a2e0bb62d081966fbead5235ba870

commit af991782148a2e0bb62d081966fbead5235ba870
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Nov 13 13:10:33 2015 +

Main window: hide History block controls.

When Eflete lunched the prorperty layout is shown,
and History content should be hidden.

@fix
---
 src/bin/ui/main_window.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/ui/main_window.c b/src/bin/ui/main_window.c
index 001fe83..2f27e62 100644
--- a/src/bin/ui/main_window.c
+++ b/src/bin/ui/main_window.c
@@ -190,6 +190,8 @@ ui_main_window_add(void)
ap.block.property = ui_property_add(ap.win);
elm_layout_content_set(ap.block.right_top, NULL, ap.block.property);
ap.block.history = history_ui_add();
+   evas_object_hide(ap.block.history);
+   elm_layout_content_set(ap.block.right_top, NULL, ap.block.property);
elm_object_part_content_set(ap.panes.right, "right", ap.block.right_top);
 
ap.menu = ui_menu_add();

-- 




[EGIT] [tools/eflete] master 46/62: Config: fix set projects dir path.

2015-12-02 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=2f239c23bf12ddeb88e6d9a6886b7ee32b37f732

commit 2f239c23bf12ddeb88e6d9a6886b7ee32b37f732
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Nov 13 11:20:25 2015 +

Config: fix set projects dir path.

In case if projects dir does not exists - all
files sectors will be displayed with the NULL path.
In this commit added additional check the directory exist.

@fix
---
 src/bin/config/config.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/bin/config/config.c b/src/bin/config/config.c
index 3e0bb68..bd2e950 100644
--- a/src/bin/config/config.c
+++ b/src/bin/config/config.c
@@ -335,10 +335,13 @@ _profile_update(Profile *prof)
 
char *env_path = getenv("EFLETE_PROJECTS_DIR");
prof->version = PROFILE_VERSION;
-   if ((!prof->general.projects_folder) || (env_path))
- prof->general.projects_folder   =  env_path != NULL ?
-strdup(env_path):
-strdup(getenv("HOME"));
+   if ((!env_path) || (!ecore_file_exists(env_path)))
+ env_path = getenv("HOME");
+
+   if ((!prof->general.projects_folder) ||
+   (!ecore_file_exists(prof->general.projects_folder)))
+ prof->general.projects_folder  = strdup(env_path);
+
if (!prof->shortcuts)
  prof->shortcuts = _default_shortcuts_get();
 }

-- 




[EGIT] [tools/eflete] master 43/62: Sound editor: don't show controls, until editor tab isn't choosen.

2015-12-02 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=f0e24f3d99aff9e6492cca415f6904316d1d24d4

commit f0e24f3d99aff9e6492cca415f6904316d1d24d4
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Nov 23 10:24:32 2015 +

Sound editor: don't show controls, until editor tab isn't choosen.
---
 src/bin/ui/editors/sound_editor.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/bin/ui/editors/sound_editor.c 
b/src/bin/ui/editors/sound_editor.c
index da20bc3..6aeca4e 100644
--- a/src/bin/ui/editors/sound_editor.c
+++ b/src/bin/ui/editors/sound_editor.c
@@ -713,16 +713,13 @@ _sound_editor_main_markup_create(Sound_Editor *edit)
edit->markup = elm_layout_add(ap.win);
elm_layout_theme_set(edit->markup, "layout", "sound_editor", "default");
evas_object_size_hint_weight_set(edit->markup, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
-   evas_object_show(edit->markup);
evas_object_data_set(edit->markup, SND_EDIT_KEY, edit);
 
evas_object_event_callback_add(edit->markup, EVAS_CALLBACK_DEL, 
_on_sound_editor_del, edit);
 
btn = elm_button_add(edit->markup);
evas_object_smart_callback_add(btn, "clicked", _on_delete_clicked_cb, edit);
-   evas_object_show(btn);
elm_object_part_content_set(edit->markup, "swallow.btn.del", btn);
-   evas_object_show(btn);
 
ic = elm_icon_add(btn);
elm_icon_standard_set(ic, "minus");
@@ -766,7 +763,8 @@ _sound_editor_main_markup_create(Sound_Editor *edit)
   break;
  }
search = _sound_editor_search_field_create(edit->markup);
-   elm_object_part_content_set(edit->markup, "swallow.search_area", search);
+   evas_object_hide(search);
+   elm_layout_content_set(edit->markup, "swallow.search_area", search);
evas_object_smart_callback_add(search, "changed", _search_changed, edit);
evas_object_smart_callback_add(search, "activated", _search_nxt_gd_item, 
edit);
evas_object_smart_callback_add(edit->gengrid, "pressed", _search_reset_cb,

-- 




[EGIT] [tools/eflete] master 41/62: Workspace: delete highlight object with workspace delete.

2015-12-02 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=2823b9611f5bee7228d4fac02cb2ec35e31e5798

commit 2823b9611f5bee7228d4fac02cb2ec35e31e5798
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Nov 23 15:55:46 2015 +

Workspace: delete highlight object with workspace delete.
---
 src/bin/ui/workspace/workspace.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index 5535cc0..96f783d 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -1264,6 +1264,8 @@ _workspace_smart_del(Evas_Object *o)
 {
WS_DATA_GET(o, sd);
 
+   evas_object_del(sd->highlight.space_hl);
+   evas_object_del(sd->highlight.highlight);
_workspace_parent_sc->del(o);
 }
 

-- 




[EGIT] [tools/enventor] master 01/04: Multilanguage: Add infrastructure for multilanguage support.

2015-11-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=2f6f020f6558973b005bda1c6042e195a0126939

commit 2f6f020f6558973b005bda1c6042e195a0126939
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Nov 17 16:59:55 2015 +

Multilanguage: Add infrastructure for multilanguage support.

Added macros _(), that should be used for each string,
that will be translated to other languages.
---
 .gitignore   |   24 +-
 ABOUT-NLS| 1282 ++
 Makefile.am  |6 +-
 autogen.sh   |2 +-
 configure.ac |   10 +-
 po/LINGUAS   |1 +
 po/Makevars  |   42 ++
 po/POTFILES.in   |   34 ++
 src/include/common.h |   14 +
 9 files changed, 1404 insertions(+), 11 deletions(-)

diff --git a/.gitignore b/.gitignore
index cda12ef..5962fc2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,11 +7,14 @@
 *~
 .*
 *.eo.*
+*.sed
+*.sin
 
 Enventor.h
 
 enventor
 enventorql
+Makefile.in.in
 Makefile.in
 Makefile
 
@@ -32,12 +35,21 @@ install-sh
 libtool
 ltmain.sh
 enventor.pc
-m4/libtool.m4
-m4/ltoptions.m4
-m4/ltsugar.m4
-m4/ltversion.m4
-m4/lt~obsolete.m4
-m4/efl.m4
+!m4/efl_attribute.m4
+!m4/efl_binary.m4
+!m4/elm_quicklaunch.m4
+!m4/efl_beta.m4
+!m4/efl_eo.m4
+m4/*
+po/Makevars.template
+po/POTFILES
+po/Rules-quot
+po/en@boldquot.header
+po/en@quot.header
+po/stamp-po
+po/enventor.pot
+intl/
+config.rpath
 missing
 src/bin/.deps/
 src/bin/.libs/
diff --git a/ABOUT-NLS b/ABOUT-NLS
index e69de29..b1de1b6 100644
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -0,0 +1,1282 @@
+1 Notes on the Free Translation Project
+***
+
+Free software is going international!  The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages.  A few packages already provide translations for their
+messages.
+
+   If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site.  But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+   Installers will find here some useful hints.  These notes also
+explain how users should proceed for getting the programs to use the
+available translations.  They tell how people wanting to contribute and
+work on translations can contact the appropriate team.
+
+1.1 INSTALL Matters
+===
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language.  Most such
+packages use GNU `gettext'.  Other packages have their own ways to
+internationalization, predating GNU `gettext'.
+
+   By default, this package will be installed to allow translation of
+messages.  It will automatically detect whether the system already
+provides the GNU `gettext' functions.  Installers may use special
+options at configuration time for changing the default behaviour.  The
+command:
+
+ ./configure --disable-nls
+
+will _totally_ disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl' library
+and will decide to use it.  If not, you may have to to use the
+`--with-libintl-prefix' option to tell `configure' where to look for it.
+
+   Internationalized packages usually have many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language.  Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+1.2 Using This Package
+==
+
+As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination.  If you happen to have the `LC_ALL' or some other
+`LC_xxx' environment variables set, you should unset them before
+setting `LANG', otherwise the setting of `LANG' will not have the
+desired effect.  Here `LL' is an ISO 639 two-letter language code, and
+`CC' is an ISO 3166 two-letter country code.  For example, let's
+suppose that you speak German and live in Germany.  At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for

[EGIT] [tools/enventor] master 02/04: Multilanguage: apply gettext macro to bin/.

2015-11-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=c6ec131b8d863479800ab6f9b607150f7eb1c41e

commit c6ec131b8d863479800ab6f9b607150f7eb1c41e
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Nov 17 17:39:22 2015 +

Multilanguage: apply gettext macro to bin/.

Cover all strings with _() macro.
---
 src/bin/base_gui.c |  2 +-
 src/bin/config_data.c  | 12 +--
 src/bin/file_mgr.c | 16 +++
 src/bin/goto.c | 14 ++---
 src/bin/live_edit.c|  6 +++---
 src/bin/main.c | 25 +++---
 src/bin/menu.c | 56 +-
 src/bin/newfile.c  |  8 
 src/bin/panes.c|  2 +-
 src/bin/search.c   | 26 +++
 src/bin/setting.c  | 26 +++
 src/bin/statusbar.c|  2 +-
 src/bin/text_setting.c | 22 ++--
 src/bin/tools.c| 42 ++---
 14 files changed, 129 insertions(+), 130 deletions(-)

diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c
index 8bb35d6..6c4e803 100644
--- a/src/bin/base_gui.c
+++ b/src/bin/base_gui.c
@@ -58,7 +58,7 @@ base_title_set(const char *path)
base_data *bd = g_bd;
assert(bd);
char buf[PATH_MAX];
-   snprintf(buf, sizeof(buf), "%s - Enventor", path);
+   snprintf(buf, sizeof(buf), _("%s - Enventor"), path);
elm_win_title_set(bd->win, buf);
 }
 
diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 51f53e0..3205b27 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -63,7 +63,7 @@ config_edj_path_update(config_data *cd)
 
if (!eina_file_mkstemp(buf, _path))
  {
-EINA_LOG_ERR("Failed to generate tmp folder!");
+EINA_LOG_ERR(_("Failed to generate tmp folder!"));
 return;
  }
 
@@ -82,7 +82,7 @@ config_save(config_data *cd)
 Eina_Bool success = ecore_file_mkdir(efreet_config_home_get());
 if (!success)
   {
- EINA_LOG_ERR("Cannot create a config folder \"%s\"", 
efreet_config_home_get());
+ EINA_LOG_ERR(_("Cannot create a config folder \"%s\""), 
efreet_config_home_get());
  return;
   }
  }
@@ -95,7 +95,7 @@ config_save(config_data *cd)
 Eina_Bool success = ecore_file_mkdir(buf);
 if (!success)
   {
- EINA_LOG_ERR("Cannot create a config folder \"%s\"", buf);
+ EINA_LOG_ERR(_("Cannot create a config folder \"%s\""), buf);
  return;
   }
  }
@@ -106,7 +106,7 @@ config_save(config_data *cd)
Eet_File *ef = eet_open(buf, EET_FILE_MODE_WRITE);
if (!ef)
  {
-EINA_LOG_ERR("Cannot save a config file \"%s\"", buf);
+EINA_LOG_ERR(_("Cannot save a config file \"%s\""), buf);
 return;
  }
 
@@ -145,7 +145,7 @@ config_load(void)
 cd = eet_data_read(ef, edd_base, "config");
 eet_close(ef);
  }
-   else EINA_LOG_WARN("Cannot load a config file \"%s\"", buf);
+   else EINA_LOG_WARN(_("Cannot load a config file \"%s\""), buf);
 
//failed to load config file, create default structure.
if (!cd)
@@ -153,7 +153,7 @@ config_load(void)
 cd = calloc(1, sizeof(config_data));
 if (!cd)
   {
- EINA_LOG_ERR("Failed to allocate Memory!");
+ EINA_LOG_ERR(_("Failed to allocate Memory!"));
  return NULL;
   }
  }
diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c
index 60cf5b6..530b037 100644
--- a/src/bin/file_mgr.c
+++ b/src/bin/file_mgr.c
@@ -67,9 +67,9 @@ warning_open(file_mgr_data *fmd)
Evas_Object *layout = elm_layout_add(base_win_get());
elm_layout_file_set(layout, EDJE_PATH, "warning_layout");
elm_object_part_text_set(layout, "elm.text.desc",
-"EDC has been changed on the file system.");
+_("EDC has been changed on the file system."));
elm_object_part_text_set(layout, "elm.text.question",
-"Do you want to replace the contents?");
+_("Do you want to replace the contents?"));
elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "",
   warning_dismiss_done, fmd);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
@@ -80,7 +80,7 @@ warning_open(file_mgr_data *fmd)
 
//Save As Button
btn = elm_button_add(layout);
-   elm_object_text_set(btn, "Save As");
+   elm_object_text_set(btn, _("Save As"));
evas_object

[EGIT] [tools/enventor] master 04/04: Multilanguage: add english po file.

2015-11-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=4cbc3e5adcf29f50cb5318e24123602468e738b5

commit 4cbc3e5adcf29f50cb5318e24123602468e738b5
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Wed Nov 18 09:00:10 2015 +

Multilanguage: add english po file.

Also added target for update po files.
---
 .gitignore  |   1 +
 Makefile.am |   3 +
 po/LINGUAS  |   2 +-
 po/en.po| 446 
 4 files changed, 451 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index c66a86f..90d298b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
 *.eo.*
 *.sed
 *.sin
+*.gmo
 
 Enventor.h
 
diff --git a/Makefile.am b/Makefile.am
index e678dde..1a867bc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -26,3 +26,6 @@ SUBDIRS = src data . po
 pkgconfigdir = $(libdir)/pkgconfig
 
 pkgconfig_DATA = pc/enventor.pc
+
+update-po:
+   $(MAKE) $(AM_MAKEFLAGS) -C po update-po
diff --git a/po/LINGUAS b/po/LINGUAS
index 8b13789..c574d07 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-
+en
diff --git a/po/en.po b/po/en.po
new file mode 100644
index 000..1be1b2f
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,446 @@
+# English translation for Enventor package.
+# Copyright (C) 2015 Enventor development team
+# This file is distributed under the same license as the enventor package.
+# nikawhite belyavski...@gmail.com
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: enventor 0.6.0\n"
+"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
+"POT-Creation-Date: 2015-11-17 17:37+\n"
+"PO-Revision-Date: 2015-11-17 17:37+\n"
+"Last-Translator: nikawhite belyavski...@gmail.com \n"
+"Language-Team: \n"
+"Language: en\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/bin/base_gui.c:61
+#, c-format
+msgid "%s - Enventor"
+msgstr ""
+
+#: src/bin/config_data.c:66
+msgid "Failed to generate tmp folder!"
+msgstr ""
+
+#: src/bin/config_data.c:85 src/bin/config_data.c:98
+#, c-format
+msgid "Cannot create a config folder \"%s\""
+msgstr ""
+
+#: src/bin/config_data.c:109
+#, c-format
+msgid "Cannot save a config file \"%s\""
+msgstr ""
+
+#: src/bin/config_data.c:148
+#, c-format
+msgid "Cannot load a config file \"%s\""
+msgstr ""
+
+#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132
+#: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281
+#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42
+#: src/bin/text_setting.c:487 src/bin/text_setting.c:540
+#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170
+msgid "Failed to allocate Memory!"
+msgstr ""
+
+#: src/bin/file_mgr.c:70
+msgid "EDC has been changed on the file system."
+msgstr ""
+
+#: src/bin/file_mgr.c:72
+msgid "Do you want to replace the contents?"
+msgstr ""
+
+#: src/bin/file_mgr.c:83
+msgid "Save As"
+msgstr ""
+
+#: src/bin/file_mgr.c:91 src/bin/search.c:402
+msgid "Replace"
+msgstr ""
+
+#: src/bin/file_mgr.c:97
+msgid "Ignore"
+msgstr ""
+
+#: src/bin/file_mgr.c:157
+#, c-format
+msgid "File saved. \"%s\""
+msgstr ""
+
+#: src/bin/file_mgr.c:159
+#, c-format
+msgid "Already saved. \"%s\""
+msgstr ""
+
+#: src/bin/goto.c:89
+msgid "Invalid line number"
+msgstr ""
+
+#: src/bin/goto.c:138
+msgid "Enventor Goto Line"
+msgstr ""
+
+#: src/bin/goto.c:142
+msgid "Go to Line"
+msgstr ""
+
+#: src/bin/goto.c:164
+#, c-format
+msgid "Enter line number [1..%d]:"
+msgstr ""
+
+#: src/bin/goto.c:188 src/bin/menu.c:162
+msgid "Ok"
+msgstr ""
+
+#: src/bin/goto.c:200 src/bin/search.c:424
+msgid "Failed to grab key - Escape"
+msgstr ""
+
+#: src/bin/live_edit.c:918
+msgid "Double click the part to confirm."
+msgstr ""
+
+#: src/bin/live_edit.c:988
+msgid "Select a part to add in Live View."
+msgstr ""
+
+#: src/bin/live_edit.c:1063
+msgid "Faild to allocate Memory!"
+msgstr ""
+
+#: src/bin/main.c:24
+msgid "Auto Completion Enabled."
+msgstr ""
+
+#: src/bin/main.c:25
+msgid "Auto Completion Disabled."
+msgstr ""
+
+#: src/bin/main.c:34
+msgid "Auto Indentation Enabled."
+msgstr ""
+
+#: src/bin/main.c:35
+msgid "Auto Indentation Disabled."
+msgstr ""
+
+#: src/bin/main.c:179
+#, c-format
+msgid &quo

[EGIT] [tools/enventor] master 03/04: Multilanguage: generate template pot file.

2015-11-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=90f58d7c0a76dffc32e2640c0844a65c72415c82

commit 90f58d7c0a76dffc32e2640c0844a65c72415c82
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Nov 17 17:40:51 2015 +

Multilanguage: generate template pot file.
---
 .gitignore  |   1 -
 po/enventor.pot | 447 
 2 files changed, 447 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 5962fc2..c66a86f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,7 +47,6 @@ po/Rules-quot
 po/en@boldquot.header
 po/en@quot.header
 po/stamp-po
-po/enventor.pot
 intl/
 config.rpath
 missing
diff --git a/po/enventor.pot b/po/enventor.pot
new file mode 100644
index 000..d091367
--- /dev/null
+++ b/po/enventor.pot
@@ -0,0 +1,447 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Enventor development team
+# This file is distributed under the same license as the enventor package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: enventor 0.6.0\n"
+"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
+"POT-Creation-Date: 2015-11-17 17:37+\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <l...@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/bin/base_gui.c:61
+#, c-format
+msgid "%s - Enventor"
+msgstr ""
+
+#: src/bin/config_data.c:66
+msgid "Failed to generate tmp folder!"
+msgstr ""
+
+#: src/bin/config_data.c:85 src/bin/config_data.c:98
+#, c-format
+msgid "Cannot create a config folder \"%s\""
+msgstr ""
+
+#: src/bin/config_data.c:109
+#, c-format
+msgid "Cannot save a config file \"%s\""
+msgstr ""
+
+#: src/bin/config_data.c:148
+#, c-format
+msgid "Cannot load a config file \"%s\""
+msgstr ""
+
+#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132
+#: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281
+#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42
+#: src/bin/text_setting.c:487 src/bin/text_setting.c:540
+#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170
+msgid "Failed to allocate Memory!"
+msgstr ""
+
+#: src/bin/file_mgr.c:70
+msgid "EDC has been changed on the file system."
+msgstr ""
+
+#: src/bin/file_mgr.c:72
+msgid "Do you want to replace the contents?"
+msgstr ""
+
+#: src/bin/file_mgr.c:83
+msgid "Save As"
+msgstr ""
+
+#: src/bin/file_mgr.c:91 src/bin/search.c:402
+msgid "Replace"
+msgstr ""
+
+#: src/bin/file_mgr.c:97
+msgid "Ignore"
+msgstr ""
+
+#: src/bin/file_mgr.c:157
+#, c-format
+msgid "File saved. \"%s\""
+msgstr ""
+
+#: src/bin/file_mgr.c:159
+#, c-format
+msgid "Already saved. \"%s\""
+msgstr ""
+
+#: src/bin/goto.c:89
+msgid "Invalid line number"
+msgstr ""
+
+#: src/bin/goto.c:138
+msgid "Enventor Goto Line"
+msgstr ""
+
+#: src/bin/goto.c:142
+msgid "Go to Line"
+msgstr ""
+
+#: src/bin/goto.c:164
+#, c-format
+msgid "Enter line number [1..%d]:"
+msgstr ""
+
+#: src/bin/goto.c:188 src/bin/menu.c:162
+msgid "Ok"
+msgstr ""
+
+#: src/bin/goto.c:200 src/bin/search.c:424
+msgid "Failed to grab key - Escape"
+msgstr ""
+
+#: src/bin/live_edit.c:918
+msgid "Double click the part to confirm."
+msgstr ""
+
+#: src/bin/live_edit.c:988
+msgid "Select a part to add in Live View."
+msgstr ""
+
+#: src/bin/live_edit.c:1063
+msgid "Faild to allocate Memory!"
+msgstr ""
+
+#: src/bin/main.c:24
+msgid "Auto Completion Enabled."
+msgstr ""
+
+#: src/bin/main.c:25
+msgid "Auto Completion Disabled."
+msgstr ""
+
+#: src/bin/main.c:34
+msgid "Auto Indentation Enabled."
+msgstr ""
+
+#: src/bin/main.c:35
+msgid "Auto Indentation Disabled."
+msgstr ""
+
+#: src/bin/main.c:179
+#, c-format
+msgid "Live View Scale: %2.2fx"
+msgstr ""
+
+#: src/bin/main.c:205
+#, c-format
+msgid "Font Size: %1.1fx"
+msgstr ""
+
+#: src/bin/main.c:458
+#, c-format
+msgid "Program Run: \"%s\""
+msgstr ""
+
+#: src/bin/main.c:557
+msgid "Insertion of template code is disabled while in Live Edit mode"

[EGIT] [tools/enventor] master 01/01: Candidates list: add attributes rel*.to_x/y.

2015-09-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=4ddc93b231f74b0379562d694d356a18436beb42

commit 4ddc93b231f74b0379562d694d356a18436beb42
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Sep 22 15:46:02 2015 +

Candidates list: add attributes rel*.to_x/y.

@fix T2500
---
 src/lib/edc_parser.c | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 04aa803..7ef5084 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -890,6 +890,20 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
attr.value.append_str = ATTR_APPEND_SEMICOLON;
eina_inarray_push(td->attrs, );
 
+   memset(, 0x00, sizeof(parser_attr));
+   attr.keyword = eina_stringshare_add("to_x");
+   attr.value.type = ATTR_VALUE_PART;
+   attr.value.prepend_str = ATTR_PREPEND_COLON;
+   attr.value.append_str = ATTR_APPEND_SEMICOLON;
+   eina_inarray_push(td->attrs, );
+
+   memset(, 0x00, sizeof(parser_attr));
+   attr.keyword = eina_stringshare_add("to_y");
+   attr.value.type = ATTR_VALUE_PART;
+   attr.value.prepend_str = ATTR_PREPEND_COLON;
+   attr.value.append_str = ATTR_APPEND_SEMICOLON;
+   eina_inarray_push(td->attrs, );
+
//Type: State
memset(, 0x00, sizeof(parser_attr));
attr.keyword = eina_stringshare_add("STATE_SET");

-- 




[EGIT] [core/efl] master 01/01: Edje_entry: emit "cursor, changed, manual" for Home/End/PgUp/PgDown.

2015-09-22 Thread Mykyta Biliavskyi
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=278b20954a7583d42bc93df0257cd84f0646932e

commit 278b20954a7583d42bc93df0257cd84f0646932e
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Sep 22 15:12:47 2015 +0100

Edje_entry: emit "cursor,changed,manual" for Home/End/PgUp/PgDown.

Summary:
The keys Home/End/PgUp/PgDown are changes the entry cursor
position in the same way as arrow keys. For unified behavior
callback "cursor,changed,manual", added emitting signal for
those keys events.

Reviewers: tasn, cedric, herdsman, thiepha

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3055
---
 src/lib/edje/edje_entry.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 237e49a..e32a52e 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -1686,6 +1686,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  if (shift) _sel_extend(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,home", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if ((!alt) &&
@@ -1707,6 +1708,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  if (shift) _sel_extend(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,end", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if ((control) && (!shift) && (!strcmp(ev->keyname, "v")))
@@ -1830,6 +1832,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  else _sel_clear(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,pgup", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if (!strcmp(ev->key, "Next") ||
@@ -1853,6 +1856,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
  else _sel_clear(ed, en->cursor, rp->object, en);
   }
 _edje_emit(ed, "entry,key,pgdn", rp->part->name);
+_edje_emit(ed, "cursor,changed,manual", rp->part->name);
 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
  }
else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")))

-- 




[EGIT] [tools/enventor] master 01/01: Show the save warning dialog on close unsaved file.

2015-09-17 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=a2e8ea302898143597976df968e294205b73b0d1

commit a2e8ea302898143597976df968e294205b73b0d1
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Sep 18 09:36:07 2015 +

Show the save warning dialog on close unsaved file.
---
 src/bin/file_mgr.c   | 1 +
 src/lib/enventor_smart.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c
index aef29ff..60cf5b6 100644
--- a/src/bin/file_mgr.c
+++ b/src/bin/file_mgr.c
@@ -149,6 +149,7 @@ file_mgr_edc_save(void)
file_mgr_data *fmd = g_fmd;
 
Eina_Bool save_success = enventor_object_save(fmd->enventor, 
config_input_path_get());
+   enventor_object_modified_set(fmd->enventor, !save_success);
 
if (!config_stats_bar_get()) return;
 
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 4b01a10..604312f 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -631,6 +631,7 @@ _enventor_object_save(Eo *obj EINA_UNUSED, 
Enventor_Object_Data *pd,
 
 build_edc();
 edit_saved_set(pd->ed, EINA_FALSE);
+edit_changed_set(pd->ed, EINA_TRUE);
 
 modified.self_changed = EINA_TRUE;
 evas_object_smart_callback_call(pd->obj, SIG_EDC_MODIFIED, );

-- 




[EGIT] [tools/enventor] master 01/01: Goto: close window from the toolbar.

2015-09-16 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=27c17e9a43fcfad84f07f81217f5a51c05cf4c8b

commit 27c17e9a43fcfad84f07f81217f5a51c05cf4c8b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Sep 17 13:56:37 2015 +

Goto: close window from the toolbar.

Summary: moved the focus management  for "goto" window
from base_gui.c inside goto.c.
Added timer, that make delay between unfocus of the "goto" window
and freeing the "goto" internal structures. It is necessary because
when the "goto" window is active and pressed button on toolbar
firstly emitted the signal "unfocused" for window and then
happens button click event.

@fix T1604
---
 src/bin/base_gui.c |  6 +++---
 src/bin/goto.c | 23 +++
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c
index cf31ad4..8bb35d6 100644
--- a/src/bin/base_gui.c
+++ b/src/bin/base_gui.c
@@ -20,14 +20,14 @@ win_delete_request_cb(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
 {
   menu_exit();
 }
-
+/*
 static void
 win_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
 {
goto_close();
 }
-
+*/
 static void
 win_resize_cb(void *data EINA_UNUSED, Evas *o EINA_UNUSED, Evas_Object *obj,
   void *event_info EINA_UNUSED)
@@ -231,7 +231,7 @@ base_gui_init(void)
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, win_resize_cb, 
NULL);
evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb,
   NULL);
-   evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL);
+/*   evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL);*/
 
//Window icon
Evas_Object *icon = evas_object_image_add(evas_object_evas_get(win));
diff --git a/src/bin/goto.c b/src/bin/goto.c
index 246c755..80bcc04 100644
--- a/src/bin/goto.c
+++ b/src/bin/goto.c
@@ -4,6 +4,8 @@
 
 #include "common.h"
 
+#define UNFOCUS_DELAY 0.2
+
 typedef struct goto_s
 {
Evas_Object *win;
@@ -11,6 +13,7 @@ typedef struct goto_s
Evas_Object *entry;
Evas_Object *btn;
Evas_Object *enventor;
+   Ecore_Timer *timer;
 } goto_data;
 
 static goto_data *g_gd = NULL;
@@ -26,6 +29,23 @@ win_delete_request_cb(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
goto_close();
 }
 
+static Eina_Bool
+timer_cb(void *data EINA_UNUSED)
+{
+   goto_close();
+   return ECORE_CALLBACK_CANCEL;
+}
+
+static void
+win_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+   goto_data *gd = (goto_data*) data;
+   if (gd->timer) return;
+   evas_object_hide(gd->win);
+   gd->timer = ecore_timer_add(UNFOCUS_DELAY, timer_cb, gd);
+}
+
 static void
 win_moved_cb(void *data EINA_UNUSED, Evas_Object *obj,
  void *event_info EINA_UNUSED)
@@ -123,6 +143,7 @@ goto_open(Evas_Object *enventor)
win_w = (Evas_Coord) ((double) win_w * elm_config_scale_get());
win_h = (Evas_Coord) ((double) win_h * elm_config_scale_get());
evas_object_resize(win, win_w, win_h);
+   evas_object_smart_callback_add(win, "unfocused", win_unfocused_cb, gd);
evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb,
   gd);
evas_object_smart_callback_add(win, "moved", win_moved_cb, gd);
@@ -206,6 +227,8 @@ goto_close(void)
evas_object_geometry_get(gd->win, NULL, NULL, _w, _h);
elm_win_screen_position_get(gd->win, _x, _y);
evas_object_del(gd->win);
+   if (gd->timer)
+ ecore_timer_del(gd->timer);
free(gd);
g_gd = NULL;
 

-- 




[EGIT] [tools/enventor] master 01/01: Parser: enhance quality of parsing the part state names.

2015-09-16 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=e011f68951f2f4d012e63f73c2f83f5351cd4804

commit e011f68951f2f4d012e63f73c2f83f5351cd4804
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Thu Sep 17 14:19:01 2015 +

Parser: enhance quality of parsing the part state names.

Summary:
added ability parsing different cases of usage
"description" and "desc" keywords.
Now support descriptions without names - those states
will be defined as "default". For keyword "description"
attribute "state" non mandatory.
Examples of support syntax:
 desc {"state_name";}
 desc {image.normal: "img";}  <- "default" 0.0;
 description {state: "state_name"; ...}
 description {"state_name";...}
 description {image.normal: "img";} <- "default" 0.0;

@fix T2680

Reviewers: Hermet

Maniphest Tasks: T2680

Differential Revision: https://phab.enlightenment.org/D2969
---
 src/lib/edc_parser.c | 48 +++-
 1 file changed, 39 insertions(+), 9 deletions(-)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 39bf4ff..66be0ad 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -254,17 +254,47 @@ cur_state_thread_blocking(void *data, Ecore_Thread 
*thread EINA_UNUSED)
  //we got a description!
  if (desc_idx != -1)
{
-  p += DESC_LEN[desc_idx];
-  char *name_begin = strstr(p, QUOT_UTF8);
-  if (!name_begin) goto end;
-  char *state = strstr(p, STATE);
-  if ((desc_idx == 1) && (!state || state > name_begin))
+  desc_name = DEF_STATE_NAME;   /* By default state 
will be */
+  desc_name_len = DEF_STATE_LEN;/* recognized as 
"default" 0.0*/
+  value_convert = 0;
+
+  p += DESC_LEN[desc_idx];  /* skip keyword */
+  p = strstr(p, "{");
+  if (!p) goto end;
+  char *end_brace = strstr(p, "}"); /*Limit size of text 
for processing*/
+  if (!end_brace)
+ goto end;
+
+  /* proccessing for "description" keyword with "state" 
attribute */
+  if (desc_idx == 1)
 {
-   desc_name = DEF_STATE_NAME;
-   desc_name_len = DEF_STATE_LEN;
-   value_convert = 0;
-   continue;
+   char *state = strstr(p, STATE);
+   if (!state || state > end_brace) /* if name of state 
didn't find, */
+  continue; /* description will 
recognized as default 0.0*/
+   else
+  p += 5;   /*5 is 
strlen("state");*/
 }
+
+  char *name_begin = strstr(p, QUOT_UTF8);
+  if (!name_begin)
+ continue;
+  char *end_range = strstr(p, ";");
+  if (!end_range) goto end;
+
+  if ((name_begin > end_brace) || /* if string placed 
outside desc block*/
+  (name_begin > end_range) ||
+  (end_range > end_brace))
+continue;
+
+  /* Exception cases like: desc {image.normal: "img";} */
+  int alpha_present = 0;
+  for (char *string_itr = name_begin; (string_itr > p) && 
(!alpha_present); string_itr--)
+alpha_present = isalpha((int)*string_itr);
+
+  if (alpha_present && desc_idx == 0)
+continue;
+
+  /*Extract state name and value */
   name_begin += QUOT_UTF8_LEN;
   p = name_begin;
   char *name_end = strstr(p, QUOT_UTF8);

-- 




[EGIT] [tools/enventor] master 01/01: Highlight: apply disable/enable the highlight status for all groups.

2015-09-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=abe5ef0aa6ed913bc804d60439e691bd0b5fe5a4

commit abe5ef0aa6ed913bc804d60439e691bd0b5fe5a4
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Sep 15 15:41:08 2015 +

Highlight: apply disable/enable the highlight status for all groups.

The highlight feature is provided for global usage (it means,
that disabling highlighting will turn off it for ALL parts
in ALL groups). This patch add management the highlight
feature status for cases when the highlight was enabled
when one group was active and disable in another group.
---
 src/lib/enventor_smart.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 11296e3..60e3a45 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -102,6 +102,8 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, 
double state_value,
  }
if (edit_part_highlight_get(pd->ed))
  view_part_highlight_set(VIEW_DATA, part_name);
+   else
+ view_part_highlight_set(VIEW_DATA, NULL);
 
if (!state_name)
  {

-- 




[EGIT] [tools/enventor] master 01/02: Fix compilation warnings for enventor library.

2015-09-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=c8fdf43e9a6556d0cce62ace9f65aa262c18dbb3

commit c8fdf43e9a6556d0cce62ace9f65aa262c18dbb3
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Sep 15 17:39:51 2015 +

Fix compilation warnings for enventor library.
---
 src/lib/ctxpopup.c   |  5 +++--
 src/lib/edc_editor.c | 10 +-
 src/lib/edj_viewer.c |  2 --
 src/lib/enventor_smart.c |  7 ---
 src/lib/template.c   |  1 +
 5 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index 7330d32..72acad0 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -91,7 +91,7 @@ slider_changed_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
 else
   {
  //if the last digit number is 0 then round up.
- double val = elm_slider_value_get(slider);
+ val = elm_slider_value_get(slider);
  snprintf(buf, sizeof(buf), " %0.2f", val);
  double round_down = atof(buf);
  snprintf(buf, sizeof(buf), " %0.1f", val);
@@ -196,7 +196,8 @@ entry_changed_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
 }
 
 static void
-toggle_changed_cb(void *data, Evas_Object *obj, void *event_info)
+toggle_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
+  void *event_info EINA_UNUSED)
 {
ctxpopup_data *ctxdata = data;
Evas_Object *box = elm_object_content_get(ctxdata->ctxpopup);
diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 419b950..cbc5ac3 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -663,13 +663,13 @@ void
 edit_text_insert(edit_data *ed, const char *text)
 {
const char *selection = elm_entry_selection_get(ed->en_edit);
-   selection = elm_entry_markup_to_utf8(selection);
-   if (!selection)
+   char *selection_utf8 = elm_entry_markup_to_utf8(selection);
+   if (!selection_utf8)
  {
 elm_entry_entry_set(ed->en_edit, text);
 return;
  }
-   int lenght = strlen(selection);
+   int lenght = strlen(selection_utf8);
int pos_from = elm_entry_cursor_pos_get(ed->en_edit) - lenght;
 
Evas_Object *tb = elm_entry_textblock_get(ed->en_edit);
@@ -688,7 +688,7 @@ edit_text_insert(edit_data *ed, const char *text)
Evas_Textblock_Cursor *c_2 = evas_object_textblock_cursor_new(tb);
evas_textblock_cursor_pos_set(c_2, pos_from + lenght);
/* delete replaced text, and make diff into redoundo module */
-   redoundo_text_push(ed->rd, selection, pos_from, lenght, EINA_FALSE);
+   redoundo_text_push(ed->rd, selection_utf8, pos_from, lenght, EINA_FALSE);
evas_textblock_cursor_range_delete(c_1, c_2);
 
evas_textblock_cursor_free(c_1);
@@ -696,7 +696,7 @@ edit_text_insert(edit_data *ed, const char *text)
evas_textblock_cursor_pos_set(cur, old_pos);
 
elm_entry_calc_force(ed->en_edit);
-   free(selection);
+   free(selection_utf8);
 }
 
 static void
diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index 16dc5e1..f65f05f 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -106,8 +106,6 @@ view_images_monitor_set(view_data *vd)
Eina_List *imgs = edje_edit_images_list_get(vd->layout);
Eina_List *paths = build_path_get(ENVENTOR_PATH_TYPE_IMAGE);
 
-   Eina_List *imgs_pathes = NULL;
-
//List up new image pathes and add monitors
EINA_LIST_FOREACH(imgs, l, img)
  {
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 60e3a45..4b01a10 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -54,10 +54,11 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = 
{
 /* Internal method implementation*/
 /*/
 static Eina_Bool
-key_up_cb(void *data, int type EINA_UNUSED, void *ev)
+key_up_cb(void *data, int type EINA_UNUSED, void *ev EINA_UNUSED)
 {
Enventor_Object_Data *pd = data;
pd->key_down = EINA_FALSE;
+   return ECORE_CALLBACK_DONE;
 }
 
 static Eina_Bool
@@ -67,10 +68,10 @@ key_down_cb(void *data, int type EINA_UNUSED, void *ev)
Ecore_Event_Key *event = ev;
Eina_Bool ret;
 
-   eo_do_ret(pd->obj, ret, enventor_obj_focus_get());
+   ret = enventor_object_focus_get(pd->obj);
if (!ret) return ECORE_CALLBACK_PASS_ON;
 
-   if (pd->key_down) return;
+   if (pd->key_down) return ECORE_CALLBACK_PASS_ON;
pd->key_down = EINA_TRUE;
 
if (autocomp_event_dispatch(event->key)) return ECORE_CALLBACK_DONE;
diff --git a/src/lib/template.c b/src/lib/template.c
index 365d085..f5200f9 100644
--- a/src/lib/template.c
+++ b/src/lib/template.c
@@ -186,6 +186,7 @@ template_part_insert(edit_data *ed, Edje_Part_Type 
part_type,
 case EDJE_PART_TYPE_MESH_NODE:
 case EDJE_PART_TYPE_LIGHT:

[EGIT] [tools/enventor] master 02/02: Fix compilation warnings for enventor application.

2015-09-15 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=e2cc943e77088b6ce7f574b2d013980100cb8d02

commit e2cc943e77088b6ce7f574b2d013980100cb8d02
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Sep 15 17:42:03 2015 +

Fix compilation warnings for enventor application.
---
 src/bin/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 45f30ea..a3bcb25 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -576,7 +576,7 @@ default_template_insert(app_data *ad)
 }
 
 static Eina_Bool
-alt_func(app_data *ad, Evas_Event_Key_Down *event)
+alt_func(app_data *ad EINA_UNUSED, Evas_Event_Key_Down *event)
 {
if (evas_key_modifier_is_set(event->modifiers, "Shift") ||
evas_key_modifier_is_set(event->modifiers, "Ctrl"))

-- 




[EGIT] [tools/enventor] master 01/01: Ctxpopup: dismiss ctxpopup after the candidate chosen.

2015-09-14 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=1955c96144ef29b81fe2442d4b8c9d0e4f24144b

commit 1955c96144ef29b81fe2442d4b8c9d0e4f24144b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 15:25:36 2015 +

Ctxpopup: dismiss ctxpopup after the candidate chosen.

Summary:
Add the elm_ctxpopup_dismiss call inside the
candidate select callback function.
Delete unused function ctxpopup_candidate_selected_cb.

Test Plan:
change  rel1.to param using candidate list.
After select candidate - ctxpopup should be dismissed.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D3043
---
 src/lib/ctxpopup.c   | 1 +
 src/lib/edc_editor.c | 7 ---
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index d507d70..7330d32 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -37,6 +37,7 @@ ctxpopup_it_cb(void *data, Evas_Object *obj, void *event_info)
 ctxdata->attr->prepend_str, text, ctxdata->attr->append_str);
 
ctxdata->changed_cb(ctxdata->data, obj, ctxdata->candidate);
+   elm_ctxpopup_dismiss(obj);
 }
 
 static void
diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 770ff00..a6beb09 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -335,13 +335,6 @@ ctxpopup_candidate_dismiss_cb(void *data, Evas_Object *obj,
 }
 
 static void
-ctxpopup_candidate_selected_cb(void *data, Evas_Object *obj, void *event_info)
-{
-   edit_data *ed = data;
-   elm_ctxpopup_dismiss(obj);
-}
-
-static void
 ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, void *event_info)
 {
edit_data *ed = data;

-- 




[EGIT] [tools/enventor] master 01/01: Autocomp: bring the selected item in candidates list.

2015-09-14 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=778d3c48790b001d1c878c4cd10b469aef4fac52

commit 778d3c48790b001d1c878c4cd10b469aef4fac52
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 14:54:36 2015 +

Autocomp: bring the selected item in candidates list.

Summary:
For cases when the autocomplete list contain
a lot of items, that  the list enables scrollbar. This make impossible
to scroll last item by Down arrows. It is happens because the
focus is not allow for elm_list widget. This patch bring
selected item manually.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D3040
---
 src/lib/auto_comp.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 94d4950..b2b5b29 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -749,7 +749,11 @@ list_item_move(autocomp_data *ad, Eina_Bool up)
Elm_Object_Item *it = elm_list_selected_item_get(ad->list);
if (up) it = elm_list_item_prev(it);
else it = elm_list_item_next(it);
-   if (it) elm_list_item_selected_set(it, EINA_TRUE);
+   if (it)
+ {
+elm_list_item_selected_set(it, EINA_TRUE);
+elm_list_item_bring_in(it);
+ }
 
evas_object_smart_callback_add(entry, "unfocused", anchor_unfocused_cb,
   ad);

-- 




[EGIT] [tools/enventor] master 01/01: Static analyze: "Value stored to 'var' during its initialization is never read"

2015-09-14 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=19fdca437694e7430f620581b35c5a2d21f34c4a

commit 19fdca437694e7430f620581b35c5a2d21f34c4a
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 15:36:17 2015 +

Static analyze: "Value stored to 'var' during its initialization is never 
read"

Summary:
Fix clang static analyzer warning.
@fix

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D3045
---
 src/lib/edc_editor.c | 2 --
 src/lib/indent.c | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 767924d..a19c75d 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -578,8 +578,6 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj,
 return;
  }
 
-   Evas_Object *textblock = elm_entry_textblock_get(obj);
-   Evas_Textblock_Cursor *cursor = evas_object_textblock_cursor_get(textblock);
const char *str = elm_entry_entry_get(obj);
char *text = elm_entry_markup_to_utf8(str);
int cur_pos = elm_entry_cursor_pos_get(obj);
diff --git a/src/lib/indent.c b/src/lib/indent.c
index de64bca..f0b04d8 100644
--- a/src/lib/indent.c
+++ b/src/lib/indent.c
@@ -250,7 +250,7 @@ indent_text_auto_format(indent_data *id EINA_UNUSED,
redoundo_data *rd = evas_object_data_get(entry, "redoundo");
 
char *utf8_ptr = utf8;
-   char *utf8_lexem = utf8_ptr;
+   char *utf8_lexem = NULL;
char *utf8_end = utf8 + utf8_size;
Eina_List *code_lines = NULL;
Eina_Strbuf *buf = eina_strbuf_new();

-- 




[EGIT] [tools/enventor] master 01/01: Edc_editor: after insert candidate, move cursor to end of attribute,

2015-09-14 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=78392731d433d676d6abe1a9442a6539de78d32b

commit 78392731d433d676d6abe1a9442a6539de78d32b
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 15:34:41 2015 +

Edc_editor: after insert candidate, move cursor to end of attribute,

Summary:
This is correct behaviour for cursor placement
after inserting candidate into edc code. Previously
cursor was placed before ':'.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D3044
---
 src/lib/edc_editor.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index a6beb09..767924d 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -367,8 +367,6 @@ ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, 
void *event_info)
elm_entry_entry_insert(ed->en_edit, text);
elm_entry_calc_force(ed->en_edit);
 
-   elm_entry_cursor_pos_set(ed->en_edit, cur_pos);
-
edit_changed_set(ed, EINA_TRUE);
evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_CHANGED,
(void *)text);

-- 




[EGIT] [tools/enventor] master 01/01: Edc_editor: fix compile warning and clear code.

2015-09-14 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=17c4e71fc108cb32f8481de6e9a0af0d89a7a906

commit 17c4e71fc108cb32f8481de6e9a0af0d89a7a906
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 17:39:47 2015 +

Edc_editor: fix compile warning and clear code.

Reveret "Edc_editor: after insert candidate,
move cursor to end of attribute", because it cause
wrong behaviour.
Clear code, make selection in entry by elm_entry_selection_set.
---
 src/lib/edc_editor.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index a19c75d..419b950 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -335,7 +335,8 @@ ctxpopup_candidate_dismiss_cb(void *data, Evas_Object *obj,
 }
 
 static void
-ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, void *event_info)
+ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
+  void *event_info)
 {
edit_data *ed = data;
const char *text = event_info;
@@ -358,15 +359,14 @@ ctxpopup_candidate_changed_cb(void *data, Evas_Object 
*obj, void *event_info)
 }
}
 
-   elm_entry_cursor_pos_set(ed->en_edit, cur_pos);
-   elm_entry_cursor_selection_begin(ed->en_edit);
-   elm_entry_cursor_pos_set(ed->en_edit, end_pos);
-   elm_entry_cursor_selection_end(ed->en_edit);
+   elm_entry_select_region_set(ed->en_edit, cur_pos, end_pos);
 
redoundo_text_relative_push(ed->rd, text);
elm_entry_entry_insert(ed->en_edit, text);
elm_entry_calc_force(ed->en_edit);
 
+   elm_entry_cursor_pos_set(ed->en_edit, cur_pos);
+
edit_changed_set(ed, EINA_TRUE);
evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_CHANGED,
(void *)text);

-- 




[EGIT] [tools/enventor] master 01/01: edc_parser: recognize keyword "offset" as changeable value.

2015-09-13 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=9647ca44d232298d4f3d7dcf8b233ab47579ec0d

commit 9647ca44d232298d4f3d7dcf8b233ab47579ec0d
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 14:22:25 2015 +

edc_parser: recognize keyword "offset" as changeable value.

Summary:
Keyword "offset" added into list of arguments.
This attribute is represented by two spinners with range
-100..100. "offset" is used inside "relative" and "fill"
blocks

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D3027
---
 src/lib/edc_parser.c | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 17960fc..39bf4ff 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -675,6 +675,21 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
attr.value.append_str = ATTR_APPEND_SEMICOLON;
eina_inarray_push(td->attrs, );
 
+   xy = eina_array_new(2);
+   eina_array_push(xy, eina_stringshare_add("X:"));
+   eina_array_push(xy, eina_stringshare_add("Y:"));
+
+   memset(, 0x00, sizeof(parser_attr));
+   attr.keyword = eina_stringshare_add("offset");
+   attr.value.strs = xy;
+   attr.value.cnt = 2;
+   attr.value.min = -100;
+   attr.value.max = 100;
+   attr.value.type = ATTR_VALUE_INTEGER;
+   attr.value.prepend_str = ATTR_PREPEND_COLON;
+   attr.value.append_str = ATTR_APPEND_SEMICOLON;
+   eina_inarray_push(td->attrs, );
+
//Type: Float
xy = eina_array_new(2);
eina_array_push(xy, eina_stringshare_add("X:"));

-- 




[EGIT] [tools/enventor] master 01/01: Edc_editor: remove "cursor, changed, manual" callback.

2015-09-13 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=ae2d88fa7626486ab5f3859293fe4c6e130004b0

commit ae2d88fa7626486ab5f3859293fe4c6e130004b0
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Sep 14 14:34:42 2015 +

Edc_editor: remove "cursor,changed,manual" callback.

Summary:
For the initiate synchronizing cursor position
and the live view object was moved edit_view_sync into
callback function for "cursor,changed" entry signal.
It is neccessary, because keys "Page up" and "Page down"
didn't initiate the signal "cursor,changed,manual".

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D3034
---
 src/lib/edc_editor.c | 12 +---
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index e765a7c..770ff00 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -710,21 +710,13 @@ edit_text_insert(edit_data *ed, const char *text)
free(selection);
 }
 
-
-static void
-edit_cursor_changed_manual_cb(void *data, Evas_Object *obj EINA_UNUSED,
-  void *event_info EINA_UNUSED)
-{
-   edit_data *ed = data;
-   edit_view_sync(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, EINA_FALSE);
+   edit_view_sync(ed);
 }
 
 static void
@@ -1160,8 +1152,6 @@ edit_init(Evas_Object *enventor)
elm_entry_line_wrap_set(en_edit, ELM_WRAP_NONE);
evas_object_smart_callback_add(en_edit, "focused", edit_focused_cb, ed);
evas_object_smart_callback_add(en_edit, "changed,user", edit_changed_cb, 
ed);
-   evas_object_smart_callback_add(en_edit, "cursor,changed,manual",
-  edit_cursor_changed_manual_cb, ed);
evas_object_smart_callback_add(en_edit, "cursor,changed",
   edit_cursor_changed_cb, ed);
evas_object_smart_callback_add(en_edit, "clicked,double",

-- 




[EGIT] [core/efl] master 01/01: Edje_cc: check value for text.source attribute.

2015-09-08 Thread Mykyta Biliavskyi
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dbf7a0e368097bec5558b98ddf1ea8818e3e

commit dbf7a0e368097bec5558b98ddf1ea8818e3e
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Sep 8 18:34:16 2015 +0900

Edje_cc: check value for text.source attribute.

Summary:
Add additional check for description.text.source
and description.text.text_source attributes in TEXT part.
For cases when as source uses non TEXT/TEXTBLOCK part
serialization process should be stopped. This will cause
segmentation fault on runtime. (see edje_text.c line 251)

Reviewers: Hermet, raster, cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3026

Signed-off-by: Jean-Philippe Andre <jp.an...@samsung.com>
---
 src/bin/edje/edje_cc_out.c | 37 +
 1 file changed, 37 insertions(+)

diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 6a85f66..f40687d 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -382,6 +382,35 @@ check_image_part_desc(Edje_Part_Collection *pc, Edje_Part 
*ep,
 }
 }
 
+static void
+check_text_part_desc(Edje_Part_Collection *pc, Edje_Part *ep,
+  Edje_Part_Description_Text *epd, Eet_File *ef)
+{
+   if (epd->text.id_source != -1)
+ {
+if ((pc->parts[epd->text.id_source]->type != EDJE_PART_TYPE_TEXT) &&
+(pc->parts[epd->text.id_source]->type != EDJE_PART_TYPE_TEXTBLOCK))
+  {
+ error_and_abort(ef, "Collection \"%s\" Part \"%s\" Description 
\"%s\" [%.3f]: "
+  "text.source point to a non TEXT part \"%s\"!",
+  pc->part, ep->name,epd->common.state.name,
+  epd->common.state.value, 
pc->parts[epd->text.id_source]->name);
+  }
+ }
+
+   if (epd->text.id_text_source != -1)
+ {
+if ((pc->parts[epd->text.id_text_source]->type != EDJE_PART_TYPE_TEXT) 
&&
+(pc->parts[epd->text.id_text_source]->type != 
EDJE_PART_TYPE_TEXTBLOCK))
+  {
+ error_and_abort(ef, "Collection \"%s\" Part \"%s\" Description 
\"%s\" [%.3f]: "
+  "text.text_source point to a non TEXT part \"%s\"!",
+  pc->part, ep->name,epd->common.state.name,
+  epd->common.state.value, 
pc->parts[epd->text.id_text_source]->name);
+  }
+ }
+}
+
 /* This function check loops between groups.
For example:
> part in group A. It's source is B.
@@ -502,6 +531,14 @@ check_part(Edje_Part_Collection *pc, Edje_Part *ep, 
Eet_File *ef)
  check_packed_items(pc, ep, ef);
else if (ep->type == EDJE_PART_TYPE_GROUP)
  check_source_links(pc, ep, ef, group_path);
+   else if (ep->type == EDJE_PART_TYPE_TEXT)
+ {
+check_text_part_desc(pc, ep, (Edje_Part_Description_Text*) 
ep->default_desc, ef);
+
+for (i = 0; i < ep->other.desc_count; ++i)
+  check_text_part_desc(pc, ep, (Edje_Part_Description_Text*) 
ep->other.desc[i], ef);
+ }
+
 
/* FIXME: When smart masks are supported, remove this check */
if (ep->clip_to_id != -1 &&

-- 




[EGIT] [tools/enventor] master 01/01: Edc_editor: enhance enventor_object_text insert API.

2015-09-04 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=1fd611f4b617cc04b9f574ba94759d808af00ee0

commit 1fd611f4b617cc04b9f574ba94759d808af00ee0
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Sep 4 15:42:43 2015 +0900

Edc_editor: enhance enventor_object_text insert API.

Summary:
added edit_text_insert function, that
shared for public use as enventor_object_text_insert
This API provide functionality for text insert with
support correct text replacement and redo/undo
feature support.

@fix T2691

Test Plan:
Lunch Enventor. Open "Find/Replace" dialog.
Fill "Find" field with exist string and fill
"Replace with" field with any text. Press "Replace All".
Close dialog window and check how work Ctrl+Z and Ctrl+R
hotkey combinations.

Reviewers: Hermet

Maniphest Tasks: T2691

Differential Revision: https://phab.enlightenment.org/D3005
---
 src/lib/edc_editor.c   | 41 +
 src/lib/enventor_private.h |  1 +
 src/lib/enventor_smart.c   |  2 +-
 3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 4b7e6d4..e765a7c 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -670,6 +670,47 @@ edit_selection_start_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
ed->select_pos = elm_entry_cursor_pos_get(ed->en_edit);
 }
 
+void
+edit_text_insert(edit_data *ed, const char *text)
+{
+   const char *selection = elm_entry_selection_get(ed->en_edit);
+   selection = elm_entry_markup_to_utf8(selection);
+   if (!selection)
+ {
+elm_entry_entry_set(ed->en_edit, text);
+return;
+ }
+   int lenght = strlen(selection);
+   int pos_from = elm_entry_cursor_pos_get(ed->en_edit) - lenght;
+
+   Evas_Object *tb = elm_entry_textblock_get(ed->en_edit);
+   Evas_Textblock_Cursor *cur = evas_object_textblock_cursor_get(tb);
+   int old_pos = evas_textblock_cursor_pos_get(cur);
+   evas_textblock_cursor_pos_set(cur, pos_from + lenght);
+
+   /* append replacement text, and add relative diff into redoundo module */
+   evas_textblock_cursor_pos_set(cur, pos_from + lenght);
+   evas_textblock_cursor_text_append(cur, text);
+   redoundo_text_relative_push(ed->rd, text);
+
+   Evas_Textblock_Cursor *c_1 = evas_object_textblock_cursor_new(tb);
+   evas_textblock_cursor_pos_set(c_1, pos_from);
+
+   Evas_Textblock_Cursor *c_2 = evas_object_textblock_cursor_new(tb);
+   evas_textblock_cursor_pos_set(c_2, pos_from + lenght);
+   /* delete replaced text, and make diff into redoundo module */
+   redoundo_text_push(ed->rd, selection, pos_from, lenght, EINA_FALSE);
+   evas_textblock_cursor_range_delete(c_1, c_2);
+
+   evas_textblock_cursor_free(c_1);
+   evas_textblock_cursor_free(c_2);
+   evas_textblock_cursor_pos_set(cur, old_pos);
+
+   elm_entry_calc_force(ed->en_edit);
+   free(selection);
+}
+
+
 static void
 edit_cursor_changed_manual_cb(void *data, Evas_Object *obj EINA_UNUSED,
   void *event_info EINA_UNUSED)
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 82638a8..8347dc7 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -277,5 +277,6 @@ void edit_selection_clear(edit_data *ed);
 Eina_Bool edit_redoundo(edit_data *ed, Eina_Bool undo);
 void edit_disabled_set(edit_data *ed, Eina_Bool disabled);
 void edit_error_set(edit_data *ed, int line, const char *target);
+void edit_text_insert(edit_data *ed, const char *text);
 
 #endif
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index a7b9f12..11296e3 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -524,7 +524,7 @@ EOLIAN static void
 _enventor_object_text_insert(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd,
  const char *text)
 {
-   elm_entry_entry_insert(edit_entry_get(pd->ed), text);
+   edit_text_insert(pd->ed, text);
 }
 
 EOLIAN static void

-- 




[EGIT] [tools/enventor] master 01/01: Candidate list: filter the generated program names.

2015-09-04 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=0a64eab88b711d1fdf7e03c6f4514a443b47e4fe

commit 0a64eab88b711d1fdf7e03c6f4514a443b47e4fe
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Fri Sep 4 15:39:00 2015 +0900

Candidate list: filter the generated program names.

Summary:
for cases when candidate list contain
names of programs, all generated names will be
ignored.
The generated name is started with: "program_0x" - template.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2970
---
 src/lib/ctxpopup.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index 71d7e88..d507d70 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -470,6 +470,9 @@ image_candidate_set(Evas_Object *ctxpopup, ctxpopup_data 
*ctxdata)
 static Eina_Bool
 program_candidate_set(Evas_Object *ctxpopup, ctxpopup_data *ctxdata)
 {
+   const char *PROGRAM_GEN = "program_0x";
+   int PROGRAM_GEN_LEN = 10;
+   int candidate_cntr = 0;
view_data *vd = edj_mgr_view_get(NULL);
if (!vd) return EINA_FALSE;
Eina_List *parts = view_programs_list_get(vd);
@@ -477,13 +480,16 @@ program_candidate_set(Evas_Object *ctxpopup, 
ctxpopup_data *ctxdata)
char *part;
EINA_LIST_FOREACH(parts, l, part)
  {
+if (!strncmp(part, PROGRAM_GEN, PROGRAM_GEN_LEN))
+   continue;
 snprintf(ctxdata->candidate, sizeof(ctxdata->candidate), "\"%s\"",
  part);
 elm_ctxpopup_item_append(ctxpopup, ctxdata->candidate, NULL,
  ctxpopup_it_cb, ctxdata);
+candidate_cntr++;
  }
view_string_list_free(parts);
-   return EINA_TRUE;
+   return candidate_cntr ? EINA_TRUE : EINA_FALSE;
 }
 
 static Eina_Bool

-- 




[EGIT] [core/efl] master 01/01: Edje_Entry: check selection before the cursor position change.

2015-08-19 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=41106fe20fe991e42633fbc9a9b7155db971cc90

commit 41106fe20fe991e42633fbc9a9b7155db971cc90
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Thu Aug 20 11:31:27 2015 +0900

Edje_Entry: check selection before the cursor position change.

Summary:
change position of the main textblock cursor
in depends of the selection is present. Change cursor position to
the start or end of selection only when selection is present.
@fix

Test Plan:
Press Up and Down arrow keys on selected and normal text.
For selected text: the entry cursor should be placed one line
   above or below selection block (in depends from pressed button).
For normal text: the entry cursor should be placed one line
   above or below of the current cursor position.

Reviewers: tasn, Hermet, herdsman

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2948
---
 src/lib/edje/edje_entry.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 8b4f256..b7289b4 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -1461,7 +1461,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
_sel_start(en-cursor, rp-object, en);
ev-event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
 }
-  else
+  else if (en-have_selection)
 {
if (evas_textblock_cursor_compare(en-sel_start, 
en-sel_end)  0)
  evas_textblock_cursor_copy(en-sel_start, en-cursor);
@@ -1497,7 +1497,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
_sel_start(en-cursor, rp-object, en);
ev-event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
 }
-  else
+  else if (en-have_selection)
 {
if (evas_textblock_cursor_compare(en-sel_start, 
en-sel_end)  0)
  evas_textblock_cursor_copy(en-sel_end, en-cursor);

-- 




[EGIT] [tools/enventor] master 01/01: Edc_editor: run programs in case if name placed on new line.

2015-08-19 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=08a2d9d03855afe0b5959b08570d7e53b7c2ff3b

commit 08a2d9d03855afe0b5959b08570d7e53b7c2ff3b
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Thu Aug 20 11:07:36 2015 +0900

Edc_editor: run programs in case if name placed on new line.

Summary:
launch programs in cases when program name is
placed not in the same paragraph with program keyword.
Now analyzes whole text, that placed after selected keyword,
not only text inside the same paragraph.
@fix

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2964
---
 src/lib/edc_editor.c | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index e2db0e6..4b7e6d4 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -589,11 +589,16 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object 
*obj,
 
Evas_Object *textblock = elm_entry_textblock_get(obj);
Evas_Textblock_Cursor *cursor = evas_object_textblock_cursor_get(textblock);
-   const char *str = evas_textblock_cursor_paragraph_text_get(cursor);
+   const char *str = elm_entry_entry_get(obj);
char *text = elm_entry_markup_to_utf8(str);
-   char *cur = strstr(text, selected);
-
-   if (!strcmp(selected, program))
+   int cur_pos = elm_entry_cursor_pos_get(obj);
+   char *cur = text + (cur_pos - strlen(selected));
+
+  /* TODO: improve parser_name_get, for recognize cases when name is absent.
+   * Because right now any text inside quotes that placed after selection is
+   * recognized as name.
+   */
+  if (!strcmp(selected, program))
  {
 program_run(ed, cur);
  }

-- 




[EGIT] [tools/enventor] master 01/02: Autocomplete: support images subblock inside group block.

2015-08-19 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=c33ba546f219f1c10b60fe24b2112b8df4647c45

commit c33ba546f219f1c10b60fe24b2112b8df4647c45
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Thu Aug 20 11:11:52 2015 +0900

Autocomplete: support images subblock inside group block.

Summary:
for cases when group block contain images subblock
autocomplete feature works wrong if cursor placed below images
subblock.
Added support images inside group.Also added part to
recognized keywords.
@fix

Reviewers: Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D2955
---
 data/autocomp/autocomp.src | 108 -
 1 file changed, 107 insertions(+), 1 deletion(-)

diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src
index b9a6c61..68ea63a 100644
--- a/data/autocomp/autocomp.src
+++ b/data/autocomp/autocomp.src
@@ -358,6 +358,111 @@ group lexem struct {
  }
   }
   group lexem struct {
+group nodes list {
+   group lexem struct {
+  group nodes list {
+  }
+  group txt var_array {
+  count 1;
+  value string string: %s: \\ COMP;;
+  }
+  value cursor_offset int: 7
+  value line_back int: 0;
+  group name var_array {
+ count 1;
+ value string string: image;
+  }
+   }
+   group lexem struct {
+  group nodes list {
+ group lexem struct {
+group nodes list {
+}
+group txt var_array {
+count 1;
+value string string: %s: \\;;
+}
+value cursor_offset int: 2;
+value line_back int: 0;
+group name var_array {
+   count 1;
+   value string string: name;
+}
+  }
+ group lexem struct {
+group nodes list {
+   group lexem struct {
+  group nodes list {
+  }
+  group txt var_array {
+  count 1;
+  value string string: %s: \\ 
COMP;;
+  }
+  value cursor_offset int: 7;
+  value line_back int: 0;
+  group name var_array {
+ count 1;
+ value string string: image;
+  }
+   }
+   group lexem struct {
+  group nodes list {
+  }
+  group txt var_array {
+  count 1;
+  value string string: %s: ;;
+  }
+  value cursor_offset int: 1;
+  value line_back int: 0;
+  group name var_array {
+ count 1;
+ value string string: size;
+  }
+   }
+}
+group txt var_array {
+count 3;
+value string string: %s {br/;
+value string string:br/;
+value string string: };
+}
+value cursor_offset int: 2
+value line_back int: 1;
+group name var_array {
+   count 1;
+   value string string: image

[EGIT] [tools/enventor] master 02/02: Edc parser: recognize description block without state name.

2015-08-19 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=cd062d9564868385e3173aa5a7e75048ff5a7dc2

commit cd062d9564868385e3173aa5a7e75048ff5a7dc2
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Thu Aug 20 11:19:15 2015 +0900

Edc parser: recognize description block without state name.

Summary:
In cases when keyword description is used without
state name(it mean that state will have default 0.0 name) -
parser is fail to recognize correct name of that description and
all others that placed below.
This make impossible to switching between groups and part descriptions,
that placed below description without state name.
@fix

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2954
---
 src/lib/edc_parser.c | 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index ece12e7..17960fc 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -134,6 +134,10 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 box, table, external };
const char *DESC[2] = { desc, description };
const int DESC_LEN[2] = { 4, 11 };
+   const char *STATE = state;
+   const char *DEF_STATE_NAME = default;
+   const int DEF_STATE_LEN = 7;
+
 
cur_name_td *td = data;
char *utf8 = td-utf8;
@@ -244,8 +248,8 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
   {
  //description? or desc?
  int desc_idx = -1;
- if (!strncmp(p, DESC[0], DESC_LEN[0])) desc_idx = 0;
- else if (!strncmp(p, DESC[1], DESC_LEN[1])) desc_idx = 1;
+ if (!strncmp(p, DESC[1], DESC_LEN[1])) desc_idx = 1;
+ else if (!strncmp(p, DESC[0], DESC_LEN[0])) desc_idx = 0;
 
  //we got a description!
  if (desc_idx != -1)
@@ -253,6 +257,14 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
   p += DESC_LEN[desc_idx];
   char *name_begin = strstr(p, QUOT_UTF8);
   if (!name_begin) goto end;
+  char *state = strstr(p, STATE);
+  if ((desc_idx == 1)  (!state || state  name_begin))
+{
+   desc_name = DEF_STATE_NAME;
+   desc_name_len = DEF_STATE_LEN;
+   value_convert = 0;
+   continue;
+}
   name_begin += QUOT_UTF8_LEN;
   p = name_begin;
   char *name_end = strstr(p, QUOT_UTF8);

-- 




[EGIT] [tools/enventor] master 01/01: Build: marks line, that contain error in edc_editor.

2015-08-10 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=9c66f6fcf00258cd347b0ce17f5e74da3da9564a

commit 9c66f6fcf00258cd347b0ce17f5e74da3da9564a
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Aug 11 13:18:07 2015 +0900

Build: marks line, that contain error in edc_editor.

Summary:
parse error messages from edje_cc, and marked
by underline the mistaken line.  In cases for messages
that does not contain line numbers, trying to parse
name of wrong parameter. Trying to searching the parsed name
in edc code, and highlight the first entity.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2791
---
 data/themes/default/theme_ext.edc |  2 ++
 src/lib/edc_editor.c  | 51 +--
 src/lib/enventor_private.h|  1 +
 src/lib/enventor_smart.c  | 41 ---
 4 files changed, 89 insertions(+), 6 deletions(-)

diff --git a/data/themes/default/theme_ext.edc 
b/data/themes/default/theme_ext.edc
index 78be780..5173170 100644
--- a/data/themes/default/theme_ext.edc
+++ b/data/themes/default/theme_ext.edc
@@ -14,6 +14,7 @@
 #define ENABLED_TEXTBLOCK_TAGS \
tag: em + font_style=Oblique;   \
tag: hilight + font_weight=Bold style=glow glow_color=#3399ff80;\
+   tag: error + underline=single underline_color=#ff 
underline2_color=#ff;  \
tag: link + color=#3399ff underline=on underline_color=#3399ff; \
tag: preedit + underline=on underline_color=#3399ff;\
tag: preedit_sel + backing=on backing_color=#00 color=#ff;  \
@@ -47,6 +48,7 @@
 #define DISABLED_TEXTBLOCK_TAGS\
tag: em + font_style=Oblique;   \
tag: hilight + font_weight=Bold style=glow glow_color=#3399ff20;\
+   tag: error + underline=double underline_color=#ff 
underline2_color=#ff;  \
tag: link + color=#101820 shadow_color=#66aaff28 underline=on 
underline_color=#101820; \
tag: preedit + underline=on underline_color=#3399ff88;  \
tag: preedit_sel + backing=on backing_color=#00 color=#88;  \
diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index ea5367d..e2db0e6 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -36,6 +36,7 @@ struct editor_s
 
int cur_line;
int line_max;
+   int error_line;
int syntax_color_lock;
Evas_Coord scroller_h;
 
@@ -49,6 +50,7 @@ struct editor_s
double font_scale;
const char *font_name;
const char *font_style;
+   const char *error_target;
 
Eina_Bool edit_changed : 1;
Eina_Bool linenumber : 1;
@@ -137,6 +139,39 @@ edit_font_apply(edit_data *ed, const char *font_name, 
const char *font_style)
 }
 
 static void
+error_highlight(edit_data *ed, Evas_Object *tb)
+{
+   Evas_Textblock_Cursor *cur1 = evas_object_textblock_cursor_new(tb);
+   if (ed-error_line)
+ {
+evas_textblock_cursor_line_set(cur1, ed-error_line);
+evas_textblock_cursor_line_char_first(cur1);
+while(evas_textblock_cursor_content_get(cur1)[0] == ' ')
+   evas_textblock_cursor_char_next(cur1);
+evas_object_textblock_text_markup_prepend(cur1, error);
+evas_textblock_cursor_line_char_last(cur1);
+evas_object_textblock_text_markup_prepend(cur1, /error);
+ }
+   else if (ed-error_target)
+ {
+const char *ptr = NULL;
+const char *par = NULL;
+while (evas_textblock_cursor_paragraph_next(cur1))
+  {
+ par = evas_textblock_cursor_paragraph_text_get(cur1);
+ if (par  (ptr = strstr(par, ed-error_target)))
+break;
+  }
+evas_textblock_cursor_paragraph_char_first(cur1);
+while(evas_textblock_cursor_content_get(cur1)[0] == ' ')
+   evas_textblock_cursor_char_next(cur1);
+evas_object_textblock_text_markup_prepend(cur1, error);
+evas_textblock_cursor_paragraph_char_last(cur1);
+evas_object_textblock_text_markup_prepend(cur1, /error);
+ }
+   evas_textblock_cursor_free(cur1);
+}
+static void
 syntax_color_apply(edit_data *ed, Eina_Bool partial)
 {
Evas_Object *tb = elm_entry_textblock_get(ed-en_edit);
@@ -162,7 +197,7 @@ syntax_color_apply(edit_data *ed, Eina_Bool partial)
   But it can avoid entry_object_text_escaped_set() in Edje.
   Logically that's unnecessary in this case. */
evas_object_textblock_text_markup_set(tb, translated);
-
+   error_highlight(ed, tb);
entry_recover(ed, pos);
 }
 
@@ -213,7 +248,7 @@ syntax_color_thread_end_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
   But it can avoid entry_object_text_escaped_set() in Edje.
   Logically that's unnecessary in this case. */
evas_object_textblock_text_markup_set(tb

[EGIT] [tools/enventor] master 01/01: Ctxpopup hide on focus out.

2015-06-25 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=a310bbd9a430d74cc74ab5a92d3a1ad820d11c49

commit a310bbd9a430d74cc74ab5a92d3a1ad820d11c49
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Fri Jun 26 13:39:20 2015 +0900

Ctxpopup hide on focus out.

Summary:
On keypress up or down button doesn't need
to allow focus to the ctxpopup.

@fix T2522

Reviewers: Hermet

Maniphest Tasks: T2522

Differential Revision: https://phab.enlightenment.org/D2765
---
 src/lib/auto_comp.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 9a4701f..068de2a 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -665,7 +665,6 @@ list_item_move(autocomp_data *ad, Eina_Bool up)
 {
Evas_Object *entry = edit_entry_get(ad-ed);
evas_object_smart_callback_del(entry, unfocused, anchor_unfocused_cb);
-   elm_object_focus_allow_set(ad-list, EINA_TRUE);
 
Elm_Object_Item *it = elm_list_selected_item_get(ad-list);
if (up) it = elm_list_item_prev(it);

-- 




[EGIT] [tools/enventor] master 01/01: Correct handling ecore key modificators.

2015-06-25 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=9cc1fb443ecff4aa1122aefe8a6d6003af4627bb

commit 9cc1fb443ecff4aa1122aefe8a6d6003af4627bb
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Fri Jun 26 13:49:43 2015 +0900

Correct handling ecore key modificators.

Summary: Macro EVENT_KEY_MODIFIER_CHECK_OR_RET provide possibility  to 
check, if only one modifier pressed.

Reviewers: Hermet

Projects: #enventor

Differential Revision: https://phab.enlightenment.org/D2759
---
 src/bin/main.c   | 15 ++-
 src/include/common.h |  6 ++
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 9232106..621ac04 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -151,10 +151,8 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, void 
*ev)
app_data *ad = data;
Evas_Coord x, y, w, h;
 
-   if ((event-modifiers  (ECORE_EVENT_MODIFIER_SHIFT | 
ECORE_EVENT_MODIFIER_CTRL
-| ECORE_EVENT_MODIFIER_ALT | 
ECORE_EVENT_MODIFIER_WIN))
-   != ECORE_EVENT_MODIFIER_CTRL)
- return ECORE_CALLBACK_PASS_ON;
+   if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event-modifiers))
+  return ECORE_CALLBACK_PASS_ON;
 
//View Scale
Evas_Object *view = enventor_object_live_view_get(ad-enventor);
@@ -557,8 +555,8 @@ default_template_insert(app_data *ad)
 static Eina_Bool
 alt_func(Ecore_Event_Key *event)
 {
-   if (!(event-modifiers  ECORE_EVENT_MODIFIER_ALT))
- return EINA_FALSE;
+   if (!EVENT_KEY_MODIFIER_CHECK(ALT, event-modifiers))
+   return EINA_FALSE;
 
//Full Edit View
if (!strcmp(event-key, Left))
@@ -591,9 +589,8 @@ alt_func(Ecore_Event_Key *event)
 static Eina_Bool
 ctrl_func(app_data *ad, Ecore_Event_Key *event)
 {
-   if (!(event-modifiers  ECORE_EVENT_MODIFIER_CTRL))
- return EINA_FALSE;
-
+   if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event-modifiers))
+ return EINA_FALSE;
//Save
if (!strcmp(event-key, s) || !strcmp(event-key, S))
  {
diff --git a/src/include/common.h b/src/include/common.h
index 81bb8ea..10eddb2 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -57,6 +57,12 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n
 
 #define ENVENTOR_CONFIG_VERSION 2
 
+#define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
+  ((MASK  ECORE_EVENT_MODIFIER_##NAME)  \
+   !((0xFF ^ ECORE_EVENT_MODIFIER_##NAME)  (MASK  0x0F)))
+
+
+
 #define ENVENTOR_BETA_API_SUPPORT 1
 #include Enventor.h
 #include assert.h

-- 




[EGIT] [tools/enventor] master 01/01: Fix compiler warnings.

2015-06-23 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=533994772f2dcf94d41027433c75c26fdb9b09a2

commit 533994772f2dcf94d41027433c75c26fdb9b09a2
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Wed Jun 24 11:27:25 2015 +

Fix compiler warnings.

Fix -Wuninitialized flag warnings.
---
 src/bin/menu.c | 7 +--
 src/bin/text_setting.c | 2 +-
 src/lib/build.c| 4 ++--
 src/lib/template.c | 4 ++--
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/bin/menu.c b/src/bin/menu.c
index ce8a7b2..caff93d 100644
--- a/src/bin/menu.c
+++ b/src/bin/menu.c
@@ -245,13 +245,16 @@ about_open(menu_data *md)
char buf[PATH_MAX];
snprintf(buf, sizeof(buf), %s/about/ABOUT, elm_app_data_dir_get());
 
+   Eina_Strbuf *strbuf = NULL;
+   Eina_Iterator *itr = NULL;
+
Eina_File *file = eina_file_open(buf, EINA_FALSE);
if (!file) goto err;
 
-   Eina_Iterator *itr = eina_file_map_lines(file);
+   itr = eina_file_map_lines(file);
if (!itr) goto err;
 
-   Eina_Strbuf *strbuf = eina_strbuf_new();
+   strbuf = eina_strbuf_new();
if (!strbuf) goto err;
 
Eina_File_Line *line;
diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c
index 09913d1..8866728 100644
--- a/src/bin/text_setting.c
+++ b/src/bin/text_setting.c
@@ -549,10 +549,10 @@ static char *
 syntax_template_create(double font_scale)
 {
text_setting_data *tsd = g_tsd;
+   char *syntax_template_str = NULL;
char *syntax_template_format = syntax_template_format_create();
if (!syntax_template_format) goto syntax_template_create_err;
 
-   char *syntax_template_str = NULL;
syntax_template_str = calloc(1, sizeof(char) * SYNTAX_TEMPLATE_MAX_LEN);
if (!syntax_template_str) goto syntax_template_create_err;
 
diff --git a/src/lib/build.c b/src/lib/build.c
index 2ce1146..880cef9 100644
--- a/src/lib/build.c
+++ b/src/lib/build.c
@@ -77,7 +77,7 @@ build_cmd_set(build_data *bd)
Eina_Strbuf *strbuf_snd = NULL;
Eina_Strbuf *strbuf_fnt = NULL;
Eina_Strbuf *strbuf_dat = NULL;
-
+   Eina_Strbuf *strbuf = NULL;
//Image
strbuf_img = strbuf_path_get(bd, ENVENTOR_RES_IMAGE,  -id );
if (!strbuf_img) goto err;
@@ -91,7 +91,7 @@ build_cmd_set(build_data *bd)
strbuf_dat = strbuf_path_get(bd, ENVENTOR_RES_DATA,  -dd );
if (!strbuf_dat) goto err;
 
-   Eina_Strbuf *strbuf = eina_strbuf_new();
+   strbuf = eina_strbuf_new();
if (!strbuf)
  {
 EINA_LOG_ERR(Failed to new strbuf);
diff --git a/src/lib/template.c b/src/lib/template.c
index 3999592..36f65ac 100644
--- a/src/lib/template.c
+++ b/src/lib/template.c
@@ -137,8 +137,8 @@ template_part_insert(edit_data *ed, Edje_Part_Type 
part_type,
memset(p, ' ', space);
p[space] = '\0';
 
-   int line_cnt;
-   char **t;
+   int line_cnt = 0;
+   char **t = NULL;
char buf[64];
 
switch(part_type)

-- 




[EGIT] [tools/enventor] master 01/01: Autoindent: fix increase line numbers.

2015-06-23 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=c2d6bae122c0ef5a6838ab4d4bcb6a4f8fcd458e

commit c2d6bae122c0ef5a6838ab4d4bcb6a4f8fcd458e
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Wed Jun 24 13:14:14 2015 +0900

Autoindent: fix increase line numbers.

Summary:
Function indent_insert_apply reutn count of inserted lines.
It is provide increse line numbers correctly.

@fix T2510

Reviewers: Hermet

Maniphest Tasks: T2510

Differential Revision: https://phab.enlightenment.org/D2745
---
 src/lib/edc_editor.c   | 12 ++--
 src/lib/enventor_private.h |  2 +-
 src/lib/indent.c   | 18 --
 3 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 6d9a9f0..44330ad 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -239,29 +239,29 @@ edit_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, 
void *event_info)
 
if (info-insert)
  {
+int increase = 0;
 if ((info-change.insert.plain_length == 1)
 (info-change.insert.content[0] == ' ')) return;
 
 if (!strcmp(info-change.insert.content, EOL))
   {
- edit_line_increase(ed, 1);
+ increase++;
  syntax_color = EINA_FALSE;
   }
 else
   {
- int increase =
+ increase =
 parser_line_cnt_get(ed-pd, info-change.insert.content);
- edit_line_increase(ed, increase);
   }
 
 if (ed-auto_indent)
   {
-indent_insert_apply(syntax_indent_data_get(ed-sh), ed-en_edit,
+ increase = indent_insert_apply(syntax_indent_data_get(ed-sh), 
ed-en_edit,
 info-change.insert.content, ed-cur_line);
- int increase =
-parser_line_cnt_get(ed-pd, info-change.insert.content);
  edit_line_increase(ed, increase);
   }
+else
+   edit_line_increase(ed, increase);
 
  }
else
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 7ae7a97..477a8fd 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -129,7 +129,7 @@ indent_data *syntax_indent_data_get(syntax_helper *sh);
 indent_data *indent_init(Eina_Strbuf *strbuf);
 void indent_term(indent_data *id);
 int indent_space_get(indent_data *id, Evas_Object *entry);
-void indent_insert_apply(indent_data *id, Evas_Object *entry, const char 
*insert, int cur_line);
+int indent_insert_apply(indent_data *id, Evas_Object *entry, const char 
*insert, int cur_line);
 Eina_Bool indent_delete_apply(indent_data *id, Evas_Object *entry, const char 
*del, int cur_line);
 
 
diff --git a/src/lib/indent.c b/src/lib/indent.c
index a5ed761..3599bfc 100644
--- a/src/lib/indent.c
+++ b/src/lib/indent.c
@@ -231,10 +231,11 @@ indent_delete_apply(indent_data *id EINA_UNUSED, 
Evas_Object *entry,
return EINA_FALSE;
 }
 
-static void
+static int
 indent_text_auto_format(indent_data *id EINA_UNUSED,
 Evas_Object *entry, const char *insert)
 {
+   int line_cnt = 0;
char *utf8 = evas_textblock_text_markup_to_utf8(NULL, insert);
int utf8_size = strlen(utf8);
 
@@ -276,7 +277,7 @@ indent_text_auto_format(indent_data *id EINA_UNUSED,
  }
free(utf8);
 
-   if (!code_lines) return;
+   if (!code_lines) return line_cnt;
tb_cur_pos = evas_textblock_cursor_pos_get(cur_end);
evas_textblock_cursor_pos_set(cur_start, tb_cur_pos - utf8_size);
evas_textblock_cursor_range_delete(cur_start, cur_end);
@@ -297,6 +298,7 @@ indent_text_auto_format(indent_data *id EINA_UNUSED,
memset(p, 0x0, space);
if (strstr(line, {)) space += TAB_SPACE;
eina_stringshare_del(line);
+   line_cnt++;
 }
 
   frmt_buf = eina_strbuf_string_steal(buf);
@@ -313,10 +315,10 @@ indent_text_auto_format(indent_data *id EINA_UNUSED,
   eina_strbuf_free(buf);
   free(frmt_buf);
   evas_textblock_cursor_free(cur_start);
-  return;
+  return line_cnt;
 }
 
-void
+int
 indent_insert_apply(indent_data *id, Evas_Object *entry, const char *insert,
 int cur_line)
 {
@@ -325,12 +327,16 @@ indent_insert_apply(indent_data *id, Evas_Object *entry, 
const char *insert,
  {
 if (insert[0] == '}')
   indent_insert_bracket_case(id, entry, cur_line);
+return 0;
  }
else
  {
 if (!strcmp(insert, EOL))
-  indent_insert_br_case(id, entry);
+  {
+indent_insert_br_case(id, entry);
+return 1;
+  }
 else
-  indent_text_auto_format(id, entry, insert);
+  return indent_text_auto_format(id, entry, insert);
  }
 }

-- 




[EGIT] [tools/enventor] master 01/01: Autocomplete: add attribute dot for lexems.

2015-06-22 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=dc85cafc7d119056c123b5428508980a2d58ffdd

commit dc85cafc7d119056c123b5428508980a2d58ffdd
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 23 08:16:01 2015 +0900

Autocomplete: add attribute dot for lexems.

Summary:
Attribute dot make possible to mark lexems, that
can use the '.' symbol. Like image.normal: bla;
This commit fix issue, when pressing '.' after any
keyword was shown candidate list.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2709
---
 data/autocomp/autocomp.src |  6 ++
 src/lib/auto_comp.c| 12 +---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src
index 18ce6f4..d757a30 100644
--- a/data/autocomp/autocomp.src
+++ b/data/autocomp/autocomp.src
@@ -154,6 +154,7 @@ group lexem struct {
value cursor_offset int: 2;
value line_back int: 1;
value name string: images;
+   value dot int: 1;
 }
 group lexem struct {
group nodes list {
@@ -925,6 +926,7 @@ group lexem struct {
value cursor_offset int: 2;
value line_back int: 1;
value name string: image;
+   value dot int: 1;
 }
 group lexem struct {
group nodes list {
@@ -1219,6 +1221,7 @@ group lexem struct {
value cursor_offset int: 2;
value line_back int: 1;
value name string: rel1;
+   value dot int: 1;
}
 group lexem struct {
group nodes list {
@@ -1287,6 +1290,7 @@ group lexem struct {
value cursor_offset int: 2;
value line_back int: 1;
value name string: rel2;
+   value dot int: 1;
 }
 group lexem struct {
group nodes list {
@@ -1533,6 +1537,7 @@ group lexem struct {
value cursor_offset int: 2;
value line_back int: 1;
value name string: text;
+   value dot int: 1;
 }
 group lexem struct {
group nodes list {
@@ -2364,6 +2369,7 @@ group lexem struct {
  value cursor_offset int: 2;
  value line_back int: 1;
  value name string: images;
+ value dot int: 1;
   }
   group lexem struct {
  group nodes list {
diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index ca2b3e2..b098173 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -18,6 +18,7 @@ typedef struct lexem_s
int cursor_offset;
int line_back;
char *name;
+   int dot;
 } lexem;
 
 typedef struct autocomp_s
@@ -35,6 +36,7 @@ typedef struct autocomp_s
Eina_Bool initialized : 1;
Eina_Bool enabled : 1;
Ecore_Thread *cntx_lexem_thread;
+   Eina_Bool dot_candidate : 1;
 } autocomp_data;
 
 typedef struct ctx_lexem_thread_data_s
@@ -70,6 +72,7 @@ eddc_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, cursor_offset, 
cursor_offset, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, line_back, line_back, 
EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, name, name, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, dot, dot, EET_T_INT);
 }
 
 static void
@@ -267,8 +270,9 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
if (td-ad-cntx_lexem_thread == thread)
  td-ad-cntx_lexem_thread = NULL;
 
-   if (td-list_show  td-result)
+   if (td-list_show  || (td-result  td-result-dot  
td-ad-dot_candidate))
  candidate_list_show(td-ad);
+   td-ad-dot_candidate = EINA_FALSE;
free(td-utf8);
free(td);
 }
@@ -279,10 +283,11 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
ctx_lexem_td *td = (ctx_lexem_td *)data;
 
td-ad-lexem_ptr = td-result ? td-result : (lexem *)td-ad-lexem_root;
-   if (td-list_show  td-result)
+   if (td-list_show || (td-result  td-result-dot  
td-ad-dot_candidate))
  candidate_list_show(td-ad);
if (td-ad-cntx_lexem_thread == thread

[EGIT] [tools/enventor] master 01/01: Autocomplete: fix memory leak.

2015-06-21 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=7020fec1f3dfb141e0d02f374bde5e0ad8f68dcb

commit 7020fec1f3dfb141e0d02f374bde5e0ad8f68dcb
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 22 14:45:54 2015 +0900

Autocomplete: fix memory leak.

Summary:
When context_lexem_thread_cb is canceled - possible, that
td-utf8 memory, that allocated at context_lexem_get
didn't freed.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2726
---
 src/lib/auto_comp.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 211cd4c..ed8e884 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -209,8 +209,6 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 cur++;
  }
 
-   free(utf8);
-
if (quot_cnt % 2)
  {
 td-result = NULL;
@@ -250,6 +248,7 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
 
if (td-list_show  td-result)
  candidate_list_show(td-ad);
+   free(td-utf8);
free(td);
 }
 
@@ -263,6 +262,7 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
  candidate_list_show(td-ad);
if (td-ad-cntx_lexem_thread == thread)
  td-ad-cntx_lexem_thread = NULL;
+   free(td-utf8);
free(td);
 }
 
@@ -280,7 +280,7 @@ context_lexem_get(autocomp_data *ad, Evas_Object *entry, 
Eina_Bool list_show)
   ecore_thread_cancel(ad-cntx_lexem_thread);
 
ctx_lexem_td *td = (ctx_lexem_td *)calloc(1, sizeof(ctx_lexem_td));
-   td-utf8 =  elm_entry_markup_to_utf8(text);
+   td-utf8 = elm_entry_markup_to_utf8(text);
td-cur_pos = elm_entry_cursor_pos_get(entry);
td-ad = ad;
td-result = NULL;

-- 




[EGIT] [tools/enventor] master 01/01: Hotkeys: fix work ctrl_l key with num lock.

2015-06-21 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=02af80d3ba2b5c10e5c44dd8f6c8fddef505268c

commit 02af80d3ba2b5c10e5c44dd8f6c8fddef505268c
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 22 14:49:17 2015 +0900

Hotkeys: fix work ctrl_l key with num lock.

Summary: Need to check CTRL_L and ALT_L bits in ECORE_EVENT_MODIFIER

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2722
---
 src/bin/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index c9513f8..0860931 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -567,7 +567,7 @@ default_template_insert(app_data *ad)
 static Eina_Bool
 alt_func(app_data *ad, Ecore_Event_Key *event)
 {
-   if (event-modifiers != ECORE_EVENT_MODIFIER_ALT)
+   if (!(event-modifiers  ECORE_EVENT_MODIFIER_ALT))
  return EINA_FALSE;
 
//Full Edit View
@@ -601,7 +601,7 @@ alt_func(app_data *ad, Ecore_Event_Key *event)
 static Eina_Bool
 ctrl_func(app_data *ad, Ecore_Event_Key *event)
 {
-   if (event-modifiers != ECORE_EVENT_MODIFIER_CTRL)
+   if (!(event-modifiers  ECORE_EVENT_MODIFIER_CTRL))
  return EINA_FALSE;
 
//Save

-- 




[EGIT] [tools/enventor] master 01/01: Autopcomp: select first item in candidates list.

2015-06-21 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=708923f8ff9dd8eab7a5616f997a3c37e3a3e96e

commit 708923f8ff9dd8eab7a5616f997a3c37e3a3e96e
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 22 13:59:50 2015 +0900

Autopcomp: select first item in candidates list.

Reviewers: Hermet

Maniphest Tasks: T2495

Differential Revision: https://phab.enlightenment.org/D2719
---
 src/lib/auto_comp.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 08b0db1..17fe989 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -449,18 +449,17 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
 
Eina_List *l;
lexem *lexem_data;
-   Elm_Object_Item *it = NULL;
EINA_LIST_FOREACH(ad-lexem_ptr-nodes, l, lexem_data)
  {
 if (!strncmp(lexem_data-name, ad-queue, ad-queue_pos))
   {
- it = elm_list_item_append(ad-list, lexem_data-name,
+ elm_list_item_append(ad-list, lexem_data-name,
NULL, NULL, NULL, lexem_data);
  found = EINA_TRUE;
   }
  }
 
-   elm_list_item_selected_set(it, EINA_TRUE);
+   elm_list_item_selected_set(elm_list_first_item_get(ad-list), EINA_TRUE);
evas_object_smart_callback_add(ad-list, unfocused, anchor_unfocused_cb,
   ad);
evas_object_event_callback_add(ad-list, EVAS_CALLBACK_DEL, list_del_cb, 
ad);

-- 




[EGIT] [tools/enventor] master 01/01: Autocomplete: fix segfault, caused by '.'

2015-06-17 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=0dfeb6c1775eb4ce178bae4819dc1f6bfb4eef28

commit 0dfeb6c1775eb4ce178bae4819dc1f6bfb4eef28
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Wed Jun 17 17:02:58 2015 +0900

Autocomplete: fix segfault, caused by '.'

Summary:
When '.' typed without keyword, function context_lexem_thread
is returning NULL pointer to the lexem node. This cause segfault,
when the lexem node is used for prepare the candidates list
in candidate_list_show function.

Reviewers: Hermet

Maniphest Tasks: T2504

Differential Revision: https://phab.enlightenment.org/D2712
---
 src/lib/auto_comp.c | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index d7ee4a9..08b0db1 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -169,7 +169,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
}
 
  memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
- strncpy(stack[depth], help_ptr, help_end_ptr - help_ptr + 1);
+ strncpy(stack[depth], help_ptr, context_len);
  depth++;
   }
 if (*cur == '.')
@@ -199,12 +199,11 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
   {
  dot_lex = EINA_FALSE;
  memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
- depth--;
+ if (depth  0) depth--;
   }
 if (*cur == '}')
   {
  memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
- memset(stack[depth], 0x0, 40);
  if (depth  0) depth--;
   }
 cur++;
@@ -245,11 +244,11 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
 {
ctx_lexem_td *td = (ctx_lexem_td *)data;
 
-   td-ad-lexem_ptr = td-result;
+   td-ad-lexem_ptr = td-result ? td-result : (lexem *)td-ad-lexem_root;
if (td-ad-cntx_lexem_thread == thread)
  td-ad-cntx_lexem_thread = NULL;
 
-   if (td-list_show)
+   if (td-list_show  td-result)
  candidate_list_show(td-ad);
free(td);
 }
@@ -260,7 +259,7 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
ctx_lexem_td *td = (ctx_lexem_td *)data;
 
td-ad-lexem_ptr = td-result ? td-result : (lexem *)td-ad-lexem_root;
-   if (td-list_show)
+   if (td-list_show  td-result)
  candidate_list_show(td-ad);
if (td-ad-cntx_lexem_thread == thread)
  td-ad-cntx_lexem_thread = NULL;

-- 




[EGIT] [tools/enventor] master 01/01: Autocomplete: show list of the candidates after '.'.

2015-06-16 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=b4af164c8ae930d0f778187f39ba0ca2819171a5

commit b4af164c8ae930d0f778187f39ba0ca2819171a5
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 16 16:53:23 2015 +0900

Autocomplete: show list of the candidates after '.'.

Summary:
   In case, when user typed keyword and add '.' symbol, will be
   shown list of possible keywords.
   For example:
   rel1. - will be shown list: relative, offset, to, to_x, to_y.

   Depends D2648
   @fix  T2178

Reviewers: Hermet, Jaehyun

Subscribers: jpeg

Projects: #enventor

Maniphest Tasks: T2178

Differential Revision: https://phab.enlightenment.org/D2651
---
 src/lib/auto_comp.c | 75 +++--
 1 file changed, 67 insertions(+), 8 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 2c90043..d7ee4a9 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -7,6 +7,8 @@
 
 #define QUEUE_SIZE 20
 #define COMPSET_PAIR_MINIMUM 1
+#define MAX_CONTEXT_STACK 20
+#define MAX_KEYWORD_LENGHT 40
 
 typedef struct lexem_s
 {
@@ -41,6 +43,7 @@ typedef struct ctx_lexem_thread_data_s
int cur_pos;
lexem *result;
autocomp_data *ad;
+   Eina_Bool list_show;
 } ctx_lexem_td;
 
 static autocomp_data *g_ad = NULL;
@@ -49,6 +52,9 @@ static autocomp_data *g_ad = NULL;
 /* Internal method implementation*/
 /*/
 static Eet_Data_Descriptor *lex_desc = NULL;
+static void candidate_list_show(autocomp_data *ad);
+static void queue_reset(autocomp_data *ad);
+static void entry_anchor_off(autocomp_data *ad);
 
 static void
 eddc_init(void)
@@ -100,6 +106,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
ctx_lexem_td *td = (ctx_lexem_td *)data;
 
Eina_Bool find_flag = EINA_FALSE;
+   Eina_Bool dot_lex = EINA_FALSE;
Eina_List *l = NULL;
Eina_List *nodes = td-ad-lexem_root-nodes;
td-result = (lexem *)td-ad-lexem_root;
@@ -113,7 +120,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 
char *cur = utf8;
char *end = cur + cur_pos;
-   char stack[20][40];
+   char stack[MAX_CONTEXT_STACK][MAX_KEYWORD_LENGHT];
int depth = 0;
char *help_ptr = NULL;
char *help_end_ptr = NULL;
@@ -121,6 +128,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
const char *quot = QUOT_UTF8;
const int quot_len = QUOT_UTF8_LEN;
int quot_cnt = 0;
+   int context_len = 0;
 
while (cur  cur = end)
  {
@@ -153,12 +161,49 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
  if (help_ptr != utf8)
help_ptr++;
 
- memset(stack[depth], 0x0, 40);
+ context_len = help_end_ptr - help_ptr + 1;
+ if (context_len = MAX_KEYWORD_LENGHT)
+   {
+  cur++;
+  continue;
+   }
+
+ memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
  strncpy(stack[depth], help_ptr, help_end_ptr - help_ptr + 1);
  depth++;
   }
+if (*cur == '.')
+  {
+ Eina_Bool alpha_present = EINA_FALSE;
+ help_end_ptr = cur - 1;
+ for (help_ptr = help_end_ptr; help_ptr  isalnum(*help_ptr); 
help_ptr--)
+if (isalpha(*help_ptr)) alpha_present = EINA_TRUE;
+ if ((!alpha_present) || (!strncmp(help_ptr, quot, quot_len)))
+   {
+  cur++;
+  continue;
+   }
+ if (help_ptr != utf8) help_ptr++;
+ context_len = help_end_ptr - help_ptr + 1;
+ if (context_len = MAX_KEYWORD_LENGHT)
+   {
+  cur++;
+  continue;
+   }
+ memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
+ strncpy(stack[depth], help_ptr, context_len);
+ depth++;
+ dot_lex = EINA_TRUE;
+ }
+if ((*cur == ';')  dot_lex)
+  {
+ dot_lex = EINA_FALSE;
+ memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
+ depth--;
+  }
 if (*cur == '}')
   {
+ memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT);
  memset(stack[depth], 0x0, 40);
  if (depth  0) depth--;
   }
@@ -201,7 +246,11 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread 
*thread EINA_UNUSED)
ctx_lexem_td *td = (ctx_lexem_td *)data;
 
td-ad-lexem_ptr = td-result;
-   td-ad-cntx_lexem_thread = NULL;
+   if (td-ad-cntx_lexem_thread == thread)
+ td-ad-cntx_lexem_thread = NULL;
+
+   if (td-list_show)
+ candidate_list_show(td-ad);
free(td);
 }
 
@@ -210,13 +259,16

[EGIT] [tools/enventor] master 01/01: Parser: recognize comments in code.

2015-06-15 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=ee415fa135e706c603a384b009177ae0fb86b5d2

commit ee415fa135e706c603a384b009177ae0fb86b5d2
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 16 13:38:06 2015 +0900

Parser: recognize comments in code.

Summary:
For cur_state_get in parser module and context_lexem_get in
auto complete module add abiliti to recognize commented lines.

fix T2482

Reviewers: Hermet, Jaehyun, jpeg

Reviewed By: jpeg

Maniphest Tasks: T2482

Differential Revision: https://phab.enlightenment.org/D2677
---
 src/lib/auto_comp.c  | 19 +--
 src/lib/edc_parser.c | 23 ---
 2 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index d50cc72..2c90043 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -122,11 +122,26 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
const int quot_len = QUOT_UTF8_LEN;
int quot_cnt = 0;
 
-   while (cur = end)
+   while (cur  cur = end)
  {
 if ((cur!=end)  (!strncmp(cur, quot, quot_len)))
   quot_cnt++;
 
+//Check inside comment
+if (*cur == '/')
+  {
+ if (cur[1] == '/')
+   {
+  cur = strchr(cur, '\n');
+  continue;
+   }
+ else if (cur[1] == '*')
+   {
+  cur = strstr(cur, */);
+  continue;
+   }
+  }
+
 if (*cur == '{')
   {
  for (help_end_ptr = cur;
@@ -145,7 +160,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 if (*cur == '}')
   {
  memset(stack[depth], 0x0, 40);
- depth--;
+ if (depth  0) depth--;
   }
 cur++;
  }
diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 8078415..cb583e9 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -260,7 +260,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
td-group_name =  NULL;
td-state_name =  NULL;
 
-   while (p = end)
+   while (p  p = end)
  {
 //Skip  range
 if (!strncmp(p, quot, quot_len))
@@ -277,6 +277,20 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
  p++;
  continue;
   }
+//Check inside comment
+if (*p == '/')
+  {
+ if (p[1] == '/')
+   {
+ p = strchr(p, '\n');
+ continue;
+   }
+ else if (p[1] == '*')
+   {
+ p = strstr(p, */);
+ continue;
+   }
+  }
 
 //Check whether outside of description or part or group
 if ((*p == '}')  (p  end))
@@ -337,8 +351,11 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
  }
value++;
 }
-  value_convert = atof(value_buf);
-  free(value_buf);
+  if (value_buf)
+{
+  value_convert = atof(value_buf);
+  free(value_buf);
+}
   continue;
}
 //Check Group in

-- 




[EGIT] [tools/enventor] master 01/01: Autocomplete: make search context run in additional thread

2015-06-15 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=59d6ce59cd8ca45e23b52f99d65c4f757e316033

commit 59d6ce59cd8ca45e23b52f99d65c4f757e316033
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 16 13:28:59 2015 +0900

Autocomplete: make search context run in additional thread

Summary:
  Now parsing and actualizing context of current cursor position
  happens in additional thread.

  @fix T2467

Reviewers: Jaehyun, Hermet

Projects: #enventor

Maniphest Tasks: T2467

Differential Revision: https://phab.enlightenment.org/D2648
---
 src/lib/auto_comp.c | 93 -
 1 file changed, 77 insertions(+), 16 deletions(-)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 9ff099a..d50cc72 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -32,8 +32,17 @@ typedef struct autocomp_s
Eina_Bool anchor_visible : 1;
Eina_Bool initialized : 1;
Eina_Bool enabled : 1;
+   Ecore_Thread *cntx_lexem_thread;
 } autocomp_data;
 
+typedef struct ctx_lexem_thread_data_s
+{
+   char *utf8;
+   int cur_pos;
+   lexem *result;
+   autocomp_data *ad;
+} ctx_lexem_td;
+
 static autocomp_data *g_ad = NULL;
 
 /*/
@@ -85,22 +94,22 @@ init_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED)
autocomp_load(ad);
 }
 
-static lexem *
-context_lexem_get(autocomp_data *ad, Evas_Object *entry, int cur_pos)
+static void
+context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED)
 {
+   ctx_lexem_td *td = (ctx_lexem_td *)data;
 
Eina_Bool find_flag = EINA_FALSE;
Eina_List *l = NULL;
-   Eina_List *nodes = ad-lexem_root-nodes;
-   lexem *data = (lexem *)ad-lexem_root;
-   if (cur_pos = 1) return data;
+   Eina_List *nodes = td-ad-lexem_root-nodes;
+   td-result = (lexem *)td-ad-lexem_root;
+   int cur_pos = td-cur_pos;
+   if (cur_pos = 1) return;
 
-   const char *text = elm_entry_entry_get(entry);
-   if (!text) return data;
int i = 0;
 
-   char *utf8 = elm_entry_markup_to_utf8(text);
-   if (!utf8) return data;
+   if (!td-utf8) return;
+   char *utf8 = td-utf8;
 
char *cur = utf8;
char *end = cur + cur_pos;
@@ -143,24 +152,76 @@ context_lexem_get(autocomp_data *ad, Evas_Object *entry, 
int cur_pos)
 
free(utf8);
 
-   if (quot_cnt % 2) return NULL;
+   if (quot_cnt % 2)
+ {
+td-result = NULL;
+return;
+ }
 
for (i = 0; i  depth; i++)
  {
 find_flag = EINA_FALSE;
-EINA_LIST_FOREACH(nodes, l, data)
+EINA_LIST_FOREACH(nodes, l, td-result)
   {
- if (!strncmp(stack[i], data-name, strlen(data-name)))
+ if (!strncmp(stack[i], td-result-name, 
strlen(td-result-name)))
{
-  nodes = data-nodes;
+  nodes = td-result-nodes;
   l = NULL;
   find_flag = EINA_TRUE;
   break;
}
   }
-if (!find_flag) return NULL;
+if (!find_flag)
+  {
+ td-result = NULL;
+ return;
+  }
  }
-   return data;
+   return;
+}
+
+static void
+context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED)
+{
+   ctx_lexem_td *td = (ctx_lexem_td *)data;
+
+   td-ad-lexem_ptr = td-result;
+   td-ad-cntx_lexem_thread = NULL;
+   free(td);
+}
+
+static void
+context_lexem_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED)
+{
+   ctx_lexem_td *td = (ctx_lexem_td *)data;
+
+   td-ad-lexem_ptr = (lexem *)td-ad-lexem_root;
+   td-ad-cntx_lexem_thread = NULL;
+   free(td);
+}
+
+void
+context_lexem_get(autocomp_data *ad, Evas_Object *entry)
+{
+   const char *text = elm_entry_entry_get(entry);
+   if (!text)
+ {
+ad-lexem_ptr = (lexem *)ad-lexem_root;
+return;
+ }
+
+   if (ad-cntx_lexem_thread)
+  ecore_thread_cancel(ad-cntx_lexem_thread);
+
+   ctx_lexem_td *td = (ctx_lexem_td *)calloc(1, sizeof(ctx_lexem_td));
+   td-utf8 =  elm_entry_markup_to_utf8(text);
+   td-cur_pos = elm_entry_cursor_pos_get(entry);
+   td-ad = ad;
+   td-result = NULL;
+
+   ad-cntx_lexem_thread =  ecore_thread_run(context_lexem_thread_cb,
+ context_lexem_thread_end_cb,
+ context_lexem_thread_cancel_cb, 
td);
 }
 
 static void
@@ -176,7 +237,7 @@ context_changed(autocomp_data *ad, Evas_Object *edit)
 return;
  }
 
-   ad-lexem_ptr = context_lexem_get(ad, edit, cursor_position);
+   context_lexem_get(ad, edit);
 }
 
 static void

-- 




[EGIT] [tools/enventor] master 01/01: autocomp.src: fix mistakes and add dependencies.

2015-06-15 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=f931b5e06f677fbd6d3b8e82a6ffb1ec10354eaf

commit f931b5e06f677fbd6d3b8e82a6ffb1ec10354eaf
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 16 13:27:29 2015 +0900

autocomp.src: fix mistakes and add dependencies.

Summary:
Add suport blocks images and color_classes inside
collections block.
Fix position cursor for rel1 { to: ; }.
Add RAW as default type for sound samples.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2706
---
 data/autocomp/autocomp.src | 159 -
 1 file changed, 156 insertions(+), 3 deletions(-)

diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src
index 5c7d782..0a7beec 100644
--- a/data/autocomp/autocomp.src
+++ b/data/autocomp/autocomp.src
@@ -305,7 +305,88 @@ group lexem struct {
  group nodes list {
 group lexem struct {
group nodes list {
-}
+   }
+   group txt var_array {
+   count 1
+   value string string: name: \\;;
+   }
+   value cursor_offset int: 2;
+   value line_back int: 0;
+   value name string: name;
+}
+group lexem struct {
+   group nodes list {
+   }
+   group txt var_array {
+   count 1
+   value string string: color: ;;
+   }
+   value cursor_offset int: 1;
+   value line_back int: 0;
+   value name string: color;
+}
+group lexem struct {
+   group nodes list {
+   }
+   group txt var_array {
+   count 1
+   value string string: color2: ;;
+   }
+   value cursor_offset int: 1;
+   value line_back int: 0;
+   value name string: color2;
+}
+group lexem struct {
+   group nodes list {
+   }
+   group txt var_array {
+   count 1
+   value string string: color3: ;;
+   }
+   value cursor_offset int: 1;
+   value line_back int: 0;
+   value name string: color3;
+}
+ }
+ group txt var_array {
+ count 3;
+ value string string: color_class {br/;
+ value string string:br/;
+ value string string: };
+ }
+ value cursor_offset int: 2;
+ value line_back int: 1;
+ value name string: color_class;
+ }
+   }
+   group txt var_array {
+   count 3;
+   value string string: color_classes {br/;
+   value string string:br/;
+   value string string: };
+   }
+   value cursor_offset int: 2;
+   value line_back int: 1;
+   value name string: color_classes;
+}
+group lexem struct {
+   group nodes list {
+  group lexem struct {
+ group nodes list {
+ }
+ group txt var_array {
+ count 1;
+ value string string: image: \\ COMP;;
+ }
+ value cursor_offset int: 7
+ value line_back int: 0;
+ value name string: image;
+  }
+  group lexem struct {
+ group nodes list {
+group lexem struct {
+   group nodes list {
+   }
group txt var_array {
count 1;
value string string: name: \\;;
@@ -313,6 +394,78 @@ group lexem struct {
value cursor_offset int: 2;
value line_back int: 0;
value name string: name

[EGIT] [tools/enventor] master 01/01: Edc parser: correct detection of current description.

2015-06-14 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=31d07e5590fe748c06b295b44751622332e99bcb

commit 31d07e5590fe748c06b295b44751622332e99bcb
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 15 14:08:51 2015 +0900

Edc parser: correct detection of current description.

Summary:
Added check, if the entry cursor is go out of the description
block, will be returned NULL description_name.

Reviewers: Hermet

Differential Revision: https://phab.enlightenment.org/D2681
---
 src/lib/edc_parser.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index c4a932c..8078415 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -278,7 +278,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
  continue;
   }
 
-//Check whether outside of part or group
+//Check whether outside of description or part or group
 if ((*p == '}')  (p  end))
   {
  bracket--;
@@ -286,6 +286,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 
  if (bracket == 1) group_name = NULL;
  else if (bracket == 3) part_name = NULL;
+ else if (bracket == 4) description_name = NULL;
 
  continue;
   }
@@ -365,7 +366,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
  group_name = eina_stringshare_add_length(group_name, group_name_len);
if (description_name)
  description_name = eina_stringshare_add_length(description_name, 
description_name_len);
- 
+
td-part_name = part_name;
td-group_name = group_name;
td-state_name = description_name;

-- 




[EGIT] [tools/enventor] master 01/01: Build: delete auto_com_code.h from library sources.

2015-06-11 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=216763a925ec79aebbd95ba3ce47f70023acca54

commit 216763a925ec79aebbd95ba3ce47f70023acca54
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Wed Jun 10 18:10:31 2015 +

Build: delete auto_com_code.h from library sources.

This causd fail to run make dist command.
---
 src/lib/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index d9ec05c..d12f9dd 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -28,7 +28,6 @@ includesdir = $(includedir)/enventor-@ENVENTOR_VERSION_MAJOR@
 
 libenventor_la_SOURCES = \
enventor_private.h \
-   auto_comp_code.h \
template_code.h \
enventor_main.c \
enventor_smart.c \

-- 




[EGIT] [tools/enventor] master 01/01: Edj viewer: support SPACER part highlighting.

2015-06-09 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=e960a0df12f512b4ff10d3d06198ada31bfb1fed

commit e960a0df12f512b4ff10d3d06198ada31bfb1fed
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 9 10:00:39 2015 +

Edj viewer: support SPACER part highlighting.

In edje library SPACER doesnt have Evas_Object,
that represent part on canvas. Calculation position
and size of the SPACER highlight should be corrected.
For correcting geometry of highlight, uses current
state of scroller(that contain layout object)
and layout object.

@fix T2464
---
 src/lib/edj_viewer.c | 60 
 1 file changed, 56 insertions(+), 4 deletions(-)

diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index def547e..b7b739e 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -101,14 +101,52 @@ part_obj_geom_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj,
  }
 
Evas_Coord x, y, w , h;
-   evas_object_geometry_get(obj, x, y, w, h);
-   evas_object_move(part_highlight, x, y);
-   evas_object_resize(part_highlight, w, h);
+   if (edje_edit_part_type_get(vd-layout, vd-part_name) == 
EDJE_PART_TYPE_SPACER)
+ {
+Evas_Coord scroller_x, scroller_y;
+Evas_Coord scroller_region_x, scroller_region_y;
+Evas_Object *scroller_edje = elm_layout_edje_get(vd-scroller);
+// Clipper need, to clip the highlight object for the  part SPACER,
+// because position of the highlight object is calculated here,
+// not in edje. In case, when  the SPACER is placed outside of
+// scroller region view, the highlight should be hided.
+Evas_Object *clipper =
+   (Evas_Object *)edje_object_part_object_get(scroller_edje, 
clipper);
+
+elm_scroller_region_get(vd-scroller, scroller_region_x,
+scroller_region_y, NULL, NULL);
+evas_object_geometry_get(vd-scroller, scroller_x, scroller_y,
+ NULL, NULL);
+evas_object_smart_member_add(part_highlight, vd-scroller);
+edje_object_part_geometry_get(vd-layout, vd-part_name, x, y, w, 
h);
+
+evas_object_move(part_highlight, x + scroller_x - scroller_region_x + 
1,
+ y + scroller_y - scroller_region_y + 1);
+evas_object_resize(part_highlight, w, h);
+evas_object_clip_set(part_highlight, clipper);
+ }
+   else
+ {
+evas_object_geometry_get(obj, x, y, w, h);
+evas_object_move(part_highlight, x, y);
+evas_object_resize(part_highlight, w, h);
+ }
 
vd-part_highlight = part_highlight;
 }
 
 static void
+event_highlight_geom_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+   view_data *vd = (view_data *) data;
+   if (!vd) return;
+
+   if (edje_edit_part_type_get(vd-layout, vd-part_name) == 
EDJE_PART_TYPE_SPACER)
+ part_obj_geom_cb(vd, evas_object_evas_get(vd-layout), vd-part_obj, 
NULL);
+}
+
+static void
 part_obj_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
 
 void *event_info EINA_UNUSED)
@@ -281,6 +319,8 @@ event_layer_set(view_data *vd)
   layout_del_cb, rect);
evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_MOVE,
   rect_mouse_move_cb, vd);
+   evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_WHEEL,
+  event_highlight_geom_cb, vd);
vd-event_rect = rect;
 }
 
@@ -433,7 +473,6 @@ view_part_highlight_set(view_data *vd, const char 
*part_name)
 
Evas_Object *part_obj =
   (Evas_Object *) edje_object_part_object_get(vd-layout, part_name);
-   if (!part_obj) return;
 
//Delete the previous part callbacks
if (vd-part_obj)
@@ -452,6 +491,19 @@ view_part_highlight_set(view_data *vd, const char 
*part_name)
evas_object_event_callback_add(part_obj, EVAS_CALLBACK_DEL, part_obj_del_cb,
   vd);
 
+   evas_object_event_callback_del(vd-layout, EVAS_CALLBACK_RESIZE,
+  event_highlight_geom_cb);
+   evas_object_event_callback_del(vd-layout, EVAS_CALLBACK_MOVE,
+  event_highlight_geom_cb);
+
+   if (!part_obj)
+ {
+evas_object_event_callback_add(vd-layout, EVAS_CALLBACK_RESIZE,
+   event_highlight_geom_cb, vd);
+evas_object_event_callback_add(vd-layout, EVAS_CALLBACK_MOVE,
+   event_highlight_geom_cb, vd);
+ }
+
vd-part_obj = part_obj;
eina_stringshare_replace(vd-part_name, part_name);
part_obj_geom_cb(vd, evas_object_evas_get(vd-layout), part_obj, NULL);

-- 




[EGIT] [tools/enventor] master 01/01: Use eina_prefix for generation path to resource of enventor library.

2015-06-05 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=148ad69c3b05aeb882bb0e3fc421a911927ab890

commit 148ad69c3b05aeb882bb0e3fc421a911927ab890
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Fri Jun 5 11:25:30 2015 +

Use eina_prefix for generation path to resource of enventor library.

This way provide the ability to determine the runtime location
of the library.
Makes possible to use enventor library on the Windows platform.
---
 configure.ac| 3 ---
 src/lib/Makefile.am | 3 +--
 src/lib/enventor_main.c | 9 +++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac
index 4e5df10..890444a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,9 +110,6 @@ EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx])
 AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true])
 AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true])
 
-ENVENTOR_DEFINE= -DENVENTOR_THEME_PATH=\\\${datadir}/enventor/themes/\\\ 
-AC_SUBST([ENVENTOR_DEFINE])
-
 AC_CONFIG_FILES([
 Makefile
 src/Makefile
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 08ecafb..d9ec05c 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -14,8 +14,7 @@ AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\$(pkgdatadir)\ \
   -DPACKAGE_LIB_DIR=\$(libdir)\ \
   -I$(top_srcdir)/src/bin \
   -I$(top_srcdir)/src/include \
-  @ENVENTOR_CFLAGS@ \
-  @ENVENTOR_DEFINE@
+  @ENVENTOR_CFLAGS@
 
 lib_LTLIBRARIES = libenventor.la
 
diff --git a/src/lib/enventor_main.c b/src/lib/enventor_main.c
index ab62ca5..e558aeb 100644
--- a/src/lib/enventor_main.c
+++ b/src/lib/enventor_main.c
@@ -23,6 +23,7 @@ const char SIG_FOCUSED[] = focused;
 static int _enventor_init_count = 0;
 static int _enventor_log_dom = -1;
 static Ecore_Event_Handler *_key_down_handler = NULL;
+static Eina_Prefix *pfx = NULL;
 
 static Eina_Bool
 key_down_cb(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev)
@@ -94,9 +95,12 @@ enventor_init(int argc, char **argv)
 _enventor_log_dom = EINA_LOG_DOMAIN_GLOBAL;
  }
 
-   snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/enventor.edj,
-ENVENTOR_THEME_PATH);
+   pfx = eina_prefix_new(NULL, enventor_init, ENVENTOR, enventor, NULL,
+ PACKAGE_BIN_DIR, PACKAGE_LIB_DIR,
+ PACKAGE_DATA_DIR, PACKAGE_DATA_DIR);
 
+   snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/themes/enventor.edj,
+eina_prefix_data_get(pfx));
srand(time(NULL));
 
_key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
@@ -124,6 +128,7 @@ enventor_shutdown(void)
 eina_log_domain_unregister(_enventor_log_dom);
 _enventor_log_dom = -1;
  }
+   eina_prefix_free(pfx);
 
elm_shutdown();
eio_shutdown();

-- 




[EGIT] [tools/enventor] master 01/01: Update README and ABOUT files.

2015-06-03 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=512e12c970793cc948f06b401f7d78b87019ad46

commit 512e12c970793cc948f06b401f7d78b87019ad46
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 1 14:57:49 2015 +

Update README and ABOUT files.

Update information accordingly to usage Enventor in CLI.
---
 README   | 19 ++-
 data/about/ABOUT | 21 +++--
 2 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/README b/README
index c7f2c70..6f76720 100644
--- a/README
+++ b/README
@@ -74,20 +74,21 @@ Ctrl+End = Go to the Bottom line
 [Command Line Usage]
  
 enventor --help
-enventor [input file] [-to] [-id image path] [-sd sound path] [-fd font path] 
[-dd data path]
+enventor [input file] [output file] [--to] [--id image path] [--sd sound path] 
[--fd font path] [--dd data path]
  
 -input file = EDC file to open. If input file is skipped, Enventor will open a 
default template code with a temporary file.
--to = Open template menu when you launch Enventor
--id = image resources, that edc includes, path
--sd = sound resources, that edc includes, path
--fd = font resources, that edc includes, path
--dd = data resources, that edc includes, path
+-output file = EDJ file to store compiled file. If output file is skipped, 
Enventor will store binary file to the temporary directory.
+--to = Open template menu when you launch Enventor
+--id = image resources, that edc includes, path
+--sd = sound resources, that edc includes, path
+--fd = font resources, that edc includes, path
+--dd = data resources, that edc includes, path
  
 Examples of Enventor command line usage:
 $ enventor
-$ enventor -to
-$ enventor newfile.edc -to
-$ enventor sample.edc -id ./images -sd ./sounds
+$ enventor --to
+$ enventor newfile.edc --to
+$ enventor sample.edc output.edj --id ./images --sd ./sounds
  
  
 [Developers]
diff --git a/data/about/ABOUT b/data/about/ABOUT
index cba0bac..e78b9da 100644
--- a/data/about/ABOUT
+++ b/data/about/ABOUT
@@ -56,20 +56,21 @@ Ctrl+End = Go to the Bottom line
 font_size=11b[Command Line Usage]/b/font_size
  
 enventor --help
-enventor [input file] [-to] [-id image path] [-sd sound path] [-fd font path] 
[-dd data path]
+enventor [input file] [output file] [--to] [--id image path] [--sd sound path] 
[--fd font path] [--dd data path]
  
 -input file = EDC file to open. If input file is skipped, Enventor will open a 
default template code with a temporary file.
--to = Open template menu when you launch Enventor
--id = image resources, that edc includes, path
--sd = sound resources, that edc includes, path
--fd = font resources, that edc includes, path
--dd = data resources, that edc includes, path
-  
+-output file = EDJ file to store compiled file. If output file is skipped, 
Enventor will store binary file to the temporary directory.
+--to = Open template menu when you launch Enventor
+--id = image resources, that edc includes, path
+--sd = sound resources, that edc includes, path
+--fd = font resources, that edc includes, path
+--dd = data resources, that edc includes, path
+
 Examples of Enventor command line usage:
 $ enventor
-$ enventor -to
-$ enventor newfile.edc -to
-$ enventor sample.edc -id ./images -sd ./sounds
+$ enventor --to
+$ enventor newfile.edc --to
+$ enventor sample.edc output.edj --id ./images --sd ./sounds
  
  
 font_size=11b[Developers]/b/font_size

-- 




[EGIT] [tools/enventor] master 01/01: Command line arguments: fix ignoring resource pathes.

2015-06-03 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=a247010813ccd5e5b79db6eff81e47b0283b634e

commit a247010813ccd5e5b79db6eff81e47b0283b634e
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 1 13:24:21 2015 +

Command line arguments: fix ignoring resource pathes.

If application run with command like:
enventor --id /path/images --fd /path/fonts
Pathes will be used in application.

@fix
---
 src/bin/main.c | 52 +---
 1 file changed, 25 insertions(+), 27 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 91213bf..3ce2919 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -364,33 +364,31 @@ defaults:
 sprintf(edc_path, %s, (const char *)tmp_path);
 eina_tmpstr_del(tmp_path);
  }
-   else
- {
-char *s = NULL;
-EINA_LIST_FREE(id, s)
-  {
- *img_path = eina_list_append(*img_path, eina_stringshare_add(s));
- free(s);
-  }
-id = NULL;
-EINA_LIST_FREE(sd, s)
-  {
- *snd_path = eina_list_append(*snd_path, eina_stringshare_add(s));
- free(s);
-  }
-sd = NULL;
-EINA_LIST_FREE(fd, s)
-  {
- *fnt_path = eina_list_append(*fnt_path, eina_stringshare_add(s));
- free(s);
-  }
-fd = NULL;
-EINA_LIST_FREE(dd, s)
-  {
- *dat_path = eina_list_append(*dat_path, eina_stringshare_add(s));
- free(s);
-  }
- }
+
+ char *s = NULL;
+ EINA_LIST_FREE(id, s)
+   {
+  *img_path = eina_list_append(*img_path, eina_stringshare_add(s));
+  free(s);
+   }
+ id = NULL;
+ EINA_LIST_FREE(sd, s)
+   {
+  *snd_path = eina_list_append(*snd_path, eina_stringshare_add(s));
+  free(s);
+   }
+ sd = NULL;
+ EINA_LIST_FREE(fd, s)
+   {
+  *fnt_path = eina_list_append(*fnt_path, eina_stringshare_add(s));
+  free(s);
+   }
+ fd = NULL;
+ EINA_LIST_FREE(dd, s)
+   {
+  *dat_path = eina_list_append(*dat_path, eina_stringshare_add(s));
+  free(s);
+   }
 
ecore_getopt_list_free(id);
ecore_getopt_list_free(fd);

-- 




[EGIT] [tools/enventor] master 01/01: Support version fo the enventor config file.

2015-06-03 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=af56cdb083f23d514dc975dd64862514594aea8b

commit af56cdb083f23d514dc975dd64862514594aea8b
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Tue Jun 2 10:03:25 2015 +

Support version fo the enventor config file.

Config data is checked on the versiob of config file.
if the version is lower than current, then don't read
the config data and instead open with default.
On enventor close, config file is rewrited with new data.
---
 src/bin/config_data.c | 13 -
 src/include/common.h  |  2 ++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 4d0ae3e..a0ec542 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -18,6 +18,7 @@ typedef struct config_s
 
Eina_List *syntax_color_list;
 
+   unsigned int version;
float font_scale;
double view_scale;
double console_size;
@@ -133,7 +134,7 @@ config_load(void)
  }
else EINA_LOG_WARN(Cannot load a config file \%s\, buf);
 
-   //failed to load config file. set default values.
+   //failed to load config file, create default structure.
if (!cd)
  {
 cd = calloc(1, sizeof(config_data));
@@ -142,6 +143,14 @@ config_load(void)
  EINA_LOG_ERR(Failed to allocate Memory!);
  return NULL;
   }
+ }
+   // loaded config is not compatile with current version of Enventor
+   if (cd-version  ENVENTOR_CONFIG_VERSION)
+ {
+cd-edc_img_path_list = NULL;
+cd-edc_snd_path_list = NULL;
+cd-edc_fnt_path_list = NULL;
+cd-edc_dat_path_list = NULL;
 cd-font_scale = 1.0f;
 cd-view_scale = 1;
 cd-console_size = DEFAULT_CONSOLE_SIZE;
@@ -154,6 +163,7 @@ config_load(void)
 cd-console = EINA_TRUE;
 cd-auto_complete = EINA_TRUE;
 cd-view_size_configurable = EINA_FALSE;
+cd-version = ENVENTOR_CONFIG_VERSION;
  }
 
g_cd = cd;
@@ -218,6 +228,7 @@ eddc_init(void)
edc_dat_path_list, edc_dat_path_list);
EET_DATA_DESCRIPTOR_ADD_LIST_STRING(edd_base, config_data,
syntax_color_list, syntax_color_list);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, version, version, 
EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, font_name, font_name,
  EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, font_style, 
font_style,
diff --git a/src/include/common.h b/src/include/common.h
index 699b9dc..b68d5cf 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -55,6 +55,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n
 #define REL2_X 0.75f
 #define REL2_Y 0.75f
 
+#define ENVENTOR_CONFIG_VERSION 1
+
 #define ENVENTOR_BETA_API_SUPPORT 1
 #include Enventor.h
 #include assert.h

-- 




[EGIT] [tools/enventor] master 01/01: Fix generation path to theme, for enventor library.

2015-06-03 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=d6d69eb6c7cdd9f4dc6a11013b947c9aaa8d0b6c

commit d6d69eb6c7cdd9f4dc6a11013b947c9aaa8d0b6c
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Wed Jun 3 18:55:34 2015 +

Fix generation path to theme, for enventor library.

In case when enventor library initialized by another application,
function elm_app_data_get_dir() return data dir of the parent
application.
Now on precompilation stage (automake) path to enventor theme
will be added to internal usage. It make no dependencies from
parent application.

@fix T1285
---
 configure.ac| 3 +++
 src/lib/Makefile.am | 3 ++-
 src/lib/enventor_main.c | 4 ++--
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index 890444a..4e5df10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,6 +110,9 @@ EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx])
 AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true])
 AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true])
 
+ENVENTOR_DEFINE= -DENVENTOR_THEME_PATH=\\\${datadir}/enventor/themes/\\\ 
+AC_SUBST([ENVENTOR_DEFINE])
+
 AC_CONFIG_FILES([
 Makefile
 src/Makefile
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index d9ec05c..08ecafb 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -14,7 +14,8 @@ AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\$(pkgdatadir)\ \
   -DPACKAGE_LIB_DIR=\$(libdir)\ \
   -I$(top_srcdir)/src/bin \
   -I$(top_srcdir)/src/include \
-  @ENVENTOR_CFLAGS@
+  @ENVENTOR_CFLAGS@ \
+  @ENVENTOR_DEFINE@
 
 lib_LTLIBRARIES = libenventor.la
 
diff --git a/src/lib/enventor_main.c b/src/lib/enventor_main.c
index ab690a1..ab62ca5 100644
--- a/src/lib/enventor_main.c
+++ b/src/lib/enventor_main.c
@@ -94,8 +94,8 @@ enventor_init(int argc, char **argv)
 _enventor_log_dom = EINA_LOG_DOMAIN_GLOBAL;
  }
 
-   snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/themes/enventor.edj,
-elm_app_data_dir_get());
+   snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/enventor.edj,
+ENVENTOR_THEME_PATH);
 
srand(time(NULL));
 

-- 




[EGIT] [tools/enventor] master 01/01: Save dialog: support save edj files.

2015-06-03 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=59a5faf6e0c59257fc0daddd1539f2a0d747eb24

commit 59a5faf6e0c59257fc0daddd1539f2a0d747eb24
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Mon Jun 1 16:30:14 2015 +

Save dialog: support save edj files.

In case when user types filename.edj binary file will be
compiled into that place, which chosen in fileselector.
---
 src/bin/menu.c | 55 +++
 1 file changed, 35 insertions(+), 20 deletions(-)

diff --git a/src/bin/menu.c b/src/bin/menu.c
index f8b7eab..6fe0365 100644
--- a/src/bin/menu.c
+++ b/src/bin/menu.c
@@ -392,6 +392,8 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, 
void *event_info)
 {
menu_data *md = data;
const char *selected = event_info;
+   Eina_Bool is_edc = EINA_FALSE;
+   Eina_Bool is_edj = EINA_FALSE;
 
eina_stringshare_refplace((md-last_accessed_path),
 elm_fileselector_path_get(obj));
@@ -402,13 +404,14 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, 
void *event_info)
 return;
  }
 
-   //Filter to read only edc extension file.
-   char *ext = strrchr(selected, '.');
-   if (!ext || strcmp(ext, .edc))
+   //Filter to read only edc or edj extensions file.
+   is_edc = eina_str_has_extension(selected, edc);
+   is_edj = eina_str_has_extension(selected, edj);
+   if (!is_edc  !is_edj)
  {
 elm_object_part_text_set(md-fileselector_layout,
  elm.text.msg,
- Support only .edc file.);
+ Support only .edc or .edj file.);
 elm_object_signal_emit(md-fileselector_layout,
elm,action,msg,show, );
 return;
@@ -424,24 +427,36 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, 
void *event_info)
 return;
  }
 
-   config_edc_path_set(selected);
-
-   Eina_List *list = eina_list_append(NULL, config_edj_path_get());
-   enventor_object_path_set(md-enventor, ENVENTOR_OUT_EDJ, list);
-   eina_list_free(list);
-
-   if (!enventor_object_save(md-enventor, selected))
+   if (is_edc)
  {
-char buf[PATH_MAX];
-snprintf(buf, sizeof(buf), Failed to save: %s., selected);
-elm_object_part_text_set(md-fileselector_layout,
- elm.text.msg, buf);
-elm_object_signal_emit(md-fileselector_layout,
-   elm,action,msg,show, );
-return;
+config_edc_path_set(selected);
+Eina_List *list = eina_list_append(NULL, config_edj_path_get());
+enventor_object_path_set(md-enventor, ENVENTOR_OUT_EDJ, list);
+eina_list_free(list);
+if (!enventor_object_save(md-enventor, selected))
+  {
+ char buf[PATH_MAX];
+ snprintf(buf, sizeof(buf), Failed to save: %s., selected);
+ elm_object_part_text_set(md-fileselector_layout,
+  elm.text.msg, buf);
+ elm_object_signal_emit(md-fileselector_layout,
+elm,action,msg,show, );
+ return;
+  }
+enventor_object_file_set(md-enventor, selected);
+base_title_set(selected);
  }
-   enventor_object_file_set(md-enventor, selected);
-   base_title_set(selected);
+   else if (is_edj)
+ {
+Eina_List *edj_pathes = NULL;
+edj_pathes = eina_list_append(edj_pathes, selected);
+enventor_object_path_set(md-enventor, ENVENTOR_OUT_EDJ, edj_pathes);
+enventor_object_modified_set(md-enventor, EINA_TRUE);
+enventor_object_save(md-enventor, config_edc_path_get());
+eina_list_free(edj_pathes);
+
+ }
+
file_mgr_reset();
fileselector_close(md);
menu_close(md);

-- 




[EGIT] [tools/enventor] master 01/01: edj viewer: update live view for different groups.

2015-05-28 Thread Mykyta Biliavskyi
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=9ac6faaa9e8200acc9cf39cf48335bf82509dd33

commit 9ac6faaa9e8200acc9cf39cf48335bf82509dd33
Author: Mykyta Biliavskyi m.biliavs...@samsung.com
Date:   Thu May 28 09:23:11 2015 +

edj viewer: update live view for different groups.

This happens, because edj file is rewrited and
descriptor lost. Reload all groups each time when
edj file rewrited.

@fix T2162
---
 src/lib/edj_mgr.c  | 12 
 src/lib/edj_viewer.c   |  6 ++
 src/lib/enventor_private.h |  2 ++
 src/lib/enventor_smart.c   |  4 +++-
 4 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c
index 9059c5c..055eb38 100644
--- a/src/lib/edj_mgr.c
+++ b/src/lib/edj_mgr.c
@@ -238,3 +238,15 @@ edj_mgr_view_scale_get(void)
return em-view_scale;
 }
 
+void
+edj_mgr_all_views_reload(void)
+{
+   edj_mgr *em = g_em;
+   if (!em) return;
+   Eina_List *l = NULL;
+   edj_data *edj = NULL;
+
+   EINA_LIST_FOREACH(em-edjs, l, edj)
+ view_obj_need_reload_set(edj-vd);
+}
+
diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index c9c8ad7..def547e 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -389,6 +389,12 @@ view_obj_get(view_data *vd)
 }
 
 void
+view_obj_need_reload_set(view_data *vd)
+{
+   vd-edj_reload_need = EINA_TRUE;
+}
+
+void
 view_program_run(view_data *vd, const char *program)
 {
if (!vd) return;
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index f030e4a..34fa7ac 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -160,6 +160,7 @@ Eina_Bool edj_mgr_reload_need_get(void);
 void edj_mgr_clear(void);
 void edj_mgr_view_scale_set(double scale);
 double edj_mgr_view_scale_get(void);
+void edj_mgr_all_views_reload(void);
 
 
 /* redoundo */
@@ -193,6 +194,7 @@ Eina_List *view_part_states_list_get(view_data *vd, const 
char *part);
 Eina_List *view_program_targets_get(view_data *vd, const char *prog);
 void view_string_list_free(Eina_List *list);
 void view_part_state_set(view_data *vd, const char *part, const char 
*description, const double state);
+void view_obj_need_reload_set(view_data *vd);
 
 
 /* template */
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index a23dc97..43a92dc 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -81,7 +81,9 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, 
double state_value,
 {
Enventor_Object_Data *pd = data;
static Eina_Stringshare *prev_part_name = NULL;
-   
+
+   edj_mgr_all_views_reload();
+
if (pd-group_name != group_name)
  {
 view_data *vd = edj_mgr_view_get(group_name);

-- 




  1   2   >