commit 93f8894624a89695420ae9d0acdce927dd702d5d
parent 46eb505e828c658fdad2c8be3582ec7902b35088
Author: Kyle Milz <kmilz@ucalgary.ca>
Date: Sun, 14 Oct 2012 12:26:15 -0600
use an edje theme file
instead of hard coding the layout properties use an edje theme. default
taken from the elementary examples and hacked in to work here.
Diffstat:
5 files changed, 173 insertions(+), 16 deletions(-)
diff --git a/src/Makefile b/src/Makefile
@@ -8,7 +8,7 @@ MAN5 = evirc.5
# Used libraries to get needed CFLAGS and LDFLAGS form pkg-config
LIBS = elementary ewebkit2
# Files to removo by clean target
-CLEAN = $(TARGET) $(OBJ) $(DEPS) javascript.h viking_state.c viking_state.h
+CLEAN = $(TARGET) $(OBJ) $(DEPS) javascript.h viking_state.c viking_state.h default.edj
# Files to install by install target or remove by uninstall target
MANINSTALL = $(addprefix $(MANDIR)/man1/,$(MAN1)) \
$(addprefix $(MANDIR)/man5/,$(MAN5))
@@ -46,7 +46,7 @@ all: $(TARGET)
-include $(DEPS)
-main.o: javascript.h viking_state.c
+main.o: javascript.h viking_state.c default.edj
javascript.h: hinting.js
perl ./js-merge-helper.pl
@@ -54,6 +54,9 @@ viking_state.c: viking_state.geneet
geneet.py viking_state.geneet
sed -i -e "s/hist_new()/hist_new(void)/" viking_state.h;
+default.edj: default.edc
+ edje_cc default.edc
+
$(TARGET): $(OBJ)
$(CC) $^ $(LDFLAGS) -o $@
diff --git a/src/commands.c b/src/commands.c
@@ -1299,9 +1299,7 @@ search_tag(const Arg * a, void *data)
Eina_Bool
list(const Arg *arg, void *data)
{
- char *url, *count_str;
Window_Data *ad = data;
-
Eina_List *l;
Buffer_Data *td;
Evas_Object *row, *label;
@@ -1331,20 +1329,14 @@ list(const Arg *arg, void *data)
label = elm_label_add(ad->win);
evas_object_size_hint_align_set(label, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(row, label);
- url = strdup_printf("<font=Monospace font_size=11 backing=on backing_color=#FFF>%s</font>",
- ewk_view_url_get(td->view));
- elm_object_text_set(label, url);
- free(url);
+ elm_object_text_set(label, ewk_view_url_get(td->view));
evas_object_show(label);
label = elm_label_add(ad->win);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(label, 1.0, EVAS_HINT_FILL);
elm_box_pack_end(row, label);
- count_str = strdup_printf("<font=Monospace font_size=11 backing=on backing_color=#FFF>%s</font>",
- ewk_view_title_get(td->view));
- elm_object_text_set(label, count_str);
- free(count_str);
+ elm_object_text_set(label, ewk_view_title_get(td->view));
evas_object_show(label);
}
diff --git a/src/default.edc b/src/default.edc
@@ -0,0 +1,162 @@
+collections {
+ group { name: "elm/label/base/chucknorris";
+ alias: "elm/label/base/default";
+ parts {
+ part { name: "base";
+ type: RECT;
+ mouse_events: 1;
+ description { state: "disabled" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ visible: 0;
+ align: 0.0 0.5;
+ rel1.offset: 4 4;
+ rel2.offset: 3 -5;
+ rel2.relative: 0.0 1.0;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ rel2.offset: 4 -5;
+ }
+ description { state: "icononly" 0.0;
+ inherit: "default" 0.0;
+ fixed: 0 0;
+ visible: 1;
+ align: 0.5 0.5;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ rel2.offset: -5 -5;
+ rel2.relative: 1.0 1.0;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 0;
+ rel1.to_x: "elm.swallow.content";
+ rel1.relative: 1.0 0.0;
+ color: 0 0 0 255;
+ text {
+ font: "Monospace";
+ size: 11;
+ min: 0 0;
+ text_class: "button";
+ }
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ text.min: 1 1;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ text.min: 1 1;
+ }
+ }
+ programs {
+ program { name: "button_unclick";
+ signal: "mouse,up,1";
+ source: "base";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ program { name: "button_click";
+ signal: "mouse,down,1";
+ source: "base";
+ }
+ program { name: "text_show";
+ signal: "elm,state,text,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.content", st, 30, vl);
+ if (!strcmp(st, "icononly"))
+ set_state(PART:"elm.swallow.content", "visible", 0.0);
+ set_state(PART:"elm.text", "visible", 0.0);
+ }
+ }
+ program { name: "text_hide";
+ signal: "elm,state,text,hidden";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.content", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.swallow.content", "icononly", 0.0);
+ set_state(PART:"elm.text", "default", 0.0);
+ }
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.swallow.content", "visible", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "icononly", 0.0);
+ }
+ }
+ program { name: "icon_hide";
+ signal: "elm,state,icon,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.content";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "base";
+ after: "disable_text";
+ }
+ program { name: "disable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.text", "disabled_visible", 0.0);
+ else
+ set_state(PART:"elm.text", "disabled", 0.0);
+ }
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ after: "enable_text";
+ }
+ program { name: "enable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ set_state(PART:"elm.text", "visible", 0.0);
+ else
+ set_state(PART:"elm.text", "default", 0.0);
+ }
+ }
+ }
+ }
+}
diff --git a/src/main.c b/src/main.c
@@ -329,6 +329,7 @@ elm_main(int argc, char *argv[])
make_searchengines_list(searchengines, LENGTH(searchengines));
+ elm_theme_overlay_add(NULL, "./default.edj");
setup_modkeys(ad);
ad->config = config;
ad->history = hist;
diff --git a/src/utilities.c b/src/utilities.c
@@ -902,11 +902,8 @@ update_state(Window_Data *wd)
status = eina_strbuf_new();
- eina_strbuf_append(status,
- "<font=Monospace font_size=12 color=#FFF backing=on backing_color=#000>");
-
+ eina_strbuf_append(status, "<font=Monospace font_size=11 color=#FFF>");
eina_strbuf_append_printf(status, "%.0d", wd->count);
-
if (wd->current_modkey)
eina_strbuf_append(status, &wd->current_modkey);
@@ -938,6 +935,7 @@ update_state(Window_Data *wd)
*/
+ elm_object_style_set(wd->status_state, "slide_bounce");
elm_object_text_set(wd->status_state, eina_strbuf_string_get(status));
int state_width, window_width;
@@ -1006,6 +1004,7 @@ update_url(const char *uri, Window_Data *wd)
evas_object_geometry_get(wd->win, NULL, NULL, &window_width, NULL);
elm_label_wrap_width_set(wd->status_url, window_width - state_width);
+ elm_object_style_set(wd->status_url, "slide_bounce");
elm_object_text_set(wd->status_url, eina_strbuf_string_get(url_buf));
eina_strbuf_free(url_buf);