Compare commits
2 Commits
master
...
devs/nikaw
Author | SHA1 | Date |
---|---|---|
Mykyta Biliavskyi | 8ce488e506 | |
Mykyta Biliavskyi | 3a03096269 |
|
@ -19,6 +19,7 @@ images {
|
||||||
image: "live_text.png" COMP;
|
image: "live_text.png" COMP;
|
||||||
image: "live_textblock.png" COMP;
|
image: "live_textblock.png" COMP;
|
||||||
image: "live_edit.png" COMP;
|
image: "live_edit.png" COMP;
|
||||||
|
image: "share.png" COMP;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ICON_GROUP(_group_name, _image_path) \
|
#define ICON_GROUP(_group_name, _image_path) \
|
||||||
|
@ -32,6 +33,7 @@ images {
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
ICON_GROUP("goto", "goto.png")
|
ICON_GROUP("goto", "goto.png")
|
||||||
|
ICON_GROUP("share", "share.png")
|
||||||
ICON_GROUP("menu", "menu.png")
|
ICON_GROUP("menu", "menu.png")
|
||||||
ICON_GROUP("find", "find.png")
|
ICON_GROUP("find", "find.png")
|
||||||
ICON_GROUP("highlight", "highlight.png")
|
ICON_GROUP("highlight", "highlight.png")
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 241 B |
|
@ -1284,6 +1284,438 @@ group { name: "search_layout";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group { name: "share_success_layout";
|
||||||
|
parts {
|
||||||
|
part { name: "base";
|
||||||
|
type: SPACER;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
min: 300 140;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "left_top_padding";
|
||||||
|
type: SPACER;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
rel1.relative: 0 0;
|
||||||
|
rel2.relative: 0 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
align: 0 0;
|
||||||
|
min: 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.text.link";
|
||||||
|
type: TEXT;
|
||||||
|
scale: 1;
|
||||||
|
effect: SHADOW BOTTOM;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
align: 0 0;
|
||||||
|
rel1.to: "left_top_padding";
|
||||||
|
rel2.to: "left_top_padding";
|
||||||
|
rel1.relative: 1 1;
|
||||||
|
rel2.relative: 1 1;
|
||||||
|
text {
|
||||||
|
text: "Link: ";
|
||||||
|
font: FN;
|
||||||
|
size: 11;
|
||||||
|
align: 0 0;
|
||||||
|
min: 1 1;
|
||||||
|
ellipsis: -1;
|
||||||
|
}
|
||||||
|
color: 255 255 255 255;
|
||||||
|
color3: 0 0 0 128;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
swallow { "elm.swallow.copy";
|
||||||
|
desc {
|
||||||
|
align: 1 0.5;
|
||||||
|
rel1.relative: 1 0;
|
||||||
|
rel1.to_x: "base";
|
||||||
|
rel1.to_y: "elm.text.link";
|
||||||
|
rel2.relative: 0 1;
|
||||||
|
rel2.to_x: "right.pad";
|
||||||
|
rel2.to_y: "elm.text.link";
|
||||||
|
aspect: 1 1;
|
||||||
|
aspect_preference: BOTH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "spec.pad";
|
||||||
|
desc {
|
||||||
|
align: 1 0.5;
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "elm.swallow.copy";
|
||||||
|
rel2.relative: 0 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
swallow { "elm.swallow.open";
|
||||||
|
desc {
|
||||||
|
align: 1 0.5;
|
||||||
|
rel1.relative: 0 0;
|
||||||
|
rel1.to_x: "base";
|
||||||
|
rel1.to_y: "elm.swallow.copy";
|
||||||
|
rel2.relative: 0 1;
|
||||||
|
rel2.to_x: "spec.pad";
|
||||||
|
rel2.to_y: "elm.swallow.copy";
|
||||||
|
aspect: 1 1;
|
||||||
|
aspect_preference: BOTH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacer { "text.pad";
|
||||||
|
desc {
|
||||||
|
fixed: 1 1;
|
||||||
|
max: 5 5;
|
||||||
|
align: 0 0;
|
||||||
|
rel1.to: "elm.text.link";
|
||||||
|
rel2.to: "base";
|
||||||
|
rel1.relative: 0 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacer { "right.pad";
|
||||||
|
desc {
|
||||||
|
fixed: 1 1;
|
||||||
|
max: 5 5;
|
||||||
|
align: 1 0;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "elm.swallow.entry";
|
||||||
|
type: SWALLOW;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 0 1;
|
||||||
|
rel2.relative: 0 0;
|
||||||
|
rel1.to: "text.pad";
|
||||||
|
rel2.to_y: "button.pad";
|
||||||
|
rel2.to_x: "right.pad";
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacer { "button.pad";
|
||||||
|
desc { "default";
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
fixed: 1 1;
|
||||||
|
align: 0.5 1;
|
||||||
|
rel2 {
|
||||||
|
to_x: "base";
|
||||||
|
to_y: "elm.swallow.close";
|
||||||
|
relative: 1 0;
|
||||||
|
}
|
||||||
|
rel1.to: "base";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
swallow { "elm.swallow.close";
|
||||||
|
scale: 1;
|
||||||
|
desc { "default";
|
||||||
|
align: 0.5 1;
|
||||||
|
rel1 {
|
||||||
|
relative: 0 1;
|
||||||
|
to: "base";
|
||||||
|
}
|
||||||
|
rel2.relative: 1 0;
|
||||||
|
rel2.to_x: "base";
|
||||||
|
rel2.to_y: "bottom.pad";
|
||||||
|
min: 75 25;
|
||||||
|
max: 75 25;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "bottom.pad"
|
||||||
|
desc {
|
||||||
|
align: 1 1;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group { name: "share_error_layout";
|
||||||
|
parts {
|
||||||
|
part { name: "base";
|
||||||
|
type: SPACER;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
min: 300 140;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "left_top_padding";
|
||||||
|
type: SPACER;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
rel1.relative: 0 0;
|
||||||
|
rel2.relative: 0 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
align: 0 0;
|
||||||
|
min: 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.text.share";
|
||||||
|
type: TEXT;
|
||||||
|
scale: 1;
|
||||||
|
effect: SHADOW BOTTOM;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
align: 0 0;
|
||||||
|
rel1.to: "left_top_padding";
|
||||||
|
rel2.to: "left_top_padding";
|
||||||
|
rel1.relative: 1 1;
|
||||||
|
rel2.relative: 1 1;
|
||||||
|
text {
|
||||||
|
text: "Error message: ";
|
||||||
|
font: FN;
|
||||||
|
size: 11;
|
||||||
|
align: 0 0;
|
||||||
|
min: 1 1;
|
||||||
|
ellipsis: -1;
|
||||||
|
}
|
||||||
|
color: 255 255 255 255;
|
||||||
|
color3: 0 0 0 128;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "text.pad";
|
||||||
|
desc {
|
||||||
|
fixed: 1 1;
|
||||||
|
max: 5 5;
|
||||||
|
align: 0 0;
|
||||||
|
rel1.to: "elm.text.share";
|
||||||
|
rel2.to: "base";
|
||||||
|
rel1.relative: 0 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacer { "right.pad";
|
||||||
|
desc {
|
||||||
|
fixed: 1 1;
|
||||||
|
max: 5 5;
|
||||||
|
align: 1 0;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "elm.swallow.entry";
|
||||||
|
type: SWALLOW;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 0 1;
|
||||||
|
min: 50 50;
|
||||||
|
rel2.relative: 0 0;
|
||||||
|
rel1.to: "text.pad";
|
||||||
|
rel2.to_y: "button.pad";
|
||||||
|
rel2.to_x: "right.pad";
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacer { "button.pad";
|
||||||
|
desc { "default";
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
fixed: 1 1;
|
||||||
|
align: 0.5 1;
|
||||||
|
rel2 {
|
||||||
|
to_x: "base";
|
||||||
|
to_y: "elm.swallow.share";
|
||||||
|
relative: 1 0;
|
||||||
|
}
|
||||||
|
rel1.to: "base";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.swallow.share";
|
||||||
|
type: SWALLOW;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2 {
|
||||||
|
relative: 0 0;
|
||||||
|
to_y: "bottom.pad";
|
||||||
|
to_x: "button.pad";
|
||||||
|
}
|
||||||
|
rel1.to: "base";
|
||||||
|
min: 75 25;
|
||||||
|
max: 75 25;
|
||||||
|
align: 1 1;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
swallow { "elm.swallow.cancel";
|
||||||
|
scale: 1;
|
||||||
|
desc { "default";
|
||||||
|
align: 0 1;
|
||||||
|
rel1 {
|
||||||
|
relative: 1 1;
|
||||||
|
to: "button.pad";
|
||||||
|
}
|
||||||
|
rel2.relative: 1 0;
|
||||||
|
rel2.to_x: "base";
|
||||||
|
rel2.to_y: "bottom.pad";
|
||||||
|
min: 75 25;
|
||||||
|
max: 75 25;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "bottom.pad"
|
||||||
|
desc {
|
||||||
|
align: 1 1;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group { name: "share_base_layout";
|
||||||
|
parts {
|
||||||
|
part { name: "base";
|
||||||
|
type: SPACER;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
min: 300 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "left_top_padding";
|
||||||
|
type: SPACER;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 0 0;
|
||||||
|
rel2.relative: 0 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
align: 0 0;
|
||||||
|
min: 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.text.share";
|
||||||
|
type: TEXT;
|
||||||
|
scale: 1;
|
||||||
|
effect: SHADOW BOTTOM;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
align: 0 0;
|
||||||
|
rel1.to: "left_top_padding";
|
||||||
|
rel2.to: "left_top_padding";
|
||||||
|
rel1.relative: 1 1;
|
||||||
|
rel2.relative: 1 1;
|
||||||
|
text {
|
||||||
|
text: "Tags: ";
|
||||||
|
font: FN;
|
||||||
|
size: 11;
|
||||||
|
align: 0 0;
|
||||||
|
min: 1 1;
|
||||||
|
ellipsis: -1;
|
||||||
|
}
|
||||||
|
color: 255 255 255 255;
|
||||||
|
color3: 0 0 0 128;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.swallow.tags";
|
||||||
|
type: SWALLOW;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 1 0;
|
||||||
|
rel2.relative: 1 0;
|
||||||
|
rel1.to: "elm.text.share";
|
||||||
|
rel2.to_y: "button.pad";
|
||||||
|
rel2.offset: -5 -1;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.text.msg";
|
||||||
|
type: TEXT;
|
||||||
|
scale: 1;
|
||||||
|
effect: GLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
align: 0 0;
|
||||||
|
rel1.to: "elm.text.share";
|
||||||
|
rel2.to: "elm.text.share";
|
||||||
|
rel1.relative: 0 1;
|
||||||
|
rel2.relative: 0 1;
|
||||||
|
rel1.offset: 0 10;
|
||||||
|
text {
|
||||||
|
font: FN;
|
||||||
|
size: 10;
|
||||||
|
align: 0 0.5;
|
||||||
|
}
|
||||||
|
color: 51 153 255 255;
|
||||||
|
color3: 51 153 255 18;
|
||||||
|
color2: 51 153 255 24;
|
||||||
|
min: 180 30;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spacer { "button.pad";
|
||||||
|
desc { "default";
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
fixed: 1 1;
|
||||||
|
align: 0.5 1;
|
||||||
|
rel2 {
|
||||||
|
to_y: "elm.swallow.share";
|
||||||
|
relative: 1 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
part { name: "elm.swallow.share";
|
||||||
|
type: SWALLOW;
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2 {
|
||||||
|
relative: 0 0;
|
||||||
|
to_x: "button.pad";
|
||||||
|
to_y: "bottom.pad";
|
||||||
|
}
|
||||||
|
min: 75 25;
|
||||||
|
max: 75 25;
|
||||||
|
align: 1 1;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
swallow { "elm.swallow.cancel";
|
||||||
|
scale: 1;
|
||||||
|
desc { "default";
|
||||||
|
align: 0 1;
|
||||||
|
rel1 {
|
||||||
|
relative: 1 1;
|
||||||
|
to: "button.pad";
|
||||||
|
}
|
||||||
|
rel2.relative: 1 0;
|
||||||
|
rel2.to_y: "bottom.pad";
|
||||||
|
min: 75 25;
|
||||||
|
max: 75 25;
|
||||||
|
fixed: 1 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "bottom.pad"
|
||||||
|
desc {
|
||||||
|
align: 1 1;
|
||||||
|
rel1.to: "base";
|
||||||
|
rel2.to: "base";
|
||||||
|
min: 5 5;
|
||||||
|
max: 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "live_edit_layout";
|
group { name: "live_edit_layout";
|
||||||
data.item: "ctrl_size" "8";
|
data.item: "ctrl_size" "8";
|
||||||
parts {
|
parts {
|
||||||
|
|
|
@ -26,7 +26,8 @@ enventor_SOURCES = \
|
||||||
globals.c \
|
globals.c \
|
||||||
live_edit.c \
|
live_edit.c \
|
||||||
console.c \
|
console.c \
|
||||||
file_mgr.c
|
file_mgr.c \
|
||||||
|
share.c
|
||||||
|
|
||||||
enventor_LDADD = \
|
enventor_LDADD = \
|
||||||
$(top_builddir)/src/lib/libenventor.la \
|
$(top_builddir)/src/lib/libenventor.la \
|
||||||
|
|
|
@ -125,6 +125,7 @@ goto_open(Evas_Object *enventor)
|
||||||
}
|
}
|
||||||
|
|
||||||
search_close();
|
search_close();
|
||||||
|
share_close();
|
||||||
|
|
||||||
gd = calloc(1, sizeof(goto_data));
|
gd = calloc(1, sizeof(goto_data));
|
||||||
if (!gd)
|
if (!gd)
|
||||||
|
|
|
@ -325,6 +325,7 @@ search_open(Evas_Object *enventor)
|
||||||
}
|
}
|
||||||
|
|
||||||
goto_close();
|
goto_close();
|
||||||
|
share_close();
|
||||||
|
|
||||||
sd = calloc(1, sizeof(search_data));
|
sd = calloc(1, sizeof(search_data));
|
||||||
if (!sd)
|
if (!sd)
|
||||||
|
|
|
@ -0,0 +1,315 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
typedef struct share_s
|
||||||
|
{
|
||||||
|
Evas_Object *win;
|
||||||
|
Evas_Object *base_layout;
|
||||||
|
Evas_Object *tags_entry;
|
||||||
|
Evas_Object *enventor;
|
||||||
|
Evas_Object *error_layout;
|
||||||
|
Evas_Object *success_layout;
|
||||||
|
Evas_Object *link_entry;
|
||||||
|
Evas_Object *error_entry;
|
||||||
|
Eina_Stringshare *link;
|
||||||
|
Ecore_Event_Handler *event_data_handler;
|
||||||
|
Ecore_Event_Handler *event_error_handler;
|
||||||
|
Eina_Stringshare *cmd;
|
||||||
|
} share_data;
|
||||||
|
|
||||||
|
static share_data *g_sd = NULL;
|
||||||
|
static Evas_Coord win_w = DEFAULT_SHARE_WIN_W;
|
||||||
|
static Evas_Coord win_h = DEFAULT_SHARE_WIN_H;
|
||||||
|
|
||||||
|
void
|
||||||
|
share_close(void)
|
||||||
|
{
|
||||||
|
share_data *sd = g_sd;
|
||||||
|
if (!sd) return;
|
||||||
|
eina_stringshare_del(sd->cmd);
|
||||||
|
evas_object_del(g_sd->win);
|
||||||
|
evas_object_del(sd->error_layout);
|
||||||
|
evas_object_del(sd->base_layout);
|
||||||
|
|
||||||
|
free(sd);
|
||||||
|
g_sd = NULL;
|
||||||
|
|
||||||
|
// tools_share_update(enventor, EINA_FALSE);
|
||||||
|
}
|
||||||
|
static Eina_Bool
|
||||||
|
exe_event_data_cb(void *data EINA_UNUSED, int type EINA_UNUSED, void *event_info);
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
exe_event_error_cb(void *data, int type EINA_UNUSED, void *event_info);
|
||||||
|
|
||||||
|
static const char*
|
||||||
|
share_cmd_get(Evas_Object *enventor, Evas_Object *tags_entry)
|
||||||
|
{
|
||||||
|
const char *edj_path = NULL;
|
||||||
|
const Eina_List *pathes = NULL;
|
||||||
|
|
||||||
|
pathes = enventor_object_path_get(enventor, ENVENTOR_PATH_TYPE_EDJ);
|
||||||
|
edj_path = eina_list_data_get(pathes);
|
||||||
|
|
||||||
|
if (!edj_path) return NULL;
|
||||||
|
|
||||||
|
const char *tags = elm_entry_entry_get(tags_entry);
|
||||||
|
|
||||||
|
return eina_stringshare_printf("edjshare %s %s", edj_path, tags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
share(void)
|
||||||
|
{
|
||||||
|
share_data *sd = g_sd;
|
||||||
|
|
||||||
|
sd->cmd = share_cmd_get(sd->enventor, sd->tags_entry);
|
||||||
|
printf("Command is: %s\n", sd->cmd);
|
||||||
|
|
||||||
|
sd->event_data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
|
||||||
|
exe_event_data_cb, sd);
|
||||||
|
sd->event_error_handler = ecore_event_handler_add(ECORE_EXE_EVENT_ERROR,
|
||||||
|
exe_event_error_cb, sd);
|
||||||
|
|
||||||
|
Ecore_Exe_Flags flags = (ECORE_EXE_PIPE_READ_LINE_BUFFERED |
|
||||||
|
ECORE_EXE_PIPE_READ |
|
||||||
|
ECORE_EXE_PIPE_ERROR_LINE_BUFFERED |
|
||||||
|
ECORE_EXE_PIPE_ERROR);
|
||||||
|
ecore_exe_pipe_run(sd->cmd, flags, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
share_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
share();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
win_delete_request_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
|
void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
share_close();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
cancel_btn_cb(void *data EINA_UNUSED,
|
||||||
|
Evas_Object *obj EINA_UNUSED,
|
||||||
|
void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
share_close();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
link_copy_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ei EINA_UNUSED)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
link_open_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ei EINA_UNUSED)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
exe_event_data_cb(void *data EINA_UNUSED,
|
||||||
|
int type EINA_UNUSED,
|
||||||
|
void *event_info)
|
||||||
|
{
|
||||||
|
Ecore_Exe_Event_Data *ev = event_info;
|
||||||
|
Ecore_Exe_Event_Data_Line *el = NULL;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
share_data *sd = (share_data *)data;
|
||||||
|
evas_object_hide(sd->base_layout);
|
||||||
|
evas_object_hide(sd->error_layout);
|
||||||
|
|
||||||
|
if (!sd->success_layout)
|
||||||
|
{
|
||||||
|
sd->success_layout = elm_layout_add(sd->win);
|
||||||
|
elm_layout_file_set(sd->success_layout, EDJE_PATH, "share_success_layout");
|
||||||
|
evas_object_size_hint_weight_set(sd->success_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_show(sd->success_layout);
|
||||||
|
elm_win_resize_object_add(sd->win, sd->success_layout);
|
||||||
|
|
||||||
|
sd->link_entry = elm_entry_add(sd->success_layout);
|
||||||
|
elm_entry_scrollable_set(sd->link_entry, EINA_TRUE);
|
||||||
|
elm_entry_editable_set(sd->link_entry, EINA_FALSE);
|
||||||
|
elm_entry_single_line_set(sd->link_entry, EINA_FALSE);
|
||||||
|
evas_object_size_hint_weight_set(sd->link_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set (sd->link_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(sd->link_entry);
|
||||||
|
elm_object_part_content_set(sd->success_layout, "elm.swallow.entry", sd->link_entry);
|
||||||
|
|
||||||
|
Evas_Object *button = elm_button_add(sd->success_layout);
|
||||||
|
elm_object_text_set(button, "Close");
|
||||||
|
elm_object_part_content_set(sd->success_layout, "elm.swallow.close", button);
|
||||||
|
evas_object_smart_callback_add(button, "clicked", cancel_btn_cb, sd);
|
||||||
|
evas_object_show(button);
|
||||||
|
|
||||||
|
Evas_Object *icon = elm_icon_add(sd->success_layout);
|
||||||
|
elm_image_file_set(icon, EDJE_PATH, "save");
|
||||||
|
evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||||
|
button = elm_button_add(sd->success_layout);
|
||||||
|
elm_object_part_content_set(button, "icon", icon);
|
||||||
|
evas_object_smart_callback_add(button, "clicked", link_copy_cb, sd);
|
||||||
|
evas_object_show(button);
|
||||||
|
elm_object_part_content_set(sd->success_layout, "elm.swallow.copy", button);
|
||||||
|
elm_object_disabled_set(button, EINA_TRUE);
|
||||||
|
|
||||||
|
icon = elm_icon_add(sd->success_layout);
|
||||||
|
elm_image_file_set(icon, EDJE_PATH, "goto");
|
||||||
|
evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||||
|
button = elm_button_add(sd->success_layout);
|
||||||
|
elm_object_part_content_set(button, "icon", icon);
|
||||||
|
evas_object_smart_callback_add(button, "clicked", link_open_cb, sd);
|
||||||
|
evas_object_show(button);
|
||||||
|
elm_object_part_content_set(sd->success_layout, "elm.swallow.open", button);
|
||||||
|
elm_object_disabled_set(button, EINA_TRUE);
|
||||||
|
|
||||||
|
}
|
||||||
|
evas_object_show(sd->success_layout);
|
||||||
|
elm_entry_entry_insert(sd->link_entry, "");
|
||||||
|
|
||||||
|
fprintf(stdout, "Data:\n");
|
||||||
|
for (el = ev->lines; el && el->line; el++, i++)
|
||||||
|
{
|
||||||
|
elm_entry_entry_append(sd->link_entry, el->line);
|
||||||
|
elm_entry_entry_append(sd->link_entry, "\n");
|
||||||
|
fprintf(stdout, "\t%s\n", el->line);
|
||||||
|
}
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
exe_event_error_cb(void *data, int type EINA_UNUSED, void *event_info)
|
||||||
|
{
|
||||||
|
share_data *sd = (share_data *) data;
|
||||||
|
Ecore_Exe_Event_Data *ev = event_info;
|
||||||
|
Ecore_Exe_Event_Data_Line *el = NULL;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
evas_object_hide(sd->base_layout);
|
||||||
|
evas_object_hide(sd->success_layout);
|
||||||
|
|
||||||
|
if (!sd->error_layout)
|
||||||
|
{
|
||||||
|
sd->error_layout = elm_layout_add(sd->win);
|
||||||
|
evas_object_hide(sd->base_layout);
|
||||||
|
elm_layout_file_set(sd->error_layout, EDJE_PATH, "share_error_layout");
|
||||||
|
evas_object_size_hint_weight_set(sd->error_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_show(sd->error_layout);
|
||||||
|
elm_win_resize_object_add(sd->win, sd->error_layout);
|
||||||
|
|
||||||
|
sd->error_entry = elm_entry_add(sd->error_layout);
|
||||||
|
elm_entry_single_line_set(sd->error_entry, EINA_FALSE);
|
||||||
|
elm_entry_scrollable_set(sd->error_entry, EINA_TRUE);
|
||||||
|
elm_entry_editable_set(sd->error_entry, EINA_FALSE);
|
||||||
|
evas_object_size_hint_weight_set(sd->error_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set (sd->error_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(sd->error_entry);
|
||||||
|
elm_object_part_content_set(sd->error_layout, "elm.swallow.entry", sd->error_entry);
|
||||||
|
|
||||||
|
Evas_Object *button = elm_button_add(sd->error_layout);
|
||||||
|
elm_object_text_set(button, "Cancel");
|
||||||
|
elm_object_part_content_set(sd->error_layout, "elm.swallow.cancel", button);
|
||||||
|
evas_object_smart_callback_add(button, "clicked", cancel_btn_cb, sd);
|
||||||
|
evas_object_show(button);
|
||||||
|
|
||||||
|
button = elm_button_add(sd->error_layout);
|
||||||
|
elm_object_text_set(button, "Try again");
|
||||||
|
elm_object_part_content_set(sd->error_layout, "elm.swallow.share", button);
|
||||||
|
evas_object_smart_callback_add(button, "clicked", share_btn_cb, sd);
|
||||||
|
evas_object_show(button);
|
||||||
|
}
|
||||||
|
|
||||||
|
evas_object_show(sd->error_layout);
|
||||||
|
elm_entry_entry_set(sd->error_entry, "");
|
||||||
|
|
||||||
|
fprintf(stdout, "Error:\n");
|
||||||
|
for (el = ev->lines; el && el->line; el++, i++)
|
||||||
|
{
|
||||||
|
if (strcmp(el->line, "FAIL"))
|
||||||
|
{
|
||||||
|
elm_entry_entry_append(sd->error_entry, el->line);
|
||||||
|
elm_entry_entry_append(sd->error_entry, "</br>");
|
||||||
|
}
|
||||||
|
fprintf(stdout, "\t%s\n", el->line);
|
||||||
|
}
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
share_open(Evas_Object *enventor)
|
||||||
|
{
|
||||||
|
share_data *sd = g_sd;
|
||||||
|
|
||||||
|
if (sd)
|
||||||
|
{
|
||||||
|
share_close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
search_close();
|
||||||
|
goto_close();
|
||||||
|
|
||||||
|
sd = calloc(1, sizeof(share_data));
|
||||||
|
if (!sd)
|
||||||
|
{
|
||||||
|
EINA_LOG_ERR("Failed to allocate Memory!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
g_sd = sd;
|
||||||
|
|
||||||
|
Evas_Object *win = elm_win_add(base_win_get(), "Share edj file",
|
||||||
|
ELM_WIN_DIALOG_BASIC);
|
||||||
|
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||||
|
elm_win_title_set(win, "Share edj file");
|
||||||
|
evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb, sd);
|
||||||
|
|
||||||
|
Evas_Object *bg = elm_bg_add(win);
|
||||||
|
evas_object_show(bg);
|
||||||
|
elm_win_resize_object_add(win, bg);
|
||||||
|
|
||||||
|
Evas_Object *base_layout = elm_layout_add(win);
|
||||||
|
elm_layout_file_set(base_layout, EDJE_PATH, "share_base_layout");
|
||||||
|
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_show(base_layout);
|
||||||
|
elm_win_resize_object_add(win, base_layout);
|
||||||
|
|
||||||
|
Evas_Object *tags_entry = elm_entry_add(base_layout);
|
||||||
|
elm_entry_single_line_set(tags_entry, EINA_FALSE);
|
||||||
|
elm_entry_scrollable_set(tags_entry, EINA_TRUE);
|
||||||
|
evas_object_size_hint_weight_set(tags_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(tags_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
elm_object_part_content_set(base_layout, "elm.swallow.tags", tags_entry);
|
||||||
|
evas_object_show(tags_entry);
|
||||||
|
elm_object_focus_set(tags_entry, EINA_TRUE);
|
||||||
|
elm_entry_entry_insert(tags_entry, "enventor");
|
||||||
|
|
||||||
|
Evas_Object *button_share = elm_button_add(base_layout);
|
||||||
|
elm_object_text_set(button_share, "Share");
|
||||||
|
evas_object_smart_callback_add(button_share, "clicked", share_btn_cb, sd);
|
||||||
|
evas_object_show(button_share);
|
||||||
|
elm_object_part_content_set(base_layout, "elm.swallow.share", button_share);
|
||||||
|
|
||||||
|
Evas_Object *button_cancel = elm_button_add(base_layout);
|
||||||
|
elm_object_text_set(button_cancel, "Cancel");
|
||||||
|
evas_object_smart_callback_add(button_cancel, "clicked", cancel_btn_cb, sd);
|
||||||
|
evas_object_show(button_cancel);
|
||||||
|
elm_object_part_content_set(base_layout, "elm.swallow.cancel", button_cancel);
|
||||||
|
|
||||||
|
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_show(win);
|
||||||
|
|
||||||
|
sd->win = win;
|
||||||
|
sd->base_layout = base_layout;
|
||||||
|
sd->tags_entry = tags_entry;
|
||||||
|
sd->enventor = enventor;
|
||||||
|
}
|
||||||
|
|
|
@ -82,6 +82,15 @@ goto_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||||
else goto_open(enventor);
|
else goto_open(enventor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
share_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||||
|
void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Evas_Object *enventor = data;
|
||||||
|
live_edit_cancel();
|
||||||
|
share_open(enventor);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
console_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
console_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
|
@ -232,6 +241,13 @@ tools_init(Evas_Object *parent, Evas_Object *enventor)
|
||||||
elm_box_pack_end(box, btn);
|
elm_box_pack_end(box, btn);
|
||||||
td->lines_btn = btn;
|
td->lines_btn = btn;
|
||||||
|
|
||||||
|
btn = tools_btn_create(box, "share", "Share edj file",
|
||||||
|
share_cb, enventor);
|
||||||
|
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
|
||||||
|
elm_box_pack_end(box, btn);
|
||||||
|
td->lines_btn = btn;
|
||||||
|
|
||||||
sp = elm_separator_add(box);
|
sp = elm_separator_add(box);
|
||||||
evas_object_show(sp);
|
evas_object_show(sp);
|
||||||
elm_box_pack_end(box, sp);
|
elm_box_pack_end(box, sp);
|
||||||
|
|
|
@ -15,4 +15,5 @@ EXTRA_DIST = common.h \
|
||||||
search.h \
|
search.h \
|
||||||
live_edit.h \
|
live_edit.h \
|
||||||
console.h \
|
console.h \
|
||||||
file_mgr.h
|
file_mgr.h \
|
||||||
|
share.h
|
||||||
|
|
|
@ -79,5 +79,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
|
||||||
#include "live_edit.h"
|
#include "live_edit.h"
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
#include "file_mgr.h"
|
#include "file_mgr.h"
|
||||||
|
#include "share.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#define DEFAULT_SHARE_WIN_W 330
|
||||||
|
#define DEFAULT_SHARE_WIN_H 140
|
||||||
|
|
||||||
|
|
||||||
|
void share_open(Evas_Object *enventor);
|
||||||
|
void share_close(void);
|
Loading…
Reference in New Issue