Make the typebuf work nicely
This commit is contained in:
parent
7d78a932d0
commit
30f6ebaa0c
@ -4,6 +4,7 @@ group {
|
|||||||
part {
|
part {
|
||||||
name: "background";
|
name: "background";
|
||||||
mouse_events: 0;
|
mouse_events: 0;
|
||||||
|
|
||||||
description {
|
description {
|
||||||
state: "default" 0.0;
|
state: "default" 0.0;
|
||||||
min: 255 255;
|
min: 255 255;
|
||||||
@ -28,6 +29,7 @@ group {
|
|||||||
part {
|
part {
|
||||||
name: "filelist_container";
|
name: "filelist_container";
|
||||||
type: IMAGE;
|
type: IMAGE;
|
||||||
|
|
||||||
description {
|
description {
|
||||||
state: "default" 0.0;
|
state: "default" 0.0;
|
||||||
min: 245 245;
|
min: 245 245;
|
||||||
@ -56,10 +58,10 @@ group {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
part {
|
part {
|
||||||
name: "filelist";
|
name: "filelist";
|
||||||
type: SWALLOW;
|
type: SWALLOW;
|
||||||
|
|
||||||
description {
|
description {
|
||||||
state: "default" 0.0;
|
state: "default" 0.0;
|
||||||
|
|
||||||
@ -75,24 +77,113 @@ group {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
programs {
|
part {
|
||||||
program {
|
name: "filelist_overlay";
|
||||||
name: "filelist,focus,in";
|
type: IMAGE;
|
||||||
signal: "ecdb,filelist,in";
|
mouse_events: 1;
|
||||||
source: "ecdb";
|
repeat_events: 1;
|
||||||
action: STATE_SET "focused" 0.0;
|
|
||||||
target: "filelist_container";
|
description {
|
||||||
transition: LINEAR 0.5;
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 0;
|
||||||
|
|
||||||
|
rel1 {
|
||||||
|
to: "filelist";
|
||||||
|
}
|
||||||
|
|
||||||
|
rel2 {
|
||||||
|
to: "filelist";
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
normal: "text_overlay.png";
|
||||||
|
border: 7 7 7 7;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
program {
|
description {
|
||||||
name: "filelist,focus,out";
|
state: "active" 0.0;
|
||||||
signal: "ecdb,filelist,out";
|
inherit: "default" 0.0;
|
||||||
source: "ecdb";
|
color: 255 255 255 100;
|
||||||
action: STATE_SET "default" 0.0;
|
}
|
||||||
target: "filelist_container";
|
}
|
||||||
transition: LINEAR 0.5;
|
|
||||||
|
part {
|
||||||
|
name: "filelist_overlay_text";
|
||||||
|
type: TEXT;
|
||||||
|
effect: NONE;
|
||||||
|
mouse_events: 1;
|
||||||
|
repeat_events: 1;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
color: 255 255 255 0;
|
||||||
|
|
||||||
|
rel1 {
|
||||||
|
to: "filelist_overlay";
|
||||||
|
relative: 0.0 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
rel2 {
|
||||||
|
to: "filelist_overlay";
|
||||||
|
relative: 1.0 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
text: "";
|
||||||
|
font: "ecdb/default";
|
||||||
|
size: 24;
|
||||||
|
min: 1 1;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "active" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
programs {
|
||||||
|
program {
|
||||||
|
name: "filelist,focus,in";
|
||||||
|
signal: "ecdb,filelist,in";
|
||||||
|
source: "ecdb";
|
||||||
|
action: STATE_SET "focused" 0.0;
|
||||||
|
target: "filelist_container";
|
||||||
|
transition: LINEAR 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "filelist,focus,out";
|
||||||
|
signal: "ecdb,filelist,out";
|
||||||
|
source: "ecdb";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "filelist_container";
|
||||||
|
transition: LINEAR 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "filelist_overlay,activate";
|
||||||
|
action: STATE_SET "active" 0.0;
|
||||||
|
signal: "ecdb,filelist_overlay,activate";
|
||||||
|
source: "ecdb";
|
||||||
|
target: "filelist_overlay";
|
||||||
|
target: "filelist_overlay_text";
|
||||||
|
transition: DECELERATE 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "filelist_overlay,deactivate";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
signal: "ecdb,filelist_overlay,deactivate";
|
||||||
|
source: "ecdb";
|
||||||
|
target: "filelist_overlay";
|
||||||
|
target: "filelist_overlay_text";
|
||||||
|
transition: DECELERATE 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
images {
|
images {
|
||||||
image: "background.png" COMP;
|
image: "background.png" COMP;
|
||||||
image: "focus.png" COMP;
|
image: "focus.png" COMP;
|
||||||
|
image: "text_overlay.png" COMP;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include <Ecore_Data.h>
|
#include <Ecore_Data.h>
|
||||||
#include <Ecore_File.h>
|
#include <Ecore_File.h>
|
||||||
#include <Ecore_Evas.h>
|
#include <Ecore_Evas.h>
|
||||||
|
#include <Ecore_Str.h>
|
||||||
#include <Efreet_Mime.h>
|
#include <Efreet_Mime.h>
|
||||||
#include <Efreet.h>
|
#include <Efreet.h>
|
||||||
#include <Ewl.h>
|
#include <Ewl.h>
|
||||||
|
@ -33,7 +33,6 @@ _cb_filelist_mouse_in(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
|
|||||||
{
|
{
|
||||||
Evas_Object *gui = data;
|
Evas_Object *gui = data;
|
||||||
edje_object_signal_emit(gui, "ecdb,filelist,in", "ecdb");
|
edje_object_signal_emit(gui, "ecdb,filelist,in", "ecdb");
|
||||||
printf("Emitting signal\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -42,22 +41,125 @@ _cb_filelist_mouse_out(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
|
|||||||
{
|
{
|
||||||
Evas_Object *gui = data;
|
Evas_Object *gui = data;
|
||||||
edje_object_signal_emit(gui, "ecdb,filelist,out", "ecdb");
|
edje_object_signal_emit(gui, "ecdb,filelist,out", "ecdb");
|
||||||
printf("Emitting signal\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_cb_filelist_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__,
|
_cb_filelist_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *eo,
|
||||||
Evas_Object *eo, void *ev_data __UNUSED__)
|
void *ev_data __UNUSED__)
|
||||||
{
|
{
|
||||||
|
Evas_Object *gui = data;
|
||||||
evas_object_focus_set(eo, TRUE);
|
evas_object_focus_set(eo, TRUE);
|
||||||
|
|
||||||
|
edje_object_signal_emit(gui, "ecdb,filelist_overlay,deactivate",
|
||||||
|
"ecdb");
|
||||||
|
edje_object_part_text_set(gui, "filelist_overlay_text", "");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_cb_filelist_key_down(void *data, Evas *e, Evas_Object *eo, void *ev_data)
|
_cb_filelist_key_down(void *data, Evas *e __UNUSED__,
|
||||||
|
Evas_Object *eo __UNUSED__, void *ev_data)
|
||||||
{
|
{
|
||||||
Evas_Event_Key_Down *ek = ev_data;
|
Evas_Event_Key_Down *ek = ev_data;
|
||||||
|
Evas_Object *gui = data;
|
||||||
|
|
||||||
printf("key pressed: %s\n", ek->key);
|
if (!strcmp(ek->key, "Escape"))
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(gui,
|
||||||
|
"ecdb,filelist_overlay,deactivate", "ecdb");
|
||||||
|
edje_object_part_text_set(gui, "filelist_overlay_text", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (!strcmp(ek->key, "Return"))
|
||||||
|
{
|
||||||
|
Ewl_Widget *fl;
|
||||||
|
Ewl_Filelist_Filter *filter;
|
||||||
|
const char *ext;
|
||||||
|
|
||||||
|
if (!(ext = edje_object_part_text_get(gui,
|
||||||
|
"filelist_overlay_text")))
|
||||||
|
return;
|
||||||
|
|
||||||
|
fl = ewl_widget_name_find("main_filelist");
|
||||||
|
filter = ewl_filelist_filter_get(EWL_FILELIST(fl));
|
||||||
|
if (!filter)
|
||||||
|
filter = calloc(sizeof(Ewl_Filelist_Filter), 1);
|
||||||
|
|
||||||
|
if (filter->extension)
|
||||||
|
{
|
||||||
|
if (strcmp(filter->extension, ext))
|
||||||
|
{
|
||||||
|
FREE(filter->extension);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
filter->extension = strdup(ext);
|
||||||
|
ewl_filelist_filter_set(EWL_FILELIST(fl), filter);
|
||||||
|
ewl_filelist_refresh(EWL_FILELIST(fl));
|
||||||
|
|
||||||
|
edje_object_signal_emit(gui,
|
||||||
|
"ecdb,filelist_overlay,deactivate", "ecdb");
|
||||||
|
edje_object_part_text_set(gui, "filelist_overlay_text", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (!strcmp(ek->key, "BackSpace"))
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
const char *t;
|
||||||
|
char *text;
|
||||||
|
|
||||||
|
t = edje_object_part_text_get(gui, "filelist_overlay_text");
|
||||||
|
text = (t) ? (strdup(t)) : NULL;
|
||||||
|
|
||||||
|
if ((!text) || (!*text)) return;
|
||||||
|
|
||||||
|
len = strlen(text);
|
||||||
|
text = realloc(text, len);
|
||||||
|
text[len - 1] = '\0';
|
||||||
|
|
||||||
|
if (len == 1)
|
||||||
|
edje_object_signal_emit(gui,
|
||||||
|
"ecdb,filelist_overlay,deactivate",
|
||||||
|
"ecdb");
|
||||||
|
edje_object_part_text_set(gui, "filelist_overlay_text", text);
|
||||||
|
FREE(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
const char *t, *append;
|
||||||
|
char *text;
|
||||||
|
|
||||||
|
t = edje_object_part_text_get(gui, "filelist_overlay_text");
|
||||||
|
text = (t) ? (strdup(t)) : NULL;
|
||||||
|
|
||||||
|
if ((ek->string) && (*ek->string) && (!ek->string[1]))
|
||||||
|
append = ek->string;
|
||||||
|
else if ((ek->keyname) && (*ek->keyname) && (!ek->key[1]))
|
||||||
|
append = ek->keyname;
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!text)
|
||||||
|
text = strdup(append);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
len = strlen(text) + 2;
|
||||||
|
text = realloc(text, len);
|
||||||
|
ecore_strlcat(text, append, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
edje_object_signal_emit(gui, "ecdb,filelist_overlay,activate",
|
||||||
|
"ecdb");
|
||||||
|
edje_object_part_text_set(gui, "filelist_overlay_text", text);
|
||||||
|
|
||||||
|
free(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* And timer! */
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -108,6 +210,7 @@ ecdb_create_main_gui(void)
|
|||||||
ewl_widget_show(embed);
|
ewl_widget_show(embed);
|
||||||
|
|
||||||
filelist = ewl_filelist_new();
|
filelist = ewl_filelist_new();
|
||||||
|
ewl_widget_name_set(EWL_WIDGET(filelist), "main_filelist");
|
||||||
ewl_container_child_append(EWL_CONTAINER(embed), filelist);
|
ewl_container_child_append(EWL_CONTAINER(embed), filelist);
|
||||||
ewl_filelist_directory_set(EWL_FILELIST(filelist), getenv("HOME"));
|
ewl_filelist_directory_set(EWL_FILELIST(filelist), getenv("HOME"));
|
||||||
ewl_callback_append(filelist, EWL_CALLBACK_MOUSE_IN,
|
ewl_callback_append(filelist, EWL_CALLBACK_MOUSE_IN,
|
||||||
@ -160,6 +263,8 @@ ecdb_set_main_theme(const char *theme_name, const char *group)
|
|||||||
PACKAGE_DATA_DIR"/themes/default/edj");
|
PACKAGE_DATA_DIR"/themes/default/edj");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
evas_font_path_append(ecore_evas_get(em->main_win_ee),
|
||||||
|
PACKAGE_DATA_DIR"/font");
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (!edje_object_file_set(gui, theme_name, group))
|
else if (!edje_object_file_set(gui, theme_name, group))
|
||||||
|
Loading…
Reference in New Issue
Block a user