viking

webkit based web browser for Enlightenment
Log | Files | Refs | LICENSE

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:
Msrc/Makefile | 7+++++--
Msrc/commands.c | 12++----------
Asrc/default.edc | 162+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/main.c | 1+
Msrc/utilities.c | 7+++----
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);