okra pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=16c05faabdc1c54bef2e43b5ac0d5f295f3f9bf7

commit 16c05faabdc1c54bef2e43b5ac0d5f295f3f9bf7
Author: Stephen 'Okra' Houston <smhousto...@gmail.com>
Date:   Fri Jun 9 14:21:12 2017 -0500

    Luncher: Allow the size of previews to be configurable.
---
 src/modules/luncher/bar.c     | 20 +++++++++++++++++---
 src/modules/luncher/config.c  | 40 +++++++++++++++++++++++++++++++++++++++-
 src/modules/luncher/grid.c    |  3 +++
 src/modules/luncher/luncher.h |  1 +
 src/modules/luncher/mod.c     |  4 +++-
 5 files changed, 63 insertions(+), 5 deletions(-)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index 59bedacdc..86efd1872 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -602,7 +602,7 @@ _bar_icon_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUS
 
         popup = elm_ctxpopup_add(e_comp->elm);
         elm_object_style_set(popup, "noblock");
-        evas_object_smart_callback_add(popup, "dismissed", 
_bar_popup_dismissed, NULL);
+        evas_object_smart_callback_add(popup, "dismissed", 
_bar_popup_dismissed, ic);
         evas_object_size_hint_min_set(popup, ic->inst->size, ic->inst->size);
 
         box = elm_box_add(popup);
