diff --git a/configure.ac b/configure.ac index 26b151606..f23cd2b6b 100644 --- a/configure.ac +++ b/configure.ac @@ -424,6 +424,7 @@ AC_E_OPTIONAL_MODULE([connman], false) AC_E_OPTIONAL_MODULE([illume], true) AC_E_OPTIONAL_MODULE([syscon], true) AC_E_OPTIONAL_MODULE([everything], true) +AC_E_OPTIONAL_MODULE([systray], true) AC_OUTPUT([ Makefile @@ -558,6 +559,8 @@ src/modules/syscon/Makefile src/modules/syscon/module.desktop src/modules/everything/Makefile src/modules/everything/module.desktop +src/modules/systray/Makefile +src/modules/systray/module.desktop src/preload/Makefile data/Makefile data/images/Makefile diff --git a/data/themes/default.edc b/data/themes/default.edc index aba5d6be9..9fafcbcf6 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -10004,6 +10004,506 @@ collections { /* begin the collection of edje groups that are in this file */ } } +///////////////////////////////////////////////////////////////////////////// + /*** MOD: SYSTRAY ***/ + group { name: "e/modules/systray/main"; + alias: "e/modules/systray/main/default"; + alias: "e/modules/systray/main/invisible"; + data { + item: "inset" "255 255 255"; + item: "plain" "230 230 230"; + item: "default" "255 255 255"; + } + parts { + part { name: "base"; + type: RECT; + description { state: "default" 0.0; + color: 0 0 0 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 0 0 128; + } + } + part { name: "e.size"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 0; + rel1.offset: 4 4; + rel2.offset: -5 -5; + } + } + part { name: "e.box"; + type: BOX; + description { state: "default" 0.0; + rel1.to: "e.size"; + rel2.to: "e.size"; + box { + layout: "horizontal"; + padding: 2 0; + align: 0.5 0.5; + min: 1 1; + } + } + description { state: "vertical" 0.0; + rel1.to: "e.size"; + rel2.to: "e.size"; + box { + layout: "vertical"; + padding: 0 2; + align: 0.5 0.5; + min: 1 1; + } + } + } + programs { + program { name: "e,action,disable"; + signal: "e,action,disable"; + source: "e"; + action: STATE_SET "disabled" 0.0; + target: "base"; + } + program { name: "e,action,enable"; + signal: "e,action,enable"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "base"; + } + program { name: "e,action,orient,float"; + signal: "e,action,orient,float"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,horiz"; + signal: "e,action,orient,horiz"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,vert"; + signal: "e,action,orient,vert"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,left"; + signal: "e,action,orient,left"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,right"; + signal: "e,action,orient,right"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,top"; + signal: "e,action,orient,top"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,bottom"; + signal: "e,action,orient,bottom"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_tl"; + signal: "e,action,orient,corner_tl"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_tr"; + signal: "e,action,orient,corner_tr"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_bl"; + signal: "e,action,orient,corner_bl"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_br"; + signal: "e,action,orient,corner_br"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_lt"; + signal: "e,action,orient,corner_lt"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_rt"; + signal: "e,action,orient,corner_rt"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_lb"; + signal: "e,action,orient,corner_lb"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_rb"; + signal: "e,action,orient,corner_rb"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + } + } + } + + group { name: "e/modules/systray/main/alternate"; + data { + item: "inset" "255 255 255"; + item: "plain" "255 255 255"; + item: "default" "255 255 255"; + } + images.image: "systray_rounded_corners.png" COMP; + parts { + part { name: "base"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { name: "rounded_corners"; + type: IMAGE; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + offset: -3 -3; + to: "e.size"; + } + rel2 { + relative: 1.0 1.0; + offset: 2 2; + to: "e.size"; + } + image { + normal: "systray_rounded_corners.png"; + border: 3 3 3 3; + middle: SOLID; + } + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 0 0 128; + } + } + part { name: "e.size"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 0; + rel1.offset: 4 4; + rel2.offset: -5 -5; + } + } + part { name: "e.box"; + type: BOX; + description { + state: "default" 0.0; + rel1.to: "e.size"; + rel2.to: "e.size"; + box { + layout: "horizontal"; + padding: 2 0; + align: 0.5 0.5; + min: 1 1; + } + } + description { state: "vertical" 0.0; + rel1.to: "e.size"; + rel2.to: "e.size"; + box { + layout: "vertical"; + padding: 0 2; + align: 0.5 0.5; + min: 1 1; + } + } + } + programs { + program { name: "e,action,disable"; + signal: "e,action,disable"; + source: "e"; + action: STATE_SET "disabled" 0.0; + target: "rounded_corners"; + } + program { name: "e,action,enable"; + signal: "e,action,enable"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "rounded_corners"; + } + program { name: "e,action,orient,float"; + signal: "e,action,orient,float"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,horiz"; + signal: "e,action,orient,horiz"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,vert"; + signal: "e,action,orient,vert"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,left"; + signal: "e,action,orient,left"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,right"; + signal: "e,action,orient,right"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,top"; + signal: "e,action,orient,top"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,bottom"; + signal: "e,action,orient,bottom"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_tl"; + signal: "e,action,orient,corner_tl"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_tr"; + signal: "e,action,orient,corner_tr"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_bl"; + signal: "e,action,orient,corner_bl"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_br"; + signal: "e,action,orient,corner_br"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_lt"; + signal: "e,action,orient,corner_lt"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_rt"; + signal: "e,action,orient,corner_rt"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_lb"; + signal: "e,action,orient,corner_lb"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_rb"; + signal: "e,action,orient,corner_rb"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + } + } + } + + group { name: "e/modules/systray/main/alternate/inset"; + data { + item: "inset" "255 255 255"; + item: "plain" "255 255 255"; + item: "default" "255 255 255"; + } + parts { + part { name: "base"; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 0 0 128; + } + } + part { name: "e.size"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.offset: 4 4; + rel2.offset: -5 -5; + } + } + part { name: "e.box"; + type: BOX; + description { + state: "default" 0.0; + rel1.to: "e.size"; + rel2.to: "e.size"; + box { + layout: "horizontal"; + padding: 2 0; + align: 0.5 0.5; + min: 1 1; + } + } + description { state: "vertical" 0.0; + rel1.to: "e.size"; + rel2.to: "e.size"; + box { + layout: "vertical"; + padding: 0 2; + align: 0.5 0.5; + min: 1 1; + } + } + } + programs { + program { name: "e,action,disable"; + signal: "e,action,disable"; + source: "e"; + action: STATE_SET "disabled" 0.0; + target: "base"; + } + program { name: "e,action,enable"; + signal: "e,action,enable"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "base"; + } + program { name: "e,action,orient,float"; + signal: "e,action,orient,float"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,horiz"; + signal: "e,action,orient,horiz"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,vert"; + signal: "e,action,orient,vert"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,left"; + signal: "e,action,orient,left"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,right"; + signal: "e,action,orient,right"; + source: "e"; + action: STATE_SET "vertical" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,top"; + signal: "e,action,orient,top"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,bottom"; + signal: "e,action,orient,bottom"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_tl"; + signal: "e,action,orient,corner_tl"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_tr"; + signal: "e,action,orient,corner_tr"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_bl"; + signal: "e,action,orient,corner_bl"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_br"; + signal: "e,action,orient,corner_br"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_lt"; + signal: "e,action,orient,corner_lt"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_rt"; + signal: "e,action,orient,corner_rt"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_lb"; + signal: "e,action,orient,corner_lb"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + program { name: "e,action,orient,corner_rb"; + signal: "e,action,orient,corner_rb"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.box"; + } + } + } + } + ///////////////////////////////////////////////////////////////////////////// /*** MOD: WINLIST ***/ diff --git a/data/themes/images/systray_rounded_corners.png b/data/themes/images/systray_rounded_corners.png new file mode 100644 index 000000000..6bb669db7 Binary files /dev/null and b/data/themes/images/systray_rounded_corners.png differ diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index f97f4dd39..01c40c495 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -250,6 +250,9 @@ endif SUBDIRS += everything # endif +if USE_MODULE_SYSTRAY +SUBDIRS += systray +endif DIST_SUBDIRS = \ @@ -314,4 +317,5 @@ mixer \ connman \ illume \ syscon \ -everything +everything \ +systray diff --git a/src/modules/systray/Makefile.am b/src/modules/systray/Makefile.am index 181083b46..a71d86f17 100644 --- a/src/modules/systray/Makefile.am +++ b/src/modules/systray/Makefile.am @@ -1,18 +1,28 @@ MAINTAINERCLEANFILES = Makefile.in +MODULE = systray -INCLUDES = -I. \ - -I$(top_srcdir) \ - -I$(includedir) \ - @E_CFLAGS@ +# data files for the module +filesdir = $(libdir)/enlightenment/modules/$(MODULE) +files_DATA = \ +e-module-$(MODULE).edj module.desktop -pkgdir = $(datadir)/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la -module_la_SOURCES = e_mod_main.h \ - e_mod_main.c +EXTRA_DIST = $(files_DATA) -module_la_LIBADD = @E_LIBS@ -module_la_LDFLAGS = -module -avoid-version +# the module .so file +INCLUDES = -I. \ + -I$(top_srcdir) \ + -I$(top_srcdir)/src/modules/$(MODULE) \ + -I$(top_srcdir)/src/bin \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/modules \ + @e_cflags@ +pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) +pkg_LTLIBRARIES = module.la +module_la_SOURCES = e_mod_main.c \ + e_mod_main.h +module_la_LIBADD = @e_libs@ @dlopen_libs@ +module_la_LDFLAGS = -module -avoid-version module_la_DEPENDENCIES = $(top_builddir)/config.h -clean-local: - rm -rf *~ +uninstall: + rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/systray/e-module-systray.edj b/src/modules/systray/e-module-systray.edj new file mode 100644 index 000000000..84141ef2c Binary files /dev/null and b/src/modules/systray/e-module-systray.edj differ