pager module now uses deskpreview to show full, realtime previews of desktops; option to disable can be found in pager settings

ticket #141


SVN revision: 73555
This commit is contained in:
Mike Blumenkrantz 2012-07-11 08:50:52 +00:00
parent 5fb4f168cb
commit d2254253be
4 changed files with 145 additions and 18 deletions

View File

@ -10583,6 +10583,9 @@ collections {
image: "pager_hi2.png" COMP;
image: "pager_base_pattern.png" COMP;
}
script {
public disable_live_preview = 0;
}
parts {
part {
name: "zoom";
@ -10625,6 +10628,11 @@ collections {
visible: 0;
color: 255 255 255 0;
}
description {
state: "hidden" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "base2";
@ -10652,6 +10660,51 @@ collections {
rel1.offset: -1 -1;
rel2.offset: 0 0;
}
description {
state: "hidden" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "e.background";
type: SWALLOW;
clip_to: "bg_clip";
description {
state: "default" 0.0;
visible: 1;
color: 255 255 255 255;
rel1 {
to: "zoom";
offset: -1 -1;
}
rel2.to: "zoom";
}
description {
state: "hidden" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "bg_clip";
type: RECT;
description {
state: "default" 0.0;
color: 200 200 200 200;
rel1.to: "e.background";
rel2.to: "e.background";
}
description {
state: "active" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255;
}
description {
state: "hidden" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "pattern";
@ -10797,30 +10850,67 @@ collections {
}
programs {
program {
name: "on";
name: "select";
signal: "e,state,selected";
source: "e";
action: STATE_SET "active" 0.0;
script {
if (get_int(disable_live_preview) == 1) {
set_state(PART:"base", "active", 0.0);
set_state(PART:"base2", "active", 0.0);
set_state(PART:"pattern", "active", 0.0);
set_state(PART:"clip", "active", 0.0);
set_state(PART:"over", "active", 0.0);
set_state(PART:"over2", "active", 0.0);
} else
set_state(PART:"bg_clip", "active", 0.0);
}
transition: LINEAR 0.2;
target: "base";
target: "base2";
target: "pattern";
target: "clip";
target: "over";
target: "over2";
}
program {
name: "off";
name: "unselect";
signal: "e,state,unselected";
source: "e";
action: STATE_SET "default" 0.0;
script {
if (get_int(disable_live_preview) == 1) {
set_state(PART:"base", "default", 0.0);
set_state(PART:"base2", "default", 0.0);
set_state(PART:"pattern", "default", 0.0);
set_state(PART:"clip", "default", 0.0);
set_state(PART:"over", "default", 0.0);
set_state(PART:"over2", "default", 0.0);
} else
set_state(PART:"bg_clip", "default", 0.0);
}
transition: LINEAR 0.3;
}
program {
name: "preview";
signal: "e,preview,on";
source: "e";
script {
set_int(disable_live_preview, 0);
set_state(PART:"bg_clip", "default", 0.0);
set_state(PART:"e.background", "default", 0.0);
set_state(PART:"base", "hidden", 0.0);
set_state(PART:"base2", "hidden", 0.0);
set_state(PART:"pattern", "default", 0.0);
set_state(PART:"over", "active", 0.0);
set_state(PART:"over2", "default", 0.0);
}
transition: LINEAR 0.3;
}
program {
name: "preview_off";
signal: "e,preview,off";
source: "e";
script {
set_int(disable_live_preview, 1);
set_state(PART:"bg_clip", "hidden", 0.0);
set_state(PART:"e.background", "hidden", 0.0);
set_state(PART:"base", "default", 0.0);
set_state(PART:"base2", "default", 0.0);
}
transition: LINEAR 0.3;
target: "base";
target: "base2";
target: "pattern";
target: "clip";
target: "over";
target: "over2";
}
program {
name: "drg";

View File

@ -29,7 +29,7 @@ struct _E_Config_Dialog_Data
Evas_Object *ob1, *ob2, *ob3;
Eina_List *popup_list, *urgent_list;
} gui;
int drag_resist, flip_desk, show_desk_names;
int drag_resist, flip_desk, show_desk_names, disable_live_preview;
};
/* local function prototypes */
@ -104,6 +104,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->btn.noplace = pager_config->btn_noplace;
cfdata->btn.desk = pager_config->btn_desk;
cfdata->flip_desk = pager_config->flip_desk;
cfdata->disable_live_preview = pager_config->disable_live_preview;
cfdata->show_desk_names = pager_config->show_desk_names;
}
@ -130,6 +131,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
ow = e_widget_check_add(evas, _("Show desktop names"),
&(cfdata->show_desk_names));
e_widget_framelist_object_append(of, ow);
ow = e_widget_check_add(evas, _("Disable live preview"),
&(cfdata->disable_live_preview));
e_widget_framelist_object_append(of, ow);
e_widget_list_object_append(ol, of, 1, 0, 0.5);
of = e_widget_framelist_add(evas, _("Popup"), 0);
@ -149,8 +153,10 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
pager_config->popup = cfdata->popup.show;
pager_config->flip_desk = cfdata->flip_desk;
pager_config->disable_live_preview = cfdata->disable_live_preview;
pager_config->show_desk_names = cfdata->show_desk_names;
pager_config->popup_urgent = cfdata->popup.urgent_show;
_pager_cb_config_updated();
e_config_save_queue();
return 1;
}
@ -160,6 +166,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda
{
if ((int)pager_config->popup != cfdata->popup.show) return 1;
if ((int)pager_config->flip_desk != cfdata->flip_desk) return 1;
if ((int)pager_config->disable_live_preview != cfdata->disable_live_preview) return 1;
if ((int)pager_config->show_desk_names != cfdata->show_desk_names) return 1;
if ((int)pager_config->popup_urgent != cfdata->popup.urgent_show) return 1;
@ -182,6 +189,9 @@ _adv_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *c
ow = e_widget_check_add(evas, _("Show desktop names"),
&(cfdata->show_desk_names));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
ow = e_widget_check_add(evas, _("Disable live preview"),
&(cfdata->disable_live_preview));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
ow = e_widget_label_add(evas, _("Resistance to dragging"));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
ow = e_widget_slider_add(evas, 1, 0, _("%.0f px"), 0.0, 10.0, 1.0, 0, NULL,
@ -290,6 +300,7 @@ _adv_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
pager_config->popup = cfdata->popup.show;
pager_config->popup_speed = cfdata->popup.speed;
pager_config->flip_desk = cfdata->flip_desk;
pager_config->disable_live_preview = cfdata->disable_live_preview;
pager_config->popup_urgent = cfdata->popup.urgent_show;
pager_config->popup_urgent_stick = cfdata->popup.urgent_stick;
pager_config->popup_urgent_focus = cfdata->popup.urgent_focus;
@ -301,6 +312,7 @@ _adv_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
pager_config->btn_drag = cfdata->btn.drag;
pager_config->btn_noplace = cfdata->btn.noplace;
pager_config->btn_desk = cfdata->btn.desk;
_pager_cb_config_updated();
e_config_save_queue();
return 1;
}
@ -309,7 +321,7 @@ static int
_adv_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
if ((int)pager_config->popup != cfdata->popup.show) return 1;
if ((int)pager_config->flip_desk != cfdata->flip_desk) return 1;
if ((int)pager_config->disable_live_preview != cfdata->disable_live_preview) return 1;
if ((int)pager_config->show_desk_names != cfdata->show_desk_names) return 1;
if ((int)pager_config->popup_urgent != cfdata->popup.urgent_show) return 1;
if (pager_config->popup_speed != cfdata->popup.speed) return 1;

View File

@ -57,6 +57,7 @@ struct _Pager_Desk
Eina_List *wins;
Evas_Object *o_desk;
Evas_Object *o_layout;
Evas_Object *o_bg;
int xpos, ypos, urgent;
int current : 1;
struct
@ -370,6 +371,14 @@ _pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos)
else
edje_object_part_text_set(o, "e.text.label", "");
if (pager_config->disable_live_preview)
edje_object_signal_emit(o, "e,preview,off", "e");
else
edje_object_signal_emit(o, "e,preview,on", "e");
pd->o_bg = e_widget_deskpreview_desk_add(o, desk->zone, xpos, ypos, -1, -1);
e_widget_deskpreview_desk_configurable_set(pd->o_bg, EINA_FALSE);
edje_object_part_swallow(o, "e.background", pd->o_bg);
edje_object_size_min_calc(o, &w, &h);
e_table_pack(p->o_table, o, xpos, ypos, 1, 1);
e_table_pack_options_set(o, 1, 1, 1, 1, 0.5, 0.5, w, h, -1, -1);
@ -870,7 +879,22 @@ _pager_instance_drop_zone_recalc(Instance *inst)
void
_pager_cb_config_updated(void)
{
Pager *p;
Pager_Desk *pd;
Eina_List *l, *ll;
if (!pager_config) return;
EINA_LIST_FOREACH(pagers, l, p)
EINA_LIST_FOREACH(p->desks, ll, pd)
{
if (pager_config->disable_live_preview)
edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
else
edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
if (pd->current)
edje_object_signal_emit(pd->o_desk, "e,state,selected", "e");
else
edje_object_signal_emit(pd->o_desk, "e,state,unselected", "e");
}
}
static Eina_Bool

View File

@ -31,6 +31,7 @@ struct _Config
unsigned int btn_noplace;
unsigned int btn_desk;
unsigned int flip_desk;
unsigned int disable_live_preview;
/* just config state */
E_Module *module;