@@ -811,6 +811,7 @@ static void
 _bar_icon_preview_client_add(Icon *ic, E_Client *ec)
 {
    Evas_Object *layout, *label, *img;
+   Edje_Message_Int_Set *msg;
 
    layout = elm_layout_add(ic->preview_box);
    evas_object_data_set(layout, "icon", ic);
@@ -824,6 +825,11 @@ _bar_icon_preview_client_add(Icon *ic, E_Client *ec)
    elm_box_pack_end(ic->preview_box, layout);
    evas_object_show(layout);
 
+   msg = alloca(sizeof(Edje_Message_Int_Set) + (sizeof(int)));
+   msg->count = 1;
+   msg->val[0] = ic->inst->cfg->preview_size;
+   edje_object_message_send(elm_layout_edje_get(layout), EDJE_MESSAGE_INT_SET, 
1, msg);
+
    label = elm_label_add(layout);
    elm_object_style_set(label, "luncher_preview");
    elm_label_ellipsis_set(label, EINA_TRUE);
@@ -900,12 +906,15 @@ _bar_icon_preview_show(void *data)
      {
         case E_GADGET_SITE_ORIENT_HORIZONTAL:
           elm_box_horizontal_set(ic->preview_box, EINA_TRUE);
-          break;
+          elm_box_padding_set(ic->preview_box, 2, 0);
+         break;
         case E_GADGET_SITE_ORIENT_VERTICAL:
           elm_box_horizontal_set(ic->preview_box, EINA_FALSE);
-          break;
+          elm_box_padding_set(ic->preview_box, 0, 2);
+         break;
         default:
           elm_box_horizontal_set(ic->preview_box, EINA_TRUE);
+          elm_box_padding_set(ic->preview_box, 2, 0);
      }
    EINA_LIST_FOREACH(ic->execs, l, ex)
      {
@@ -2030,6 +2039,7 @@ _conf_item_get(int *id)
      ci->id = eina_list_count(luncher_config->items)+1;
    else
      ci->id = -1;
+   ci->preview_size = 64;
    ci->dir = eina_stringshare_add("default");
    ci->style = eina_stringshare_add("default");
    ci->type = E_LUNCHER_MODULE_FULL;
@@ -2132,6 +2142,10 @@ bar_create(Evas_Object *parent, int *id, 
E_Gadget_Site_Orient orient EINA_UNUSED
    inst->main_del = EINA_FALSE;
    inst->icons_desktop_hash = eina_hash_string_superfast_new(NULL);
    inst->icons_clients_hash = eina_hash_pointer_new(NULL);
+
+   if (!inst->cfg->preview_size)
+     inst->cfg->preview_size = 64;
+
    inst->o_main = elm_layout_add(parent);
    e_theme_edje_object_set(inst->o_main, "e/gadget/luncher/bar",
        "e/gadget/luncher/bar");
diff --git a/src/modules/luncher/config.c b/src/modules/luncher/config.c
index 6664bad69..318ee289a 100644
--- a/src/modules/luncher/config.c
+++ b/src/modules/luncher/config.c
@@ -315,11 +315,22 @@ _icon_theme_file_set(Evas_Object *img, const char *icon)
    elm_image_file_set(img, path, k);
 }
 
+static void
+_update_preview_size(void *data, Evas_Object *obj, void *event_info 
EINA_UNUSED)
+{
+   Instance *inst = data;
+   int value = elm_slider_value_get(obj);
+
+   inst->cfg->preview_size = value;
+   e_config_save_queue();
+}
+
 EINTERN Evas_Object *
 config_luncher(E_Zone *zone, Instance *inst, Eina_Bool bar)
 {
    Evas_Object *popup, *tb, *lbl, *fr, *box, *list, *mlist;
    Evas_Object *butbox, *sep, *hbox, *img, *but, *o, *group;
+   Evas_Object *slider;
    Elm_Object_Item *it;
 
    luncher_config->bar = bar;
@@ -374,7 +385,7 @@ config_luncher(E_Zone *zone, Instance *inst, Eina_Bool bar)
 
    lbl = elm_label_add(box);
    elm_object_text_set(lbl, _("Luncher Type:"));
-   E_ALIGN(lbl, 0.0, 0.0);
+   E_ALIGN(lbl, 0.5, 0.5);
    E_WEIGHT(lbl, EVAS_HINT_EXPAND, 0);
    elm_box_pack_end(box, lbl);
    evas_object_show(lbl);
@@ -424,6 +435,33 @@ config_luncher(E_Zone *zone, Instance *inst, Eina_Bool bar)
           elm_radio_value_set(group, 0);
      }
 
+   o = elm_separator_add(box);
+   elm_separator_horizontal_set(o, EINA_TRUE);
+   E_EXPAND(o);
+   E_FILL(o);
+   elm_box_pack_end(box, o);
+   evas_object_show(o);
+
+   lbl = elm_label_add(box);
+   elm_object_text_set(lbl, _("Preview Size:"));
+   E_ALIGN(lbl, 0.5, 0.5);
+   E_WEIGHT(lbl, EVAS_HINT_EXPAND, 0);
+   elm_box_pack_end(box, lbl);
+   evas_object_show(lbl);
+
+   slider = elm_slider_add(box);
+   elm_slider_unit_format_set(slider, "%1.0f");
+   elm_slider_indicator_format_set(slider, "%1.0f");
+   elm_slider_min_max_set(slider, 1, 256);
+   elm_slider_value_set(slider, inst->cfg->preview_size);
+   elm_slider_step_set(slider, 1);
+   elm_slider_span_size_set(slider, 256);
+   E_ALIGN(slider, 0.0, 0.0);
+   E_WEIGHT(slider, EVAS_HINT_EXPAND, 0);
+   evas_object_smart_callback_add(slider, "delay,changed", 
_update_preview_size, inst);
+   elm_box_pack_end(box, slider);
+   evas_object_show(slider);
+
    elm_object_content_set(fr, box);
 
    fr = elm_frame_add(tb);
diff --git a/src/modules/luncher/grid.c b/src/modules/luncher/grid.c
index 81a29c811..7dea2123d 100644
--- a/src/modules/luncher/grid.c
+++ b/src/modules/luncher/grid.c
@@ -718,6 +718,9 @@ grid_create(Evas_Object *parent, int *id, 
E_Gadget_Site_Orient orient EINA_UNUSE
    inst->inside = EINA_FALSE;
    inst->bar = EINA_FALSE;
 
+   if (!inst->cfg->preview_size)
+     inst->cfg->preview_size = 64;
+
    _grid_icon_class.item_style = "luncher";
    _grid_icon_class.func.text_get = NULL;
    _grid_icon_class.func.content_get = _gengrid_icon_get;
diff --git a/src/modules/luncher/luncher.h b/src/modules/luncher/luncher.h
index 996e98722..8019eab80 100644
--- a/src/modules/luncher/luncher.h
+++ b/src/modules/luncher/luncher.h
@@ -40,6 +40,7 @@ struct _Config_Item
 {
    int               id;
    int               version;
+   int               preview_size;
    Eina_Stringshare *style;
    Eina_Stringshare *dir;
    Luncher_Type      type;
diff --git a/src/modules/luncher/mod.c b/src/modules/luncher/mod.c
index 390c1dd50..b03e34c1a 100644
--- a/src/modules/luncher/mod.c
+++ b/src/modules/luncher/mod.c
@@ -21,6 +21,7 @@ luncher_init(void)
 #define D conf_item_edd
    E_CONFIG_VAL(D, T, id, INT);
    E_CONFIG_VAL(D, T, version, INT);
+   E_CONFIG_VAL(D, T, preview_size, INT);
    E_CONFIG_VAL(D, T, style, STR);
    E_CONFIG_VAL(D, T, dir, STR);
    E_CONFIG_VAL(D, T, type, INT);
@@ -40,7 +41,8 @@ luncher_init(void)
         ci = E_NEW(Config_Item, 1);
         ci->id = 0;
         ci->version = CONFIG_VERSION;
-        ci->style = eina_stringshare_add("default");
+        ci->preview_size = 64;
+       ci->style = eina_stringshare_add("default");
         ci->dir = eina_stringshare_add("default");
         ci->type = E_LUNCHER_MODULE_FULL;
         luncher_config->items = eina_list_append(luncher_config->items, ci);

-- 


Reply via email to