Compare commits
49 Commits
devs/disco
...
master
Author | SHA1 | Date |
---|---|---|
Mike Blumenkrantz | aebda73e19 | |
Mike Blumenkrantz | 53c83301c8 | |
Mike Blumenkrantz | a663cccaf9 | |
Mike Blumenkrantz | aafb9954ba | |
Mike Blumenkrantz | 054b72912b | |
Mike Blumenkrantz | 1a2d94810a | |
Mike Blumenkrantz | e46924b357 | |
Mike Blumenkrantz | 528e25e0bb | |
Mike Blumenkrantz | e2b0c045b5 | |
Mike Blumenkrantz | fb2b5c6772 | |
Mike Blumenkrantz | 74bbda4657 | |
Mike Blumenkrantz | 2f74316f7d | |
Mike Blumenkrantz | ccebc776aa | |
Mike Blumenkrantz | 036cc63fd9 | |
Mike Blumenkrantz | 1cdf98e934 | |
Mike Blumenkrantz | f2c7052be9 | |
Mike Blumenkrantz | 67f59ab01e | |
Mike Blumenkrantz | 0b328cb10d | |
Mike Blumenkrantz | a4c57fba2d | |
Mike Blumenkrantz | b751d27463 | |
Mike Blumenkrantz | d32e5de81b | |
Mike Blumenkrantz | e352dc07d1 | |
Mike Blumenkrantz | a0d72c5d91 | |
Mike Blumenkrantz | 62128d19d8 | |
Mike Blumenkrantz | 1f651fbfe8 | |
Mike Blumenkrantz | 0ef6c85982 | |
Mike Blumenkrantz | b420b4af60 | |
Mike Blumenkrantz | 67811b1f3a | |
Mike Blumenkrantz | 26c589e745 | |
Mike Blumenkrantz | f1fd2a827a | |
Mike Blumenkrantz | 39c65797de | |
Mike Blumenkrantz | 49ba605d48 | |
Mike Blumenkrantz | cdaf50cac3 | |
Mike Blumenkrantz | 4945d1b257 | |
Mike Blumenkrantz | 5807ac7b89 | |
Mike Blumenkrantz | 8ffae277b3 | |
Mike Blumenkrantz | 23ef468a29 | |
Mike Blumenkrantz | 68467df44d | |
Mike Blumenkrantz | e63871d929 | |
Mike Blumenkrantz | 4de6a6ef34 | |
Mike Blumenkrantz | ca2e4eb738 | |
Mike Blumenkrantz | 3623f8a7e0 | |
Mike Blumenkrantz | d8c3317d3c | |
Mike Blumenkrantz | 364c6baefb | |
Mike Blumenkrantz | 35b323adfd | |
Mike Blumenkrantz | 6b4bd60895 | |
Mike Blumenkrantz | 76c0e98bf9 | |
Mike Blumenkrantz | 790d62c67d | |
Mike Blumenkrantz | c2a1464d1e |
|
@ -21,7 +21,6 @@ config.sub
|
|||
configure
|
||||
configure.ac.orig
|
||||
depcomp
|
||||
e-module-desksanity.edj
|
||||
e_modules-desksanity.spec
|
||||
install-sh
|
||||
libtool
|
||||
|
@ -29,7 +28,6 @@ ltmain.sh
|
|||
*.m4
|
||||
missing
|
||||
mkinstalldirs
|
||||
module.desktop
|
||||
po/Makefile
|
||||
po/Makefile.in
|
||||
po/Makefile.in.in
|
||||
|
|
|
@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = subdir-objects
|
|||
|
||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
|
||||
config.sub configure compile depcomp install-sh ltmain.sh \
|
||||
missing module.desktop config.rpath mkinstalldirs
|
||||
missing config.rpath mkinstalldirs
|
||||
|
||||
#if HAVE_PO
|
||||
|
||||
|
@ -25,11 +25,8 @@ glow_top.png
|
|||
|
||||
include src/Makefile.mk
|
||||
|
||||
e-module-desksanity.edj: e-module-desksanity.edc
|
||||
$(EDJE_CC) -id $(top_srcdir) $< $@
|
||||
|
||||
clean-local:
|
||||
rm -rf *.edj module.desktop e_modules-desksanity.spec *~
|
||||
rm rf e_modules-desksanity.spec *~
|
||||
|
||||
uninstall-local:
|
||||
rm -rf $(DESTDIR)$(module_dir)/$(PACKAGE)
|
||||
|
|
63
NEWS
63
NEWS
|
@ -1,3 +1,64 @@
|
|||
Release 1.1.0
|
||||
--------------------
|
||||
Highlights:
|
||||
* Convert to Elementary widgets
|
||||
* Greatly improve PiP UX
|
||||
* Tweaks to Zoom effect
|
||||
* Superkey binding for managing window focus
|
||||
|
||||
|
||||
Mike Blumenkrantz (44):
|
||||
e_comp_get() -> e_comp
|
||||
convert zoom to elm widgets
|
||||
remove bad comp usage in pip
|
||||
zsq
|
||||
fix edje warnings
|
||||
more elm conversions
|
||||
bump e version req
|
||||
make pip crop reset if user shift+clicks without moving
|
||||
and null the clip pointer because this module is way too smart to crash
|
||||
disallow pip manage action if no pips exist
|
||||
update to latest api changes
|
||||
more api updates
|
||||
ignore/clean 'compile' file
|
||||
maybe fix zoom animation geometries?
|
||||
show clients before performing desk flip
|
||||
fix zoom key actions
|
||||
add scroller indicator for zoom effect
|
||||
fix zoom focus rect sizing to be even on all sides
|
||||
clip zoom client focus rect to clipper
|
||||
make zoom focus rect more translucent when active
|
||||
don't enable map for zoom client effect
|
||||
make zoom effect more subtle when indicating which window is "active"
|
||||
use color3 for setting OUTLINE color on zoom text
|
||||
redo "active" signalling for zoom effect to be more easily themable
|
||||
improve keyboard navigation for zoom effect
|
||||
use bring_in for zoom keyboard navigation
|
||||
disable maximize effect for x11 csd windows
|
||||
force sizing of zoom effect tables before adding to layout
|
||||
remove pip delete callback during pip free
|
||||
make pip move/resize while clipped more accurate based on clip geometry
|
||||
enable pip edit mode when creating a pip
|
||||
add Super Ultimate Window Management binding under Desksanity actions
|
||||
add multipress functionality for superkey
|
||||
add handling for maintaining sticky windows with superkey
|
||||
move to single makefile build
|
||||
require E20+
|
||||
|
||||
|
||||
Release 1.0.3
|
||||
--------------------
|
||||
|
||||
Mike Blumenkrantz (1):
|
||||
use correct int size for ds effect iterating
|
||||
|
||||
Release 1.0.2
|
||||
--------------------
|
||||
|
||||
Mike Blumenkrantz (1):
|
||||
reorder ds client iterator filter to catch override clients before ec->desk deref
|
||||
|
||||
|
||||
Release 1.0.1
|
||||
--------------------
|
||||
|
||||
|
@ -6,3 +67,5 @@ Mike Blumenkrantz (3):
|
|||
fix input regions on shaded clients after desk flip
|
||||
fix multiscreen zoom and current desks zoom
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
<protocol name="zwp_action_route">
|
||||
<interface name="action_route" version="1">
|
||||
<enum name="mode">
|
||||
<description summary="types of state on the surface">
|
||||
</description>
|
||||
<entry name="focus_shared" value="1" summary="Activatable by any surface if its wl_client has focus">
|
||||
</entry>
|
||||
<entry name="focus_topmost" value="2" summary="Activatable by topmost surface with focus">
|
||||
<description summary="Restricts activation to only the top-most client"/>
|
||||
</entry>
|
||||
<entry name="exclusive" value="3" summary="Activatable by one surface at any time">
|
||||
<description summary="Allows activation for exactly one client at all times"/>
|
||||
</entry>
|
||||
</enum>
|
||||
<enum name="modifiers">
|
||||
<entry name="shift" value="1"></entry>
|
||||
<entry name="control" value="2"></entry>
|
||||
<entry name="alt" value="4"></entry>
|
||||
<entry name="win" value="8"></entry>
|
||||
<entry name="altgr" value="16"></entry>
|
||||
</enum>
|
||||
<request name="bind_action">
|
||||
<description summary="Request a new grab for a key press">
|
||||
</description>
|
||||
<arg name="id" type="new_id" interface="action_route_bind"/>
|
||||
<arg name="action" type="string"/>
|
||||
</request>
|
||||
<request name="grab_key">
|
||||
<description summary="Request a new grab for a key press">
|
||||
</description>
|
||||
<arg name="id" type="new_id" interface="action_route_key_grab"/>
|
||||
<arg name="surface" type="object" interface="wl_surface"/>
|
||||
<arg name="key" type="string"/>
|
||||
<arg name="mode" type="uint"/>
|
||||
<arg name="modifiers" type="uint"/>
|
||||
<arg name="action" type="string"/>
|
||||
<arg name="params" type="string" allow-null="true"/>
|
||||
</request>
|
||||
</interface>
|
||||
<interface name="action_route_bind" version="1">
|
||||
<enum name="state">
|
||||
<entry name="Rejected" value="0"></entry>
|
||||
<entry name="Active" value="1"></entry>
|
||||
<entry name="Queued" value="2"></entry>
|
||||
</enum>
|
||||
<event name="status">
|
||||
<description summary="Status update on a bind request"></description>
|
||||
<arg name="state" type="uint"/>
|
||||
</event>
|
||||
<request name="activate">
|
||||
<description summary="Activate a bind"/>
|
||||
<arg name="params" type="string" allow-null="true"/>
|
||||
</request>
|
||||
<request name="destroy" type="destructor">
|
||||
<description summary="Destroy a requested bind">
|
||||
</description>
|
||||
</request>
|
||||
<event name="end">
|
||||
<description summary="The bind has completed execution"/>
|
||||
</event>
|
||||
</interface>
|
||||
<interface name="action_route_key_grab" version="1">
|
||||
<enum name="state">
|
||||
<entry name="Rejected" value="0"></entry>
|
||||
<entry name="Active" value="1"></entry>
|
||||
<entry name="Queued" value="2"></entry>
|
||||
</enum>
|
||||
<event name="status">
|
||||
<description summary="Status update on a grab request"></description>
|
||||
<arg name="state" type="uint"/>
|
||||
</event>
|
||||
<request name="destroy" type="destructor">
|
||||
<description summary="Destroy a requested grab">
|
||||
</description>
|
||||
</request>
|
||||
</interface>
|
||||
</protocol>
|
28
configure.ac
28
configure.ac
|
@ -1,4 +1,4 @@
|
|||
AC_INIT(desksanity, 1.0.1, zmike@enlightenment.org)
|
||||
AC_INIT(desksanity, 1.1.0, zmike@enlightenment.org)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_PREREQ(2.52)
|
||||
AC_CONFIG_SRCDIR(configure.ac)
|
||||
|
@ -6,7 +6,7 @@ AC_CANONICAL_BUILD
|
|||
AC_CANONICAL_HOST
|
||||
AC_ISC_POSIX
|
||||
|
||||
AM_INIT_AUTOMAKE([1.8 dist-bzip2])
|
||||
AM_INIT_AUTOMAKE([1.8 dist-xz])
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
||||
|
@ -30,7 +30,15 @@ AC_PROG_LIBTOOL
|
|||
#])
|
||||
#AC_SUBST(LTLIBINTL)
|
||||
|
||||
PKG_CHECK_MODULES([E], [efx enlightenment >= 0.19.99])
|
||||
PKG_CHECK_EXISTS([efl-wl], [build_runner="yes"], [build_runner="no"])
|
||||
|
||||
if test "x$build_runner" = "xyes" ; then
|
||||
runner="efl-wl"
|
||||
AC_DEFINE_UNQUOTED(HAVE_RUNNER, 1, "have runner deps")
|
||||
fi
|
||||
AM_CONDITIONAL([BUILD_RUNNER], [test "x${build_runner}" = "xyes"])
|
||||
|
||||
PKG_CHECK_MODULES([E], [enlightenment >= 0.21.0 $runner])
|
||||
release=$(pkg-config --variable=release enlightenment)
|
||||
MODULE_ARCH="$host_os-$host_cpu-$release"
|
||||
AC_SUBST(MODULE_ARCH)
|
||||
|
@ -39,23 +47,9 @@ AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
|
|||
module_dir="$(pkg-config --variable=modules enlightenment)"
|
||||
AC_SUBST(module_dir)
|
||||
datadir="$module_dir/desksanity"
|
||||
# Find edje_cc
|
||||
AC_ARG_WITH(edje-cc,
|
||||
AC_HELP_STRING([--with-edje-cc=PATH], [specify a specific path to edje_cc]),
|
||||
[
|
||||
v=$withval;
|
||||
EDJE_CC=$v
|
||||
],[
|
||||
EDJE_CC=$(pkg-config --variable=prefix edje)/bin/edje_cc
|
||||
]
|
||||
)
|
||||
AC_SUBST(EDJE_CC)
|
||||
AC_MSG_CHECKING([Which edje_cc to use])
|
||||
AC_MSG_RESULT(${EDJE_CC})
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
module.desktop
|
||||
e_modules-desksanity.spec
|
||||
], [
|
||||
])
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<protocol name="e_gadget">
|
||||
|
||||
<interface name="e_gadget" version="1">
|
||||
<enum name="orient">
|
||||
<entry name="none" value="0"/>
|
||||
<entry name="horizontal" value="1"/>
|
||||
<entry name="vertical" value="2"/>
|
||||
</enum>
|
||||
<enum name="gravity">
|
||||
<entry name="none" value="0"/>
|
||||
<entry name="left" value="1"/>
|
||||
<entry name="right" value="2"/>
|
||||
<entry name="top" value="3"/>
|
||||
<entry name="bottom" value="4"/>
|
||||
<entry name="center" value="5"/>
|
||||
</enum>
|
||||
<enum name="anchor" bitfield="true">
|
||||
<entry name="none" value="0"/>
|
||||
<entry name="left" value="1"/>
|
||||
<entry name="right" value="2"/>
|
||||
<entry name="top" value="4"/>
|
||||
<entry name="bottom" value="8"/>
|
||||
</enum>
|
||||
<event name="gadget_anchor">
|
||||
<arg name="anchor" type="uint" enum="anchor"/>
|
||||
</event>
|
||||
<event name="gadget_orient">
|
||||
<arg name="orient" type="uint" enum="orient"/>
|
||||
</event>
|
||||
<event name="gadget_gravity">
|
||||
<arg name="gravity" type="uint" enum="gravity"/>
|
||||
</event>
|
||||
<request name="open_uri">
|
||||
<arg name="uri" type="string"/>
|
||||
</request>
|
||||
</interface>
|
||||
|
||||
</protocol>
|
|
@ -1,668 +0,0 @@
|
|||
collections {
|
||||
group { name: "icon";
|
||||
images.image: "epic-e-256.png" COMP;
|
||||
parts {
|
||||
part { name: "icon"; mouse_events: 0;
|
||||
description { state: "default";
|
||||
aspect_preference: BOTH;
|
||||
image.normal: "epic-e-256.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "e/modules/desksanity/moveresize";
|
||||
parts {
|
||||
part { name: "outline"; type: TEXT; mouse_events: 0;
|
||||
effect: OUTLINE;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "e.text";
|
||||
rel1.offset: -1 -1;
|
||||
rel2.to: "e.text";
|
||||
color: 0 0 0 255;
|
||||
color2: 0 0 0 255;
|
||||
color3: 0 0 0 255;
|
||||
text { font: "Sans"; size: 16;
|
||||
text_source: "e.text";
|
||||
min: 1 1;
|
||||
ellipsis: -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "e.text"; type: TEXT; mouse_events: 0;
|
||||
effect: GLOW;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
color: 51 153 255 255;
|
||||
color2: 51 153 255 24;
|
||||
color3: 51 153 255 18;
|
||||
text { font: "Sans"; size: 16;
|
||||
min: 1 1;
|
||||
ellipsis: -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "e/modules/desksanity/zoom/base"; program_source: "e";
|
||||
parts {
|
||||
rect { "drag_clip"; nomouse;
|
||||
desc { hid; }
|
||||
desc { "vis";
|
||||
link.base: "e,state,dragging";
|
||||
}
|
||||
}
|
||||
rect { "zoomt"; clip: "drag_clip"; nomouse;
|
||||
desc {
|
||||
min: 0 4;
|
||||
max: -1 4;
|
||||
fixed: 1 1;
|
||||
rel2.relative: 1 0;
|
||||
color: 51 153 255 0;
|
||||
hid;
|
||||
}
|
||||
desc { "enable"; inherit: "default";
|
||||
color: 51 153 255 200;
|
||||
vis;
|
||||
}
|
||||
desc { "anim"; inherit: "enable";
|
||||
rel1.relative: 0.5 0.5;
|
||||
rel2.relative: 0.5 0.5;
|
||||
}
|
||||
}
|
||||
rect { "zooml"; clip: "drag_clip"; nomouse;
|
||||
desc {
|
||||
min: 4 0;
|
||||
max: 4 -1;
|
||||
fixed: 1 1;
|
||||
rel2.relative: 0 1;
|
||||
color: 51 153 255 0;
|
||||
hid;
|
||||
}
|
||||
desc { "enable"; inherit: "default";
|
||||
color: 51 153 255 200;
|
||||
vis;
|
||||
}
|
||||
desc { "anim"; inherit: "enable";
|
||||
rel1.relative: 0.5 0.5;
|
||||
rel2.relative: 0.5 0.5;
|
||||
}
|
||||
}
|
||||
rect { "zoomr"; clip: "drag_clip"; nomouse;
|
||||
desc {
|
||||
min: 4 0;
|
||||
max: 4 -1;
|
||||
fixed: 1 1;
|
||||
rel1.relative: 1 0;
|
||||
color: 51 153 255 0;
|
||||
hid;
|
||||
}
|
||||
desc { "enable"; inherit: "default";
|
||||
color: 51 153 255 200;
|
||||
vis;
|
||||
}
|
||||
desc { "anim"; inherit: "enable";
|
||||
rel1.relative: 0.5 0.5;
|
||||
rel2.relative: 0.5 0.5;
|
||||
}
|
||||
}
|
||||
rect { "zoomb"; clip: "drag_clip"; nomouse;
|
||||
desc {
|
||||
min: 0 4;
|
||||
max: -1 4;
|
||||
fixed: 1 1;
|
||||
rel1.relative: 0 1;
|
||||
color: 51 153 255 0;
|
||||
hid;
|
||||
}
|
||||
desc { "enable"; inherit: "default";
|
||||
color: 51 153 255 200;
|
||||
vis;
|
||||
}
|
||||
desc { "anim"; inherit: "enable";
|
||||
rel1.relative: 0.5 0.5;
|
||||
rel2.relative: 0.5 0.5;
|
||||
}
|
||||
}
|
||||
program { signal: "e,state,current";
|
||||
after: "drag_start";
|
||||
}
|
||||
program { "drag_start"; filter: "drag_clip" "vis";
|
||||
signal: "mouse,in"; source: "events";
|
||||
action: STATE_SET "enable";
|
||||
transition: LINEAR 0.1;
|
||||
targets: "zoomt" "zooml" "zoomr" "zoomb";
|
||||
after: "drag_anim";
|
||||
}
|
||||
program { filter: "drag_clip" "vis";
|
||||
signal: "mouse,out"; source: "events";
|
||||
action: STATE_SET "default";
|
||||
transition: ACCEL 0.1;
|
||||
targets: "zoomt" "zooml" "zoomr" "zoomb";
|
||||
}
|
||||
program { "drag_anim";
|
||||
action: STATE_SET "anim";
|
||||
transition: ACCEL 0.8;
|
||||
targets: "zoomt" "zooml" "zoomr" "zoomb";
|
||||
after: "drag_anim2";
|
||||
}
|
||||
program { "drag_anim2";
|
||||
action: STATE_SET "default";
|
||||
targets: "zoomt" "zooml" "zoomr" "zoomb";
|
||||
after: "drag_anim";
|
||||
}
|
||||
swallow { "e.swallow.background"; clip: "clip";
|
||||
}
|
||||
rect { "fader";
|
||||
desc {
|
||||
color: 0 0 0 0;
|
||||
link.base: "e,state,dragging";
|
||||
link.transition: LINEAR 0.3;
|
||||
link.base: "e,state,inactive";
|
||||
link.transition: LINEAR 0.3;
|
||||
link.after: "fade_post";
|
||||
}
|
||||
desc { "fade";
|
||||
color: 0 0 0 192;
|
||||
link.base: "e,state,active";
|
||||
link.transition: LINEAR 0.3;
|
||||
}
|
||||
program { "fade_post";
|
||||
action: SIGNAL_EMIT "e,action,done" "e";
|
||||
}
|
||||
}
|
||||
rect { "clip";
|
||||
desc { hid; color: 255 255 255 0;
|
||||
link.base: "e,state,dragging";
|
||||
link.transition: LINEAR 0.3;
|
||||
link.base: "e,state,inactive";
|
||||
link.transition: LINEAR 0.3;
|
||||
}
|
||||
desc { "active";
|
||||
link.base: "e,state,active";
|
||||
link.transition: LINEAR 0.3;
|
||||
}
|
||||
}
|
||||
swallow { "e.swallow.layout"; clip: "clip"; }
|
||||
program { signal: "e,state,inactive";
|
||||
action: SIGNAL_EMIT "e,state,hiding" "e";
|
||||
}
|
||||
rect { "events"; repeat;
|
||||
desc { color: 0 0 0 0; }
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "e/modules/desksanity/zoom/scrollframe";
|
||||
images.image: "glow_bottom.png" COMP;
|
||||
images.image: "glow_top.png" COMP;
|
||||
script {
|
||||
public visible;
|
||||
public top_visible() {
|
||||
new st[31], Float:vl;
|
||||
get_state(PART:"top_clip", st, 30, vl);
|
||||
if (!strcmp(st, "default")) {
|
||||
run_program(get_program_id("tp_vis"));
|
||||
run_program(get_program_id("tp_glow"));
|
||||
}
|
||||
}
|
||||
public bottom_visible() {
|
||||
new st[31], Float:vl;
|
||||
get_state(PART:"bottom_clip", st, 30, vl);
|
||||
if (!strcmp(st, "default")) {
|
||||
run_program(get_program_id("btm_vis"));
|
||||
run_program(get_program_id("btm_glow"));
|
||||
}
|
||||
}
|
||||
}
|
||||
parts {
|
||||
rect { "elm.dragable.vbar";
|
||||
dragable.x: 0 0 0;
|
||||
dragable.y: 1 1 0;
|
||||
dragable.confine: "elm.swallow.content";
|
||||
desc {
|
||||
max: 0 0;
|
||||
fixed: 1 1;
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
rect { "elm.dragable.hbar";
|
||||
dragable.x: 0 0 0;
|
||||
dragable.y: 1 1 0;
|
||||
dragable.confine: "elm.swallow.content";
|
||||
desc {
|
||||
max: 0 0;
|
||||
fixed: 1 1;
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
rect { "top_clip";
|
||||
desc {
|
||||
color: 255 255 255 0;
|
||||
hid;
|
||||
}
|
||||
desc { "visible";
|
||||
color: 255 255 255 180;
|
||||
vis;
|
||||
}
|
||||
}
|
||||
part { "glow_top"; clip: "top_clip";
|
||||
desc { "default";
|
||||
fixed: 0 1;
|
||||
min: 16 2;
|
||||
image.normal: "glow_top.png";
|
||||
aspect: 330 32;
|
||||
rel2.relative: 1 0;
|
||||
rel2.to_y: "elm.swallow.content";
|
||||
rel1.offset: 0 4;
|
||||
}
|
||||
desc { "glow"; inherit: "default";
|
||||
color: 255 255 255 100;
|
||||
}
|
||||
}
|
||||
program { name: "scr_eval";
|
||||
signal: "drag,set"; source: "elm.dragable.vbar";
|
||||
script {
|
||||
new Float:x, Float:y;
|
||||
|
||||
if (get_int(visible)) {
|
||||
get_drag(PART:"elm.dragable.vbar", x, y);
|
||||
if (y < 1.0)
|
||||
bottom_visible();
|
||||
else
|
||||
run_program(get_program_id("bottom_hidden"));
|
||||
if (y > 0.0)
|
||||
top_visible();
|
||||
else
|
||||
run_program(get_program_id("top_hidden"));
|
||||
}
|
||||
}
|
||||
}
|
||||
program { "tp_vis";
|
||||
action: STATE_SET "visible";
|
||||
target: "top_clip";
|
||||
transition: LINEAR 0.2;
|
||||
}
|
||||
program { "tp_glow";
|
||||
action: STATE_SET "glow";
|
||||
target: "glow_top";
|
||||
transition: SINUSOIDAL 0.7;
|
||||
sequence {
|
||||
action: STATE_SET "default";
|
||||
target: "glow_top";
|
||||
transition: SINUSOIDAL 0.7;
|
||||
after: "tp_glow";
|
||||
}
|
||||
}
|
||||
program { name: "top_hidden";
|
||||
action: STATE_SET "default";
|
||||
targets: "top_clip" "glow_top";
|
||||
transition: LINEAR 0.2 CURRENT;
|
||||
}
|
||||
program { signal: "elm,action,show,vbar"; source: "elm";
|
||||
script {
|
||||
set_int(visible, 1);
|
||||
}
|
||||
after: "scr_eval";
|
||||
}
|
||||
program { signal: "elm,action,hide,vbar"; source: "elm";
|
||||
script {
|
||||
set_int(visible, 0);
|
||||
}
|
||||
sequence {
|
||||
action: STATE_SET "default";
|
||||
targets: "top_clip" "bottom_clip";
|
||||
transition: LINEAR 0.2;
|
||||
}
|
||||
}
|
||||
rect { "bottom_clip";
|
||||
desc {
|
||||
color: 255 255 255 0;
|
||||
hid;
|
||||
}
|
||||
desc { "visible";
|
||||
color: 255 255 255 180;
|
||||
vis;
|
||||
}
|
||||
}
|
||||
part { "glow_bottom"; clip: "bottom_clip";
|
||||
desc {
|
||||
fixed: 0 1;
|
||||
min: 16 2;
|
||||
image.normal: "glow_bottom.png";
|
||||
aspect: 330 32;
|
||||
rel1.relative: 0 1;
|
||||
rel1.to_y: "elm.swallow.content";
|
||||
}
|
||||
desc { "glow"; inherit: "default";
|
||||
color: 255 255 255 100;
|
||||
}
|
||||
}
|
||||
program { "btm_vis";
|
||||
action: STATE_SET "visible";
|
||||
target: "bottom_clip";
|
||||
transition: LINEAR 0.2;
|
||||
}
|
||||
program { "btm_glow";
|
||||
action: STATE_SET "glow";
|
||||
target: "glow_bottom";
|
||||
transition: SINUSOIDAL 0.7;
|
||||
sequence {
|
||||
action: STATE_SET "default";
|
||||
target: "glow_bottom";
|
||||
transition: SINUSOIDAL 0.7;
|
||||
after: "btm_glow";
|
||||
}
|
||||
}
|
||||
program { name: "bottom_hidden";
|
||||
action: STATE_SET "default";
|
||||
targets: "bottom_clip" "glow_bottom";
|
||||
transition: LINEAR 0.2 CURRENT;
|
||||
}
|
||||
rect { "clipper"; nomouse;
|
||||
desc {
|
||||
rel1.to: "elm.swallow.content";
|
||||
rel2.to: "elm.swallow.content";
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.content";
|
||||
clip: "clipper";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "e/modules/desksanity/zoom/client"; nomouse;
|
||||
images.image: "win_shadow.png" COMP;
|
||||
script {
|
||||
public message(Msg_Type:type, id, ...) {
|
||||
if (type == MSG_INT_SET) {
|
||||
/* client diff geom[4] */
|
||||
new x, y, w, h;
|
||||
|
||||
x = getarg(2);
|
||||
y = getarg(3);
|
||||
w = getarg(4);
|
||||
h = getarg(5);
|
||||
|
||||
custom_state(PART:"spacer", "default", 0.0);
|
||||
set_state_val(PART:"spacer", STATE_REL1_OFFSET, x, y);
|
||||
set_state_val(PART:"spacer", STATE_REL2_OFFSET, w, h);
|
||||
set_state(PART:"spacer", "custom", 0.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
parts {
|
||||
spacer { "spacer";
|
||||
program { signal: "e,action,show"; source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: LINEAR 0.3;
|
||||
target: "spacer";
|
||||
//after: "idle";
|
||||
}
|
||||
program { signal: "e,action,hide"; source: "e";
|
||||
action: STATE_SET "custom" 0.0;
|
||||
transition: LINEAR 0.3;
|
||||
target: "spacer";
|
||||
}
|
||||
}
|
||||
part { "shadow"; clip: "clip";
|
||||
desc {
|
||||
image.normal: "win_shadow.png";
|
||||
image.border: 14 14 14 14;
|
||||
image.middle: 0;
|
||||
rel1.to: "e.swallow.client";
|
||||
rel1.offset: -7 -3;
|
||||
rel2.to: "e.swallow.client";
|
||||
rel2.offset: 6 11;
|
||||
fill.smooth: 0;
|
||||
}
|
||||
}
|
||||
rect { "outline"; clip: "clip";
|
||||
desc {
|
||||
color: 51 153 255 0;
|
||||
rel1.to: "e.swallow.client";
|
||||
rel1.offset: -2 -2;
|
||||
rel2.to: "e.swallow.client";
|
||||
rel2.offset: 1 1;
|
||||
visible: 0;
|
||||
link.base: "e,state,unfocused" "e";
|
||||
link.transition: LINEAR 0.2;
|
||||
}
|
||||
desc { "active"; inherit: "default";
|
||||
color: 51 153 255 140;
|
||||
visible: 1;
|
||||
link.base: "e,state,focused" "e";
|
||||
link.transition: LINEAR 0.2;
|
||||
}
|
||||
}
|
||||
rect { "bg";
|
||||
desc {
|
||||
color: 0 0 0 255;
|
||||
rel1.to: "e.swallow.client";
|
||||
rel2.to: "e.swallow.client";
|
||||
}
|
||||
}
|
||||
swallow { "e.swallow.client"; clip: "clip";
|
||||
desc {
|
||||
rel1.to: "spacer";
|
||||
rel2.to: "spacer";
|
||||
rel1.offset: 10 10;
|
||||
rel2.offset: -10 -10;
|
||||
link.base: "e,state,inactive" "e";
|
||||
link.transition: LINEAR 0.2;
|
||||
//link.after: "idle";
|
||||
}
|
||||
desc { "active";
|
||||
rel1.to: "spacer";
|
||||
rel2.to: "spacer";
|
||||
rel1.relative: -0.01 -0.01;
|
||||
rel2.relative: 1.01 1.01;
|
||||
rel2.offset: -1 -1;
|
||||
link.base: "e,state,active" "e";
|
||||
link.transition: LINEAR 0.2;
|
||||
}
|
||||
desc { "idle1"; inherit: "default";
|
||||
map.on: 1;
|
||||
map.rotation.z: -5;
|
||||
}
|
||||
desc { "idle2"; inherit: "idle1";
|
||||
map.rotation.z: 5;
|
||||
}
|
||||
desc { "idle3"; inherit: "idle1";
|
||||
map.rotation.z: 5;
|
||||
map.rotation.x: -70;
|
||||
}
|
||||
desc { "idle4"; inherit: "idle1";
|
||||
map.rotation.z: 0;
|
||||
map.rotation.x: -360;
|
||||
map.rotation.y: 360;
|
||||
}
|
||||
program { "idle";
|
||||
in: 2.0 10.0;
|
||||
action: STATE_SET "idle1";
|
||||
transition: SINUSOIDAL 6.0;
|
||||
target: "e.swallow.client";
|
||||
sequence {
|
||||
action: STATE_SET "idle2";
|
||||
name: "idle2";
|
||||
transition: SINUSOIDAL 6.0;
|
||||
target: "e.swallow.client";
|
||||
in: 2.0 10.0;
|
||||
|
||||
action: STATE_SET "idle3";
|
||||
name: "idle3";
|
||||
transition: ACCEL 6.0;
|
||||
target: "e.swallow.client";
|
||||
in: 2.0 10.0;
|
||||
|
||||
action: STATE_SET "idle4";
|
||||
name: "idle4";
|
||||
transition: SINUSOIDAL 6.0;
|
||||
target: "e.swallow.client";
|
||||
in: 2.0 10.0;
|
||||
after: "idle";
|
||||
}
|
||||
}
|
||||
}
|
||||
rect { "clip";
|
||||
desc {
|
||||
rel1.offset: -9999 -9999;
|
||||
rel2.offset: 9999 9999;
|
||||
color: 200 200 200 200;
|
||||
link.base: "e,state,inactive" "e";
|
||||
link.transition: LINEAR 0.2;
|
||||
}
|
||||
desc { "active"; inherit: "default";
|
||||
color: 255 255 255 255;
|
||||
link.base: "e,state,active" "e";
|
||||
link.transition: LINEAR 0.2;
|
||||
}
|
||||
}
|
||||
proxy { "clone";
|
||||
desc {
|
||||
source: "e.swallow.client";
|
||||
rel1.to: "e.swallow.client";
|
||||
rel2.to: "e.swallow.client";
|
||||
hid;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
desc { "urgent1"; inherit: "default";
|
||||
vis;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
desc { "urgent2"; inherit: "default";
|
||||
vis;
|
||||
rel1.relative: -0.5 -0.5;
|
||||
rel2.relative: 1.5 1.5;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
program { name: "urgent";
|
||||
signal: "e,state,urgent"; source: "e";
|
||||
action: ACTION_STOP;
|
||||
target: "go_big";
|
||||
target: "go_big2";
|
||||
after: "go_big";
|
||||
}
|
||||
program { name: "go_big";
|
||||
action: STATE_SET "urgent1" 0.0;
|
||||
target: "clone";
|
||||
after: "go_big2";
|
||||
}
|
||||
program { name: "go_big2";
|
||||
action: STATE_SET "urgent2" 0.0;
|
||||
transition: LINEAR 0.5;
|
||||
target: "clone";
|
||||
after: "go_big";
|
||||
}
|
||||
program { name: "not_urgent";
|
||||
signal: "e,state,not_urgent"; source: "e";
|
||||
action: ACTION_STOP;
|
||||
target: "go_big";
|
||||
target: "go_big2";
|
||||
after: "go_hid";
|
||||
}
|
||||
program { name: "go_hid";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: LINEAR 0.5;
|
||||
target: "clone";
|
||||
}
|
||||
}
|
||||
text { "e.text.title"; clip: "clip"; effect: OUTLINE;
|
||||
desc {
|
||||
fixed: 1 1;
|
||||
align: 0.0 0.0;
|
||||
rel1.to_x: "e.swallow.icon";
|
||||
rel1.to_y: "e.swallow.client";
|
||||
rel1.relative: 1.0 1.0;
|
||||
rel1.offset: 0 10;
|
||||
rel2.to: "e.swallow.client";
|
||||
color: 255 255 255 255;
|
||||
color3: 0 0 0 255;
|
||||
text {
|
||||
font: "Sans:style=Bold"; size: 12;
|
||||
}
|
||||
}
|
||||
}
|
||||
swallow { "e.swallow.icon"; clip: "clip";
|
||||
desc {
|
||||
fixed: 1 1;
|
||||
min: 16 16;
|
||||
align: 0.0 0.0;
|
||||
rel1.to_x: "e.swallow.client";
|
||||
rel1.to_y: "e.text.title";
|
||||
rel1.offset: 0 -6;
|
||||
rel2.to: "e.swallow.client";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
}
|
||||
rect { "events"; mouse; repeat;
|
||||
desc { color: 0 0 0 0; };
|
||||
program { signal: "mouse,clicked,1"; source: "events";
|
||||
action: SIGNAL_EMIT "e,action,activate" "e";
|
||||
}
|
||||
program { signal: "mouse,in"; source: "events";
|
||||
sequence {
|
||||
action: ACTION_STOP;
|
||||
targets: "idle" "idle2" "idle3" "idle4";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
group { "e/modules/desksanity/zoom/client/drag";
|
||||
images.image: "win_shadow.png" COMP;
|
||||
script {
|
||||
public message(Msg_Type:type, id, ...) {
|
||||
if (type == MSG_INT_SET) {
|
||||
/* client diff geom[4] */
|
||||
new x, y, w, h;
|
||||
|
||||
x = getarg(2);
|
||||
y = getarg(3);
|
||||
w = getarg(4);
|
||||
h = getarg(5);
|
||||
|
||||
custom_state(PART:"e.swallow.client", "default", 0.0);
|
||||
set_state_val(PART:"e.swallow.client", STATE_REL1_OFFSET, x, y);
|
||||
set_state_val(PART:"e.swallow.client", STATE_REL2_OFFSET, w, h);
|
||||
}
|
||||
}
|
||||
}
|
||||
parts {
|
||||
rect { "clip";
|
||||
desc {}
|
||||
desc { "hid"; hid;
|
||||
color: 255 255 255 0;
|
||||
link.base: "e,drag,release" "e";
|
||||
link.transition: LINEAR 0.1;
|
||||
}
|
||||
}
|
||||
image { "shadow"; clip: "clip";
|
||||
desc {
|
||||
image.normal: "win_shadow.png";
|
||||
image.border: 14 14 14 14;
|
||||
image.middle: 0;
|
||||
rel1.to: "e.swallow.client";
|
||||
rel1.offset: -7 -3;
|
||||
rel2.to: "e.swallow.client";
|
||||
rel2.offset: 6 11;
|
||||
fill.smooth: 0;
|
||||
}
|
||||
}
|
||||
swallow { "e.swallow.client"; }
|
||||
rect { "over"; clip: "clip";
|
||||
desc {
|
||||
rel1.to: "e.swallow.client";
|
||||
rel2.to: "e.swallow.client";
|
||||
color: 255 255 255 90;
|
||||
}
|
||||
}
|
||||
program { signal: "e,drag,release"; source: "e";
|
||||
action: STATE_SET "custom";
|
||||
target: "e.swallow.client";
|
||||
transition: LINEAR 0.1;
|
||||
sequence {
|
||||
action: SIGNAL_EMIT "e,action,done" "e";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
BIN
epic-e-256.png
BIN
epic-e-256.png
Binary file not shown.
Before Width: | Height: | Size: 36 KiB |
BIN
glow_bottom.png
BIN
glow_bottom.png
Binary file not shown.
Before Width: | Height: | Size: 4.9 KiB |
BIN
glow_top.png
BIN
glow_top.png
Binary file not shown.
Before Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,182 @@
|
|||
#include <Elementary.h>
|
||||
#include <e_gadget_types.h>
|
||||
|
||||
static E_Gadget_Site_Orient gorient;
|
||||
static E_Gadget_Site_Anchor ganchor;
|
||||
static char *menu_action;
|
||||
|
||||
static void
|
||||
do_orient(Evas_Object *ly, E_Gadget_Site_Orient orient, E_Gadget_Site_Anchor anchor)
|
||||
{
|
||||
char buf[4096];
|
||||
const char *s = "float";
|
||||
|
||||
if (anchor & E_GADGET_SITE_ANCHOR_LEFT)
|
||||
{
|
||||
if (anchor & E_GADGET_SITE_ANCHOR_TOP)
|
||||
{
|
||||
switch (orient)
|
||||
{
|
||||
case E_GADGET_SITE_ORIENT_HORIZONTAL:
|
||||
s = "top_left";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_VERTICAL:
|
||||
s = "left_top";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_NONE:
|
||||
s = "left_top";
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (anchor & E_GADGET_SITE_ANCHOR_BOTTOM)
|
||||
{
|
||||
switch (orient)
|
||||
{
|
||||
case E_GADGET_SITE_ORIENT_HORIZONTAL:
|
||||
s = "bottom_left";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_VERTICAL:
|
||||
s = "left_bottom";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_NONE:
|
||||
s = "left_bottom";
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
s = "left";
|
||||
}
|
||||
else if (anchor & E_GADGET_SITE_ANCHOR_RIGHT)
|
||||
{
|
||||
if (anchor & E_GADGET_SITE_ANCHOR_TOP)
|
||||
{
|
||||
switch (orient)
|
||||
{
|
||||
case E_GADGET_SITE_ORIENT_HORIZONTAL:
|
||||
s = "top_right";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_VERTICAL:
|
||||
s = "right_top";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_NONE:
|
||||
s = "right_top";
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (anchor & E_GADGET_SITE_ANCHOR_BOTTOM)
|
||||
{
|
||||
switch (orient)
|
||||
{
|
||||
case E_GADGET_SITE_ORIENT_HORIZONTAL:
|
||||
s = "bottom_right";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_VERTICAL:
|
||||
s = "right_bottom";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_NONE:
|
||||
s = "right_bottom";
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
s = "right";
|
||||
}
|
||||
else if (anchor & E_GADGET_SITE_ANCHOR_TOP)
|
||||
s = "top";
|
||||
else if (anchor & E_GADGET_SITE_ANCHOR_BOTTOM)
|
||||
s = "bottom";
|
||||
else
|
||||
{
|
||||
switch (orient)
|
||||
{
|
||||
case E_GADGET_SITE_ORIENT_HORIZONTAL:
|
||||
s = "horizontal";
|
||||
break;
|
||||
case E_GADGET_SITE_ORIENT_VERTICAL:
|
||||
s = "vertical";
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
snprintf(buf, sizeof(buf), "e,state,orientation,%s", s);
|
||||
elm_layout_signal_emit(ly, buf, "e");
|
||||
}
|
||||
|
||||
static void
|
||||
_menu_cb_post(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
if (eina_streq(event_info, menu_action))
|
||||
elm_layout_signal_emit(data, "e,state,unfocused", "e");
|
||||
}
|
||||
|
||||
static void
|
||||
_button_cb_mouse_down(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
|
||||
if (ev->button != 1) return;
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
|
||||
if (!menu_action) return;
|
||||
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||
evas_object_smart_callback_call(elm_win_get(obj), menu_action, "main");
|
||||
elm_layout_signal_emit(obj, "e,state,focused", "e");
|
||||
}
|
||||
|
||||
static void
|
||||
anchor_change(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
ganchor = (uintptr_t)event_info;
|
||||
do_orient(data, gorient, ganchor);
|
||||
}
|
||||
|
||||
static void
|
||||
orient_change(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
gorient = (uintptr_t)event_info;
|
||||
do_orient(data, gorient, ganchor);
|
||||
}
|
||||
|
||||
static void
|
||||
action_deleted(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
if (eina_streq(menu_action, event_info))
|
||||
{
|
||||
free(menu_action);
|
||||
menu_action = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
action_return(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
fprintf(stderr, "AR RETURN: %s\n", (char*)event_info);
|
||||
menu_action = eina_strdup(event_info);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
Evas_Object *win, *ly;
|
||||
|
||||
elm_init(argc, (char**)argv);
|
||||
win = elm_win_add(NULL, "start", ELM_WIN_BASIC);
|
||||
elm_win_autodel_set(win, 1);
|
||||
elm_win_alpha_set(win, 1);
|
||||
ly = elm_layout_add(win);
|
||||
evas_object_size_hint_min_set(win, 100, 100);
|
||||
evas_object_size_hint_aspect_set(win, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
elm_layout_file_set(ly,
|
||||
elm_theme_group_path_find(NULL, "e/gadget/start/main"), "e/gadget/start/main");
|
||||
elm_win_resize_object_add(win, ly);
|
||||
evas_object_show(ly);
|
||||
evas_object_smart_callback_add(win, "gadget_site_anchor", anchor_change, ly);
|
||||
evas_object_smart_callback_add(win, "gadget_site_orient", orient_change, ly);
|
||||
evas_object_smart_callback_add(win, "gadget_action", action_return, NULL);
|
||||
evas_object_smart_callback_add(win, "gadget_action_end", _menu_cb_post, ly);
|
||||
evas_object_smart_callback_add(win, "gadget_action_deleted", action_deleted, NULL);
|
||||
evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_DOWN, _button_cb_mouse_down, NULL);
|
||||
evas_object_smart_callback_call(win, "gadget_action_request", "menu_show_object");
|
||||
evas_object_show(win);
|
||||
ecore_main_loop_begin();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Start
|
||||
Exec=@GADGET_DIR@/start/e_gadget_start
|
||||
Icon=e/gadget/start/main
|
|
@ -0,0 +1,121 @@
|
|||
#include <Elementary.h>
|
||||
|
||||
static Evas_Object *popup;
|
||||
static Evas_Object *child;
|
||||
|
||||
static void
|
||||
popup_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
popup = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
child_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
child = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
popup_unfocus(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
evas_object_del(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
mouse_button(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Object *ic;
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
char buf[PATH_MAX];
|
||||
int w, h;
|
||||
Evas_Object *win;
|
||||
Elm_Win_Type type = ELM_WIN_POPUP_MENU;
|
||||
|
||||
if ((ev->button != 1) && (ev->button != 3)) return;
|
||||
if (ev->button == 3)
|
||||
{
|
||||
type = ELM_WIN_BASIC;
|
||||
if (child)
|
||||
{
|
||||
evas_object_del(child);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (popup)
|
||||
{
|
||||
evas_object_del(popup);
|
||||
return;
|
||||
}
|
||||
}
|
||||
win = elm_win_add(elm_win_get(obj), "win", type);
|
||||
elm_win_alpha_set(win, 1);
|
||||
if (ev->button == 3)
|
||||
{
|
||||
child = win;
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, child_del, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
popup = win;
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, popup_del, NULL);
|
||||
}
|
||||
if (ev->button == 3)
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_FOCUS_OUT, popup_unfocus, NULL);
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
|
||||
elm_image_file_set(ic, buf, NULL);
|
||||
elm_image_object_size_get(ic, &w, &h);
|
||||
evas_object_size_hint_aspect_set(win, EVAS_ASPECT_CONTROL_BOTH, w, h);
|
||||
if (ev->button == 1)
|
||||
{
|
||||
elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
|
||||
elm_image_no_scale_set(ic, EINA_TRUE);
|
||||
}
|
||||
evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(ic, 0.5, 0.5);
|
||||
evas_object_size_hint_min_set(ic, 100, 100);
|
||||
elm_win_resize_object_add(win, ic);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(win);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
Evas_Object *win, *ic;
|
||||
char buf[PATH_MAX];
|
||||
int w, h;
|
||||
|
||||
elm_init(argc, (char**)argv);
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
elm_app_info_set(main, "elementary", "images/logo.png");
|
||||
win = elm_win_add(NULL, "icon-transparent", ELM_WIN_BASIC);
|
||||
elm_win_title_set(win, "Icon Transparent");
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
elm_win_alpha_set(win, EINA_TRUE);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
elm_object_tooltip_text_set(ic, "this is some test text which is probably going to be a lot longer than the overall icon size haHAA");
|
||||
elm_object_tooltip_window_mode_set(ic, 1);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_image_file_set(ic, buf, NULL);
|
||||
elm_image_object_size_get(ic, &w, &h);
|
||||
evas_object_size_hint_aspect_set(win, EVAS_ASPECT_CONTROL_BOTH, w, h);
|
||||
if (argc > 1)
|
||||
{
|
||||
elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
|
||||
elm_image_no_scale_set(ic, EINA_TRUE);
|
||||
}
|
||||
evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(ic, 0.5, 0.5);
|
||||
evas_object_size_hint_min_set(ic, 100, 100);
|
||||
elm_win_resize_object_add(win, ic);
|
||||
evas_object_show(ic);
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_DOWN, mouse_button, NULL);
|
||||
|
||||
evas_object_show(win);
|
||||
ecore_main_loop_begin();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Test
|
||||
Exec=@GADGET_DIR@/test/e_gadget_test
|
|
@ -0,0 +1,182 @@
|
|||
project('desksanity', 'c',
|
||||
version: '1.1.99',
|
||||
license: 'BSD 2 clause',
|
||||
default_options: [ 'c_std=gnu99', 'warning_level=2' ],
|
||||
meson_version: '>= 0.40.0')
|
||||
|
||||
add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
|
||||
dir_prefix = get_option('prefix')
|
||||
dir_bin = join_paths(dir_prefix, get_option('bindir'))
|
||||
dir_sysconf = get_option('sysconfdir')
|
||||
dir_data = join_paths(dir_prefix, get_option('datadir'))
|
||||
dir_include = join_paths(dir_prefix, get_option('includedir'))
|
||||
dir_include_e = join_paths(dir_include, meson.project_name())
|
||||
dir_lib = join_paths(dir_prefix, get_option('libdir'))
|
||||
|
||||
|
||||
pkgconfig = import('pkgconfig')
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
# disable for release builds
|
||||
dev_cflags = []
|
||||
dev_cflags_try = [
|
||||
'-Wall',
|
||||
'-W',
|
||||
'-Wpointer-arith',
|
||||
'-Wshadow',
|
||||
'-Wno-missing-field-initializers',
|
||||
'-Wfloat-equal',
|
||||
'-Wuninitialized',
|
||||
'-Wundef',
|
||||
'-Wcast-align',
|
||||
'-Wformat=2',
|
||||
'-Wno-format-y2k',
|
||||
]
|
||||
|
||||
foreach cf: dev_cflags_try
|
||||
if cc.has_argument(cf) == true
|
||||
dev_cflags += cf
|
||||
endif
|
||||
endforeach
|
||||
add_global_arguments(dev_cflags, language: 'c')
|
||||
|
||||
dep_e = dependency('enlightenment')
|
||||
release = dep_e.get_pkgconfig_variable('release')
|
||||
host_os = host_machine.system()
|
||||
if host_os == 'linux'
|
||||
if cc.has_header_symbol('features.h', '__UCLIBC__')
|
||||
host_os = 'linux-uclibc'
|
||||
elif cc.has_header_symbol('features.h', '__dietlibc__')
|
||||
host_os = 'linux-dietlibc'
|
||||
else
|
||||
host_os = 'linux-gnu'
|
||||
endif
|
||||
endif
|
||||
|
||||
module_arch = '@0@-@1@-@2@'.format(host_os, host_machine.cpu_family(), release)
|
||||
|
||||
config_h = configuration_data()
|
||||
config_h.set('_GNU_SOURCE', '1')
|
||||
config_h.set('_ALL_SOURCE', '1')
|
||||
config_h.set('_POSIX_PTHREAD_SEMANTICS', '1')
|
||||
config_h.set('_TANDEM_SOURCE', '1')
|
||||
config_h.set('__EXTENSIONS__', '1')
|
||||
|
||||
config_h.set_quoted('MODULE_ARCH', module_arch)
|
||||
config_h.set_quoted('PACKAGE', meson.project_name())
|
||||
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
|
||||
config_h.set_quoted('VERSION', meson.project_version())
|
||||
config_h.set_quoted('PACKAGE_NAME', meson.project_name())
|
||||
config_h.set_quoted('BINDIR', dir_bin)
|
||||
config_h.set_quoted('DATADIR', dir_data)
|
||||
|
||||
if cc.has_function('setenv') == true
|
||||
config_h.set('HAVE_SETENV', '1')
|
||||
endif
|
||||
if cc.has_function('unsetenv') == true
|
||||
config_h.set('HAVE_UNSETENV', '1')
|
||||
endif
|
||||
if cc.has_function('clearenv') == true
|
||||
config_h.set('HAVE_CLEARENV', '1')
|
||||
endif
|
||||
if cc.has_header('features.h') == true
|
||||
config_h.set('HAVE_FEATURES_H', '1')
|
||||
endif
|
||||
if cc.has_header('sys/ptrace.h') == true
|
||||
config_h.set('HAVE_SYS_PTRACE_H', '1')
|
||||
endif
|
||||
if cc.has_header('arpa/inet.h') == true
|
||||
config_h.set('HAVE_ARPA_INET_H', '1')
|
||||
endif
|
||||
if cc.has_header('netinet/in.h') == true
|
||||
config_h.set('HAVE_NETINET_IN_H', '1')
|
||||
endif
|
||||
if cc.has_header('execinfo.h') == true
|
||||
config_h.set('HAVE_EXECINFO_H', '1')
|
||||
elif cc.has_function('backtrace_symbols_fd', dependencies: 'execinfo') == false
|
||||
execinfo_dep = dependency('execinfo', required: false)
|
||||
endif
|
||||
|
||||
if cc.has_header('fnmatch.h') == false
|
||||
error('fnmatch.h not found')
|
||||
endif
|
||||
|
||||
if cc.has_function('fnmatch') == false
|
||||
dep_fnmatch = dependency('fnmatch', required: true)
|
||||
endif
|
||||
|
||||
add_global_arguments('-DPACKAGE_BIN_DIR="@0@"'.format(dir_bin), language: 'c')
|
||||
add_global_arguments('-DPACKAGE_LIB_DIR="@0@"'.format(dir_lib), language: 'c')
|
||||
add_global_arguments('-DPACKAGE_DATA_DIR="@0@"'.format(join_paths(dir_data, meson.project_name())), language: 'c')
|
||||
add_global_arguments('-DPACKAGE_SYSCONF_DIR="@0@"'.format(dir_sysconf), language: 'c')
|
||||
|
||||
dep_efl_wl = dependency('efl-wl', required: false)
|
||||
|
||||
dir_module_e = join_paths([dep_e.get_pkgconfig_variable('modules'), 'desksanity'])
|
||||
edje_cc = find_program('edje_cc')
|
||||
|
||||
install_data(['e-module-desksanity.edj', 'module.desktop'],
|
||||
install_dir: dir_module_e,
|
||||
install_mode: 'rw-rw-r--')
|
||||
|
||||
build_files = [
|
||||
'src/e_mod_main.h',
|
||||
'src/e_mod_main.c',
|
||||
'src/ds_config.c',
|
||||
'src/maximize.c',
|
||||
'src/moveresize.c',
|
||||
'src/pip.c',
|
||||
'src/zoom.c',
|
||||
'src/magnify.c',
|
||||
'src/desksanity.c'
|
||||
]
|
||||
|
||||
if dep_efl_wl.found() == true and dep_e.get_pkgconfig_variable('wayland') == 'true'
|
||||
config_h.set('HAVE_RUNNER', '1')
|
||||
|
||||
dir_gadgets = join_paths([dir_lib, 'enlightenment/gadgets', module_arch])
|
||||
executable('e_gadget_start',
|
||||
'loader/start.c',
|
||||
c_args: '-fPIE',
|
||||
link_args: '-fPIE',
|
||||
dependencies: [dependency('elementary'), dependency('enlightenment')],
|
||||
install_dir: join_paths([dir_gadgets, 'start']),
|
||||
install: true)
|
||||
|
||||
executable('e_gadget_test',
|
||||
'loader/test.c',
|
||||
c_args: '-fPIE',
|
||||
link_args: '-fPIE',
|
||||
dependencies: dependency('elementary'),
|
||||
install_dir: join_paths([dir_gadgets, 'test']),
|
||||
install: true)
|
||||
|
||||
config_h.set_quoted('GADGET_DIR', dir_gadgets)
|
||||
desktop_data = configuration_data()
|
||||
desktop_data.set('GADGET_DIR', dir_gadgets)
|
||||
configure_file(input: 'loader/test.desktop.in',
|
||||
output: 'test.desktop',
|
||||
install: true,
|
||||
install_dir: join_paths([dir_gadgets, 'test']),
|
||||
configuration: desktop_data)
|
||||
configure_file(input: 'loader/start.desktop.in',
|
||||
output: 'start.desktop',
|
||||
install: true,
|
||||
install_dir: join_paths([dir_gadgets, 'start']),
|
||||
configuration: desktop_data)
|
||||
endif
|
||||
|
||||
|
||||
configure_file(output: 'config.h',
|
||||
install: false,
|
||||
configuration: config_h)
|
||||
|
||||
shared_module('desksanity', build_files,
|
||||
include_directories: include_directories(['src']),
|
||||
name_prefix: '',
|
||||
dependencies: [dep_e, dep_efl_wl],
|
||||
install_dir: join_paths([dir_module_e, module_arch]),
|
||||
install: true)
|
||||
|
||||
|
||||
meson.add_install_script('meson_modules.sh', join_paths([dir_module_e, module_arch, 'desksanity.so']))
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
for x in "$@" ; do
|
||||
dir="$(dirname $x)"
|
||||
mv "$DESTDIR"/"$x" "$DESTDIR"/"$dir"/module.so
|
||||
done
|
|
@ -8,7 +8,7 @@ static Evas_Object *dm_hide = NULL;
|
|||
static DS_Type cur_type = DS_PAN;
|
||||
|
||||
static void
|
||||
_ds_end(void *data EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||
_ds_end(void *data EINA_UNUSED, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||
{
|
||||
/* hide/delete previous desk's mirror */
|
||||
evas_object_hide(dm_hide);
|
||||
|
@ -48,12 +48,12 @@ dm_add(E_Desk *desk)
|
|||
}
|
||||
|
||||
static void
|
||||
_ds_blink2(void *data EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj)
|
||||
_ds_blink2(void *data EINA_UNUSED, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj)
|
||||
{
|
||||
E_FREE_FUNC(dm_hide, evas_object_del);
|
||||
evas_object_show(dm_show);
|
||||
efx_resize(obj, EFX_EFFECT_SPEED_DECELERATE,
|
||||
EFX_POINT(desk_show->zone->x, desk_show->zone->y),
|
||||
e_efx_resize(obj, E_EFX_EFFECT_SPEED_DECELERATE,
|
||||
E_EFX_POINT(desk_show->zone->x, desk_show->zone->y),
|
||||
desk_show->zone->w, desk_show->zone->h,
|
||||
0.45, _ds_end, NULL);
|
||||
}
|
||||
|
@ -153,30 +153,30 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
}
|
||||
dm_show = dm_add(desk);
|
||||
evas_object_move(dm_show, x, y);
|
||||
efx_move(dm_hide, EFX_EFFECT_SPEED_DECELERATE, EFX_POINT(hx, hy), 0.2, NULL, NULL);
|
||||
efx_move(dm_show, EFX_EFFECT_SPEED_DECELERATE, EFX_POINT(desk->zone->x, desk->zone->y), 0.2, _ds_end, NULL);
|
||||
e_efx_move(dm_hide, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_POINT(hx, hy), 0.2, NULL, NULL);
|
||||
e_efx_move(dm_show, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_POINT(desk->zone->x, desk->zone->y), 0.2, _ds_end, NULL);
|
||||
break;
|
||||
case DS_FADE_OUT:
|
||||
efx_fade(dm_hide, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.25, _ds_end, NULL);
|
||||
e_efx_fade(dm_hide, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(0, 0, 0), 0, 0.25, _ds_end, NULL);
|
||||
break;
|
||||
case DS_FADE_IN:
|
||||
E_FREE_FUNC(dm_hide, evas_object_del);
|
||||
dm_show = dm_add(desk);
|
||||
efx_fade(dm_show, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL);
|
||||
efx_fade(dm_show, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(255, 255, 255), 255, 0.25, _ds_end, NULL);
|
||||
e_efx_fade(dm_show, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL);
|
||||
e_efx_fade(dm_show, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(255, 255, 255), 255, 0.25, _ds_end, NULL);
|
||||
break;
|
||||
case DS_BATMAN:
|
||||
evas_object_raise(dm_hide);
|
||||
efx_spin_start(dm_hide, 1080.0, NULL);
|
||||
efx_zoom(dm_hide, EFX_EFFECT_SPEED_LINEAR, 1.0, 0.00001, NULL, 0.4, _ds_end, NULL);
|
||||
e_efx_spin_start(dm_hide, 1080.0, NULL);
|
||||
e_efx_zoom(dm_hide, E_EFX_EFFECT_SPEED_LINEAR, 1.0, 0.00001, NULL, 0.4, _ds_end, NULL);
|
||||
break;
|
||||
case DS_ZOOM_IN:
|
||||
dm_show = dm_add(desk);
|
||||
efx_zoom(dm_show, EFX_EFFECT_SPEED_LINEAR, 0.000001, 1.0, NULL, 0.4, _ds_end, NULL);
|
||||
e_efx_zoom(dm_show, E_EFX_EFFECT_SPEED_LINEAR, 0.000001, 1.0, NULL, 0.4, _ds_end, NULL);
|
||||
break;
|
||||
case DS_ZOOM_OUT:
|
||||
evas_object_raise(dm_hide);
|
||||
efx_zoom(dm_hide, EFX_EFFECT_SPEED_LINEAR, 1.0, 0.0000001, NULL, 0.4, _ds_end, NULL);
|
||||
e_efx_zoom(dm_hide, E_EFX_EFFECT_SPEED_LINEAR, 1.0, 0.0000001, NULL, 0.4, _ds_end, NULL);
|
||||
break;
|
||||
case DS_GROW:
|
||||
x = hx = desk->zone->x;
|
||||
|
@ -197,19 +197,19 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
evas_object_clip_set(dm_show, o);
|
||||
evas_object_show(o);
|
||||
e_comp_object_util_del_list_append(dm_show, o);
|
||||
efx_resize(o, EFX_EFFECT_SPEED_LINEAR, EFX_POINT(hx, hy), desk->zone->w, desk->zone->h, 0.4, _ds_end, NULL);
|
||||
e_efx_resize(o, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_POINT(hx, hy), desk->zone->w, desk->zone->h, 0.4, _ds_end, NULL);
|
||||
break;
|
||||
case DS_ROTATE_OUT:
|
||||
efx_move_circle(dm_hide, EFX_EFFECT_SPEED_LINEAR, EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
e_efx_move_circle(dm_hide, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
720, 0.4, NULL, NULL);
|
||||
efx_resize(dm_hide, EFX_EFFECT_SPEED_LINEAR, NULL, 1, 1, 0.4, _ds_end, NULL);
|
||||
e_efx_resize(dm_hide, E_EFX_EFFECT_SPEED_LINEAR, NULL, 1, 1, 0.4, _ds_end, NULL);
|
||||
break;
|
||||
case DS_ROTATE_IN:
|
||||
dm_show = dm_add(desk);
|
||||
evas_object_resize(dm_show, 1, 1);
|
||||
efx_move_circle(dm_show, EFX_EFFECT_SPEED_LINEAR, EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
e_efx_move_circle(dm_show, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
720, 0.4, NULL, NULL);
|
||||
efx_resize(dm_show, EFX_EFFECT_SPEED_LINEAR, NULL, desk->zone->w, desk->zone->h, 0.4, _ds_end, NULL);
|
||||
e_efx_resize(dm_show, E_EFX_EFFECT_SPEED_LINEAR, NULL, desk->zone->w, desk->zone->h, 0.4, _ds_end, NULL);
|
||||
break;
|
||||
case DS_SLIDE_SPLIT:
|
||||
{
|
||||
|
@ -259,7 +259,7 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
else
|
||||
exy.y = desk_show->zone->y + (dy * desk_show->zone->h);
|
||||
}
|
||||
efx_move(dmh, EFX_EFFECT_SPEED_ACCELERATE,
|
||||
e_efx_move(dmh, E_EFX_EFFECT_SPEED_ACCELERATE,
|
||||
&exy, 0.5, (i == (num - 1)) ? _ds_end : NULL, NULL);
|
||||
dmh = NULL;
|
||||
}
|
||||
|
@ -300,7 +300,7 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
evas_object_clip_set(dmh[i], clip[i]);
|
||||
evas_object_show(clip[i]);
|
||||
/* apply effect coords */
|
||||
efx_move(clip[i], EFX_EFFECT_SPEED_ACCELERATE,
|
||||
e_efx_move(clip[i], E_EFX_EFFECT_SPEED_ACCELERATE,
|
||||
&exy[i], 0.8, (i == 3) ? _ds_end : NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
@ -334,8 +334,8 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
evas_object_clip_set(dmh[i], clip[i]);
|
||||
evas_object_show(clip[i]);
|
||||
/* resize all quads to 1x1 while moving towards center */
|
||||
efx_resize(clip[i], EFX_EFFECT_SPEED_ACCELERATE,
|
||||
EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
e_efx_resize(clip[i], E_EFX_EFFECT_SPEED_ACCELERATE,
|
||||
E_EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
1, 1 ,0.8, (i == 3) ? _ds_end : NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
@ -362,8 +362,8 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
evas_object_clip_set(dm_show, clip);
|
||||
evas_object_show(clip);
|
||||
/* resize clip to 1px high while moving towards center */
|
||||
efx_resize(clip, EFX_EFFECT_SPEED_ACCELERATE,
|
||||
EFX_POINT(desk->zone->x, desk->zone->y + (desk->zone->h / 2)),
|
||||
e_efx_resize(clip, E_EFX_EFFECT_SPEED_ACCELERATE,
|
||||
E_EFX_POINT(desk->zone->x, desk->zone->y + (desk->zone->h / 2)),
|
||||
desk->zone->w, 1, 0.45, _ds_blink2, NULL);
|
||||
}
|
||||
break;
|
||||
|
@ -378,8 +378,8 @@ _ds_show(E_Desk *desk, int dx, int dy)
|
|||
e_comp_object_util_del_list_append(dm_hide, clip);
|
||||
evas_object_show(clip);
|
||||
/* resize clip to 1x1 while moving towards center */
|
||||
efx_resize(clip, EFX_EFFECT_SPEED_DECELERATE,
|
||||
EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
e_efx_resize(clip, E_EFX_EFFECT_SPEED_DECELERATE,
|
||||
E_EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
|
||||
1, 1, 0.6, _ds_end, NULL);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -32,7 +32,7 @@ _ds_menu_ruler(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi)
|
|||
mr_init();
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
#if E_VERSION_MAJOR == 20
|
||||
static void
|
||||
_ds_menu_maximize(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi)
|
||||
{
|
||||
|
@ -43,6 +43,7 @@ _ds_menu_maximize(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi
|
|||
maximize_init();
|
||||
e_config_save_queue();
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
_ds_menu_transitions(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi)
|
||||
|
@ -90,13 +91,13 @@ _ds_menu_add(void *data EINA_UNUSED, E_Menu *m)
|
|||
e_menu_item_check_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, ds_config->disable_ruler);
|
||||
e_menu_item_callback_set(mi, _ds_menu_ruler, NULL);
|
||||
|
||||
#if E_VERSION_MAJOR == 20
|
||||
mi = e_menu_item_new(subm);
|
||||
e_menu_item_label_set(mi, D_("Disable Maximize Effects"));
|
||||
e_menu_item_check_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, ds_config->disable_maximize);
|
||||
e_menu_item_callback_set(mi, _ds_menu_maximize, NULL);
|
||||
|
||||
#endif
|
||||
mi = e_menu_item_new(subm);
|
||||
e_menu_item_label_set(mi, D_("Disable Transition Effects"));
|
||||
e_menu_item_check_set(mi, 1);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "e_mod_main.h"
|
||||
|
||||
EAPI E_Module_Api e_modapi = {E_MODULE_API_VERSION, "Desksanity"};
|
||||
E_API E_Module_Api e_modapi = {E_MODULE_API_VERSION, "Desksanity"};
|
||||
static E_Config_DD *conf_edd = NULL;
|
||||
|
||||
EINTERN Mod *mod = NULL;
|
||||
|
@ -20,7 +20,7 @@ static Eina_Bool focus_last_focused_per_desktop;
|
|||
static unsigned int pending_flip;
|
||||
|
||||
static void
|
||||
_ds_fade_end(Ecore_Cb cb, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||
_ds_fade_end(Ecore_Cb cb, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||
{
|
||||
E_FREE_FUNC(fade_obj, evas_object_del);
|
||||
if (cb)
|
||||
|
@ -230,7 +230,7 @@ ds_client_urgent(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Client_Property
|
|||
return ECORE_CALLBACK_RENEW;
|
||||
}
|
||||
|
||||
EAPI void *
|
||||
E_API void *
|
||||
e_modapi_init(E_Module *m)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
|
@ -241,7 +241,7 @@ e_modapi_init(E_Module *m)
|
|||
snprintf(buf, sizeof(buf), "%s/e-module-desksanity.edj", m->dir);
|
||||
elm_theme_overlay_add(NULL, buf);
|
||||
|
||||
efx_init();
|
||||
e_efx_init();
|
||||
_e_mod_ds_config_load();
|
||||
|
||||
mod = E_NEW(Mod, 1);
|
||||
|
@ -253,13 +253,14 @@ e_modapi_init(E_Module *m)
|
|||
ds_init();
|
||||
if (!ds_config->disable_ruler)
|
||||
mr_init();
|
||||
#if E_VERSION_MAJOR == 20
|
||||
if (!ds_config->disable_maximize)
|
||||
maximize_init();
|
||||
#endif
|
||||
|
||||
pip_init();
|
||||
zoom_init();
|
||||
mag_init();
|
||||
|
||||
E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_PROPERTY, ds_client_urgent, NULL);
|
||||
E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_REMOVE, ds_client_remove, NULL);
|
||||
E_LIST_HANDLER_APPEND(handlers, E_EVENT_DESK_AFTER_SHOW, ds_desk_after_show, NULL);
|
||||
|
@ -271,14 +272,16 @@ e_modapi_init(E_Module *m)
|
|||
return m;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
E_API int
|
||||
e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
||||
{
|
||||
mag_shutdown();
|
||||
zoom_shutdown();
|
||||
pip_shutdown();
|
||||
#if E_VERSION_MAJOR == 20
|
||||
if (!ds_config->disable_maximize)
|
||||
maximize_shutdown();
|
||||
#endif
|
||||
if (!ds_config->disable_ruler)
|
||||
mr_shutdown();
|
||||
if (!ds_config->disable_transitions)
|
||||
|
@ -296,11 +299,11 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
|||
focus_list = eina_list_free(focus_list);
|
||||
E_FREE_FUNC(ds_key_focus_timeout, ecore_timer_del);
|
||||
E_FREE_LIST(ds_key_focus_desks, e_object_unref);
|
||||
//efx_shutdown(); broken...
|
||||
//e_efx_shutdown(); broken...
|
||||
return 1;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
E_API int
|
||||
e_modapi_save(E_Module *m EINA_UNUSED)
|
||||
{
|
||||
e_config_domain_save("module.desksanity", conf_edd, ds_config);
|
||||
|
@ -317,16 +320,18 @@ ds_fade_setup(Evas_Object_Event_Cb click_cb)
|
|||
evas_object_name_set(fade_obj, "fade_obj");
|
||||
evas_object_geometry_set(fade_obj, 0, 0, e_comp->w, e_comp->h);
|
||||
evas_object_layer_set(fade_obj, E_LAYER_MENU + 1);
|
||||
evas_object_pass_events_set(fade_obj, 1);
|
||||
evas_object_show(fade_obj);
|
||||
efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL);
|
||||
efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 192, 0.3, NULL, NULL);
|
||||
e_efx_fade(fade_obj, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL);
|
||||
e_efx_fade(fade_obj, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(0, 0, 0), 192, 0.3, NULL, NULL);
|
||||
}
|
||||
|
||||
EINTERN void
|
||||
ds_fade_end(Ecore_Cb end_cb, Evas_Object_Event_Cb click_cb)
|
||||
{
|
||||
if (!fade_obj) return;
|
||||
evas_object_pass_events_set(fade_obj, 1);
|
||||
efx_fade(fade_obj, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, (Efx_End_Cb)_ds_fade_end, end_cb);
|
||||
e_efx_fade(fade_obj, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, (E_Efx_End_Cb)_ds_fade_end, end_cb);
|
||||
if (click_cb)
|
||||
evas_object_event_callback_del(fade_obj, EVAS_CALLBACK_MOUSE_DOWN, click_cb);
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#endif
|
||||
|
||||
#include <e.h>
|
||||
#include <Efx.h>
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
# include <libintl.h>
|
||||
|
@ -91,10 +90,10 @@ EINTERN void ds_shutdown(void);
|
|||
|
||||
EINTERN void mr_shutdown(void);
|
||||
EINTERN void mr_init(void);
|
||||
|
||||
#if E_VERSION_MAJOR == 20
|
||||
EINTERN void maximize_init(void);
|
||||
EINTERN void maximize_shutdown(void);
|
||||
|
||||
#endif
|
||||
EINTERN void pip_init(void);
|
||||
EINTERN void pip_shutdown(void);
|
||||
|
||||
|
@ -106,4 +105,5 @@ EINTERN void zoom_shutdown(void);
|
|||
|
||||
EINTERN void mag_init(void);
|
||||
EINTERN void mag_shutdown(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,7 +30,7 @@ static void
|
|||
_current_update(int n)
|
||||
{
|
||||
if (current_mag != -1)
|
||||
efx_zoom_reset(magnifiers[current_mag]);
|
||||
e_efx_zoom_reset(magnifiers[current_mag]);
|
||||
current_mag = n;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ _magnify_update(int x, int y)
|
|||
w = zone->w / MAG_SIZE_FACTOR;
|
||||
h = zone->h / MAG_SIZE_FACTOR;
|
||||
evas_object_geometry_set(clip, x - (w / 2), y - (h / 2), w, h);
|
||||
efx_zoom(magnifiers[zone->num], EFX_EFFECT_SPEED_LINEAR, 0, 2.0, EFX_POINT(x, y), 0, NULL, NULL);
|
||||
e_efx_zoom(magnifiers[zone->num], E_EFX_EFFECT_SPEED_LINEAR, 0, 2.0, E_EFX_POINT(x, y), 0, NULL, NULL);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "e_mod_main.h"
|
||||
#if E_VERSION_MAJOR == 20
|
||||
|
||||
static Ecore_Event_Handler *eh = NULL;
|
||||
|
||||
|
@ -28,7 +29,7 @@ _ds_unmaximize_post(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
|||
if (!rect) return;
|
||||
evas_object_geometry_set(obj, rect->x, rect->y, rect->w, rect->h);
|
||||
free(rect);
|
||||
efx_resize(ec->frame, EFX_EFFECT_SPEED_SINUSOIDAL, EFX_POINT(x, y), w, h, time, NULL, NULL);
|
||||
e_efx_resize(ec->frame, E_EFX_EFFECT_SPEED_SINUSOIDAL, E_EFX_POINT(x, y), w, h, time, NULL, NULL);
|
||||
ecore_timer_add(0.1, _ds_unmaximize_render, NULL);
|
||||
}
|
||||
|
||||
|
@ -54,12 +55,12 @@ _ds_unmaximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EI
|
|||
|
||||
max = !!evas_object_data_del(ec->frame, "__DSMAX");
|
||||
if (max)
|
||||
efx_resize_stop(ec->frame);
|
||||
e_efx_resize_stop(ec->frame);
|
||||
ec->maximize_override = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
_ds_maximize_done(void *data, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||
_ds_maximize_done(void *data, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
|
||||
{
|
||||
E_Client *ec = data;
|
||||
|
||||
|
@ -85,7 +86,7 @@ _ds_maximize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNU
|
|||
if ((!w) || (!h)) return; //new client, don't break the universe
|
||||
ec->maximize_override = 1;
|
||||
evas_object_geometry_set(ec->frame, x, y, w, h);
|
||||
efx_resize(ec->frame, EFX_EFFECT_SPEED_SINUSOIDAL, EFX_POINT(ecx, ecy), ecw, ech, time, _ds_maximize_done, ec);
|
||||
e_efx_resize(ec->frame, E_EFX_EFFECT_SPEED_SINUSOIDAL, E_EFX_POINT(ecx, ecy), ecw, ech, time, _ds_maximize_done, ec);
|
||||
evas_object_data_set(ec->frame, "__DSMAX", (void*)1);
|
||||
}
|
||||
|
||||
|
@ -97,7 +98,7 @@ _ds_fullscreen(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_U
|
|||
evas_object_data_del(ec->frame, "__DSMAX");
|
||||
free(evas_object_data_del(ec->frame, "__DSUMAX"));
|
||||
ec->maximize_override = 0;
|
||||
efx_resize_stop(ec->frame);
|
||||
e_efx_resize_stop(ec->frame);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -144,3 +145,4 @@ maximize_shutdown(void)
|
|||
}
|
||||
E_FREE_FUNC(eh, ecore_event_handler_del);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -57,7 +57,7 @@ move_x_update(E_Client *ec)
|
|||
if (evas_object_clip_get(mr_line_x) != zone->bg_clip_object)
|
||||
{
|
||||
evas_object_clip_set(mr_line_x, zone->bg_clip_object);
|
||||
efx_reclip(mr_line_x);
|
||||
e_efx_reclip(mr_line_x);
|
||||
}
|
||||
evas_object_geometry_set(mr_line_x, ec->x, zone->y, 1, zone->h);
|
||||
|
||||
|
@ -83,7 +83,7 @@ move_y_update(E_Client *ec)
|
|||
if (evas_object_clip_get(mr_line_y) != zone->bg_clip_object)
|
||||
{
|
||||
evas_object_clip_set(mr_line_y, zone->bg_clip_object);
|
||||
efx_reclip(mr_line_y);
|
||||
e_efx_reclip(mr_line_y);
|
||||
}
|
||||
evas_object_geometry_set(mr_line_y, zone->x, ec->y, zone->w, 1);
|
||||
|
||||
|
@ -221,6 +221,7 @@ text_add(Evas *e)
|
|||
Evas_Object *o;
|
||||
|
||||
o = edje_object_add(e);
|
||||
evas_object_pass_events_set(o, 1);
|
||||
evas_object_layer_set(o, E_LAYER_MENU + 2);
|
||||
edje_object_file_set(o, mod->edje_file, "e/modules/desksanity/moveresize");
|
||||
evas_object_show(o);
|
||||
|
@ -240,11 +241,11 @@ line_add(Evas *e)
|
|||
}
|
||||
|
||||
static void
|
||||
pulse(void *d EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj)
|
||||
pulse(void *d EINA_UNUSED, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj)
|
||||
{
|
||||
efx_queue_append(obj, EFX_EFFECT_SPEED_SINUSOIDAL, EFX_QUEUED_EFFECT(EFX_EFFECT_FADE(255, 255, 255, 255)), 0.6, NULL, NULL);
|
||||
efx_queue_append(obj, EFX_EFFECT_SPEED_SINUSOIDAL, EFX_QUEUED_EFFECT(EFX_EFFECT_FADE(120, 120, 120, 120)), 0.9, pulse, NULL);
|
||||
efx_queue_run(obj);
|
||||
e_efx_queue_append(obj, E_EFX_EFFECT_SPEED_SINUSOIDAL, E_EFX_QUEUED_EFFECT(E_EFX_EFFECT_FADE(255, 255, 255, 255)), 0.6, NULL, NULL);
|
||||
e_efx_queue_append(obj, E_EFX_EFFECT_SPEED_SINUSOIDAL, E_EFX_QUEUED_EFFECT(E_EFX_EFFECT_FADE(120, 120, 120, 120)), 0.9, pulse, NULL);
|
||||
e_efx_queue_run(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -289,14 +290,14 @@ move_update(void *d EINA_UNUSED, E_Client *ec)
|
|||
static void
|
||||
move_end(void *d EINA_UNUSED, E_Client *ec EINA_UNUSED)
|
||||
{
|
||||
efx_queue_clear(mr_line_x);
|
||||
efx_queue_clear(mr_line_y);
|
||||
efx_fade_reset(mr_line_x);
|
||||
efx_fade_reset(mr_line_y);
|
||||
efx_fade(mr_line_x, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
efx_fade(mr_line_y, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
efx_fade(move_text_x, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
efx_fade(move_text_y, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
e_efx_queue_clear(mr_line_x);
|
||||
e_efx_queue_clear(mr_line_y);
|
||||
e_efx_fade_reset(mr_line_x);
|
||||
e_efx_fade_reset(mr_line_y);
|
||||
e_efx_fade(mr_line_x, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
e_efx_fade(mr_line_y, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
e_efx_fade(move_text_x, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
e_efx_fade(move_text_y, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
ds_fade_end(_fade_end, NULL);
|
||||
}
|
||||
|
||||
|
@ -372,12 +373,12 @@ resize_end(void *d EINA_UNUSED, E_Client *ec EINA_UNUSED)
|
|||
{
|
||||
unsigned int x;
|
||||
|
||||
efx_fade(resize_text, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
e_efx_fade(resize_text, E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
for (x = 0; x < 4; x++)
|
||||
{
|
||||
if (!resize_rect[x]) continue;
|
||||
efx_fade(resize_rect[x], EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
efx_queue_clear(resize_rect[x]);
|
||||
e_efx_fade(resize_rect[x], E_EFX_EFFECT_SPEED_DECELERATE, E_EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||
e_efx_queue_clear(resize_rect[x]);
|
||||
}
|
||||
ds_fade_end(_fade_end, NULL);
|
||||
}
|
||||
|
|
16
src/pip.c
16
src/pip.c
|
@ -30,6 +30,7 @@ pips_noedit()
|
|||
|
||||
editing = EINA_FALSE;
|
||||
ds_fade_end(NULL, pips_noedit);
|
||||
e_comp_ungrab_input(1, 1);
|
||||
it = eina_hash_iterator_data_new(pips);
|
||||
EINA_ITERATOR_FOREACH(it, pip)
|
||||
{
|
||||
|
@ -50,6 +51,7 @@ pips_edit(void)
|
|||
if (e_comp->nocomp) return;
|
||||
editing = EINA_TRUE;
|
||||
ds_fade_setup(pips_noedit);
|
||||
e_comp_grab_input(1, 1);
|
||||
it = eina_hash_iterator_data_new(pips);
|
||||
EINA_ITERATOR_FOREACH(it, pip)
|
||||
{
|
||||
|
@ -203,9 +205,9 @@ _pip_mouse_wheel(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
if (evas_key_modifier_is_set(ev->modifiers, "Control"))
|
||||
{
|
||||
if (ev->z < 0)
|
||||
efx_zoom(pip->pip, EFX_EFFECT_SPEED_LINEAR, 0, pip->zoom -= 0.05, EFX_POINT(ev->output.x, ev->output.y), 0.2, NULL, NULL);
|
||||
e_efx_zoom(pip->pip, E_EFX_EFFECT_SPEED_LINEAR, 0, pip->zoom -= 0.05, E_EFX_POINT(ev->output.x, ev->output.y), 0.2, NULL, NULL);
|
||||
else if (ev->z > 0)
|
||||
efx_zoom(pip->pip, EFX_EFFECT_SPEED_LINEAR, 0, pip->zoom += 0.05, EFX_POINT(ev->output.x, ev->output.y), 0.2, NULL, NULL);
|
||||
e_efx_zoom(pip->pip, E_EFX_EFFECT_SPEED_LINEAR, 0, pip->zoom += 0.05, E_EFX_POINT(ev->output.x, ev->output.y), 0.2, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -213,7 +215,7 @@ _pip_mouse_wheel(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
pip->opacity = E_CLAMP(pip->opacity + 15, 0, 255);
|
||||
else if (ev->z > 0)
|
||||
pip->opacity = E_CLAMP(pip->opacity - 15, 0, 255);
|
||||
efx_fade(pip->pip, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(pip->opacity, pip->opacity, pip->opacity), pip->opacity, 0.2, NULL, NULL);
|
||||
e_efx_fade(pip->pip, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(pip->opacity, pip->opacity, pip->opacity), pip->opacity, 0.2, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -345,9 +347,9 @@ _pip_manage(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_
|
|||
}
|
||||
|
||||
static void
|
||||
_pip_fade_end(void *d EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj)
|
||||
_pip_fade_end(void *d EINA_UNUSED, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj)
|
||||
{
|
||||
ecore_job_add((Ecore_Cb)efx_fade_reset, obj);
|
||||
ecore_job_add((Ecore_Cb)e_efx_fade_reset, obj);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -377,8 +379,8 @@ _pip_create(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED)
|
|||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, _pip_mouse_wheel, pip);
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _pip_del, ec);
|
||||
|
||||
efx_fade(o, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL);
|
||||
efx_fade(o, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(255, 255, 255), 255, 0.2, _pip_fade_end, NULL);
|
||||
e_efx_fade(o, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL);
|
||||
e_efx_fade(o, E_EFX_EFFECT_SPEED_LINEAR, E_EFX_COLOR(255, 255, 255), 255, 0.2, _pip_fade_end, NULL);
|
||||
|
||||
eina_hash_add(pips, &ec->frame, pip);
|
||||
if (editing)
|
||||
|
|
|
@ -474,12 +474,13 @@ _zoom_client_property(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Client_Pro
|
|||
static void
|
||||
_hiding(void *data EINA_UNUSED, Evas_Object *obj, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||
{
|
||||
Eina_List *clients = evas_object_data_get(obj, "__DSCLIENTS");
|
||||
Eina_List *clients = evas_object_data_del(obj, "__DSCLIENTS");
|
||||
Evas_Object *m, *e;
|
||||
|
||||
EINA_LIST_FREE(clients, m)
|
||||
{
|
||||
e = evas_object_smart_parent_get(m);
|
||||
evas_object_pass_events_set(e, 1);
|
||||
edje_object_signal_emit(e, "e,action,hide", "e");
|
||||
}
|
||||
}
|
||||
|
|
BIN
win_shadow.png
BIN
win_shadow.png
Binary file not shown.
Before Width: | Height: | Size: 501 B |
Loading…
Reference in New Issue