|
@ -0,0 +1,96 @@
|
||||||
|
*.o
|
||||||
|
*~
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
aclocal.m4
|
||||||
|
autom4te.cache/
|
||||||
|
config.guess
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
|
configure
|
||||||
|
data/Makefile
|
||||||
|
data/Makefile.in
|
||||||
|
data/themes/Makefile
|
||||||
|
data/themes/Makefile.in
|
||||||
|
data/themes/engage.edj
|
||||||
|
depcomp
|
||||||
|
e-module-ng.edj
|
||||||
|
e_modules-engage.spec
|
||||||
|
install-sh
|
||||||
|
libtool
|
||||||
|
ltmain.sh
|
||||||
|
m4/codeset.m4
|
||||||
|
m4/gettext.m4
|
||||||
|
m4/glibc21.m4
|
||||||
|
m4/iconv.m4
|
||||||
|
m4/intdiv0.m4
|
||||||
|
m4/intmax.m4
|
||||||
|
m4/inttypes-pri.m4
|
||||||
|
m4/inttypes.m4
|
||||||
|
m4/inttypes_h.m4
|
||||||
|
m4/isc-posix.m4
|
||||||
|
m4/lcmessage.m4
|
||||||
|
m4/lib-ld.m4
|
||||||
|
m4/lib-link.m4
|
||||||
|
m4/lib-prefix.m4
|
||||||
|
m4/libtool.m4
|
||||||
|
m4/longdouble.m4
|
||||||
|
m4/longlong.m4
|
||||||
|
m4/ltoptions.m4
|
||||||
|
m4/ltsugar.m4
|
||||||
|
m4/ltversion.m4
|
||||||
|
m4/lt~obsolete.m4
|
||||||
|
m4/nls.m4
|
||||||
|
m4/po.m4
|
||||||
|
m4/printf-posix.m4
|
||||||
|
m4/progtest.m4
|
||||||
|
m4/signed.m4
|
||||||
|
m4/size_max.m4
|
||||||
|
m4/stdint_h.m4
|
||||||
|
m4/uintmax_t.m4
|
||||||
|
m4/ulonglong.m4
|
||||||
|
m4/wchar_t.m4
|
||||||
|
m4/wint_t.m4
|
||||||
|
m4/xsize.m4
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
module.desktop
|
||||||
|
po/Makefile
|
||||||
|
po/Makefile.in
|
||||||
|
po/Makevars.template
|
||||||
|
po/POTFILES
|
||||||
|
po/Rules-quot
|
||||||
|
po/boldquot.sed
|
||||||
|
po/cs.gmo
|
||||||
|
po/de.gmo
|
||||||
|
po/en@boldquot.header
|
||||||
|
po/en@quot.header
|
||||||
|
po/engage.pot
|
||||||
|
po/fr.gmo
|
||||||
|
po/insert-header.sin
|
||||||
|
po/it.gmo
|
||||||
|
po/pt.gmo
|
||||||
|
po/quot.sed
|
||||||
|
po/remove-potcdate.sin
|
||||||
|
po/sl.gmo
|
||||||
|
po/stamp-po
|
||||||
|
src/.deps/
|
||||||
|
src/.libs/
|
||||||
|
src/Makefile
|
||||||
|
src/Makefile.in
|
||||||
|
src/e_mod_main.lo
|
||||||
|
src/module.la
|
||||||
|
src/ng_border_menu.lo
|
||||||
|
src/ng_box.lo
|
||||||
|
src/ng_config.lo
|
||||||
|
src/ng_config_instances.lo
|
||||||
|
src/ng_gadcon.lo
|
||||||
|
src/ng_item.lo
|
||||||
|
src/ng_launcher.lo
|
||||||
|
src/ng_taskbar.lo
|
||||||
|
stamp-h1
|
|
@ -0,0 +1,768 @@
|
||||||
|
Notes on the Free Translation Project
|
||||||
|
*************************************
|
||||||
|
|
||||||
|
Free software is going international! The Free Translation Project is
|
||||||
|
a way to get maintainers of free software, translators, and users all
|
||||||
|
together, so that will gradually become able to speak many languages.
|
||||||
|
A few packages already provide translations for their messages.
|
||||||
|
|
||||||
|
If you found this `ABOUT-NLS' file inside a distribution, you may
|
||||||
|
assume that the distributed package does use GNU `gettext' internally,
|
||||||
|
itself available at your nearest GNU archive site. But you do _not_
|
||||||
|
need to install GNU `gettext' prior to configuring, installing or using
|
||||||
|
this package with messages translated.
|
||||||
|
|
||||||
|
Installers will find here some useful hints. These notes also
|
||||||
|
explain how users should proceed for getting the programs to use the
|
||||||
|
available translations. They tell how people wanting to contribute and
|
||||||
|
work at translations should contact the appropriate team.
|
||||||
|
|
||||||
|
When reporting bugs in the `intl/' directory or bugs which may be
|
||||||
|
related to internationalization, you should tell about the version of
|
||||||
|
`gettext' which is used. The information can be found in the
|
||||||
|
`intl/VERSION' file, in internationalized packages.
|
||||||
|
|
||||||
|
Quick configuration advice
|
||||||
|
==========================
|
||||||
|
|
||||||
|
If you want to exploit the full power of internationalization, you
|
||||||
|
should configure it using
|
||||||
|
|
||||||
|
./configure --with-included-gettext
|
||||||
|
|
||||||
|
to force usage of internationalizing routines provided within this
|
||||||
|
package, despite the existence of internationalizing capabilities in the
|
||||||
|
operating system where this package is being installed. So far, only
|
||||||
|
the `gettext' implementation in the GNU C library version 2 provides as
|
||||||
|
many features (such as locale alias, message inheritance, automatic
|
||||||
|
charset conversion or plural form handling) as the implementation here.
|
||||||
|
It is also not possible to offer this additional functionality on top
|
||||||
|
of a `catgets' implementation. Future versions of GNU `gettext' will
|
||||||
|
very likely convey even more functionality. So it might be a good idea
|
||||||
|
to change to GNU `gettext' as soon as possible.
|
||||||
|
|
||||||
|
So you need _not_ provide this option if you are using GNU libc 2 or
|
||||||
|
you have installed a recent copy of the GNU gettext package with the
|
||||||
|
included `libintl'.
|
||||||
|
|
||||||
|
INSTALL Matters
|
||||||
|
===============
|
||||||
|
|
||||||
|
Some packages are "localizable" when properly installed; the programs
|
||||||
|
they contain can be made to speak your own native language. Most such
|
||||||
|
packages use GNU `gettext'. Other packages have their own ways to
|
||||||
|
internationalization, predating GNU `gettext'.
|
||||||
|
|
||||||
|
By default, this package will be installed to allow translation of
|
||||||
|
messages. It will automatically detect whether the system already
|
||||||
|
provides the GNU `gettext' functions. If not, the GNU `gettext' own
|
||||||
|
library will be used. This library is wholly contained within this
|
||||||
|
package, usually in the `intl/' subdirectory, so prior installation of
|
||||||
|
the GNU `gettext' package is _not_ required. Installers may use
|
||||||
|
special options at configuration time for changing the default
|
||||||
|
behaviour. The commands:
|
||||||
|
|
||||||
|
./configure --with-included-gettext
|
||||||
|
./configure --disable-nls
|
||||||
|
|
||||||
|
will respectively bypass any pre-existing `gettext' to use the
|
||||||
|
internationalizing routines provided within this package, or else,
|
||||||
|
_totally_ disable translation of messages.
|
||||||
|
|
||||||
|
When you already have GNU `gettext' installed on your system and run
|
||||||
|
configure without an option for your new package, `configure' will
|
||||||
|
probably detect the previously built and installed `libintl.a' file and
|
||||||
|
will decide to use this. This might be not what is desirable. You
|
||||||
|
should use the more recent version of the GNU `gettext' library. I.e.
|
||||||
|
if the file `intl/VERSION' shows that the library which comes with this
|
||||||
|
package is more recent, you should use
|
||||||
|
|
||||||
|
./configure --with-included-gettext
|
||||||
|
|
||||||
|
to prevent auto-detection.
|
||||||
|
|
||||||
|
The configuration process will not test for the `catgets' function
|
||||||
|
and therefore it will not be used. The reason is that even an
|
||||||
|
emulation of `gettext' on top of `catgets' could not provide all the
|
||||||
|
extensions of the GNU `gettext' library.
|
||||||
|
|
||||||
|
Internationalized packages have usually many `po/LL.po' files, where
|
||||||
|
LL gives an ISO 639 two-letter code identifying the language. Unless
|
||||||
|
translations have been forbidden at `configure' time by using the
|
||||||
|
`--disable-nls' switch, all available translations are installed
|
||||||
|
together with the package. However, the environment variable `LINGUAS'
|
||||||
|
may be set, prior to configuration, to limit the installed set.
|
||||||
|
`LINGUAS' should then contain a space separated list of two-letter
|
||||||
|
codes, stating which languages are allowed.
|
||||||
|
|
||||||
|
Using This Package
|
||||||
|
==================
|
||||||
|
|
||||||
|
As a user, if your language has been installed for this package, you
|
||||||
|
only have to set the `LANG' environment variable to the appropriate
|
||||||
|
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
|
||||||
|
and `CC' is an ISO 3166 two-letter country code. For example, let's
|
||||||
|
suppose that you speak German and live in Germany. At the shell
|
||||||
|
prompt, merely execute `setenv LANG de_DE' (in `csh'),
|
||||||
|
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
|
||||||
|
This can be done from your `.login' or `.profile' file, once and for
|
||||||
|
all.
|
||||||
|
|
||||||
|
You might think that the country code specification is redundant.
|
||||||
|
But in fact, some languages have dialects in different countries. For
|
||||||
|
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
|
||||||
|
country code serves to distinguish the dialects.
|
||||||
|
|
||||||
|
The locale naming convention of `LL_CC', with `LL' denoting the
|
||||||
|
language and `CC' denoting the country, is the one use on systems based
|
||||||
|
on GNU libc. On other systems, some variations of this scheme are
|
||||||
|
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
|
||||||
|
locales supported by your system for your country by running the command
|
||||||
|
`locale -a | grep '^LL''.
|
||||||
|
|
||||||
|
Not all programs have translations for all languages. By default, an
|
||||||
|
English message is shown in place of a nonexistent translation. If you
|
||||||
|
understand other languages, you can set up a priority list of languages.
|
||||||
|
This is done through a different environment variable, called
|
||||||
|
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
|
||||||
|
for the purpose of message handling, but you still need to have `LANG'
|
||||||
|
set to the primary language; this is required by other parts of the
|
||||||
|
system libraries. For example, some Swedish users who would rather
|
||||||
|
read translations in German than English for when Swedish is not
|
||||||
|
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
|
||||||
|
|
||||||
|
Special advice for Norwegian users: The language code for Norwegian
|
||||||
|
bokma*l changed from `no' to `nb' recently (in 2003). During the
|
||||||
|
transition period, while some message catalogs for this language are
|
||||||
|
installed under `nb' and some older ones under `no', it's recommended
|
||||||
|
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
|
||||||
|
older translations are used.
|
||||||
|
|
||||||
|
In the `LANGUAGE' environment variable, but not in the `LANG'
|
||||||
|
environment variable, `LL_CC' combinations can be abbreviated as `LL'
|
||||||
|
to denote the language's main dialect. For example, `de' is equivalent
|
||||||
|
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
|
||||||
|
(Portuguese as spoken in Portugal) in this context.
|
||||||
|
|
||||||
|
Translating Teams
|
||||||
|
=================
|
||||||
|
|
||||||
|
For the Free Translation Project to be a success, we need interested
|
||||||
|
people who like their own language and write it well, and who are also
|
||||||
|
able to synergize with other translators speaking the same language.
|
||||||
|
Each translation team has its own mailing list. The up-to-date list of
|
||||||
|
teams can be found at the Free Translation Project's homepage,
|
||||||
|
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
|
||||||
|
area.
|
||||||
|
|
||||||
|
If you'd like to volunteer to _work_ at translating messages, you
|
||||||
|
should become a member of the translating team for your own language.
|
||||||
|
The subscribing address is _not_ the same as the list itself, it has
|
||||||
|
`-request' appended. For example, speakers of Swedish can send a
|
||||||
|
message to `sv-request@li.org', having this message body:
|
||||||
|
|
||||||
|
subscribe
|
||||||
|
|
||||||
|
Keep in mind that team members are expected to participate
|
||||||
|
_actively_ in translations, or at solving translational difficulties,
|
||||||
|
rather than merely lurking around. If your team does not exist yet and
|
||||||
|
you want to start one, or if you are unsure about what to do or how to
|
||||||
|
get started, please write to `translation@iro.umontreal.ca' to reach the
|
||||||
|
coordinator for all translator teams.
|
||||||
|
|
||||||
|
The English team is special. It works at improving and uniformizing
|
||||||
|
the terminology in use. Proven linguistic skill are praised more than
|
||||||
|
programming skill, here.
|
||||||
|
|
||||||
|
Available Packages
|
||||||
|
==================
|
||||||
|
|
||||||
|
Languages are not equally supported in all packages. The following
|
||||||
|
matrix shows the current state of internationalization, as of January
|
||||||
|
2004. The matrix shows, in regard of each package, for which languages
|
||||||
|
PO files have been submitted to translation coordination, with a
|
||||||
|
translation percentage of at least 50%.
|
||||||
|
|
||||||
|
Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es
|
||||||
|
+----------------------------------------------------+
|
||||||
|
a2ps | [] [] [] [] |
|
||||||
|
aegis | () |
|
||||||
|
ant-phone | () |
|
||||||
|
anubis | |
|
||||||
|
ap-utils | |
|
||||||
|
aspell | [] |
|
||||||
|
bash | [] [] [] [] |
|
||||||
|
batchelor | |
|
||||||
|
bfd | [] [] |
|
||||||
|
binutils | [] [] |
|
||||||
|
bison | [] [] [] |
|
||||||
|
bluez-pin | [] [] [] |
|
||||||
|
clisp | |
|
||||||
|
clisp | [] [] [] |
|
||||||
|
console-tools | [] [] |
|
||||||
|
coreutils | [] [] [] [] |
|
||||||
|
cpio | [] [] [] |
|
||||||
|
darkstat | [] () [] |
|
||||||
|
diffutils | [] [] [] [] [] [] [] |
|
||||||
|
e2fsprogs | [] [] [] |
|
||||||
|
enscript | [] [] [] [] |
|
||||||
|
error | [] [] [] [] [] |
|
||||||
|
fetchmail | [] () [] [] [] [] |
|
||||||
|
fileutils | [] [] [] |
|
||||||
|
findutils | [] [] [] [] [] [] [] |
|
||||||
|
flex | [] [] [] [] |
|
||||||
|
fslint | |
|
||||||
|
gas | [] |
|
||||||
|
gawk | [] [] [] [] |
|
||||||
|
gbiff | [] |
|
||||||
|
gcal | [] |
|
||||||
|
gcc | [] [] |
|
||||||
|
gettext | [] [] [] [] [] |
|
||||||
|
gettext-examples | [] [] [] [] |
|
||||||
|
gettext-runtime | [] [] [] [] [] |
|
||||||
|
gettext-tools | [] [] [] |
|
||||||
|
gimp-print | [] [] [] [] [] |
|
||||||
|
gliv | |
|
||||||
|
glunarclock | [] [] |
|
||||||
|
gnubiff | [] |
|
||||||
|
gnucash | [] () [] [] |
|
||||||
|
gnucash-glossary | [] () [] |
|
||||||
|
gnupg | [] () [] [] [] [] |
|
||||||
|
gpe-aerial | [] |
|
||||||
|
gpe-beam | [] [] |
|
||||||
|
gpe-calendar | [] [] |
|
||||||
|
gpe-clock | [] [] |
|
||||||
|
gpe-conf | [] [] |
|
||||||
|
gpe-contacts | [] [] |
|
||||||
|
gpe-edit | [] |
|
||||||
|
gpe-go | [] |
|
||||||
|
gpe-login | [] [] |
|
||||||
|
gpe-ownerinfo | [] [] |
|
||||||
|
gpe-sketchbook | [] [] |
|
||||||
|
gpe-su | [] [] |
|
||||||
|
gpe-taskmanager | [] [] |
|
||||||
|
gpe-timesheet | [] |
|
||||||
|
gpe-today | [] [] |
|
||||||
|
gpe-todo | [] [] |
|
||||||
|
gphoto2 | [] [] [] [] |
|
||||||
|
gprof | [] [] [] |
|
||||||
|
gpsdrive | () () () |
|
||||||
|
gramadoir | [] |
|
||||||
|
grep | [] [] [] [] [] [] |
|
||||||
|
gretl | [] |
|
||||||
|
gtick | [] () |
|
||||||
|
hello | [] [] [] [] [] [] |
|
||||||
|
id-utils | [] [] |
|
||||||
|
indent | [] [] [] [] |
|
||||||
|
iso_3166 | [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
iso_3166_1 | [] [] [] [] [] [] |
|
||||||
|
iso_3166_2 | |
|
||||||
|
iso_3166_3 | [] |
|
||||||
|
iso_4217 | [] [] [] [] |
|
||||||
|
iso_639 | |
|
||||||
|
jpilot | [] [] [] |
|
||||||
|
jtag | |
|
||||||
|
jwhois | [] |
|
||||||
|
kbd | [] [] [] [] [] |
|
||||||
|
latrine | () |
|
||||||
|
ld | [] [] |
|
||||||
|
libc | [] [] [] [] [] [] |
|
||||||
|
libgpewidget | [] [] |
|
||||||
|
libiconv | [] [] [] [] [] |
|
||||||
|
lifelines | [] () |
|
||||||
|
lilypond | [] |
|
||||||
|
lingoteach | |
|
||||||
|
lingoteach_lessons | () () |
|
||||||
|
lynx | [] [] [] [] |
|
||||||
|
m4 | [] [] [] [] |
|
||||||
|
mailutils | [] [] |
|
||||||
|
make | [] [] [] |
|
||||||
|
man-db | [] () [] [] () |
|
||||||
|
minicom | [] [] [] |
|
||||||
|
mysecretdiary | [] [] [] |
|
||||||
|
nano | [] () [] [] [] |
|
||||||
|
nano_1_0 | [] () [] [] [] |
|
||||||
|
opcodes | [] |
|
||||||
|
parted | [] [] [] [] [] |
|
||||||
|
ptx | [] [] [] [] [] |
|
||||||
|
python | |
|
||||||
|
radius | [] |
|
||||||
|
recode | [] [] [] [] [] [] [] |
|
||||||
|
rpm | [] [] |
|
||||||
|
screem | |
|
||||||
|
scrollkeeper | [] [] [] [] [] [] |
|
||||||
|
sed | [] [] [] [] [] [] |
|
||||||
|
sh-utils | [] [] [] |
|
||||||
|
shared-mime-info | |
|
||||||
|
sharutils | [] [] [] [] [] [] |
|
||||||
|
silky | () |
|
||||||
|
skencil | [] () [] |
|
||||||
|
sketch | [] () [] |
|
||||||
|
soundtracker | [] [] [] |
|
||||||
|
sp | [] |
|
||||||
|
tar | [] [] [] [] |
|
||||||
|
texinfo | [] [] [] |
|
||||||
|
textutils | [] [] [] [] |
|
||||||
|
tin | () () |
|
||||||
|
tp-robot | |
|
||||||
|
tuxpaint | [] [] [] [] [] [] [] |
|
||||||
|
unicode-han-tra... | |
|
||||||
|
unicode-transla... | |
|
||||||
|
util-linux | [] [] [] [] [] |
|
||||||
|
vorbis-tools | [] [] [] [] |
|
||||||
|
wastesedge | () |
|
||||||
|
wdiff | [] [] [] [] |
|
||||||
|
wget | [] [] [] [] [] [] |
|
||||||
|
xchat | [] [] [] [] |
|
||||||
|
xfree86_xkb_xml | [] [] |
|
||||||
|
xpad | [] |
|
||||||
|
+----------------------------------------------------+
|
||||||
|
af am ar az be bg bs ca cs da de el en en_GB eo es
|
||||||
|
4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68
|
||||||
|
|
||||||
|
et eu fa fi fr ga gl he hr hu id is it ja ko lg
|
||||||
|
+-------------------------------------------------+
|
||||||
|
a2ps | [] [] [] () () |
|
||||||
|
aegis | |
|
||||||
|
ant-phone | [] |
|
||||||
|
anubis | [] |
|
||||||
|
ap-utils | [] |
|
||||||
|
aspell | [] [] |
|
||||||
|
bash | [] [] |
|
||||||
|
batchelor | [] [] |
|
||||||
|
bfd | [] |
|
||||||
|
binutils | [] [] |
|
||||||
|
bison | [] [] [] [] |
|
||||||
|
bluez-pin | [] [] [] [] [] |
|
||||||
|
clisp | |
|
||||||
|
clisp | [] |
|
||||||
|
console-tools | |
|
||||||
|
coreutils | [] [] [] [] [] [] |
|
||||||
|
cpio | [] [] [] [] |
|
||||||
|
darkstat | () [] [] [] |
|
||||||
|
diffutils | [] [] [] [] [] [] [] |
|
||||||
|
e2fsprogs | |
|
||||||
|
enscript | [] [] |
|
||||||
|
error | [] [] [] [] |
|
||||||
|
fetchmail | [] |
|
||||||
|
fileutils | [] [] [] [] [] [] |
|
||||||
|
findutils | [] [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
flex | [] [] [] |
|
||||||
|
fslint | [] |
|
||||||
|
gas | [] |
|
||||||
|
gawk | [] [] [] |
|
||||||
|
gbiff | [] |
|
||||||
|
gcal | [] |
|
||||||
|
gcc | [] |
|
||||||
|
gettext | [] [] [] |
|
||||||
|
gettext-examples | [] [] |
|
||||||
|
gettext-runtime | [] [] [] [] [] |
|
||||||
|
gettext-tools | [] [] [] |
|
||||||
|
gimp-print | [] [] |
|
||||||
|
gliv | () |
|
||||||
|
glunarclock | [] [] [] [] |
|
||||||
|
gnubiff | [] |
|
||||||
|
gnucash | () [] |
|
||||||
|
gnucash-glossary | [] |
|
||||||
|
gnupg | [] [] [] [] [] [] [] |
|
||||||
|
gpe-aerial | [] |
|
||||||
|
gpe-beam | [] |
|
||||||
|
gpe-calendar | [] [] [] |
|
||||||
|
gpe-clock | [] |
|
||||||
|
gpe-conf | [] |
|
||||||
|
gpe-contacts | [] [] |
|
||||||
|
gpe-edit | [] [] |
|
||||||
|
gpe-go | [] |
|
||||||
|
gpe-login | [] [] |
|
||||||
|
gpe-ownerinfo | [] [] [] |
|
||||||
|
gpe-sketchbook | [] |
|
||||||
|
gpe-su | [] |
|
||||||
|
gpe-taskmanager | [] |
|
||||||
|
gpe-timesheet | [] [] [] |
|
||||||
|
gpe-today | [] [] |
|
||||||
|
gpe-todo | [] [] |
|
||||||
|
gphoto2 | [] [] [] |
|
||||||
|
gprof | [] [] |
|
||||||
|
gpsdrive | () () () |
|
||||||
|
gramadoir | [] [] |
|
||||||
|
grep | [] [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
gretl | [] [] |
|
||||||
|
gtick | [] [] [] |
|
||||||
|
hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
id-utils | [] [] [] [] |
|
||||||
|
indent | [] [] [] [] [] [] [] [] [] |
|
||||||
|
iso_3166 | [] [] [] [] [] [] [] |
|
||||||
|
iso_3166_1 | [] [] [] [] [] |
|
||||||
|
iso_3166_2 | |
|
||||||
|
iso_3166_3 | |
|
||||||
|
iso_4217 | [] [] [] [] [] [] |
|
||||||
|
iso_639 | |
|
||||||
|
jpilot | [] () |
|
||||||
|
jtag | [] |
|
||||||
|
jwhois | [] [] [] [] |
|
||||||
|
kbd | [] |
|
||||||
|
latrine | [] |
|
||||||
|
ld | [] |
|
||||||
|
libc | [] [] [] [] [] [] |
|
||||||
|
libgpewidget | [] [] [] [] |
|
||||||
|
libiconv | [] [] [] [] [] [] [] [] [] |
|
||||||
|
lifelines | () |
|
||||||
|
lilypond | [] |
|
||||||
|
lingoteach | [] [] |
|
||||||
|
lingoteach_lessons | |
|
||||||
|
lynx | [] [] [] [] |
|
||||||
|
m4 | [] [] [] [] |
|
||||||
|
mailutils | |
|
||||||
|
make | [] [] [] [] [] [] |
|
||||||
|
man-db | () () |
|
||||||
|
minicom | [] [] [] [] |
|
||||||
|
mysecretdiary | [] [] |
|
||||||
|
nano | [] [] [] [] |
|
||||||
|
nano_1_0 | [] [] [] [] |
|
||||||
|
opcodes | [] |
|
||||||
|
parted | [] [] [] |
|
||||||
|
ptx | [] [] [] [] [] [] [] |
|
||||||
|
python | |
|
||||||
|
radius | [] |
|
||||||
|
recode | [] [] [] [] [] [] |
|
||||||
|
rpm | [] [] |
|
||||||
|
screem | |
|
||||||
|
scrollkeeper | [] |
|
||||||
|
sed | [] [] [] [] [] [] [] [] [] |
|
||||||
|
sh-utils | [] [] [] [] [] [] [] |
|
||||||
|
shared-mime-info | [] [] [] |
|
||||||
|
sharutils | [] [] [] [] [] |
|
||||||
|
silky | () [] () () |
|
||||||
|
skencil | [] |
|
||||||
|
sketch | [] |
|
||||||
|
soundtracker | [] [] |
|
||||||
|
sp | [] () |
|
||||||
|
tar | [] [] [] [] [] [] [] [] [] |
|
||||||
|
texinfo | [] [] [] [] |
|
||||||
|
textutils | [] [] [] [] [] [] |
|
||||||
|
tin | [] () |
|
||||||
|
tp-robot | [] |
|
||||||
|
tuxpaint | [] [] [] [] [] [] [] [] [] |
|
||||||
|
unicode-han-tra... | |
|
||||||
|
unicode-transla... | [] [] |
|
||||||
|
util-linux | [] [] [] [] () [] |
|
||||||
|
vorbis-tools | [] |
|
||||||
|
wastesedge | () |
|
||||||
|
wdiff | [] [] [] [] [] [] |
|
||||||
|
wget | [] [] [] [] [] [] [] |
|
||||||
|
xchat | [] [] [] |
|
||||||
|
xfree86_xkb_xml | [] [] |
|
||||||
|
xpad | [] [] |
|
||||||
|
+-------------------------------------------------+
|
||||||
|
et eu fa fi fr ga gl he hr hu id is it ja ko lg
|
||||||
|
22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0
|
||||||
|
|
||||||
|
lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
a2ps | [] [] () () [] [] [] |
|
||||||
|
aegis | () () () |
|
||||||
|
ant-phone | [] [] |
|
||||||
|
anubis | [] [] [] [] [] [] |
|
||||||
|
ap-utils | [] () [] |
|
||||||
|
aspell | [] |
|
||||||
|
bash | [] [] [] |
|
||||||
|
batchelor | [] |
|
||||||
|
bfd | [] |
|
||||||
|
binutils | [] |
|
||||||
|
bison | [] [] [] [] [] |
|
||||||
|
bluez-pin | [] [] [] |
|
||||||
|
clisp | |
|
||||||
|
clisp | [] |
|
||||||
|
console-tools | [] |
|
||||||
|
coreutils | [] [] |
|
||||||
|
cpio | [] [] [] [] [] |
|
||||||
|
darkstat | [] [] [] [] |
|
||||||
|
diffutils | [] [] [] [] [] [] |
|
||||||
|
e2fsprogs | [] |
|
||||||
|
enscript | [] [] [] [] |
|
||||||
|
error | [] [] [] |
|
||||||
|
fetchmail | [] [] () [] |
|
||||||
|
fileutils | [] [] [] |
|
||||||
|
findutils | [] [] [] [] [] |
|
||||||
|
flex | [] [] [] [] |
|
||||||
|
fslint | [] [] |
|
||||||
|
gas | |
|
||||||
|
gawk | [] [] [] |
|
||||||
|
gbiff | [] [] |
|
||||||
|
gcal | |
|
||||||
|
gcc | |
|
||||||
|
gettext | [] [] [] |
|
||||||
|
gettext-examples | [] [] [] |
|
||||||
|
gettext-runtime | [] [] [] [] |
|
||||||
|
gettext-tools | [] [] |
|
||||||
|
gimp-print | [] |
|
||||||
|
gliv | [] [] [] |
|
||||||
|
glunarclock | [] [] [] [] |
|
||||||
|
gnubiff | [] |
|
||||||
|
gnucash | [] [] () [] |
|
||||||
|
gnucash-glossary | [] [] |
|
||||||
|
gnupg | [] |
|
||||||
|
gpe-aerial | [] [] [] [] |
|
||||||
|
gpe-beam | [] [] [] [] |
|
||||||
|
gpe-calendar | [] [] [] [] |
|
||||||
|
gpe-clock | [] [] [] [] |
|
||||||
|
gpe-conf | [] [] [] [] |
|
||||||
|
gpe-contacts | [] [] [] [] |
|
||||||
|
gpe-edit | [] [] [] [] |
|
||||||
|
gpe-go | [] [] [] |
|
||||||
|
gpe-login | [] [] [] [] |
|
||||||
|
gpe-ownerinfo | [] [] [] [] |
|
||||||
|
gpe-sketchbook | [] [] [] [] |
|
||||||
|
gpe-su | [] [] [] [] |
|
||||||
|
gpe-taskmanager | [] [] [] [] |
|
||||||
|
gpe-timesheet | [] [] [] [] |
|
||||||
|
gpe-today | [] [] [] [] |
|
||||||
|
gpe-todo | [] [] [] [] |
|
||||||
|
gphoto2 | [] |
|
||||||
|
gprof | [] [] |
|
||||||
|
gpsdrive | () () [] |
|
||||||
|
gramadoir | () [] |
|
||||||
|
grep | [] [] [] [] [] |
|
||||||
|
gretl | |
|
||||||
|
gtick | [] [] [] |
|
||||||
|
hello | [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
id-utils | [] [] [] [] |
|
||||||
|
indent | [] [] [] [] |
|
||||||
|
iso_3166 | [] [] [] |
|
||||||
|
iso_3166_1 | [] [] |
|
||||||
|
iso_3166_2 | |
|
||||||
|
iso_3166_3 | [] |
|
||||||
|
iso_4217 | [] [] [] [] [] [] [] [] |
|
||||||
|
iso_639 | [] |
|
||||||
|
jpilot | () () |
|
||||||
|
jtag | |
|
||||||
|
jwhois | [] [] [] [] () |
|
||||||
|
kbd | [] [] [] |
|
||||||
|
latrine | [] |
|
||||||
|
ld | |
|
||||||
|
libc | [] [] [] [] |
|
||||||
|
libgpewidget | [] [] [] |
|
||||||
|
libiconv | [] [] [] [] [] |
|
||||||
|
lifelines | |
|
||||||
|
lilypond | |
|
||||||
|
lingoteach | |
|
||||||
|
lingoteach_lessons | |
|
||||||
|
lynx | [] [] [] |
|
||||||
|
m4 | [] [] [] [] [] |
|
||||||
|
mailutils | [] [] [] |
|
||||||
|
make | [] [] [] [] |
|
||||||
|
man-db | [] |
|
||||||
|
minicom | [] [] [] [] |
|
||||||
|
mysecretdiary | [] [] [] |
|
||||||
|
nano | [] [] [] [] [] |
|
||||||
|
nano_1_0 | [] [] [] [] [] [] |
|
||||||
|
opcodes | [] [] |
|
||||||
|
parted | [] [] [] [] |
|
||||||
|
ptx | [] [] [] [] [] [] [] [] |
|
||||||
|
python | |
|
||||||
|
radius | [] [] |
|
||||||
|
recode | [] [] [] [] |
|
||||||
|
rpm | [] [] [] |
|
||||||
|
screem | |
|
||||||
|
scrollkeeper | [] [] [] [] [] |
|
||||||
|
sed | [] [] [] |
|
||||||
|
sh-utils | [] [] |
|
||||||
|
shared-mime-info | [] [] |
|
||||||
|
sharutils | [] [] |
|
||||||
|
silky | () |
|
||||||
|
skencil | [] [] |
|
||||||
|
sketch | [] [] |
|
||||||
|
soundtracker | |
|
||||||
|
sp | |
|
||||||
|
tar | [] [] [] [] [] [] |
|
||||||
|
texinfo | [] [] [] [] |
|
||||||
|
textutils | [] [] |
|
||||||
|
tin | |
|
||||||
|
tp-robot | [] |
|
||||||
|
tuxpaint | [] [] [] [] [] [] [] [] |
|
||||||
|
unicode-han-tra... | |
|
||||||
|
unicode-transla... | |
|
||||||
|
util-linux | [] [] [] |
|
||||||
|
vorbis-tools | [] [] [] |
|
||||||
|
wastesedge | |
|
||||||
|
wdiff | [] [] [] [] [] |
|
||||||
|
wget | [] [] [] |
|
||||||
|
xchat | [] [] [] |
|
||||||
|
xfree86_xkb_xml | [] [] |
|
||||||
|
xpad | [] [] |
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
|
||||||
|
1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63
|
||||||
|
|
||||||
|
sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
a2ps | [] [] [] [] | 16
|
||||||
|
aegis | | 0
|
||||||
|
ant-phone | | 3
|
||||||
|
anubis | [] [] | 9
|
||||||
|
ap-utils | () | 3
|
||||||
|
aspell | | 4
|
||||||
|
bash | | 9
|
||||||
|
batchelor | | 3
|
||||||
|
bfd | [] [] | 6
|
||||||
|
binutils | [] [] [] | 8
|
||||||
|
bison | [] [] | 14
|
||||||
|
bluez-pin | [] [] [] | 14
|
||||||
|
clisp | | 0
|
||||||
|
clisp | | 5
|
||||||
|
console-tools | | 3
|
||||||
|
coreutils | [] [] [] [] | 16
|
||||||
|
cpio | [] [] | 14
|
||||||
|
darkstat | [] [] [] () () | 12
|
||||||
|
diffutils | [] [] [] | 23
|
||||||
|
e2fsprogs | [] [] | 6
|
||||||
|
enscript | [] [] | 12
|
||||||
|
error | [] [] [] | 15
|
||||||
|
fetchmail | [] [] | 11
|
||||||
|
fileutils | [] [] [] [] [] | 17
|
||||||
|
findutils | [] [] [] [] [] [] | 29
|
||||||
|
flex | [] [] | 13
|
||||||
|
fslint | | 3
|
||||||
|
gas | [] | 3
|
||||||
|
gawk | [] [] | 12
|
||||||
|
gbiff | | 4
|
||||||
|
gcal | [] [] | 4
|
||||||
|
gcc | [] | 4
|
||||||
|
gettext | [] [] [] [] [] | 16
|
||||||
|
gettext-examples | [] [] [] [] [] | 14
|
||||||
|
gettext-runtime | [] [] [] [] [] [] [] [] | 22
|
||||||
|
gettext-tools | [] [] [] [] [] [] | 14
|
||||||
|
gimp-print | [] [] | 10
|
||||||
|
gliv | | 3
|
||||||
|
glunarclock | [] [] [] | 13
|
||||||
|
gnubiff | | 3
|
||||||
|
gnucash | [] [] | 9
|
||||||
|
gnucash-glossary | [] [] [] | 8
|
||||||
|
gnupg | [] [] [] [] | 17
|
||||||
|
gpe-aerial | [] | 7
|
||||||
|
gpe-beam | [] | 8
|
||||||
|
gpe-calendar | [] [] [] [] | 13
|
||||||
|
gpe-clock | [] [] [] | 10
|
||||||
|
gpe-conf | [] [] | 9
|
||||||
|
gpe-contacts | [] [] [] | 11
|
||||||
|
gpe-edit | [] [] [] [] [] | 12
|
||||||
|
gpe-go | | 5
|
||||||
|
gpe-login | [] [] [] [] [] | 13
|
||||||
|
gpe-ownerinfo | [] [] [] [] | 13
|
||||||
|
gpe-sketchbook | [] [] | 9
|
||||||
|
gpe-su | [] [] [] | 10
|
||||||
|
gpe-taskmanager | [] [] [] | 10
|
||||||
|
gpe-timesheet | [] [] [] [] | 12
|
||||||
|
gpe-today | [] [] [] [] [] | 13
|
||||||
|
gpe-todo | [] [] [] [] | 12
|
||||||
|
gphoto2 | [] [] [] | 11
|
||||||
|
gprof | [] [] | 9
|
||||||
|
gpsdrive | [] [] | 3
|
||||||
|
gramadoir | [] | 5
|
||||||
|
grep | [] [] [] [] | 26
|
||||||
|
gretl | | 3
|
||||||
|
gtick | | 7
|
||||||
|
hello | [] [] [] [] [] | 34
|
||||||
|
id-utils | [] [] | 12
|
||||||
|
indent | [] [] [] [] | 21
|
||||||
|
iso_3166 | [] [] [] [] [] [] [] | 27
|
||||||
|
iso_3166_1 | [] [] [] | 16
|
||||||
|
iso_3166_2 | | 0
|
||||||
|
iso_3166_3 | | 2
|
||||||
|
iso_4217 | [] [] [] [] [] [] | 24
|
||||||
|
iso_639 | | 1
|
||||||
|
jpilot | [] [] [] [] [] | 9
|
||||||
|
jtag | [] | 2
|
||||||
|
jwhois | () [] [] | 11
|
||||||
|
kbd | [] [] | 11
|
||||||
|
latrine | | 2
|
||||||
|
ld | [] [] | 5
|
||||||
|
libc | [] [] [] [] | 20
|
||||||
|
libgpewidget | [] [] [] [] | 13
|
||||||
|
libiconv | [] [] [] [] [] [] [] [] | 27
|
||||||
|
lifelines | [] | 2
|
||||||
|
lilypond | [] | 3
|
||||||
|
lingoteach | | 2
|
||||||
|
lingoteach_lessons | () | 0
|
||||||
|
lynx | [] [] [] | 14
|
||||||
|
m4 | [] [] | 15
|
||||||
|
mailutils | | 5
|
||||||
|
make | [] [] [] | 16
|
||||||
|
man-db | [] | 5
|
||||||
|
minicom | | 11
|
||||||
|
mysecretdiary | [] [] | 10
|
||||||
|
nano | [] [] [] [] | 17
|
||||||
|
nano_1_0 | [] [] [] | 17
|
||||||
|
opcodes | [] [] | 6
|
||||||
|
parted | [] [] [] | 15
|
||||||
|
ptx | [] [] | 22
|
||||||
|
python | | 0
|
||||||
|
radius | | 4
|
||||||
|
recode | [] [] [] | 20
|
||||||
|
rpm | [] [] | 9
|
||||||
|
screem | [] [] | 2
|
||||||
|
scrollkeeper | [] [] [] | 15
|
||||||
|
sed | [] [] [] [] [] [] | 24
|
||||||
|
sh-utils | [] [] | 14
|
||||||
|
shared-mime-info | [] [] | 7
|
||||||
|
sharutils | [] [] [] [] | 17
|
||||||
|
silky | () | 3
|
||||||
|
skencil | [] | 6
|
||||||
|
sketch | [] | 6
|
||||||
|
soundtracker | [] [] | 7
|
||||||
|
sp | [] | 3
|
||||||
|
tar | [] [] [] [] [] | 24
|
||||||
|
texinfo | [] [] [] | 14
|
||||||
|
textutils | [] [] [] [] | 16
|
||||||
|
tin | | 1
|
||||||
|
tp-robot | | 2
|
||||||
|
tuxpaint | [] [] [] [] [] | 29
|
||||||
|
unicode-han-tra... | | 0
|
||||||
|
unicode-transla... | | 2
|
||||||
|
util-linux | [] [] | 15
|
||||||
|
vorbis-tools | | 8
|
||||||
|
wastesedge | | 0
|
||||||
|
wdiff | [] [] [] | 18
|
||||||
|
wget | [] [] [] [] [] [] [] [] | 24
|
||||||
|
xchat | [] [] [] [] [] | 15
|
||||||
|
xfree86_xkb_xml | [] [] [] [] [] | 11
|
||||||
|
xpad | | 5
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
|
||||||
|
131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373
|
||||||
|
|
||||||
|
Some counters in the preceding matrix are higher than the number of
|
||||||
|
visible blocks let us expect. This is because a few extra PO files are
|
||||||
|
used for implementing regional variants of languages, or language
|
||||||
|
dialects.
|
||||||
|
|
||||||
|
For a PO file in the matrix above to be effective, the package to
|
||||||
|
which it applies should also have been internationalized and
|
||||||
|
distributed as such by its maintainer. There might be an observable
|
||||||
|
lag between the mere existence a PO file and its wide availability in a
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
If January 2004 seems to be old, you may fetch a more recent copy of
|
||||||
|
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
|
||||||
|
matrix with full percentage details can be found at
|
||||||
|
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
|
||||||
|
|
||||||
|
Using `gettext' in new packages
|
||||||
|
===============================
|
||||||
|
|
||||||
|
If you are writing a freely available program and want to
|
||||||
|
internationalize it you are welcome to use GNU `gettext' in your
|
||||||
|
package. Of course you have to respect the GNU Library General Public
|
||||||
|
License which covers the use of the GNU `gettext' library. This means
|
||||||
|
in particular that even non-free programs can use `libintl' as a shared
|
||||||
|
library, whereas only free software can use `libintl' as a static
|
||||||
|
library or use modified versions of `libintl'.
|
||||||
|
|
||||||
|
Once the sources are changed appropriately and the setup can handle
|
||||||
|
the use of `gettext' the only thing missing are the translations. The
|
||||||
|
Free Translation Project is also available for packages which are not
|
||||||
|
developed inside the GNU project. Therefore the information given above
|
||||||
|
applies also for every other Free Software Project. Contact
|
||||||
|
`translation@iro.umontreal.ca' to make the `.pot' files available to
|
||||||
|
the translation teams.
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
Hannes Janetzek <jeff@tzi.de>
|
||||||
|
|
||||||
|
Derived from ibox by
|
||||||
|
The Rasterman (Carsten Haitzler) <raster@rasterman.com>
|
||||||
|
The Enlightenment Development Team
|
||||||
|
and Engage by
|
||||||
|
Andrew Williams
|
|
@ -0,0 +1,28 @@
|
||||||
|
Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to
|
||||||
|
deal in the Software without restriction, including without limitation the
|
||||||
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies of the Software and its Copyright notices. In addition publicly
|
||||||
|
documented acknowledgment must be given that this software has been used if no
|
||||||
|
source code of this software is made available publicly. This includes
|
||||||
|
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
|
||||||
|
documents or any documentation provided with any product containing this
|
||||||
|
software. This License does not apply to any software that links to the
|
||||||
|
libraries provided by this software (statically or dynamically), but only to
|
||||||
|
the software provided.
|
||||||
|
|
||||||
|
Please see the COPYING.PLAIN for a plain-english explanation of this notice
|
||||||
|
and it's intent.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,34 @@
|
||||||
|
Plain English Copyright Notice
|
||||||
|
|
||||||
|
This file is not intended to be the actual License. The reason this file
|
||||||
|
exists is that we here are programmers and engineers. We aren't lawyers. We
|
||||||
|
provide licenses that we THINK say the right things, but we have our own
|
||||||
|
intentions at heart. This is a plain-english explanation of what those
|
||||||
|
intentions are, and if you follow them you will be within the "spirit" of
|
||||||
|
the license.
|
||||||
|
|
||||||
|
The intent is for us to enjoy writing software that is useful to us (the
|
||||||
|
AUTHORS) and allow others to use it freely and also benefit from the work we
|
||||||
|
put into making it. We don't want to restrict others using it. They should
|
||||||
|
not *HAVE* to make the source code of the applications they write that
|
||||||
|
simply link to these libraries (be that statically or dynamically), or for
|
||||||
|
them to be limited as to what license they choose to use (be it open, closed
|
||||||
|
or anything else). But we would like to know you are using these libraries.
|
||||||
|
We simply would like to know that it has been useful to someone. This is why
|
||||||
|
we ask for acknowledgement of some sort.
|
||||||
|
|
||||||
|
You can do what you want with the source of this software - it doesn't
|
||||||
|
matter. We still have it here for ourselves and it is open and free to use
|
||||||
|
and download and play with. It can't be taken away. We don't really mind what
|
||||||
|
you do with the source to your software. We would simply like to know that
|
||||||
|
you are using it - especially if it makes it to a commerical product. If you
|
||||||
|
simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and
|
||||||
|
then make sure you include a paragraph or page in the manual for the product
|
||||||
|
with the copyright notice and state that you used this software, we will be
|
||||||
|
very happy. If you want to contribute back modifications and fixes you may have
|
||||||
|
made we will welcome those too with open arms (generally). If you want help
|
||||||
|
with changes needed, ports needed or features to be added, arrangements can
|
||||||
|
be easily made with some dialogue.
|
||||||
|
|
||||||
|
Carsten Haitzler <raster@rasterman.com>
|
||||||
|
Hannes Janetzek <jeff@tzi.de>
|
|
@ -0,0 +1,3 @@
|
||||||
|
This module was started under the name of itask-ng based on itask
|
||||||
|
and using the zoom functions of the original 'engage' by Andrew Williams.
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
COMPILING and INSTALLING:
|
||||||
|
|
||||||
|
If you got a official release tar archive do:
|
||||||
|
./autogen.sh
|
||||||
|
|
||||||
|
Then to compile:
|
||||||
|
make
|
||||||
|
|
||||||
|
To install (run this user):
|
||||||
|
make install
|
|
@ -0,0 +1,34 @@
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
|
||||||
|
config.sub configure depcomp install-sh ltmain.sh \
|
||||||
|
missing module.desktop config.rpath mkinstalldirs
|
||||||
|
|
||||||
|
SUBDIRS = src data
|
||||||
|
|
||||||
|
if HAVE_PO
|
||||||
|
|
||||||
|
SUBDIRS += po
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
EDJE_FLAGS = -v \
|
||||||
|
-id $(top_srcdir)
|
||||||
|
|
||||||
|
filesdir = $(datadir)
|
||||||
|
files_DATA = module_icon.png module.desktop e-module-ng.edj
|
||||||
|
|
||||||
|
EXTRA_DIST = module.desktop.in \
|
||||||
|
module_icon.png \
|
||||||
|
e-module-ng.edc \
|
||||||
|
e_modules-engage.spec
|
||||||
|
|
||||||
|
%.edj: %.edc
|
||||||
|
$(EDJE_CC) $(EDJE_FLAGS) $< $@
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -rf e-module-ng.edj module.desktop *~
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
rm -rf $(DESTDIR)$(datadir)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
Engage Module
|
||||||
|
|
||||||
|
|
||||||
|
Engage will hold all of your open applications for fast switching and
|
||||||
|
is also an apllication launcher.
|
||||||
|
|
||||||
|
There are three basic functionalities that you dont want to miss:
|
||||||
|
1. If you click on an icon the corresponding will be shown and
|
||||||
|
raised to the top and if its on another desk, then you will
|
||||||
|
be switched right to it.
|
||||||
|
2. If you drag an icon out of NG the App will be shown on the
|
||||||
|
current desktop.
|
||||||
|
3. Drag an icon to a pagers desk to send it there.
|
||||||
|
|
||||||
|
|
||||||
|
lots of other stuff that you have to find out yourself for now :)
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
./autogen.sh
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
rm -rf autom4te.cache
|
||||||
|
rm -f aclocal.m4 ltmain.sh
|
||||||
|
|
||||||
|
echo "Running autopoint..." ; autopoint -f || :
|
||||||
|
echo "Running aclocal..." ; aclocal -I m4 $ACLOCAL_FLAGS || exit 1
|
||||||
|
echo "Running autoheader..." ; autoheader || exit 1
|
||||||
|
echo "Running autoconf..." ; autoconf || exit 1
|
||||||
|
echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
|
||||||
|
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
|
||||||
|
|
||||||
|
if [ -z "$NOCONFIGURE" ]; then
|
||||||
|
./configure "$@"
|
||||||
|
fi
|
|
@ -0,0 +1,75 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
# get rid of that stupid cache mechanism
|
||||||
|
rm -f config.cache
|
||||||
|
|
||||||
|
AC_INIT(engage, 1.0.0, hannes.janetzek@gmail.com)
|
||||||
|
AC_PREREQ(2.52)
|
||||||
|
|
||||||
|
AC_CANONICAL_BUILD
|
||||||
|
AC_CANONICAL_HOST
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE(1.6)
|
||||||
|
AC_CONFIG_SRCDIR(configure.ac)
|
||||||
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
AC_PROG_CC
|
||||||
|
AM_PROG_CC_STDC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_C_CONST
|
||||||
|
AM_ENABLE_SHARED
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
|
m4_ifdef([AM_GNU_GETTEXT_VERSION], [
|
||||||
|
AM_GNU_GETTEXT_VERSION([0.14])
|
||||||
|
])
|
||||||
|
|
||||||
|
m4_ifdef([AM_GNU_GETTEXT], [
|
||||||
|
AM_GNU_GETTEXT([external])
|
||||||
|
po_makefile_in=po/Makefile.in
|
||||||
|
AM_CONDITIONAL([HAVE_PO], [true])
|
||||||
|
],[
|
||||||
|
AM_CONDITIONAL([HAVE_PO], [false])
|
||||||
|
])
|
||||||
|
AC_SUBST(LTLIBINTL)
|
||||||
|
|
||||||
|
release=$(pkg-config --variable=release enlightenment)
|
||||||
|
MODULE_ARCH="$host_os-$host_cpu-$release"
|
||||||
|
AC_SUBST(MODULE_ARCH)
|
||||||
|
AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
|
||||||
|
|
||||||
|
# Find edje_cc
|
||||||
|
PKG_CHECK_MODULES(EDJE, [edje >= 0.5.0])
|
||||||
|
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})
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(E, [enlightenment])
|
||||||
|
|
||||||
|
datadir=$(pkg-config --variable=modules enlightenment)/${PACKAGE}
|
||||||
|
AC_ARG_ENABLE(homedir-install,
|
||||||
|
AS_HELP_STRING([--enable-homedir-install], [Install module in homedir]),
|
||||||
|
[ datadir="${HOME}/.e/e/modules/${PACKAGE}" ]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
data/Makefile
|
||||||
|
data/themes/Makefile
|
||||||
|
src/Makefile
|
||||||
|
module.desktop
|
||||||
|
e_modules-engage.spec
|
||||||
|
$po_makefile_in
|
||||||
|
],[
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
SUBDIRS = themes
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
|
EDJE_FLAGS = -v -id $(top_srcdir)/data/themes -fd $(top_srcdir)/data/themes
|
||||||
|
|
||||||
|
filesdir = $(datadir)
|
||||||
|
files_DATA = \
|
||||||
|
engage.edj
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST = $(files_DATA)
|
||||||
|
|
||||||
|
%.edj: %.edc
|
||||||
|
$(EDJE_CC) $(EDJE_FLAGS) $< $@
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -f *.edj
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 872 B |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,714 @@
|
||||||
|
#define BG_OFFSET 12
|
||||||
|
#define HOVER_EFFECT 0
|
||||||
|
#define TRANSLUCENT 1
|
||||||
|
|
||||||
|
images
|
||||||
|
{
|
||||||
|
image:"itask_im0.png" COMP;
|
||||||
|
image:"itask_im1.png" COMP;
|
||||||
|
image:"itask_im2.png" COMP;
|
||||||
|
image:"itask_im3.png" COMP;
|
||||||
|
image:"itask_im4.png" COMP;
|
||||||
|
image:"itask_im5.png" COMP;
|
||||||
|
image:"itask_im6.png" COMP;
|
||||||
|
image:"bg.png" COMP;
|
||||||
|
}
|
||||||
|
|
||||||
|
collections{
|
||||||
|
group {
|
||||||
|
/* bg frame that keeps is not affected by 'Background
|
||||||
|
* Transparency' setting */
|
||||||
|
name: "e/modules/engage/frame_bottom";
|
||||||
|
alias: "e/modules/engage/frame_top";
|
||||||
|
alias: "e/modules/engage/frame_left";
|
||||||
|
alias: "e/modules/engage/frame_right";
|
||||||
|
|
||||||
|
data {
|
||||||
|
/* space between icons */
|
||||||
|
item: "icon_spacing" "3";
|
||||||
|
|
||||||
|
/* space between boxes */
|
||||||
|
item: "separator_width" "24";
|
||||||
|
|
||||||
|
/* space between screen edge and icons */
|
||||||
|
item: "edge_offset" "5";
|
||||||
|
|
||||||
|
/* clip separator to background group
|
||||||
|
* change opacity with background transparency */
|
||||||
|
item: "clip_separator" "1";
|
||||||
|
|
||||||
|
/* extra space between icons and bg
|
||||||
|
(required for autohide to hide the whole background) */
|
||||||
|
item: "bg_offset" "10";
|
||||||
|
}
|
||||||
|
|
||||||
|
parts {
|
||||||
|
part {
|
||||||
|
name: "frame";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
visible: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
group {
|
||||||
|
name: "e/modules/engage/bg_bottom";
|
||||||
|
alias: "e/modules/engage/bg_top";
|
||||||
|
alias: "e/modules/engage/bg_left";
|
||||||
|
alias: "e/modules/engage/bg_right";
|
||||||
|
parts {
|
||||||
|
part {
|
||||||
|
name: "bg";
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
|
||||||
|
rel1.offset: (-BG_OFFSET) (-BG_OFFSET);
|
||||||
|
rel2.offset: (-1 + BG_OFFSET) (-1 + BG_OFFSET);
|
||||||
|
|
||||||
|
image {
|
||||||
|
normal: "bg.png";
|
||||||
|
border: 6 6 6 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* the vertical and horizontal separator image. it can be a rectangle
|
||||||
|
* as it is in this example.
|
||||||
|
*/
|
||||||
|
#define SEPARATOR(NAME, MAX, ALIGN, OFF1, OFF2) \
|
||||||
|
group { \
|
||||||
|
name: NAME; \
|
||||||
|
parts { \
|
||||||
|
part { \
|
||||||
|
name: "separator"; \
|
||||||
|
type: RECT; \
|
||||||
|
mouse_events: 0; \
|
||||||
|
description { \
|
||||||
|
state: "default" 0.0; \
|
||||||
|
color: 255 255 255 200; \
|
||||||
|
max: MAX; \
|
||||||
|
align: ALIGN; \
|
||||||
|
rel1.offset: OFF1; \
|
||||||
|
rel2.offset: OFF2; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
SEPARATOR("e/modules/engage/separator_bottom", 2 999, 0.5 0.0, 0 -8, -1 -1);
|
||||||
|
SEPARATOR("e/modules/engage/separator_top", 2 999, 0.5 0.0, 0 0, -1 7);
|
||||||
|
SEPARATOR("e/modules/engage/separator_left", 999 2, 0.0 0.5, 0 0, 7 -1);
|
||||||
|
SEPARATOR("e/modules/engage/separator_right", 999 2, 0.0 0.5, -8 0, -1 -1);
|
||||||
|
|
||||||
|
#define LABEL(NAME, DECOR, ALIGN) \
|
||||||
|
group { \
|
||||||
|
name: "e/modules/engage/label_"NAME""; \
|
||||||
|
parts { \
|
||||||
|
part { \
|
||||||
|
name: "label"; \
|
||||||
|
type: IMAGE; \
|
||||||
|
mouse_events: 0; \
|
||||||
|
clip_to: "label.clip"; \
|
||||||
|
description { \
|
||||||
|
state: "default" 0.0; \
|
||||||
|
align: 0.5 0.5; \
|
||||||
|
color: 0 0 0 148; \
|
||||||
|
max: 999 26; \
|
||||||
|
rel1 { \
|
||||||
|
to: "e.text.label"; \
|
||||||
|
offset: -8 -2; \
|
||||||
|
} \
|
||||||
|
rel2 { \
|
||||||
|
to: "e.text.label"; \
|
||||||
|
offset: 4 -1; \
|
||||||
|
} \
|
||||||
|
image { \
|
||||||
|
normal: "itask_im4.png"; \
|
||||||
|
border: 5 5 5 5; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
part { \
|
||||||
|
name: "label_decoration"; \
|
||||||
|
type: IMAGE; \
|
||||||
|
mouse_events: 0; \
|
||||||
|
clip_to: "label.clip"; \
|
||||||
|
description { \
|
||||||
|
state: "default" 0.0; \
|
||||||
|
align: 0.5 1.0; \
|
||||||
|
color: 255 0 0 148; \
|
||||||
|
min: 11 6; \
|
||||||
|
max: 11 6; \
|
||||||
|
fixed: 1 1; \
|
||||||
|
visible: DECOR; \
|
||||||
|
rel1 { \
|
||||||
|
to: "label"; \
|
||||||
|
offset: 0 0; \
|
||||||
|
} \
|
||||||
|
rel2 { \
|
||||||
|
to: "label"; \
|
||||||
|
offset: -1 4; \
|
||||||
|
} \
|
||||||
|
image { \
|
||||||
|
normal: "itask_im5.png"; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
part { \
|
||||||
|
name: "e.text.label"; \
|
||||||
|
type: TEXT; \
|
||||||
|
effect: SHADOW; \
|
||||||
|
mouse_events: 0; \
|
||||||
|
clip_to: "label.clip"; \
|
||||||
|
scale: 1; \
|
||||||
|
description { \
|
||||||
|
state: "default" 0.0; \
|
||||||
|
align: ALIGN; \
|
||||||
|
color: 255 255 255 255; \
|
||||||
|
color3: 0 0 0 0; \
|
||||||
|
rel1.offset: 0 2; \
|
||||||
|
rel2.offset: -1 -1; \
|
||||||
|
text { \
|
||||||
|
text: ""; \
|
||||||
|
font: "Sans:style=Bold"; \
|
||||||
|
size: 11; \
|
||||||
|
min: 1 1; \
|
||||||
|
align: 0.5 0.5; \
|
||||||
|
text_class: "module_large"; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
part { \
|
||||||
|
name: "label.clip"; \
|
||||||
|
type: RECT; \
|
||||||
|
mouse_events: 0; \
|
||||||
|
description { \
|
||||||
|
state: "default" 0.0; \
|
||||||
|
align: 0.5 0.5; \
|
||||||
|
color: 255 255 255 0; \
|
||||||
|
min: 0 33; \
|
||||||
|
rel1 { \
|
||||||
|
to: "e.text.label"; \
|
||||||
|
offset: -12 -4; \
|
||||||
|
} \
|
||||||
|
rel2 { \
|
||||||
|
to: "e.text.label"; \
|
||||||
|
offset: 11 -1; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
description { \
|
||||||
|
state: "visible" 0.0; \
|
||||||
|
inherit: "default" 0.0; \
|
||||||
|
color: 255 255 255 255; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
programs { \
|
||||||
|
program { \
|
||||||
|
name: "go_label_show"; \
|
||||||
|
signal: "e,state,label,show"; \
|
||||||
|
source: "e"; \
|
||||||
|
action: STATE_SET "visible" 0.0; \
|
||||||
|
transition: DECELERATE 0.5; \
|
||||||
|
target: "label.clip"; \
|
||||||
|
} \
|
||||||
|
program { \
|
||||||
|
name: "go_label_hide"; \
|
||||||
|
signal: "e,state,label,hide"; \
|
||||||
|
source: "e"; \
|
||||||
|
action: STATE_SET "default" 0.0; \
|
||||||
|
transition: ACCELERATE 0.25; \
|
||||||
|
target: "label.clip"; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
LABEL("bottom", 1, 0.5 1.0);
|
||||||
|
LABEL("top", 0, 0.5 0.0);
|
||||||
|
LABEL("left", 0, 0.0 0.5);
|
||||||
|
LABEL("right", 0, 1.0 0.5);
|
||||||
|
|
||||||
|
/* group {
|
||||||
|
name: "e/modules/engage/label_top";
|
||||||
|
parts {
|
||||||
|
part {
|
||||||
|
name: "label";
|
||||||
|
type: IMAGE;
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "label.clip";
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
color: 0 0 0 148;
|
||||||
|
max: 999 26;
|
||||||
|
|
||||||
|
rel1 {
|
||||||
|
to: "e.text.label";
|
||||||
|
offset: -8 -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
rel2 {
|
||||||
|
to: "e.text.label";
|
||||||
|
offset: 4 -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
normal: "itask_im4.png";
|
||||||
|
border: 5 5 5 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part {
|
||||||
|
name: "e.text.label";
|
||||||
|
type: TEXT;
|
||||||
|
effect: SHADOW;
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "label.clip";
|
||||||
|
scale: 1;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
color3: 0 0 0 0;
|
||||||
|
|
||||||
|
rel1.offset: 0 2;
|
||||||
|
rel2.offset: -1 -1;
|
||||||
|
|
||||||
|
text {
|
||||||
|
text: "";
|
||||||
|
font: "Sans:style=Bold";
|
||||||
|
size: 11;
|
||||||
|
min: 1 1;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
text_class: "module_large";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part {
|
||||||
|
name: "label.clip";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
color: 255 255 255 0;
|
||||||
|
min: 0 33;
|
||||||
|
|
||||||
|
rel1 {
|
||||||
|
to: "e.text.label";
|
||||||
|
offset: -12 -4;
|
||||||
|
}
|
||||||
|
|
||||||
|
rel2 {
|
||||||
|
to: "e.text.label";
|
||||||
|
offset: 11 -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "visible" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
programs {
|
||||||
|
program {
|
||||||
|
name: "go_label_show";
|
||||||
|
signal: "e,state,label,show";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
transition: DECELERATE 0.5;
|
||||||
|
target: "label.clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_label_hide";
|
||||||
|
signal: "e,state,label,hide";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: ACCELERATE 0.25;
|
||||||
|
target: "label.clip";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/* TODO needs to be supported in code */
|
||||||
|
/* group {
|
||||||
|
* name: "e/modules/engage/label_left";
|
||||||
|
* alias: "e/modules/engage/label_right";
|
||||||
|
* } */
|
||||||
|
|
||||||
|
group {
|
||||||
|
name: "e/modules/engage/icon";
|
||||||
|
alias: "e/modules/engage/icon_top";
|
||||||
|
alias: "e/modules/engage/icon_left";
|
||||||
|
alias: "e/modules/engage/icon_right";
|
||||||
|
alias: "e/modules/engage/icon_bottom";
|
||||||
|
|
||||||
|
min: 32 32;
|
||||||
|
max: 128 128;
|
||||||
|
|
||||||
|
parts {
|
||||||
|
part {
|
||||||
|
name: "clip";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 128;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "visible" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part {
|
||||||
|
name: "focus_clip";
|
||||||
|
type: RECT;
|
||||||
|
clip_to: "clip";
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "focused" 0.0;
|
||||||
|
color: 200 200 255 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part {
|
||||||
|
name: "iconic_clip";
|
||||||
|
type: RECT;
|
||||||
|
clip_to: "focus_clip";
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "iconic" 0.0;
|
||||||
|
color: 200 200 200 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part {
|
||||||
|
name: "urgent_clip";
|
||||||
|
type: RECT;
|
||||||
|
clip_to: "iconic_clip";
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "urgent" 0.0;
|
||||||
|
color: 255 180 180 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part {
|
||||||
|
name: "input_clip";
|
||||||
|
type: RECT;
|
||||||
|
clip_to: "urgent_clip";
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "mouse_down" 0.0;
|
||||||
|
color: 200 200 200 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part {
|
||||||
|
name: "e.swallow.content";
|
||||||
|
type: SWALLOW;
|
||||||
|
clip_to: "input_clip";
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
aspect: 1.0 1.0;
|
||||||
|
aspect_preference: BOTH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
programs {
|
||||||
|
program {
|
||||||
|
name: "go_show";
|
||||||
|
signal: "e,state,item,show";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
transition: SINUSOIDAL 0.2;
|
||||||
|
target: "clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_hide";
|
||||||
|
signal: "e,state,item,hide";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: SINUSOIDAL 0.3;
|
||||||
|
target: "clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* when minimizing an application */
|
||||||
|
program {
|
||||||
|
name: "go_iconic1";
|
||||||
|
signal: "e,state,taskbar,iconic,on";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "iconic" 0.0;
|
||||||
|
transition: LINEAR 0.3;
|
||||||
|
target: "iconic_clip";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "go_iconic0";
|
||||||
|
signal: "e,state,taskbar,iconic,off";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.3;
|
||||||
|
target: "iconic_clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* when an application got focus */
|
||||||
|
program {
|
||||||
|
name: "go_focused1";
|
||||||
|
signal: "e,state,taskbar,focus,on";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "focused" 0.0;
|
||||||
|
transition: SINUSOIDAL 0.3;
|
||||||
|
target: "focus_clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_focused0";
|
||||||
|
signal: "e,state,taskbar,focus,off";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: SINUSOIDAL 0.3;
|
||||||
|
target: "focus_clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* application is sending urgent signal */
|
||||||
|
program {
|
||||||
|
name: "go_urgent";
|
||||||
|
signal: "e,state,taskbar,urgent,on";
|
||||||
|
source: "e";
|
||||||
|
action: ACTION_STOP;
|
||||||
|
target: "go_urgent1";
|
||||||
|
target: "go_urgent0";
|
||||||
|
after: "go_urgent1";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_urgent1";
|
||||||
|
action: STATE_SET "urgent" 0.0;
|
||||||
|
transition: LINEAR 1.0;
|
||||||
|
target: "urgent_clip";
|
||||||
|
after: "go_urgent2";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_urgent2";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 1.0;
|
||||||
|
target: "urgent_clip";
|
||||||
|
after: "go_urgent1";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_urgent0";
|
||||||
|
signal: "e,state,taskbar,urgent,off";
|
||||||
|
source: "e";
|
||||||
|
action: ACTION_STOP;
|
||||||
|
target: "go_urgent1";
|
||||||
|
target: "go_urgent0";
|
||||||
|
after: "go_urgent_end";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_urgent_end";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.2;
|
||||||
|
target: "urgent_clip";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_mouse_down";
|
||||||
|
signal: "e,state,mouse,down";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "mouse_down" 0.0;
|
||||||
|
transition: LINEAR 0.2;
|
||||||
|
target: "input_clip";
|
||||||
|
after: "go_mouse_down2";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "go_mouse_down2";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.3;
|
||||||
|
target: "input_clip";
|
||||||
|
}
|
||||||
|
/* program {
|
||||||
|
* name: "go_mouse_up";
|
||||||
|
* signal: "e,state,mouse,up";
|
||||||
|
* source: "e";
|
||||||
|
* action: STATE_SET "mouse_up" 0.0;
|
||||||
|
* transition: LINEAR 0.2;
|
||||||
|
* target: "input_clip";
|
||||||
|
* } */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group {
|
||||||
|
name: "e/modules/engage/icon_over_top";
|
||||||
|
alias: "e/modules/engage/icon_over_left";
|
||||||
|
alias: "e/modules/engage/icon_over_right";
|
||||||
|
alias: "e/modules/engage/icon_over_bottom";
|
||||||
|
|
||||||
|
parts {
|
||||||
|
part {
|
||||||
|
name: "icon_clip";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
visible: 0;
|
||||||
|
rel1.offset: -256 -256;
|
||||||
|
rel2.offset: 256 256;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part {
|
||||||
|
name: "background";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 0;
|
||||||
|
visible: 0;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "visible" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "hidden" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
rel1.relative: -0.5 -0.5;
|
||||||
|
rel2.relative: 1.5 1.5;
|
||||||
|
|
||||||
|
color: 255 255 255 0;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "huge" 0.0;
|
||||||
|
color: 255 255 255 0;
|
||||||
|
rel1.relative: -1.5 -1.5;
|
||||||
|
rel2.relative: 2.5 2.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part {
|
||||||
|
name: "e.swallow.content";
|
||||||
|
type: SWALLOW;
|
||||||
|
clip_to: "background";
|
||||||
|
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
rel1.to: "background";
|
||||||
|
rel2.to: "background";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
programs {
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_active";
|
||||||
|
signal: "e,state,animate,in";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
target: "background";
|
||||||
|
after: "go_active2";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "go_active2";
|
||||||
|
action: STATE_SET "hidden" 0.0;
|
||||||
|
transition: LINEAR 0.5;
|
||||||
|
target: "background";
|
||||||
|
after: "go_active";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "go_passive";
|
||||||
|
signal: "e,state,animate,out";
|
||||||
|
source: "e";
|
||||||
|
action: ACTION_STOP;
|
||||||
|
target: "go_active";
|
||||||
|
target: "go_active2";
|
||||||
|
after: "go_passive2";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "go_passive2";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "background";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_big";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
target: "background";
|
||||||
|
after: "go_big2";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_big2";
|
||||||
|
action: STATE_SET "huge" 0.0;
|
||||||
|
transition: DECELERATE 0.4;
|
||||||
|
target: "background";
|
||||||
|
after: "go_big3";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "go_big3";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "background";
|
||||||
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "exec_start";
|
||||||
|
signal: "e,action,start";
|
||||||
|
source: "e";
|
||||||
|
action: ACTION_STOP;
|
||||||
|
target: "go_big";
|
||||||
|
target: "go_big2";
|
||||||
|
target: "go_big3";
|
||||||
|
after: "go_big";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
After Width: | Height: | Size: 347 B |
After Width: | Height: | Size: 740 B |
After Width: | Height: | Size: 751 B |
After Width: | Height: | Size: 861 B |
After Width: | Height: | Size: 872 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 153 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 581 B |
|
@ -0,0 +1,19 @@
|
||||||
|
images {
|
||||||
|
image: "module_icon.png" COMP;
|
||||||
|
}
|
||||||
|
collections {
|
||||||
|
group {
|
||||||
|
name: "icon";
|
||||||
|
parts {
|
||||||
|
part {
|
||||||
|
name: "image";
|
||||||
|
mouse_events: 0;
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
aspect_preference: BOTH;
|
||||||
|
image.normal: "module_icon.png";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
%define module_name engage
|
||||||
|
|
||||||
|
Summary: %{module_name} module for the Enlightenment window manager
|
||||||
|
Name: e_modules-%{module_name}
|
||||||
|
Version: @VERSION@
|
||||||
|
Release: 0.%(date '+%Y%m%d')
|
||||||
|
License: BSD
|
||||||
|
Group: User Interface/Desktops
|
||||||
|
URL: http://www.enlightenment.org/
|
||||||
|
Source: ftp://ftp.enlightenment.org/pub/enlightenment/%{module_name}-%{version}.tar.gz
|
||||||
|
Packager: %{?_packager:%{_packager}}%{!?_packager:Rui Seabra <rms@1407.org>}
|
||||||
|
Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)}
|
||||||
|
Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
|
||||||
|
Requires: enlightenment >= 0.16.999
|
||||||
|
BuildRequires: edje, enlightenment-devel >= 0.16.999
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{module_name} is a module for the Enlightenment window manager.
|
||||||
|
|
||||||
|
Engage will hold all of your open applications for fast switching and
|
||||||
|
is also an apllication launcher.
|
||||||
|
|
||||||
|
There are three basic functionalities that you dont want to miss:
|
||||||
|
1. If you click on an icon the corresponding will be shown and
|
||||||
|
raised to the top and if its on another desk, then you will
|
||||||
|
be switched right to it.
|
||||||
|
2. If you drag an icon out of NG the App will be shown on the
|
||||||
|
current desktop.
|
||||||
|
3. Drag an icon to a pagers desk to send it there.
|
||||||
|
|
||||||
|
And lots of other stuff that you have to find out yourself for now :)
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{module_name}-%{version}
|
||||||
|
|
||||||
|
%build
|
||||||
|
%{configure}
|
||||||
|
%{__make} %{?_smp_mflags} %{?mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install
|
||||||
|
%{find_lang} %{module_name} || true > %{module_name}.lang
|
||||||
|
|
||||||
|
%clean
|
||||||
|
test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%post
|
||||||
|
/sbin/ldconfig
|
||||||
|
|
||||||
|
%postun
|
||||||
|
/sbin/ldconfig
|
||||||
|
|
||||||
|
%files -f %{module_name}.lang
|
||||||
|
%defattr(-, root, root)
|
||||||
|
%doc AUTHORS ChangeLog COPYING* INSTALL NEWS README
|
||||||
|
%if "%{module_name}" == "emu"
|
||||||
|
%{_bindir}/%{module_name}*
|
||||||
|
%endif
|
||||||
|
%{_libdir}/enlightenment/modules/%{module_name}*
|
||||||
|
|
||||||
|
%changelog
|
|
@ -0,0 +1,12 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Link
|
||||||
|
Name=Engage
|
||||||
|
Name[de]=Engage
|
||||||
|
Icon=e-module-ng
|
||||||
|
Comment=A dock that holds a taskbar and application launcher<br>Add instances with: Config Panel > Extensions > Engage
|
||||||
|
Comment[ru]=Док содержащий панель задач и запуск приложений<br>Добавлять экземпляры через: Панель параметров → Расширения → Engage
|
||||||
|
Comment[de]=Ein Dock mit einer Taskbar und Anwendungsstartern<br>Instanzen können hinzugefügt werden über: Enlightenment-Einstellungen → Erweiterungen → Itask-NG
|
||||||
|
Comment[it]=Contiene una taskbar ed un lanciatore di applicazioni<br>Per aggiungerne istanze: Pannello di configurazione → Estensioni → Engage
|
||||||
|
Comment[fr]=Un dock contenant une barre des tâches et un lanceur.<br>Pour ajouter des instances : Panneau de contrôle → Extensions → Engage
|
||||||
|
Comment[pt]=Uma barra de tarefas e lançador de aplicações<br>Pode adicionar as barras em: Painel de configuração > Extensões > Engage
|
||||||
|
X-Enlightenment-ModuleType=utils
|
After Width: | Height: | Size: 2.6 KiB |
|
@ -0,0 +1 @@
|
||||||
|
ar cs de fr it pt sl
|
|
@ -0,0 +1,366 @@
|
||||||
|
# Makefile for PO directory in any package using GNU gettext.
|
||||||
|
# Copyright (C) 1995-1997, 2000-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||||
|
#
|
||||||
|
# This file can be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU General Public
|
||||||
|
# License but which still want to provide support for the GNU gettext
|
||||||
|
# functionality.
|
||||||
|
# Please note that the actual code of GNU gettext is covered by the GNU
|
||||||
|
# General Public License and is *not* in the public domain.
|
||||||
|
#
|
||||||
|
# Origin: gettext-0.14
|
||||||
|
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
srcdir = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
|
||||||
|
prefix = @prefix@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
datadir = @datadir@
|
||||||
|
localedir = $(datadir)/locale
|
||||||
|
gettextsrcdir = $(datadir)/gettext/po
|
||||||
|
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
|
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
|
||||||
|
|
||||||
|
GMSGFMT = @GMSGFMT@
|
||||||
|
MSGFMT = @MSGFMT@
|
||||||
|
XGETTEXT = @XGETTEXT@
|
||||||
|
MSGMERGE = msgmerge
|
||||||
|
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
||||||
|
MSGINIT = msginit
|
||||||
|
MSGCONV = msgconv
|
||||||
|
MSGFILTER = msgfilter
|
||||||
|
|
||||||
|
POFILES = @POFILES@
|
||||||
|
GMOFILES = @GMOFILES@
|
||||||
|
UPDATEPOFILES = @UPDATEPOFILES@
|
||||||
|
DUMMYPOFILES = @DUMMYPOFILES@
|
||||||
|
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
|
||||||
|
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
|
||||||
|
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
|
||||||
|
$(POFILES) $(GMOFILES) \
|
||||||
|
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
|
||||||
|
|
||||||
|
POTFILES = \
|
||||||
|
|
||||||
|
CATALOGS = @CATALOGS@
|
||||||
|
|
||||||
|
# Makevars gets inserted here. (Don't remove this line!)
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
|
||||||
|
|
||||||
|
.po.mo:
|
||||||
|
@echo "$(MSGFMT) -c -o $@ $<"; \
|
||||||
|
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
|
||||||
|
|
||||||
|
.po.gmo:
|
||||||
|
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
||||||
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||||
|
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
|
||||||
|
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
||||||
|
|
||||||
|
.sin.sed:
|
||||||
|
sed -e '/^#/d' $< > t-$@
|
||||||
|
mv t-$@ $@
|
||||||
|
|
||||||
|
|
||||||
|
all: all-@USE_NLS@
|
||||||
|
|
||||||
|
all-yes: stamp-po
|
||||||
|
all-no:
|
||||||
|
|
||||||
|
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
|
||||||
|
# been loosely updated. Its purpose is that when a developer or translator
|
||||||
|
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
|
||||||
|
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
|
||||||
|
# invocations of "make" will do nothing. This timestamp would not be necessary
|
||||||
|
# if updating the $(CATALOGS) would always touch them; however, the rule for
|
||||||
|
# $(POFILES) has been designed to not touch files that don't need to be
|
||||||
|
# changed.
|
||||||
|
stamp-po: $(srcdir)/$(DOMAIN).pot
|
||||||
|
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
|
||||||
|
@echo "touch stamp-po"
|
||||||
|
@echo timestamp > stamp-poT
|
||||||
|
@mv stamp-poT stamp-po
|
||||||
|
|
||||||
|
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
||||||
|
# otherwise packages like GCC can not be built if only parts of the source
|
||||||
|
# have been downloaded.
|
||||||
|
|
||||||
|
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
|
||||||
|
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
|
||||||
|
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|
||||||
|
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||||
|
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
||||||
|
--files-from=$(srcdir)/POTFILES.in \
|
||||||
|
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
||||||
|
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
|
||||||
|
test ! -f $(DOMAIN).po || { \
|
||||||
|
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
||||||
|
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
||||||
|
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
||||||
|
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
|
||||||
|
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
|
||||||
|
else \
|
||||||
|
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
|
||||||
|
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
||||||
|
fi; \
|
||||||
|
}
|
||||||
|
|
||||||
|
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
|
||||||
|
# every "make" invocation, only create it when it is missing.
|
||||||
|
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
|
||||||
|
$(srcdir)/$(DOMAIN).pot:
|
||||||
|
$(MAKE) $(DOMAIN).pot-update
|
||||||
|
|
||||||
|
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
|
||||||
|
# Note that a PO file is not touched if it doesn't need to be changed.
|
||||||
|
$(POFILES): $(srcdir)/$(DOMAIN).pot
|
||||||
|
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
||||||
|
if test -f "$(srcdir)/$${lang}.po"; then \
|
||||||
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||||
|
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
|
||||||
|
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $${lang}.po-create; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
install: install-exec install-data
|
||||||
|
install-exec:
|
||||||
|
install-data: install-data-@USE_NLS@
|
||||||
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
for file in $(DISTFILES.common) Makevars.template; do \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$file \
|
||||||
|
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||||
|
done; \
|
||||||
|
for file in Makevars; do \
|
||||||
|
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||||
|
done; \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
install-data-no: all
|
||||||
|
install-data-yes: all
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
||||||
|
@catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||||
|
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
||||||
|
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
||||||
|
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
||||||
|
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
||||||
|
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||||
|
if test -n "$$lc"; then \
|
||||||
|
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||||
|
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||||
|
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||||
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||||
|
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
||||||
|
for file in *; do \
|
||||||
|
if test -f $$file; then \
|
||||||
|
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
||||||
|
fi; \
|
||||||
|
done); \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||||
|
else \
|
||||||
|
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
||||||
|
:; \
|
||||||
|
else \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||||
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||||
|
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
||||||
|
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
||||||
|
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||||
|
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
|
||||||
|
install-strip: install
|
||||||
|
|
||||||
|
installdirs: installdirs-exec installdirs-data
|
||||||
|
installdirs-exec:
|
||||||
|
installdirs-data: installdirs-data-@USE_NLS@
|
||||||
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
installdirs-data-no:
|
||||||
|
installdirs-data-yes:
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
||||||
|
@catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||||
|
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
||||||
|
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||||
|
if test -n "$$lc"; then \
|
||||||
|
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||||
|
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||||
|
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||||
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||||
|
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
||||||
|
for file in *; do \
|
||||||
|
if test -f $$file; then \
|
||||||
|
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
||||||
|
fi; \
|
||||||
|
done); \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||||
|
else \
|
||||||
|
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
||||||
|
:; \
|
||||||
|
else \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||||
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# Define this as empty until I found a useful application.
|
||||||
|
installcheck:
|
||||||
|
|
||||||
|
uninstall: uninstall-exec uninstall-data
|
||||||
|
uninstall-exec:
|
||||||
|
uninstall-data: uninstall-data-@USE_NLS@
|
||||||
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||||
|
for file in $(DISTFILES.common) Makevars.template; do \
|
||||||
|
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||||
|
done; \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
uninstall-data-no:
|
||||||
|
uninstall-data-yes:
|
||||||
|
catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||||
|
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
|
||||||
|
check: all
|
||||||
|
|
||||||
|
info dvi ps pdf html tags TAGS ctags CTAGS ID:
|
||||||
|
|
||||||
|
mostlyclean:
|
||||||
|
rm -f remove-potcdate.sed
|
||||||
|
rm -f stamp-poT
|
||||||
|
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
|
||||||
|
rm -fr *.o
|
||||||
|
|
||||||
|
clean: mostlyclean
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f Makefile Makefile.in POTFILES *.mo
|
||||||
|
|
||||||
|
maintainer-clean: distclean
|
||||||
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
rm -f stamp-po $(GMOFILES)
|
||||||
|
|
||||||
|
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||||
|
dist distdir:
|
||||||
|
$(MAKE) update-po
|
||||||
|
@$(MAKE) dist2
|
||||||
|
# This is a separate target because 'update-po' must be executed before.
|
||||||
|
dist2: $(DISTFILES)
|
||||||
|
dists="$(DISTFILES)"; \
|
||||||
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
||||||
|
dists="$$dists Makevars.template"; \
|
||||||
|
fi; \
|
||||||
|
if test -f $(srcdir)/ChangeLog; then \
|
||||||
|
dists="$$dists ChangeLog"; \
|
||||||
|
fi; \
|
||||||
|
for i in 0 1 2 3 4 5 6 7 8 9; do \
|
||||||
|
if test -f $(srcdir)/ChangeLog.$$i; then \
|
||||||
|
dists="$$dists ChangeLog.$$i"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
|
||||||
|
for file in $$dists; do \
|
||||||
|
if test -f $$file; then \
|
||||||
|
cp -p $$file $(distdir); \
|
||||||
|
else \
|
||||||
|
cp -p $(srcdir)/$$file $(distdir); \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
update-po: Makefile
|
||||||
|
$(MAKE) $(DOMAIN).pot-update
|
||||||
|
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
|
||||||
|
$(MAKE) update-gmo
|
||||||
|
|
||||||
|
# General rule for creating PO files.
|
||||||
|
|
||||||
|
.nop.po-create:
|
||||||
|
@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
|
||||||
|
echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
# General rule for updating PO files.
|
||||||
|
|
||||||
|
.nop.po-update:
|
||||||
|
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
|
||||||
|
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
|
||||||
|
tmpdir=`pwd`; \
|
||||||
|
echo "$$lang:"; \
|
||||||
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||||
|
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
||||||
|
cd $(srcdir); \
|
||||||
|
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
|
||||||
|
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
||||||
|
rm -f $$tmpdir/$$lang.new.po; \
|
||||||
|
else \
|
||||||
|
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
||||||
|
:; \
|
||||||
|
else \
|
||||||
|
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo "msgmerge for $$lang.po failed!" 1>&2; \
|
||||||
|
rm -f $$tmpdir/$$lang.new.po; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
$(DUMMYPOFILES):
|
||||||
|
|
||||||
|
update-gmo: Makefile $(GMOFILES)
|
||||||
|
@:
|
||||||
|
|
||||||
|
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
|
||||||
|
cd $(top_builddir) \
|
||||||
|
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
||||||
|
$(SHELL) ./config.status
|
||||||
|
|
||||||
|
force:
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,41 @@
|
||||||
|
# Makefile variables for PO directory in any package using GNU gettext.
|
||||||
|
|
||||||
|
# Usually the message domain is the same as the package name.
|
||||||
|
DOMAIN = $(PACKAGE)
|
||||||
|
|
||||||
|
# These two variables depend on the location of this directory.
|
||||||
|
subdir = po
|
||||||
|
top_builddir = ..
|
||||||
|
|
||||||
|
# These options get passed to xgettext.
|
||||||
|
XGETTEXT_OPTIONS = --keyword=N_ --keyword=D_ --from-code=UTF-8 --foreign-user
|
||||||
|
|
||||||
|
# This is the copyright holder that gets inserted into the header of the
|
||||||
|
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||||
|
# package. (Note that the msgstr strings, extracted from the package's
|
||||||
|
# sources, belong to the copyright holder of the package.) Translators are
|
||||||
|
# expected to transfer the copyright for their translations to this person
|
||||||
|
# or entity, or to disclaim their copyright. The empty string stands for
|
||||||
|
# the public domain; in this case the translators are expected to disclaim
|
||||||
|
# their copyright.
|
||||||
|
COPYRIGHT_HOLDER = Hannes Janetzek
|
||||||
|
|
||||||
|
# This is the email address or URL to which the translators shall report
|
||||||
|
# bugs in the untranslated strings:
|
||||||
|
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||||
|
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||||
|
# - Strings which use unclear terms or require additional context to be
|
||||||
|
# understood.
|
||||||
|
# - Strings which make invalid assumptions about notation of date, time or
|
||||||
|
# money.
|
||||||
|
# - Pluralisation problems.
|
||||||
|
# - Incorrect English spelling.
|
||||||
|
# - Incorrect formatting.
|
||||||
|
# It can be your email address, or a mailing list address where translators
|
||||||
|
# can write to without being subscribed, or the URL of a web page through
|
||||||
|
# which the translators can contact you.
|
||||||
|
MSGID_BUGS_ADDRESS = hannes.janetzek@gmail.com
|
||||||
|
|
||||||
|
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||||
|
# message catalogs shall be used. It is usually empty.
|
||||||
|
EXTRA_LOCALE_CATEGORIES =
|
|
@ -0,0 +1,12 @@
|
||||||
|
# List of source files which contain translatable strings.
|
||||||
|
src/e_mod_main.c
|
||||||
|
src/e_mod_main.h
|
||||||
|
src/ng_taskbar.c
|
||||||
|
src/ng_launcher.c
|
||||||
|
src/ng_item.c
|
||||||
|
src/ng_box.c
|
||||||
|
src/ng_border_menu.c
|
||||||
|
src/ng_gadcon.c
|
||||||
|
src/ng_config.c
|
||||||
|
src/ng_config_instances.c
|
||||||
|
src/ng_launcher.c
|
|
@ -0,0 +1,397 @@
|
||||||
|
# Arabic translation for Engage.
|
||||||
|
# This file is put in the public domain.
|
||||||
|
# sameeer hussain <almusalimalmusalimah> 2011.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Engage module\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-09-04 16:46+0200\n"
|
||||||
|
"PO-Revision-Date: 2012-01-24 20:45+0300\n"
|
||||||
|
"Last-Translator: سمير حسين <almusalimalmusalimah@gmail.com>\n"
|
||||||
|
"Language-Team: Arabic <almusalimalmusalimah@gmail.com>\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Poedit-Language: Arabic\n"
|
||||||
|
"X-Poedit-Country: SAUDI ARABIA\n"
|
||||||
|
"X-Poedit-SourceCharset: utf-8\n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:1666
|
||||||
|
#: src/e_mod_main.c:1824
|
||||||
|
#: src/e_mod_main.c:1851
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr "Engage"
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:641
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "بلا اسم!"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:275
|
||||||
|
msgid "Open folder with EFM"
|
||||||
|
msgstr "افتح المجلد بواسطة EFM"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:561
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "أعدّ شريطا"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:565
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "أقفل السحب"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:574
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "التطبيقات"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:578
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "عدّل ايقونة"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "ملء الشاشة"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "اغلق"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "مكبرة"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "استعد"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "صغِّر"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:299
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "أدوات متاحة"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:306
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "أضف أداة"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:312
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "أدوات مُختارة"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:319
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "أزل أداة"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:327
|
||||||
|
#: src/ng_gadcon.c:370
|
||||||
|
#: src/ng_gadcon.c:394
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "الوصف: غير متاحة"
|
||||||
|
|
||||||
|
#: src/ng_config.c:98
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "إعداد Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:164
|
||||||
|
#: src/ng_config.c:225
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "المظهر"
|
||||||
|
|
||||||
|
#: src/ng_config.c:165
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "حجم اﻷيقونة:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:167
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f px"
|
||||||
|
|
||||||
|
#: src/ng_config.c:181
|
||||||
|
msgid "Background Opacity:"
|
||||||
|
msgstr "تعتيم الخلفية:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:183
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f \\%"
|
||||||
|
|
||||||
|
#: src/ng_config.c:191
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "اعرض صندوق الخلفية"
|
||||||
|
|
||||||
|
#: src/ng_config.c:194
|
||||||
|
msgid "Show Mouse-Over Animation"
|
||||||
|
msgstr "اعرض التأثير الحركي عند تحويم الفأرة"
|
||||||
|
|
||||||
|
#: src/ng_config.c:199
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "ارشاد"
|
||||||
|
|
||||||
|
#: src/ng_config.c:201
|
||||||
|
msgid "Bottom Edge"
|
||||||
|
msgstr "الحافة السفلية"
|
||||||
|
|
||||||
|
#: src/ng_config.c:203
|
||||||
|
msgid "Top Edge"
|
||||||
|
msgstr "الحافة العلوية"
|
||||||
|
|
||||||
|
#: src/ng_config.c:205
|
||||||
|
msgid "Left Edge"
|
||||||
|
msgstr "الحافة اليسرى"
|
||||||
|
|
||||||
|
#: src/ng_config.c:207
|
||||||
|
msgid "Right Edge"
|
||||||
|
msgstr "الحافة اليمنى"
|
||||||
|
|
||||||
|
#: src/ng_config.c:228
|
||||||
|
#: src/ng_config.c:247
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "قرّب"
|
||||||
|
|
||||||
|
#: src/ng_config.c:229
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "عامل:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:235
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "مدى:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:241
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "مدة:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:250
|
||||||
|
#: src/ng_config.c:278
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "عناصر الشريط"
|
||||||
|
|
||||||
|
#: src/ng_config.c:258
|
||||||
|
#: src/ng_config.c:538
|
||||||
|
#: src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "امحِ"
|
||||||
|
|
||||||
|
#: src/ng_config.c:260
|
||||||
|
#: src/ng_config.c:540
|
||||||
|
#: src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "اعدّ"
|
||||||
|
|
||||||
|
#: src/ng_config.c:262
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "أعلى"
|
||||||
|
|
||||||
|
#: src/ng_config.c:264
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "أسفل"
|
||||||
|
|
||||||
|
#: src/ng_config.c:269
|
||||||
|
#: src/ng_config.c:536
|
||||||
|
#: src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "أضِف"
|
||||||
|
|
||||||
|
#: src/ng_config.c:271
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "شريط المهام"
|
||||||
|
|
||||||
|
#: src/ng_config.c:273
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "مُطلق"
|
||||||
|
|
||||||
|
#: src/ng_config.c:275
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Gadcon"
|
||||||
|
|
||||||
|
#: src/ng_config.c:281
|
||||||
|
#: src/ng_config.c:300
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "اخفاء تلقائي"
|
||||||
|
|
||||||
|
#: src/ng_config.c:298
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "اعرض الشريط حال كونه مستعجلا"
|
||||||
|
|
||||||
|
#: src/ng_config.c:306
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "تكديس"
|
||||||
|
|
||||||
|
#: src/ng_config.c:308
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "فوق الكل"
|
||||||
|
|
||||||
|
#: src/ng_config.c:310
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "تحت نافذة ملء الشاشة"
|
||||||
|
|
||||||
|
#: src/ng_config.c:314
|
||||||
|
#: src/ng_config.c:321
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "أخرى"
|
||||||
|
|
||||||
|
#: src/ng_config.c:315
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "وظائف Ecomorph"
|
||||||
|
|
||||||
|
#: src/ng_config.c:317
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "اعرض عنوان اﻷيقونة"
|
||||||
|
|
||||||
|
#: src/ng_config.c:528
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "إعدادات المطلق"
|
||||||
|
|
||||||
|
#: src/ng_config.c:548
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "إعدادات شريط المهام"
|
||||||
|
|
||||||
|
#: src/ng_config.c:550
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "لا تعرض الحوارات"
|
||||||
|
|
||||||
|
#: src/ng_config.c:553
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "قائمةُ نافذةٍ متقدمةٌ"
|
||||||
|
|
||||||
|
#: src/ng_config.c:556
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "اعرض السطح الحالي فقط"
|
||||||
|
|
||||||
|
#: src/ng_config.c:559
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "اجمع التطبيقات حسب فئة النافذة"
|
||||||
|
|
||||||
|
#: src/ng_config.c:562
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "ألحِق التطبيقات الجديدة بالجانب اﻷيمن"
|
||||||
|
|
||||||
|
#: src/ng_config.c:568
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "تطبيقات مُصغَّرة"
|
||||||
|
|
||||||
|
#: src/ng_config.c:643
|
||||||
|
#: src/ng_config.c:683
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "أعدّ شريط Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:788
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "أنشئ مصدرا جديدا"
|
||||||
|
|
||||||
|
#: src/ng_config.c:789
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "أدخل اسما لمطلق التطبيق الجديد هذا:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:798
|
||||||
|
#, c-format
|
||||||
|
msgid "You requested to delete \"%s\".<br><br>Are you sure you want to delete this source?"
|
||||||
|
msgstr "يُطلب منك اﻵن محو \"%s\".<br><br>هل تريد محو هذا المصدر؟"
|
||||||
|
|
||||||
|
#: src/ng_config.c:802
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "هل تريد محو هذا المصدر؟"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:64
|
||||||
|
#: src/ng_config_instances.c:94
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "مثيلات Engage"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "شريط"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:271
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid "You requested to delete \"%s\".<br><br>Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "يُطلب منك اﻵن محو \"%s\".<br><br>هل تريد محو هذه المثيلات؟"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:275
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "هل تريد محو هذه المثيلات؟"
|
||||||
|
|
||||||
|
#~ msgid "Reflection Opacity:"
|
||||||
|
#~ msgstr "Opacité du reflet:"
|
||||||
|
|
||||||
|
#~ msgid "%1.0f"
|
||||||
|
#~ msgstr "%1.0f"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG"
|
||||||
|
#~ msgstr "Itask NG"
|
||||||
|
|
||||||
|
#~ msgid "Configure Launcher"
|
||||||
|
#~ msgstr "Configurer le lanceur"
|
||||||
|
|
||||||
|
#~ msgid "Window Locks"
|
||||||
|
#~ msgstr "Verrous de la fenêtre"
|
||||||
|
|
||||||
|
#~ msgid "Remember"
|
||||||
|
#~ msgstr "Mémoriser"
|
||||||
|
|
||||||
|
#~ msgid "Borders"
|
||||||
|
#~ msgstr "Bordures"
|
||||||
|
|
||||||
|
#~ msgid "Send to Desktop"
|
||||||
|
#~ msgstr "Envoyer sur le bureau"
|
||||||
|
|
||||||
|
#~ msgid "Pin to Desktop"
|
||||||
|
#~ msgstr "Épingler au bureau"
|
||||||
|
|
||||||
|
#~ msgid "Unpin from Desktop"
|
||||||
|
#~ msgstr "Désépingler du bureau"
|
||||||
|
|
||||||
|
#~ msgid "State"
|
||||||
|
#~ msgstr "État"
|
||||||
|
|
||||||
|
#~ msgid "Sticky"
|
||||||
|
#~ msgstr "Ancré"
|
||||||
|
|
||||||
|
#~ msgid "Skip Window List"
|
||||||
|
#~ msgstr "Ne pas afficher dans la liste des fenêtres"
|
||||||
|
|
||||||
|
#~ msgid "Add To Favorites Menu"
|
||||||
|
#~ msgstr "Ajouter au menu des favoris"
|
||||||
|
|
||||||
|
#~ msgid "Add To Launcher"
|
||||||
|
#~ msgstr "Ajouter au lanceur"
|
||||||
|
|
||||||
|
#~ msgid "Create Icon"
|
||||||
|
#~ msgstr "Créer un icone"
|
||||||
|
|
||||||
|
#~ msgid "Window Properties"
|
||||||
|
#~ msgstr "Propriétés de la fenêtre"
|
||||||
|
|
||||||
|
#~ msgid "Kill"
|
||||||
|
#~ msgstr "Tuer"
|
||||||
|
|
||||||
|
#~ msgid "Shaded"
|
||||||
|
#~ msgstr "Enroulée"
|
||||||
|
|
||||||
|
#~ msgid "Zoom only one icon"
|
||||||
|
#~ msgstr "Ne zoomer qu'un seul icone"
|
||||||
|
|
||||||
|
#~ msgid "%0.01f"
|
||||||
|
#~ msgstr "%0.01f"
|
||||||
|
|
||||||
|
#~ msgid "%0.1f"
|
||||||
|
#~ msgstr "%0.1f"
|
||||||
|
|
||||||
|
#~ msgid "Hide Behavior"
|
||||||
|
#~ msgstr "Comportement du masquage"
|
||||||
|
|
||||||
|
#~ msgid "Hide Timeout:"
|
||||||
|
#~ msgstr "Délai avant masquage :"
|
||||||
|
|
||||||
|
#~ msgid "Show Iconified"
|
||||||
|
#~ msgstr "Afficher la minimisation"
|
||||||
|
|
||||||
|
#~ msgid "Are you sure you want to delete this Itask NG source?"
|
||||||
|
#~ msgstr "Voulez-vous vraiment supprimer cette source ?"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG Instances"
|
||||||
|
#~ msgstr "Instances de Itask NG"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG - Instances"
|
||||||
|
#~ msgstr "Itask NG - Instances"
|
|
@ -0,0 +1,335 @@
|
||||||
|
# Czech translation.
|
||||||
|
# This file is put in the public domain.
|
||||||
|
# quaker66@gmail.com
|
||||||
|
# Vít Pelčák <vit@pelcak.org>, 2011.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Itask-ng\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-10-16 14:36+0200\n"
|
||||||
|
"PO-Revision-Date: 2011-10-15 15:42+0200\n"
|
||||||
|
"Last-Translator: Vít Pelčák <vit@pelcak.org>\n"
|
||||||
|
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Lokalize 1.2\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#: ../src/e_mod_main.c:1691 ../src/e_mod_main.c:1849 ../src/e_mod_main.c:1876
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr "Engage"
|
||||||
|
|
||||||
|
#: ../src/ng_taskbar.c:641
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "Beze jména!"
|
||||||
|
|
||||||
|
#: ../src/ng_launcher.c:275
|
||||||
|
msgid "Open folder with EFM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/ng_launcher.c:561
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "Nastavit panel"
|
||||||
|
|
||||||
|
#: ../src/ng_launcher.c:565
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "Uzamknout přesun"
|
||||||
|
|
||||||
|
#: ../src/ng_launcher.c:574
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Aplikace"
|
||||||
|
|
||||||
|
#: ../src/ng_launcher.c:578
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "Upravit ikonu"
|
||||||
|
|
||||||
|
#: ../src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Celá obrazovka"
|
||||||
|
|
||||||
|
#: ../src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Zavřít"
|
||||||
|
|
||||||
|
#: ../src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "Maximalizováno"
|
||||||
|
|
||||||
|
#: ../src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "Deminimalizovat"
|
||||||
|
|
||||||
|
#: ../src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "Minimalizovat"
|
||||||
|
|
||||||
|
#: ../src/ng_gadcon.c:299
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "Dostupné gadgety"
|
||||||
|
|
||||||
|
#: ../src/ng_gadcon.c:306
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "Přidat gadget"
|
||||||
|
|
||||||
|
#: ../src/ng_gadcon.c:312
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "Vybrané gadgety"
|
||||||
|
|
||||||
|
#: ../src/ng_gadcon.c:319
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "Odstranit gadget"
|
||||||
|
|
||||||
|
#: ../src/ng_gadcon.c:327 ../src/ng_gadcon.c:370 ../src/ng_gadcon.c:394
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "Popis: nedostupný"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:98
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "Nastavení Engage"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:164 ../src/ng_config.c:225
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Vzhled"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:165
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "Velikost ikon:"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:167
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f px"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:181
|
||||||
|
msgid "Background Opacity:"
|
||||||
|
msgstr "Neprůhlednost pozadí:"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:183
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f \\%"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:191
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "Zobrazit pozadí"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:194
|
||||||
|
msgid "Show Mouse-Over Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:199
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "Orientace"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:201
|
||||||
|
msgid "Bottom Edge"
|
||||||
|
msgstr "Spodní okraj"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:203
|
||||||
|
msgid "Top Edge"
|
||||||
|
msgstr "Horní okraj"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:205
|
||||||
|
msgid "Left Edge"
|
||||||
|
msgstr "Levý okraj"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:207
|
||||||
|
msgid "Right Edge"
|
||||||
|
msgstr "Pravý okraj"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:228 ../src/ng_config.c:247
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Přiblížení"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:229
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "Faktor:"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:235
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "Šířka:"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:241
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "Trvání:"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:250 ../src/ng_config.c:278
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "Položky panelu"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:258 ../src/ng_config.c:538
|
||||||
|
#: ../src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Odstranit"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:260 ../src/ng_config.c:540
|
||||||
|
#: ../src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Nastavit"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:262
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Nahoru"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:264
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Dolů"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:269 ../src/ng_config.c:536
|
||||||
|
#: ../src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Přidat"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:271
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "Správce úloh"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:273
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "Spouštěč"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:275
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Gadcon"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:281 ../src/ng_config.c:300
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "Automaticky skrývat"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:298
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "Zobrazit panel při naléhavé notifikaci"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:306
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "Skládání"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:308
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "Nad vším"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:310
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "Pod celoobrazovkovými"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:314 ../src/ng_config.c:321
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Ostatní"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:315
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "Funkce Ecomorphu"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:317
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "Zobrazit text ikony"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:528
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "Nastavení spouštěče"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:548
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "Nastavení správce úloh"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:550
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "Nezobrazovat dialogy"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:553
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "Pokročilé menu okna"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:556
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "Zobrazit jen aktuální plochu"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:559
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "Seskupovat aplikace podle třídy okna"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:562
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "Přidávat nové aplikace na pravém okraji"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:568
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "Ikonifikované aplikace"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:643 ../src/ng_config.c:683
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "Nastavení panelu Engage"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:788
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "Vytvořit nový zdroj"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:789
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "Zadejte název tohoto nového spouštěče aplikací:"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:798
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"source?"
|
||||||
|
msgstr ""
|
||||||
|
"Vyžádali jste si smazání \"%s\".<br><br>Opravdu chcete tento zdroj smazat?"
|
||||||
|
|
||||||
|
#: ../src/ng_config.c:802
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "Opravdu chcete tento zdroj smazat?"
|
||||||
|
|
||||||
|
#: ../src/ng_config_instances.c:64 ../src/ng_config_instances.c:94
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "Instance Engage"
|
||||||
|
|
||||||
|
#. FIXME
|
||||||
|
#. if(ci->launcher)
|
||||||
|
#. label = D_("Launcher NG");
|
||||||
|
#. else if(ci->taskbar)
|
||||||
|
#. label = D_("Taskbar NG");
|
||||||
|
#.
|
||||||
|
#: ../src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Panel"
|
||||||
|
|
||||||
|
#: ../src/ng_config_instances.c:271
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"Instance?"
|
||||||
|
msgstr ""
|
||||||
|
"Vyžádali jste si smazání \"%s\".<br><br>Opravdu chcete tuto instanci smazat?"
|
||||||
|
|
||||||
|
#: ../src/ng_config_instances.c:275
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Opravdu chcete smazat tuto Itask NG instanci?"
|
||||||
|
|
||||||
|
#~ msgid "Reflection Opacity:"
|
||||||
|
#~ msgstr "Neprůhlednost zrcadlení:"
|
||||||
|
|
||||||
|
#~ msgid "%1.0f"
|
||||||
|
#~ msgstr "%1.0f"
|
||||||
|
|
||||||
|
#~ msgid "Itask-NG"
|
||||||
|
#~ msgstr "Itask-NG"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG"
|
||||||
|
#~ msgstr "Itask NG"
|
||||||
|
|
||||||
|
#~ msgid "Zoom only one icon"
|
||||||
|
#~ msgstr "Přiblížit pouze jednu ikonu"
|
||||||
|
|
||||||
|
#~ msgid "Hide Timeout:"
|
||||||
|
#~ msgstr "Časový limit skrytí:"
|
||||||
|
|
||||||
|
#~ msgid "Lock Deskflip on Edge"
|
||||||
|
#~ msgstr "Zamknout přepnutí plochy na okraji"
|
||||||
|
|
||||||
|
#~ msgid "Are you sure you want to delete this Itask NG source?"
|
||||||
|
#~ msgstr "Opravdu chcete smazat tento Itask NG zdroj?"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG - Instances"
|
||||||
|
#~ msgstr "Itask NG - Instance"
|
|
@ -0,0 +1,309 @@
|
||||||
|
# translation of de.po to German
|
||||||
|
# Copyright (C) YEAR Enlightenment development team
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
#
|
||||||
|
# hannes janetzek <hannes.janetzek@gmail.com>, 2008.
|
||||||
|
# Fabian Nowak <timystery@arcor.de>, 2010.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: de\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-01-15 23:37+0100\n"
|
||||||
|
"PO-Revision-Date: 2008-09-02 17:25+0200\n"
|
||||||
|
"Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
|
||||||
|
"Language-Team: German\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: KBabel 1.11.4\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:398
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr "Engage"
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:731
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "Kein Name!"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:619
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "Engage Einstellungen"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:623
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "Verschieben von Elementen sperren"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:632
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Anwendungen"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:636
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "Icon bearbeiten"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Vollbildmodus"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Schließen"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "Maximiert"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "Wiederherstellen"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "Zu Icon minimieren"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:302
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "Verfügbare Helfer"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:309
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "Helfer hinzufügen"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:315
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "Ausgewählte Helfer"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:322
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "Helfer entfernen"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:330 src/ng_gadcon.c:373 src/ng_gadcon.c:397
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "Beschreibung: Nicht verfügbar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:101
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "Einstellungen für Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:168
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "Leisteninhalte"
|
||||||
|
|
||||||
|
#: src/ng_config.c:177 src/ng_config.c:634 src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Entfernen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:179 src/ng_config.c:636 src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Einstellen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:181
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Hoch"
|
||||||
|
|
||||||
|
#: src/ng_config.c:183
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Runter"
|
||||||
|
|
||||||
|
#: src/ng_config.c:188 src/ng_config.c:632 src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Hinzufügen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:190
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "Taskbar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:192
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "Starter"
|
||||||
|
|
||||||
|
#: src/ng_config.c:194
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Bereich für Helfer"
|
||||||
|
|
||||||
|
#: src/ng_config.c:205
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Erscheinungsbild"
|
||||||
|
|
||||||
|
#: src/ng_config.c:206
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "Icon-Beschriftung zeigen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:209
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "Hintergrundbox zeigen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:215
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "Symbolgröße:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:217
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f px"
|
||||||
|
|
||||||
|
#: src/ng_config.c:224
|
||||||
|
msgid "Background Transparency:"
|
||||||
|
msgstr "Hintergrundtransparenz:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:226
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f \\%"
|
||||||
|
|
||||||
|
#: src/ng_config.c:234
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "Anordnung"
|
||||||
|
|
||||||
|
#: src/ng_config.c:237
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "Über allen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:239
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "Unterhalb Vollbild"
|
||||||
|
|
||||||
|
#: src/ng_config.c:244
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "Ausrichtung"
|
||||||
|
|
||||||
|
#: src/ng_config.c:260
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Vergrößerung"
|
||||||
|
|
||||||
|
#: src/ng_config.c:261
|
||||||
|
msgid "Zoom only one icon"
|
||||||
|
msgstr "Nur ein Symbol vergrößern"
|
||||||
|
|
||||||
|
#: src/ng_config.c:263
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "Faktor:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:269
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "Bereich:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:275
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "Dauer:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:283
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "Automatisch verbergen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:307
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "Leiste zeigen bei wichtigen Ereignissen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:314
|
||||||
|
msgid "Hide Timeout:"
|
||||||
|
msgstr "Zeit bis zum Verbergen:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:322
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Weitere Einstellungen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:323
|
||||||
|
msgid "Lock Deskflip on Edge"
|
||||||
|
msgstr "Arbeitsflächenwechsel an Engage-Kante verhindern"
|
||||||
|
|
||||||
|
#: src/ng_config.c:325
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "\"Ecomorphe\" Eigenschaften"
|
||||||
|
|
||||||
|
#: src/ng_config.c:624
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "Startereinstellungen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:644
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "Taskbar-Einstellungen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:646
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "Dialoge nicht zeigen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:648
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "Erweitertes Fenstermenü"
|
||||||
|
|
||||||
|
#: src/ng_config.c:650
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "Nur die aktuelle Arbeitsfläche zeigen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:652
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "Anwendungen nach Fensterklasse gruppieren"
|
||||||
|
|
||||||
|
#: src/ng_config.c:654
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "Neue Anwendungen an der \"rechten\" Seite anhängen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:659
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "Zu Icon verkleinerte Anwendungen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:734 src/ng_config.c:774
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "Einstellungen für Engage-Taskbar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:852
|
||||||
|
#, c-format
|
||||||
|
msgid "%i Launcher"
|
||||||
|
msgstr "%i Starter"
|
||||||
|
|
||||||
|
#: src/ng_config.c:859
|
||||||
|
#, c-format
|
||||||
|
msgid "%i Taskbar"
|
||||||
|
msgstr "%i Taskbar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:865
|
||||||
|
#, c-format
|
||||||
|
msgid "%i Gadcon"
|
||||||
|
msgstr "%i Bereich für Helfer"
|
||||||
|
|
||||||
|
#: src/ng_config.c:879
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "Neue Anwendungen-Liste erstellen"
|
||||||
|
|
||||||
|
#: src/ng_config.c:880
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "Geben Sie einen neuen Namen für diesen Anwendungsstarter an:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:889
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"source?"
|
||||||
|
msgstr "Sie möchten \"%s\" löschen.<br><br>Sind Sie wirklich sicher?"
|
||||||
|
|
||||||
|
#: src/ng_config.c:893
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "Möchten Sie diese Anwendungen-Liste wirklich löschen?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:64
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "Engage-Instanzen"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:94
|
||||||
|
msgid "Engage - Instances"
|
||||||
|
msgstr "Engage-Instanzen"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Leiste"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:363
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"Instance?"
|
||||||
|
msgstr "Sie möchten \"%s\" löschen.<br><br>Sind Sie wirklich sicher?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:367
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Möchten Sie diese Instanz wirklich löschen?"
|
||||||
|
|
||||||
|
#~ msgid "Configure Launcher"
|
||||||
|
#~ msgstr "Konfiguriere Anwendungsstarter"
|
|
@ -0,0 +1,387 @@
|
||||||
|
# French translation for Engage.
|
||||||
|
# This file is put in the public domain.
|
||||||
|
# batden <batden@orange.fr>, 2010, 2011.
|
||||||
|
# dazibao <dazibao@sfr.fr>, 2011.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Engage\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-09-04 16:46+0200\n"
|
||||||
|
"PO-Revision-Date: 2011-09-11 15:36+0200\n"
|
||||||
|
"Last-Translator: dazibao <dazibao@sfr.fr>\n"
|
||||||
|
"Language-Team: French <sansgourou@gmail.com>\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n>1;\n"
|
||||||
|
"X-Poedit-Language: French\n"
|
||||||
|
"X-Poedit-Country: FRANCE\n"
|
||||||
|
"X-Poedit-SourceCharset: utf-8\n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:1666 src/e_mod_main.c:1824 src/e_mod_main.c:1851
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr "Engage"
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:641
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "Pas de nom !"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:275
|
||||||
|
msgid "Open folder with EFM"
|
||||||
|
msgstr "Ouvrir les dossiers avec EFM"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:561
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "Configurer la barre"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:565
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "Verrouiller le glisser"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:574
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Applications"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:578
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "Éditer l'icone"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Plein écran"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Fermer"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "Maximisée"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "Restaurer"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "Minimiser"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:299
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "Gadgets disponibles"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:306
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "Ajouter un gadget"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:312
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "Gadgets sélectionnés"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:319
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "Supprimer ce gadget"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:327 src/ng_gadcon.c:370 src/ng_gadcon.c:394
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "Description : non disponible"
|
||||||
|
|
||||||
|
#: src/ng_config.c:98
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "Configuration de Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:164 src/ng_config.c:225
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Aspect"
|
||||||
|
|
||||||
|
#: src/ng_config.c:165
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "Taille de l'icone :"
|
||||||
|
|
||||||
|
#: src/ng_config.c:167
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f px"
|
||||||
|
|
||||||
|
#: src/ng_config.c:181
|
||||||
|
msgid "Background Opacity:"
|
||||||
|
msgstr "Opacité du fond :"
|
||||||
|
|
||||||
|
#: src/ng_config.c:183
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f \\%"
|
||||||
|
|
||||||
|
#: src/ng_config.c:191
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "Afficher le fond"
|
||||||
|
|
||||||
|
#: src/ng_config.c:194
|
||||||
|
msgid "Show Mouse-Over Animation"
|
||||||
|
msgstr "Afficher l'animation au survol"
|
||||||
|
|
||||||
|
#: src/ng_config.c:199
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "Disposition"
|
||||||
|
|
||||||
|
#: src/ng_config.c:201
|
||||||
|
msgid "Bottom Edge"
|
||||||
|
msgstr "Bord inférieur"
|
||||||
|
|
||||||
|
#: src/ng_config.c:203
|
||||||
|
msgid "Top Edge"
|
||||||
|
msgstr "Bord supérieur"
|
||||||
|
|
||||||
|
#: src/ng_config.c:205
|
||||||
|
msgid "Left Edge"
|
||||||
|
msgstr "Bord gauche"
|
||||||
|
|
||||||
|
#: src/ng_config.c:207
|
||||||
|
msgid "Right Edge"
|
||||||
|
msgstr "Bord droit"
|
||||||
|
|
||||||
|
#: src/ng_config.c:228 src/ng_config.c:247
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Zoom"
|
||||||
|
|
||||||
|
#: src/ng_config.c:229
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "Facteur :"
|
||||||
|
|
||||||
|
#: src/ng_config.c:235
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "Étendue :"
|
||||||
|
|
||||||
|
#: src/ng_config.c:241
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "Durée :"
|
||||||
|
|
||||||
|
#: src/ng_config.c:250 src/ng_config.c:278
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "Éléments de la barre"
|
||||||
|
|
||||||
|
#: src/ng_config.c:258 src/ng_config.c:538 src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Supprimer"
|
||||||
|
|
||||||
|
#: src/ng_config.c:260 src/ng_config.c:540 src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Configurer"
|
||||||
|
|
||||||
|
#: src/ng_config.c:262
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Monter"
|
||||||
|
|
||||||
|
#: src/ng_config.c:264
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Descendre"
|
||||||
|
|
||||||
|
#: src/ng_config.c:269 src/ng_config.c:536 src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Ajouter"
|
||||||
|
|
||||||
|
#: src/ng_config.c:271
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "Barre des tâches"
|
||||||
|
|
||||||
|
#: src/ng_config.c:273
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "Lanceur"
|
||||||
|
|
||||||
|
#: src/ng_config.c:275
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Gadcon"
|
||||||
|
|
||||||
|
#: src/ng_config.c:281 src/ng_config.c:300
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "Auto-masquage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:298
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "Afficher la barre si événement urgent"
|
||||||
|
|
||||||
|
#: src/ng_config.c:306
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "Empilement"
|
||||||
|
|
||||||
|
#: src/ng_config.c:308
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "Toujours au-dessus"
|
||||||
|
|
||||||
|
#: src/ng_config.c:310
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "Sous les fenêtres plein écran"
|
||||||
|
|
||||||
|
#: src/ng_config.c:314 src/ng_config.c:321
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Autres"
|
||||||
|
|
||||||
|
#: src/ng_config.c:315
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "Fonctionnalités à la Ecomorph"
|
||||||
|
|
||||||
|
#: src/ng_config.c:317
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "Montrer l'étiquette de l'icone"
|
||||||
|
|
||||||
|
#: src/ng_config.c:528
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "Paramétrage du lanceur"
|
||||||
|
|
||||||
|
#: src/ng_config.c:548
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "Paramétrage de la barre des tâches"
|
||||||
|
|
||||||
|
#: src/ng_config.c:550
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "Ne pas afficher les boîtes de dialogue"
|
||||||
|
|
||||||
|
#: src/ng_config.c:553
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "Menu avancé de la fenêtre"
|
||||||
|
|
||||||
|
#: src/ng_config.c:556
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "Afficher uniquement le bureau actuel"
|
||||||
|
|
||||||
|
#: src/ng_config.c:559
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "Grouper les applis par classe de fenêtre"
|
||||||
|
|
||||||
|
#: src/ng_config.c:562
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "Ajouter les nouvelles applis par la droite"
|
||||||
|
|
||||||
|
#: src/ng_config.c:568
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "Applications minimisées"
|
||||||
|
|
||||||
|
#: src/ng_config.c:643 src/ng_config.c:683
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "Configuration de la barre"
|
||||||
|
|
||||||
|
#: src/ng_config.c:788
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "Créer une nouvelle source"
|
||||||
|
|
||||||
|
#: src/ng_config.c:789
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "Entrer un nom pour ce nouveau lanceur :"
|
||||||
|
|
||||||
|
#: src/ng_config.c:798
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"source?"
|
||||||
|
msgstr ""
|
||||||
|
"Vous avez demandé à supprimer « %s ».<br><br>Voulez-vous vraiment supprimer "
|
||||||
|
"cette source ?"
|
||||||
|
|
||||||
|
#: src/ng_config.c:802
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "Voulez-vous vraiment supprimer cette source ?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:64 src/ng_config_instances.c:94
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "Instances de Engage"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Barre"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:271
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"Instance?"
|
||||||
|
msgstr ""
|
||||||
|
"Vous avez demandé à supprimer « %s ».<br><br>Voulez-vous vraiment le faire ?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:275
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Voulez-vous vraiment supprimer cette instance ?"
|
||||||
|
|
||||||
|
#~ msgid "Reflection Opacity:"
|
||||||
|
#~ msgstr "Opacité du reflet:"
|
||||||
|
|
||||||
|
#~ msgid "%1.0f"
|
||||||
|
#~ msgstr "%1.0f"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG"
|
||||||
|
#~ msgstr "Itask NG"
|
||||||
|
|
||||||
|
#~ msgid "Configure Launcher"
|
||||||
|
#~ msgstr "Configurer le lanceur"
|
||||||
|
|
||||||
|
#~ msgid "Window Locks"
|
||||||
|
#~ msgstr "Verrous de la fenêtre"
|
||||||
|
|
||||||
|
#~ msgid "Remember"
|
||||||
|
#~ msgstr "Mémoriser"
|
||||||
|
|
||||||
|
#~ msgid "Borders"
|
||||||
|
#~ msgstr "Bordures"
|
||||||
|
|
||||||
|
#~ msgid "Send to Desktop"
|
||||||
|
#~ msgstr "Envoyer sur le bureau"
|
||||||
|
|
||||||
|
#~ msgid "Pin to Desktop"
|
||||||
|
#~ msgstr "Épingler au bureau"
|
||||||
|
|
||||||
|
#~ msgid "Unpin from Desktop"
|
||||||
|
#~ msgstr "Désépingler du bureau"
|
||||||
|
|
||||||
|
#~ msgid "State"
|
||||||
|
#~ msgstr "État"
|
||||||
|
|
||||||
|
#~ msgid "Sticky"
|
||||||
|
#~ msgstr "Ancré"
|
||||||
|
|
||||||
|
#~ msgid "Skip Window List"
|
||||||
|
#~ msgstr "Ne pas afficher dans la liste des fenêtres"
|
||||||
|
|
||||||
|
#~ msgid "Add To Favorites Menu"
|
||||||
|
#~ msgstr "Ajouter au menu des favoris"
|
||||||
|
|
||||||
|
#~ msgid "Add To Launcher"
|
||||||
|
#~ msgstr "Ajouter au lanceur"
|
||||||
|
|
||||||
|
#~ msgid "Create Icon"
|
||||||
|
#~ msgstr "Créer un icone"
|
||||||
|
|
||||||
|
#~ msgid "Window Properties"
|
||||||
|
#~ msgstr "Propriétés de la fenêtre"
|
||||||
|
|
||||||
|
#~ msgid "Kill"
|
||||||
|
#~ msgstr "Tuer"
|
||||||
|
|
||||||
|
#~ msgid "Shaded"
|
||||||
|
#~ msgstr "Enroulée"
|
||||||
|
|
||||||
|
#~ msgid "Zoom only one icon"
|
||||||
|
#~ msgstr "Ne zoomer qu'un seul icone"
|
||||||
|
|
||||||
|
#~ msgid "%0.01f"
|
||||||
|
#~ msgstr "%0.01f"
|
||||||
|
|
||||||
|
#~ msgid "%0.1f"
|
||||||
|
#~ msgstr "%0.1f"
|
||||||
|
|
||||||
|
#~ msgid "Hide Behavior"
|
||||||
|
#~ msgstr "Comportement du masquage"
|
||||||
|
|
||||||
|
#~ msgid "Hide Timeout:"
|
||||||
|
#~ msgstr "Délai avant masquage :"
|
||||||
|
|
||||||
|
#~ msgid "Show Iconified"
|
||||||
|
#~ msgstr "Afficher la minimisation"
|
||||||
|
|
||||||
|
#~ msgid "Are you sure you want to delete this Itask NG source?"
|
||||||
|
#~ msgstr "Voulez-vous vraiment supprimer cette source ?"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG Instances"
|
||||||
|
#~ msgstr "Instances de Itask NG"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG - Instances"
|
||||||
|
#~ msgstr "Itask NG - Instances"
|
|
@ -0,0 +1,299 @@
|
||||||
|
# Italian translation for E17 engage module.
|
||||||
|
# This file is put in the public domain.
|
||||||
|
# Massimo Maiurana <maiurana@gmail.com>, 2010.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Engage\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-09-11 21:49+0200\n"
|
||||||
|
"PO-Revision-Date: 2011-09-11 21:50+0200\n"
|
||||||
|
"Last-Translator: Massimo Maiurana <maiurana@gmail.com>\n"
|
||||||
|
"Language-Team: none\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: \n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:1666 src/e_mod_main.c:1824 src/e_mod_main.c:1851
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr "Engage"
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:641
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "Nessun nome!"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:275
|
||||||
|
msgid "Open folder with EFM"
|
||||||
|
msgstr "Apri directory con EFM"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:561
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "Configura barra"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:565
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "Blocca trascinamento"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:574
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Applicazioni"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:578
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "Modifica icona"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "A tutto schermo"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Chiudi"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "Massimizzata"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "Disiconifica"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "Iconifica"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:299
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "Gadget disponibili"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:306
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "Aggiungi gadget"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:312
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "Gadget selezionati"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:319
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "Rimuovi gadget"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:327 src/ng_gadcon.c:370 src/ng_gadcon.c:394
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "Descrizione: non disponibile"
|
||||||
|
|
||||||
|
#: src/ng_config.c:98
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "Configurazione di Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:164 src/ng_config.c:225
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Aspetto"
|
||||||
|
|
||||||
|
#: src/ng_config.c:165
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "Dimensione icona:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:167
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f px"
|
||||||
|
|
||||||
|
#: src/ng_config.c:181
|
||||||
|
msgid "Background Opacity:"
|
||||||
|
msgstr "Trasparenza sfondo:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:183
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f \\%"
|
||||||
|
|
||||||
|
#: src/ng_config.c:191
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "Mostra box di sfondo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:194
|
||||||
|
msgid "Show Mouse-Over Animation"
|
||||||
|
msgstr "Animazione al passaggio del mouse"
|
||||||
|
|
||||||
|
#: src/ng_config.c:199
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "Orientamento"
|
||||||
|
|
||||||
|
#: src/ng_config.c:201
|
||||||
|
msgid "Bottom Edge"
|
||||||
|
msgstr "Bordo inferiore"
|
||||||
|
|
||||||
|
#: src/ng_config.c:203
|
||||||
|
msgid "Top Edge"
|
||||||
|
msgstr "Bordo superiore"
|
||||||
|
|
||||||
|
#: src/ng_config.c:205
|
||||||
|
msgid "Left Edge"
|
||||||
|
msgstr "Bordo sinistro"
|
||||||
|
|
||||||
|
#: src/ng_config.c:207
|
||||||
|
msgid "Right Edge"
|
||||||
|
msgstr "Bordo destro"
|
||||||
|
|
||||||
|
#: src/ng_config.c:228 src/ng_config.c:247
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Zoom"
|
||||||
|
|
||||||
|
#: src/ng_config.c:229
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "Fattore:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:235
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "Intervallo:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:241
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "Durata:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:250 src/ng_config.c:278
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "Elementi nella barra"
|
||||||
|
|
||||||
|
#: src/ng_config.c:258 src/ng_config.c:538 src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Elimina"
|
||||||
|
|
||||||
|
#: src/ng_config.c:260 src/ng_config.c:540 src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Configura"
|
||||||
|
|
||||||
|
#: src/ng_config.c:262
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Su"
|
||||||
|
|
||||||
|
#: src/ng_config.c:264
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Giù"
|
||||||
|
|
||||||
|
#: src/ng_config.c:269 src/ng_config.c:536 src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Aggiungi"
|
||||||
|
|
||||||
|
#: src/ng_config.c:271
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "Taskbar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:273
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "Lanciatore"
|
||||||
|
|
||||||
|
#: src/ng_config.c:275
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Gadcon"
|
||||||
|
|
||||||
|
#: src/ng_config.c:281 src/ng_config.c:300
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "Nascondi automaticamente"
|
||||||
|
|
||||||
|
#: src/ng_config.c:298
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "Mostra barra su Urgenti"
|
||||||
|
|
||||||
|
#: src/ng_config.c:306
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "Livello"
|
||||||
|
|
||||||
|
#: src/ng_config.c:308
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "Sopra tutto"
|
||||||
|
|
||||||
|
#: src/ng_config.c:310
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "Sotto finestre a tutto schermo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:314 src/ng_config.c:321
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Altro"
|
||||||
|
|
||||||
|
#: src/ng_config.c:315
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "Funzionalità Ecomorph"
|
||||||
|
|
||||||
|
#: src/ng_config.c:317
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "Mostra etichetta icona"
|
||||||
|
|
||||||
|
#: src/ng_config.c:528
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "Impostazioni lanciatore"
|
||||||
|
|
||||||
|
#: src/ng_config.c:548
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "Impostazioni taskbar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:550
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "Non mostrare finestre dialogo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:553
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "Menù finestra avanzato"
|
||||||
|
|
||||||
|
#: src/ng_config.c:556
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "Mostra solo desktop corrente"
|
||||||
|
|
||||||
|
#: src/ng_config.c:559
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "Raggruppa applicazioni per classe finestra"
|
||||||
|
|
||||||
|
#: src/ng_config.c:562
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "Aggiungi nuove applicazioni sul lato destro"
|
||||||
|
|
||||||
|
#: src/ng_config.c:568
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "Applicazioni iconificate"
|
||||||
|
|
||||||
|
#: src/ng_config.c:643 src/ng_config.c:683
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "Configurazione barra Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:788
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "Crea nuova fonte"
|
||||||
|
|
||||||
|
#: src/ng_config.c:789
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "Inserire un nome per il nuovo lanciatore:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:798
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"source?"
|
||||||
|
msgstr ""
|
||||||
|
"Avete richiesto di eliminare \"%s\".<br><br>Siete sicuri di voler eliminare "
|
||||||
|
"questa fonte?"
|
||||||
|
|
||||||
|
#: src/ng_config.c:802
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "Siete sicuri di voler eliminare questa fonte?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:64 src/ng_config_instances.c:94
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "Istanze di Engage"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Barra"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:271
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"Instance?"
|
||||||
|
msgstr ""
|
||||||
|
"Avete richiesto di eliminare \"%s\".<br><br>Siete sicuri di voler eliminare "
|
||||||
|
"questa istanza?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:275
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Siete sicuri di voler eliminare questa istanza?"
|
|
@ -0,0 +1,326 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Hannes Janetzek
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2008-09-02 16:42+0200\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:338
|
||||||
|
msgid "Itask NG"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:851
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:726
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:733
|
||||||
|
msgid "Configure Launcher"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:737
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:746
|
||||||
|
msgid "Set Single Instance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:752 src/ng_border_menu.c:307
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:154
|
||||||
|
msgid "Window Locks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:161
|
||||||
|
msgid "Remember"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:170
|
||||||
|
msgid "Borders"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:184
|
||||||
|
msgid "Send to Desktop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:196
|
||||||
|
msgid "Pin to Desktop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:208
|
||||||
|
msgid "Unpin from Desktop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:241
|
||||||
|
msgid "State"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:255 src/ng_border_menu.c:750
|
||||||
|
msgid "Sticky"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:268 src/ng_border_menu.c:763
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:288
|
||||||
|
msgid "Skip Window List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:312
|
||||||
|
msgid "Add To Favorites Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:317
|
||||||
|
msgid "Add To Launcher"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:324
|
||||||
|
msgid "Create Icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:334
|
||||||
|
msgid "Window Properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:347
|
||||||
|
msgid "Kill"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:357 src/ng_border_menu.c:372
|
||||||
|
msgid "Close"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:395
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:419
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:421
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:737
|
||||||
|
msgid "Shaded"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:429
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:436
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:442
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:449
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:457 src/ng_gadcon.c:492 src/ng_gadcon.c:514
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:83
|
||||||
|
msgid "Itask NG Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:153
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:161 src/ng_config.c:613 src/ng_config_instances.c:92
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:163 src/ng_config.c:615 src/ng_config_instances.c:94
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:165
|
||||||
|
msgid "Up"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:167
|
||||||
|
msgid "Down"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:174 src/ng_config.c:611 src/ng_config_instances.c:90
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:176
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:178
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:180
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:187
|
||||||
|
msgid "Zooming"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:188
|
||||||
|
msgid "Zoom only one icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:190
|
||||||
|
msgid "Zoomfactor:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:192
|
||||||
|
#, c-format
|
||||||
|
msgid "%0.01f"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:196
|
||||||
|
msgid "Zoom Range:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:198 src/ng_config.c:204 src/ng_config.c:284
|
||||||
|
#, c-format
|
||||||
|
msgid "%0.1f"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:202
|
||||||
|
msgid "Zoom Duration:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:215
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:216
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:219
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:225
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:227
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:234
|
||||||
|
msgid "Background Transparency:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:236
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:261
|
||||||
|
msgid "Hide Behavior"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:282
|
||||||
|
msgid "Hide Timeout:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:291
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:603
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:623
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:625
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:627
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:629
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:634
|
||||||
|
msgid "Show Iconified"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:720 src/ng_config.c:761
|
||||||
|
msgid "Itask NG Bar Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:869
|
||||||
|
msgid "Create new Itask NG source"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:870
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:881
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"ng source?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:885
|
||||||
|
msgid "Are you sure you want to delete this Itask NG source?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:49
|
||||||
|
msgid "Itask NG Instances"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:82
|
||||||
|
msgid "Itask NG - Instances"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:152
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:336
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"Instance?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:340
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,314 @@
|
||||||
|
# Portuguese translation for engage
|
||||||
|
# This file is distributed under the same license as the enlightenment package.
|
||||||
|
# Sérgio Marques <sarquespt@gmail.com>, 2010-2011.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: engage\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-04-04 14:24+0200\n"
|
||||||
|
"PO-Revision-Date: 2012-08-26 00:02+0100\n"
|
||||||
|
"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
|
||||||
|
"Language-Team: Portuguese <>\n"
|
||||||
|
"Language: pt\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
"X-Poedit-Language: Portuguese\n"
|
||||||
|
"X-Poedit-Country: Portugal\n"
|
||||||
|
"X-Poedit-SourceCharset: utf-8\n"
|
||||||
|
"X-Generator: Lokalize 1.1\n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:1695
|
||||||
|
#: src/e_mod_main.c:1786
|
||||||
|
#: src/e_mod_main.c:1810
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr "Engage"
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:684
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "Sem nome!"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:529
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "Configurar barra"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:533
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "Bloquear arrastamento"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:542
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Aplicações"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:546
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "Editar ícone"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Ecrã completo"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Fechar"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "Maximizada"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "Restaurar"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "Minimizar"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:299
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "\"Gadgets\" disponíveis"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:306
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "Adicionar \"gadget\""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:312
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "\"Gadgets\" selecionados"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:319
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "Remover \"gadget\""
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:327
|
||||||
|
#: src/ng_gadcon.c:370
|
||||||
|
#: src/ng_gadcon.c:394
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "Descrição: indisponível"
|
||||||
|
|
||||||
|
#: src/ng_config.c:101
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "Configuração do Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:171
|
||||||
|
#: src/ng_config.c:229
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Aparência"
|
||||||
|
|
||||||
|
#: src/ng_config.c:172
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "Tamanho dos ícones:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:174
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f px"
|
||||||
|
|
||||||
|
#: src/ng_config.c:179
|
||||||
|
msgid "Reflection Opacity:"
|
||||||
|
msgstr "Opacidade do reflexo:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:181
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f"
|
||||||
|
msgstr "%1.0f"
|
||||||
|
|
||||||
|
#: src/ng_config.c:188
|
||||||
|
msgid "Background Opacity:"
|
||||||
|
msgstr "Opacidade do fundo:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:190
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f \\%"
|
||||||
|
|
||||||
|
#: src/ng_config.c:198
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "Mostrar caixa de fundo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:203
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "Orientação"
|
||||||
|
|
||||||
|
#: src/ng_config.c:205
|
||||||
|
msgid "Bottom Edge"
|
||||||
|
msgstr "Em baixo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:207
|
||||||
|
msgid "Top Edge"
|
||||||
|
msgstr "Em cima"
|
||||||
|
|
||||||
|
#: src/ng_config.c:209
|
||||||
|
msgid "Left Edge"
|
||||||
|
msgstr "À esquerda"
|
||||||
|
|
||||||
|
#: src/ng_config.c:211
|
||||||
|
msgid "Right Edge"
|
||||||
|
msgstr "À direita"
|
||||||
|
|
||||||
|
#: src/ng_config.c:232
|
||||||
|
#: src/ng_config.c:251
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Ampliação"
|
||||||
|
|
||||||
|
#: src/ng_config.c:233
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "Fator:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:239
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "Intervalo:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:245
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "Duração:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:254
|
||||||
|
#: src/ng_config.c:282
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "Itens da barra"
|
||||||
|
|
||||||
|
#: src/ng_config.c:262
|
||||||
|
#: src/ng_config.c:539
|
||||||
|
#: src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:264
|
||||||
|
#: src/ng_config.c:541
|
||||||
|
#: src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Configurar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:266
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Subir"
|
||||||
|
|
||||||
|
#: src/ng_config.c:268
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Descer"
|
||||||
|
|
||||||
|
#: src/ng_config.c:273
|
||||||
|
#: src/ng_config.c:537
|
||||||
|
#: src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Adicionar"
|
||||||
|
|
||||||
|
#: src/ng_config.c:275
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "Barra de tarefas"
|
||||||
|
|
||||||
|
#: src/ng_config.c:277
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "Lançador"
|
||||||
|
|
||||||
|
#: src/ng_config.c:279
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Gadcon"
|
||||||
|
|
||||||
|
#: src/ng_config.c:285
|
||||||
|
#: src/ng_config.c:301
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "Ocultar automaticamente"
|
||||||
|
|
||||||
|
#: src/ng_config.c:299
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "Mostrar barra se for urgente"
|
||||||
|
|
||||||
|
#: src/ng_config.c:307
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "Empilhamento"
|
||||||
|
|
||||||
|
#: src/ng_config.c:309
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "Por cima de tudo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:311
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "Por baixo de ecrã completo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:315
|
||||||
|
#: src/ng_config.c:322
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Outras"
|
||||||
|
|
||||||
|
#: src/ng_config.c:316
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "Opções Ecomorph"
|
||||||
|
|
||||||
|
#: src/ng_config.c:318
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "Mostrar texto dos ícones"
|
||||||
|
|
||||||
|
#: src/ng_config.c:529
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "Definições do lançador"
|
||||||
|
|
||||||
|
#: src/ng_config.c:549
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "Definições da barra de tarefas"
|
||||||
|
|
||||||
|
#: src/ng_config.c:551
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "Não mostrar diálogos"
|
||||||
|
|
||||||
|
#: src/ng_config.c:554
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "Menu avançado"
|
||||||
|
|
||||||
|
#: src/ng_config.c:557
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "Mostrar na área de trabalho atual"
|
||||||
|
|
||||||
|
#: src/ng_config.c:560
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "Agrupar aplicações por classe de janela"
|
||||||
|
|
||||||
|
#: src/ng_config.c:563
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "Colocar novas aplicações no lado direito"
|
||||||
|
|
||||||
|
#: src/ng_config.c:569
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "Aplicações miniminizadas"
|
||||||
|
|
||||||
|
#: src/ng_config.c:644
|
||||||
|
#: src/ng_config.c:684
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "Configuração do Engage"
|
||||||
|
|
||||||
|
#: src/ng_config.c:789
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "Criar nova fonte"
|
||||||
|
|
||||||
|
#: src/ng_config.c:790
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "Indique o nome para este lançador de aplicações:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:799
|
||||||
|
#, c-format
|
||||||
|
msgid "You requested to delete \"%s\".<br><br>Are you sure you want to delete this source?"
|
||||||
|
msgstr "Solicitou a eliminação de \"%s\".<br><br>Tem a certeza que quer eliminar esta fonte?"
|
||||||
|
|
||||||
|
#: src/ng_config.c:803
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "Tem a certeza que quer eliminar esta fonte?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:64
|
||||||
|
#: src/ng_config_instances.c:94
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "Instâncias Engage"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Barra"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:338
|
||||||
|
#, c-format
|
||||||
|
msgid "You requested to delete \"%s\".<br><br>Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Solicitou a eliminação de \"%s\".<br><br>Tem a certeza que quer eliminar esta instância?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:342
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Tem a certeza que quer eliminar esta instância?"
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
/^"POT-Creation-Date: .*"$/{
|
||||||
|
x
|
||||||
|
s/P/P/
|
||||||
|
ta
|
||||||
|
g
|
||||||
|
d
|
||||||
|
bb
|
||||||
|
:a
|
||||||
|
x
|
||||||
|
:b
|
||||||
|
}
|
|
@ -0,0 +1,319 @@
|
||||||
|
# Slovenian translation of itask_ng.
|
||||||
|
# This file is put in the public domain.
|
||||||
|
# r1to <renato.rener@gmail.com>, 2011.
|
||||||
|
# , fuzzy
|
||||||
|
#
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: itask_ng 1.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: hannes.janetzek@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2011-04-04 14:24+0200\n"
|
||||||
|
"PO-Revision-Date: 2011-02-24 16:58+0100\n"
|
||||||
|
"Last-Translator: r1to <renato.rener@gmail.com>\n"
|
||||||
|
"Language-Team: Slovenian <sl@li.org>\n"
|
||||||
|
"Language: sl\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: src/e_mod_main.c:1695 src/e_mod_main.c:1786 src/e_mod_main.c:1810
|
||||||
|
msgid "Engage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_taskbar.c:684
|
||||||
|
msgid "No name!"
|
||||||
|
msgstr "Ni imena !"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:529
|
||||||
|
msgid "Configure Bar"
|
||||||
|
msgstr "Nastavi vrstico"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:533
|
||||||
|
msgid "Lock Dragging"
|
||||||
|
msgstr "Zakleni vleko"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:542
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Programi"
|
||||||
|
|
||||||
|
#: src/ng_launcher.c:546
|
||||||
|
msgid "Edit Icon"
|
||||||
|
msgstr "Uredi ikono"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:30
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Celozaslonsko"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:45
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Zapri"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:66
|
||||||
|
msgid "Maximized"
|
||||||
|
msgstr "Razpeto"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:86
|
||||||
|
msgid "Uniconify"
|
||||||
|
msgstr "Deikoniziraj"
|
||||||
|
|
||||||
|
#: src/ng_border_menu.c:88
|
||||||
|
msgid "Iconify"
|
||||||
|
msgstr "Ikoniziraj"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:299
|
||||||
|
msgid "Available Gadgets"
|
||||||
|
msgstr "Dostopni gadgeti"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:306
|
||||||
|
msgid "Add Gadget"
|
||||||
|
msgstr "Dodaj gadget"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:312
|
||||||
|
msgid "Selected Gadgets"
|
||||||
|
msgstr "Izbrani gadgeti"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:319
|
||||||
|
msgid "Remove Gadget"
|
||||||
|
msgstr "Odstrani gadget"
|
||||||
|
|
||||||
|
#: src/ng_gadcon.c:327 src/ng_gadcon.c:370 src/ng_gadcon.c:394
|
||||||
|
msgid "Description: Unavailable"
|
||||||
|
msgstr "Opis: Nedostopno"
|
||||||
|
|
||||||
|
#: src/ng_config.c:101
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Engage Configuration"
|
||||||
|
msgstr "Itask·NG·nastavitve"
|
||||||
|
|
||||||
|
#: src/ng_config.c:171 src/ng_config.c:229
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Videz"
|
||||||
|
|
||||||
|
#: src/ng_config.c:172
|
||||||
|
msgid "Icon Size:"
|
||||||
|
msgstr "Velikost ikone"
|
||||||
|
|
||||||
|
#: src/ng_config.c:174
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f px"
|
||||||
|
msgstr "%1.0f·pik."
|
||||||
|
|
||||||
|
#: src/ng_config.c:179
|
||||||
|
msgid "Reflection Opacity:"
|
||||||
|
msgstr "Prozornost zrcaljenja"
|
||||||
|
|
||||||
|
#: src/ng_config.c:181
|
||||||
|
#, c-format
|
||||||
|
msgid "%1.0f"
|
||||||
|
msgstr "%1.0f"
|
||||||
|
|
||||||
|
#: src/ng_config.c:188
|
||||||
|
msgid "Background Opacity:"
|
||||||
|
msgstr "Prozornost ozadja"
|
||||||
|
|
||||||
|
#: src/ng_config.c:190
|
||||||
|
msgid "%1.0f \\%"
|
||||||
|
msgstr "%1.0f·\\%"
|
||||||
|
|
||||||
|
#: src/ng_config.c:198
|
||||||
|
msgid "Show Background Box"
|
||||||
|
msgstr "Prikaži škatlo ozadja"
|
||||||
|
|
||||||
|
#: src/ng_config.c:203
|
||||||
|
msgid "Orientation"
|
||||||
|
msgstr "Usmeritev"
|
||||||
|
|
||||||
|
#: src/ng_config.c:205
|
||||||
|
msgid "Bottom Edge"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:207
|
||||||
|
msgid "Top Edge"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:209
|
||||||
|
msgid "Left Edge"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:211
|
||||||
|
msgid "Right Edge"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/ng_config.c:232 src/ng_config.c:251
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Povečava"
|
||||||
|
|
||||||
|
#: src/ng_config.c:233
|
||||||
|
msgid "Factor:"
|
||||||
|
msgstr "Dejavnik:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:239
|
||||||
|
msgid "Range:"
|
||||||
|
msgstr "Domet:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:245
|
||||||
|
msgid "Duration:"
|
||||||
|
msgstr "Trajanje:"
|
||||||
|
|
||||||
|
#: src/ng_config.c:254 src/ng_config.c:282
|
||||||
|
msgid "Bar Items"
|
||||||
|
msgstr "Predmeti vrstice"
|
||||||
|
|
||||||
|
#: src/ng_config.c:262 src/ng_config.c:539 src/ng_config_instances.c:104
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Izbriši"
|
||||||
|
|
||||||
|
#: src/ng_config.c:264 src/ng_config.c:541 src/ng_config_instances.c:106
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr "Nastavi"
|
||||||
|
|
||||||
|
#: src/ng_config.c:266
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Gor"
|
||||||
|
|
||||||
|
#: src/ng_config.c:268
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Dol"
|
||||||
|
|
||||||
|
#: src/ng_config.c:273 src/ng_config.c:537 src/ng_config_instances.c:102
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Dodaj"
|
||||||
|
|
||||||
|
#: src/ng_config.c:275
|
||||||
|
msgid "Taskbar"
|
||||||
|
msgstr "Opravilna vrstica"
|
||||||
|
|
||||||
|
#: src/ng_config.c:277
|
||||||
|
msgid "Launcher"
|
||||||
|
msgstr "Zaganjalnik"
|
||||||
|
|
||||||
|
#: src/ng_config.c:279
|
||||||
|
msgid "Gadcon"
|
||||||
|
msgstr "Gadcon"
|
||||||
|
|
||||||
|
#: src/ng_config.c:285 src/ng_config.c:301
|
||||||
|
msgid "Auto Hide"
|
||||||
|
msgstr "Samodejno skrij"
|
||||||
|
|
||||||
|
#: src/ng_config.c:299
|
||||||
|
msgid "Show Bar when Urgent"
|
||||||
|
msgstr "Pokaži vrstico ko je nujno"
|
||||||
|
|
||||||
|
#: src/ng_config.c:307
|
||||||
|
msgid "Stacking"
|
||||||
|
msgstr "Skladanje"
|
||||||
|
|
||||||
|
#: src/ng_config.c:309
|
||||||
|
msgid "Above All"
|
||||||
|
msgstr "Nad vsem"
|
||||||
|
|
||||||
|
#: src/ng_config.c:311
|
||||||
|
msgid "Below Fullscreen"
|
||||||
|
msgstr "Pod celozaslonskim"
|
||||||
|
|
||||||
|
#: src/ng_config.c:315 src/ng_config.c:322
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Drugo"
|
||||||
|
|
||||||
|
#: src/ng_config.c:316
|
||||||
|
msgid "Ecomorph Features"
|
||||||
|
msgstr "Ecomorph funkcije"
|
||||||
|
|
||||||
|
#: src/ng_config.c:318
|
||||||
|
msgid "Show Icon Label"
|
||||||
|
msgstr "Prikaži oznako ikone"
|
||||||
|
|
||||||
|
#: src/ng_config.c:529
|
||||||
|
msgid "Launcher Settings"
|
||||||
|
msgstr "Nastavitve zaganjalnika"
|
||||||
|
|
||||||
|
#: src/ng_config.c:549
|
||||||
|
msgid "Taskbar Settings"
|
||||||
|
msgstr "Nastavitve opravilne vrstice"
|
||||||
|
|
||||||
|
#: src/ng_config.c:551
|
||||||
|
msgid "Dont Show Dialogs"
|
||||||
|
msgstr "Ne prikaži pojavnih oken"
|
||||||
|
|
||||||
|
#: src/ng_config.c:554
|
||||||
|
msgid "Advanced Window Menu"
|
||||||
|
msgstr "Napreden meni oken"
|
||||||
|
|
||||||
|
#: src/ng_config.c:557
|
||||||
|
msgid "Only Show Current Desk"
|
||||||
|
msgstr "Prikaži le trenutno namizje"
|
||||||
|
|
||||||
|
#: src/ng_config.c:560
|
||||||
|
msgid "Group Applications by Window Class"
|
||||||
|
msgstr "Uskupini programe po razredih okna"
|
||||||
|
|
||||||
|
#: src/ng_config.c:563
|
||||||
|
msgid "Append new Applications on the right Side"
|
||||||
|
msgstr "Dodaj nove programe na desni strani"
|
||||||
|
|
||||||
|
#: src/ng_config.c:569
|
||||||
|
msgid "Iconified Applications"
|
||||||
|
msgstr "Ikonizirani programi"
|
||||||
|
|
||||||
|
#: src/ng_config.c:644 src/ng_config.c:684
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Engage Bar Configuration"
|
||||||
|
msgstr "Nastavitve Itask·NG vrstice"
|
||||||
|
|
||||||
|
#: src/ng_config.c:789
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Create new source"
|
||||||
|
msgstr "Ustvari nov vir·Itask·NG"
|
||||||
|
|
||||||
|
#: src/ng_config.c:790
|
||||||
|
msgid "Enter a name for this new Application Launcher:"
|
||||||
|
msgstr "Vnesi ime za ta novi zaganjalnik programov"
|
||||||
|
|
||||||
|
#: src/ng_config.c:799
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"source?"
|
||||||
|
msgstr ""
|
||||||
|
"Zahtevali ste izbris·\"%s\".<br><br>Ali ste prepričani da hočete izbrisati "
|
||||||
|
"ta vir·ng ?"
|
||||||
|
|
||||||
|
#: src/ng_config.c:803
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Are you sure you want to delete this source?"
|
||||||
|
msgstr "Ali ste prepričani da hočete izbrisati ta primerek?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:64 src/ng_config_instances.c:94
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Engage Instances"
|
||||||
|
msgstr "Primerki Itask·NG"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:164
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Vrstica"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:338
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"You requested to delete \"%s\".<br><br>Are you sure you want to delete this "
|
||||||
|
"Instance?"
|
||||||
|
msgstr ""
|
||||||
|
"Zahtevali ste izbris·\"%s\".<br><br>Ali ste prepričani da hočete izbrisati "
|
||||||
|
"ta primerek?"
|
||||||
|
|
||||||
|
#: src/ng_config_instances.c:342
|
||||||
|
msgid "Are you sure you want to delete this Instance?"
|
||||||
|
msgstr "Ali ste prepričani da hočete izbrisati ta primerek?"
|
||||||
|
|
||||||
|
#~ msgid "Itask-NG"
|
||||||
|
#~ msgstr "Itask-NG"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG"
|
||||||
|
#~ msgstr "Itask·NG"
|
||||||
|
|
||||||
|
#~ msgid "Are you sure you want to delete this Itask NG source?"
|
||||||
|
#~ msgstr "Ali ste prepričani da hočete izbrisati ta vir·Itask·NG?"
|
||||||
|
|
||||||
|
#~ msgid "Itask NG - Instances"
|
||||||
|
#~ msgstr "Itask·NG·-·Primerki"
|
|
@ -0,0 +1,28 @@
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
|
INCLUDES = -I. \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-I$(includedir) \
|
||||||
|
@E_CFLAGS@
|
||||||
|
|
||||||
|
pkgdir = $(datadir)/$(MODULE_ARCH)
|
||||||
|
pkg_LTLIBRARIES = module.la
|
||||||
|
module_la_SOURCES = e_mod_main.c \
|
||||||
|
e_mod_main.h \
|
||||||
|
ng_config.c \
|
||||||
|
ng_item.c \
|
||||||
|
ng_launcher.c \
|
||||||
|
ng_taskbar.c \
|
||||||
|
ng_config_instances.c \
|
||||||
|
ng_box.c \
|
||||||
|
ng_border_menu.c \
|
||||||
|
ng_gadcon.c
|
||||||
|
|
||||||
|
module_la_LIBADD = @E_LIBS@
|
||||||
|
module_la_LDFLAGS = -module -avoid-version
|
||||||
|
module_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -rf *~
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,352 @@
|
||||||
|
#ifndef E_MOD_MAIN_H
|
||||||
|
#define E_MOD_MAIN_H
|
||||||
|
|
||||||
|
#include <e.h>
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
|
#ifdef ENABLE_NLS
|
||||||
|
# include <libintl.h>
|
||||||
|
# define D_(string) dgettext(PACKAGE, string)
|
||||||
|
#else
|
||||||
|
# define bindtextdomain(domain,dir)
|
||||||
|
# define bind_textdomain_codeset(domain,codeset)
|
||||||
|
# define D_(string) (string)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define MOD_CONFIG_FILE_EPOCH 0x0001
|
||||||
|
#define MOD_CONFIG_FILE_GENERATION 0x0001
|
||||||
|
#define MOD_CONFIG_FILE_VERSION \
|
||||||
|
((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
|
||||||
|
|
||||||
|
#define AUTOHIDE_NONE 0
|
||||||
|
#define AUTOHIDE_NORMAL 1
|
||||||
|
#define AUTOHIDE_FULLSCREEN 2
|
||||||
|
#define AUTOHIDE_OVERLAP 3
|
||||||
|
|
||||||
|
typedef struct _Config Config;
|
||||||
|
typedef struct _Config_Item Config_Item;
|
||||||
|
typedef struct _Config_Box Config_Box;
|
||||||
|
typedef struct _Config_Gadcon Config_Gadcon;
|
||||||
|
typedef struct _Ng Ng;
|
||||||
|
typedef struct _Ngi_Item Ngi_Item;
|
||||||
|
typedef struct _Ngi_Item_Launcher Ngi_Item_Launcher;
|
||||||
|
typedef struct _Ngi_Item_Taskbar Ngi_Item_Taskbar;
|
||||||
|
typedef struct _Ngi_Item_Gadcon Ngi_Item_Gadcon;
|
||||||
|
typedef struct _Ngi_Win Ngi_Win;
|
||||||
|
typedef struct _Ngi_Box Ngi_Box;
|
||||||
|
|
||||||
|
struct _Config
|
||||||
|
{
|
||||||
|
int version;
|
||||||
|
|
||||||
|
E_Module *module;
|
||||||
|
Eina_List *instances;
|
||||||
|
E_Menu *menu;
|
||||||
|
|
||||||
|
Eina_List *items;
|
||||||
|
char *theme_path;
|
||||||
|
|
||||||
|
int use_composite;
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
Eina_List *handlers;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Config_Item
|
||||||
|
{
|
||||||
|
Ng *ng;
|
||||||
|
|
||||||
|
int show_label;
|
||||||
|
int show_background;
|
||||||
|
int container;
|
||||||
|
int zone;
|
||||||
|
int orient;
|
||||||
|
int size;
|
||||||
|
int window_size;
|
||||||
|
int autohide;
|
||||||
|
int autohide_show_urgent;
|
||||||
|
int hide_below_windows;
|
||||||
|
float zoomfactor;
|
||||||
|
float zoom_range;
|
||||||
|
float hide_timeout;
|
||||||
|
float zoom_duration;
|
||||||
|
int alpha;
|
||||||
|
int mouse_over_anim;
|
||||||
|
|
||||||
|
enum { above_all, below_fullscreen } stacking;
|
||||||
|
|
||||||
|
int lock_deskswitch;
|
||||||
|
int ecomorph_features;
|
||||||
|
|
||||||
|
Eina_List *boxes;
|
||||||
|
|
||||||
|
E_Config_Dialog *config_dialog;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Config_Box
|
||||||
|
{
|
||||||
|
enum { launcher, taskbar, gadcon } type;
|
||||||
|
|
||||||
|
int taskbar_skip_dialogs;
|
||||||
|
int taskbar_adv_bordermenu;
|
||||||
|
int taskbar_show_iconified;
|
||||||
|
int taskbar_show_desktop;
|
||||||
|
int taskbar_append_right;
|
||||||
|
int taskbar_group_apps;
|
||||||
|
|
||||||
|
const char *launcher_app_dir;
|
||||||
|
int launcher_lock_dnd;
|
||||||
|
|
||||||
|
Eina_List *gadcon_items;
|
||||||
|
|
||||||
|
Ngi_Box *box;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Config_Gadcon
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct _Ngi_Win
|
||||||
|
{
|
||||||
|
Ng *ng;
|
||||||
|
E_Popup *popup;
|
||||||
|
Ecore_X_Window input;
|
||||||
|
Ecore_X_Rectangle rect;
|
||||||
|
E_Win *fake_iwin;
|
||||||
|
E_Object *drop_win;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct _Ng
|
||||||
|
{
|
||||||
|
Ngi_Win *win;
|
||||||
|
Evas *evas;
|
||||||
|
Eina_List *boxes;
|
||||||
|
|
||||||
|
Config_Item *cfg;
|
||||||
|
|
||||||
|
E_Zone *zone;
|
||||||
|
E_Shelf *es;
|
||||||
|
|
||||||
|
Evas_Object *o_bg;
|
||||||
|
Evas_Object *o_frame;
|
||||||
|
Evas_Object *o_label;
|
||||||
|
|
||||||
|
Evas_Object *clip;
|
||||||
|
Evas_Object *bg_clip;
|
||||||
|
|
||||||
|
unsigned char changed : 1;
|
||||||
|
|
||||||
|
int pos; /* mouse position */
|
||||||
|
double size; /* current icon size */
|
||||||
|
|
||||||
|
enum { unzoomed, zooming, zoomed, unzooming } state;
|
||||||
|
enum { hidden, hiding, showing, show } hide_state;
|
||||||
|
int hide;
|
||||||
|
|
||||||
|
double zoom;
|
||||||
|
double start_zoom;
|
||||||
|
double start_hide;
|
||||||
|
|
||||||
|
Eina_List *items_show;
|
||||||
|
Eina_List *items_remove;
|
||||||
|
|
||||||
|
Ngi_Item *item_active;
|
||||||
|
|
||||||
|
int hide_step;
|
||||||
|
|
||||||
|
int w, h, start;
|
||||||
|
int horizontal;
|
||||||
|
|
||||||
|
int mouse_in;
|
||||||
|
int show_bar;
|
||||||
|
|
||||||
|
int dnd;
|
||||||
|
Ngi_Item *item_drag;
|
||||||
|
|
||||||
|
Eina_List *handlers;
|
||||||
|
|
||||||
|
Ecore_Animator *animator;
|
||||||
|
Ecore_Timer *mouse_in_timer;
|
||||||
|
Ecore_Timer *menu_wait_timer;
|
||||||
|
Ecore_Timer *effect_timer;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int clip_separator;
|
||||||
|
int separator_width;
|
||||||
|
int item_spacing;
|
||||||
|
int edge_offset;
|
||||||
|
int bg_offset;
|
||||||
|
int reflection_offset;
|
||||||
|
double keep_overlay_pos;
|
||||||
|
double fade_duration;
|
||||||
|
} opt;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Ngi_Item
|
||||||
|
{
|
||||||
|
Ngi_Box *box;
|
||||||
|
|
||||||
|
Evas_Object *obj;
|
||||||
|
Evas_Object *over;
|
||||||
|
|
||||||
|
const char *label;
|
||||||
|
|
||||||
|
unsigned int mouse_down;
|
||||||
|
int pos;
|
||||||
|
double displace;
|
||||||
|
double scale;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char start : 1;
|
||||||
|
unsigned char dnd : 1;
|
||||||
|
int x, y;
|
||||||
|
int dx, dy;
|
||||||
|
} drag;
|
||||||
|
|
||||||
|
void (*cb_free) (Ngi_Item *it);
|
||||||
|
void (*cb_mouse_down) (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
void (*cb_mouse_up) (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
void (*cb_mouse_in) (Ngi_Item *it);
|
||||||
|
void (*cb_mouse_out) (Ngi_Item *it);
|
||||||
|
void (*cb_drag_start) (Ngi_Item *it);
|
||||||
|
|
||||||
|
double start_time;
|
||||||
|
|
||||||
|
int delete_me;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Ngi_Item_Launcher
|
||||||
|
{
|
||||||
|
Ngi_Item base;
|
||||||
|
|
||||||
|
Evas_Object *o_icon;
|
||||||
|
Evas_Object *o_proxy;
|
||||||
|
|
||||||
|
Efreet_Desktop *app;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct _Ngi_Item_Taskbar
|
||||||
|
{
|
||||||
|
Ngi_Item base;
|
||||||
|
|
||||||
|
Evas_Object *o_icon;
|
||||||
|
Evas_Object *o_proxy;
|
||||||
|
|
||||||
|
E_Border *border;
|
||||||
|
|
||||||
|
unsigned int border_was_fullscreen;
|
||||||
|
unsigned int urgent;
|
||||||
|
const char *class; /* store icccm.class...*/
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Ngi_Item_Gadcon
|
||||||
|
{
|
||||||
|
Ngi_Item base;
|
||||||
|
|
||||||
|
Evas_Object *o_icon;
|
||||||
|
Evas_Object *o_proxy;
|
||||||
|
|
||||||
|
E_Gadcon *gadcon;
|
||||||
|
Config_Gadcon *cfg_gadcon;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct _Ngi_Box
|
||||||
|
{
|
||||||
|
Ng *ng;
|
||||||
|
Config_Box *cfg;
|
||||||
|
Eina_List *handlers;
|
||||||
|
Eina_List *items;
|
||||||
|
Ecore_Timer *dnd_timer;
|
||||||
|
E_Drop_Handler *drop_handler;
|
||||||
|
Ngi_Item *item_drop;
|
||||||
|
Evas_Object *separator;
|
||||||
|
Evas_Coord pos, w;
|
||||||
|
|
||||||
|
E_Order *apps;
|
||||||
|
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
};
|
||||||
|
|
||||||
|
EAPI extern E_Module_Api e_modapi;
|
||||||
|
EAPI void *e_modapi_init (E_Module *m);
|
||||||
|
EAPI int e_modapi_shutdown (E_Module *m);
|
||||||
|
EAPI int e_modapi_save (E_Module *m);
|
||||||
|
EAPI int e_modapi_about (E_Module *m);
|
||||||
|
EAPI int e_modapi_config (E_Module *m);
|
||||||
|
|
||||||
|
EAPI E_Config_Dialog *ngi_instances_config(E_Container *con, const char *params);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Ng *ngi_new (Config_Item *ci);
|
||||||
|
void ngi_free (Ng *ng);
|
||||||
|
void ngi_reposition (Ng *ng);
|
||||||
|
void ngi_input_extents_calc (Ng *ng);
|
||||||
|
void ngi_freeze (Ng *ng);
|
||||||
|
void ngi_thaw (Ng *ng);
|
||||||
|
void ngi_animate (Ng *ng);
|
||||||
|
void ngi_mouse_in (Ng *ng);
|
||||||
|
void ngi_mouse_out (Ng *ng);
|
||||||
|
Ngi_Item * ngi_item_at_position_get (Ng *ng);
|
||||||
|
void ngi_bar_lock (Ng *ng, int lock);
|
||||||
|
Config_Item *ngi_bar_config_new (int container_num, int zone_num);
|
||||||
|
|
||||||
|
void ngi_win_show (Ngi_Win *win);
|
||||||
|
void ngi_win_hide (Ngi_Win *win);
|
||||||
|
void ngi_win_position_calc (Ngi_Win *win);
|
||||||
|
|
||||||
|
Ngi_Box *ngi_box_new (Ng *ng);
|
||||||
|
void ngi_box_free (Ngi_Box *box);
|
||||||
|
|
||||||
|
void ngi_configure_module (Config_Item *ci);
|
||||||
|
void ngi_configure_box (Ngi_Box *box);
|
||||||
|
|
||||||
|
void ngi_item_init_defaults (Ngi_Item *it);
|
||||||
|
void ngi_item_label_set(Ngi_Item *it, const char *label);
|
||||||
|
|
||||||
|
|
||||||
|
void ngi_item_free (Ngi_Item *it);
|
||||||
|
void ngi_item_show (Ngi_Item *it, int instant);
|
||||||
|
void ngi_item_remove (Ngi_Item *it);
|
||||||
|
void ngi_item_del_icon (Ngi_Item *it);
|
||||||
|
void ngi_item_mouse_down (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
void ngi_item_mouse_up (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
void ngi_item_mouse_in (Ngi_Item *it);
|
||||||
|
void ngi_item_mouse_out (Ngi_Item *it);
|
||||||
|
void ngi_item_signal_emit (Ngi_Item *it, char *sig);
|
||||||
|
void ngi_item_activate (Ng *ng);
|
||||||
|
|
||||||
|
void ngi_launcher_new (Ng *ng, Config_Box *cfg_box);
|
||||||
|
void ngi_launcher_remove (Ngi_Box *box);
|
||||||
|
|
||||||
|
void ngi_taskbar_init (void);
|
||||||
|
void ngi_taskbar_new (Ng *ng, Config_Box *cfg_box);
|
||||||
|
void ngi_taskbar_remove (Ngi_Box *box);
|
||||||
|
|
||||||
|
void ngi_gadcon_init (void);
|
||||||
|
void ngi_gadcon_shutdown (void);
|
||||||
|
void ngi_gadcon_new (Ng *ng, Config_Box *cfg_box);
|
||||||
|
void ngi_gadcon_remove (Ngi_Box *box);
|
||||||
|
void ngi_gadcon_config (Ngi_Box *box);
|
||||||
|
|
||||||
|
void ngi_border_menu_show (Ngi_Box *box, E_Border *bd,
|
||||||
|
Evas_Coord x, Evas_Coord y,
|
||||||
|
int dir, Ecore_X_Time timestamp);
|
||||||
|
|
||||||
|
Eina_Bool ngi_object_theme_set(Evas_Object *obj, const char *part);
|
||||||
|
|
||||||
|
extern Config *ngi_config;
|
||||||
|
extern E_Config_DD *ngi_conf_edd;
|
||||||
|
extern E_Config_DD *ngi_conf_item_edd;
|
||||||
|
extern E_Config_DD *ngi_conf_box_edd;
|
||||||
|
extern E_Config_DD *ngi_conf_gadcon_edd;
|
||||||
|
#endif
|
|
@ -0,0 +1,176 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
static void _ng_border_cb_border_menu_end(void *data, E_Menu *m);
|
||||||
|
static void _ng_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
|
static void _ng_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
|
static void _ng_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
|
static void _ng_border_menu_cb_unmaximize(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
|
static void _ng_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_border_menu_show(Ngi_Box *box, E_Border *bd, Evas_Coord x, Evas_Coord y, int dir, Ecore_X_Time timestamp)
|
||||||
|
{
|
||||||
|
E_Menu *m;
|
||||||
|
E_Menu_Item *mi;
|
||||||
|
Ng *ng = box->ng;
|
||||||
|
|
||||||
|
if (bd->border_menu)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m = e_menu_new();
|
||||||
|
e_menu_category_set(m,"border");
|
||||||
|
e_menu_category_data_set("border",bd);
|
||||||
|
e_object_data_set(E_OBJECT(m), bd);
|
||||||
|
bd->border_menu = m;
|
||||||
|
e_menu_post_deactivate_callback_set(m, _ng_border_cb_border_menu_end, ng); /* FIXME */
|
||||||
|
|
||||||
|
if ((!bd->lock_user_fullscreen) && (!bd->shaded))
|
||||||
|
{
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Fullscreen"));
|
||||||
|
e_menu_item_check_set(mi, 1);
|
||||||
|
e_menu_item_toggle_set(mi, bd->fullscreen);
|
||||||
|
e_menu_item_callback_set(mi, _ng_border_menu_cb_fullscreen, bd);
|
||||||
|
e_menu_item_icon_edje_set(mi,
|
||||||
|
e_theme_edje_file_get("base/theme/borders",
|
||||||
|
"e/widgets/border/default/fullscreen"),
|
||||||
|
"e/widgets/border/default/fullscreen");
|
||||||
|
}
|
||||||
|
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_separator_set(mi, 1);
|
||||||
|
if (!bd->lock_close)
|
||||||
|
{
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Close"));
|
||||||
|
e_menu_item_callback_set(mi, _ng_border_menu_cb_close, bd);
|
||||||
|
e_menu_item_icon_edje_set(mi,
|
||||||
|
e_theme_edje_file_get("base/theme/borders",
|
||||||
|
"e/widgets/border/default/close"),
|
||||||
|
"e/widgets/border/default/close");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bd->internal)
|
||||||
|
{
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_separator_set(mi, 1);
|
||||||
|
|
||||||
|
if (!(((bd->client.icccm.min_w == bd->client.icccm.max_w) &&
|
||||||
|
(bd->client.icccm.min_h == bd->client.icccm.max_h)) ||
|
||||||
|
(bd->lock_user_maximize)))
|
||||||
|
{
|
||||||
|
if ((!bd->lock_user_maximize) && (!bd->shaded) &&
|
||||||
|
((bd->layer == 50) || (bd->layer == 100) || (bd->layer == 150)))
|
||||||
|
{
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Maximized"));
|
||||||
|
e_menu_item_check_set(mi, 1);
|
||||||
|
e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH);
|
||||||
|
if((bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH)
|
||||||
|
e_menu_item_callback_set(mi, _ng_border_menu_cb_unmaximize, bd);
|
||||||
|
else
|
||||||
|
e_menu_item_callback_set(mi, _ng_border_menu_cb_maximize, bd);
|
||||||
|
|
||||||
|
e_menu_item_icon_edje_set(mi,
|
||||||
|
e_theme_edje_file_get("base/theme/borders",
|
||||||
|
"e/widgets/border/default/maximize"),
|
||||||
|
"e/widgets/border/default/maximize");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bd->lock_user_iconify)
|
||||||
|
{
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
if(bd->iconic)
|
||||||
|
e_menu_item_label_set(mi, D_("Uniconify"));
|
||||||
|
else
|
||||||
|
e_menu_item_label_set(mi, D_("Iconify"));
|
||||||
|
|
||||||
|
e_menu_item_callback_set(mi, _ng_border_menu_cb_iconify, bd);
|
||||||
|
e_menu_item_icon_edje_set(mi,
|
||||||
|
e_theme_edje_file_get("base/theme/borders",
|
||||||
|
"e/widgets/border/default/minimize"),
|
||||||
|
"e/widgets/border/default/minimize");
|
||||||
|
}
|
||||||
|
|
||||||
|
e_menu_activate_mouse(m, ng->zone, ng->zone->x + x, ng->zone->y + y, 1, 1,
|
||||||
|
dir, timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ng_border_cb_border_menu_end(void *data, E_Menu *m)
|
||||||
|
{
|
||||||
|
E_Border *bd;
|
||||||
|
|
||||||
|
bd = (E_Border *)e_object_data_get(E_OBJECT(m));
|
||||||
|
if (bd)
|
||||||
|
{
|
||||||
|
/* If the border exists, delete all associated menus */
|
||||||
|
e_int_border_menu_del(bd);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Just delete this menu */
|
||||||
|
e_object_del(E_OBJECT(m));
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (ng) ngi_thaw(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ng_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)data;
|
||||||
|
if (!bd->lock_close)
|
||||||
|
e_border_act_close_begin(bd);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ng_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)data;
|
||||||
|
if (!bd->lock_user_iconify)
|
||||||
|
{
|
||||||
|
if (bd->iconic)
|
||||||
|
e_border_uniconify(bd);
|
||||||
|
else
|
||||||
|
e_border_iconify(bd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ng_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)data;
|
||||||
|
if (!bd->lock_user_maximize)
|
||||||
|
e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) |
|
||||||
|
E_MAXIMIZE_BOTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ng_border_menu_cb_unmaximize(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)data;
|
||||||
|
e_border_unmaximize(bd, E_MAXIMIZE_BOTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ng_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)data;
|
||||||
|
int toggle;
|
||||||
|
|
||||||
|
if (!bd)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!bd->lock_user_fullscreen)
|
||||||
|
{
|
||||||
|
toggle = e_menu_item_toggle_get(mi);
|
||||||
|
if (toggle)
|
||||||
|
e_border_fullscreen(bd, (E_Fullscreen)e_config->fullscreen_policy);
|
||||||
|
else
|
||||||
|
e_border_unfullscreen(bd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
Ngi_Box *
|
||||||
|
ngi_box_new(Ng *ng)
|
||||||
|
{
|
||||||
|
Ngi_Box *box;
|
||||||
|
|
||||||
|
box = E_NEW(Ngi_Box, 1);
|
||||||
|
box->ng = ng;
|
||||||
|
box->pos = 0;
|
||||||
|
box->apps = NULL;
|
||||||
|
box->drop_handler = NULL;
|
||||||
|
box->item_drop = NULL;
|
||||||
|
box->dnd_timer = NULL;
|
||||||
|
box->items = NULL;
|
||||||
|
|
||||||
|
box->separator = edje_object_add(ng->evas);
|
||||||
|
|
||||||
|
switch(box->ng->cfg->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
ngi_object_theme_set(box->separator, "e/modules/engage/separator_bottom");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
ngi_object_theme_set(box->separator, "e/modules/engage/separator_top");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
ngi_object_theme_set(box->separator, "e/modules/engage/separator_left");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
ngi_object_theme_set(box->separator, "e/modules/engage/separator_right");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *clip_to = edje_object_data_get(box->separator, "clip_to_background");
|
||||||
|
|
||||||
|
if (clip_to && atoi(clip_to))
|
||||||
|
evas_object_clip_set(box->separator, ng->bg_clip);
|
||||||
|
|
||||||
|
evas_object_clip_set(box->separator, ng->bg_clip);
|
||||||
|
|
||||||
|
ng->boxes = eina_list_append(ng->boxes, box);
|
||||||
|
|
||||||
|
return box;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_box_free(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
box->ng->boxes = eina_list_remove(box->ng->boxes, box);
|
||||||
|
|
||||||
|
while(box->items)
|
||||||
|
ngi_item_free(box->items->data);
|
||||||
|
|
||||||
|
if (box->separator)
|
||||||
|
evas_object_del(box->separator);
|
||||||
|
|
||||||
|
E_FREE(box);
|
||||||
|
}
|
|
@ -0,0 +1,932 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
struct _E_Config_Dialog_Data
|
||||||
|
{
|
||||||
|
int show_label;
|
||||||
|
int show_background;
|
||||||
|
int orient;
|
||||||
|
int size;
|
||||||
|
double zoomfactor;
|
||||||
|
int autohide;
|
||||||
|
int autohide_show_urgent;
|
||||||
|
int lock_deskswitch;
|
||||||
|
int ecomorph_features;
|
||||||
|
|
||||||
|
double hide_timeout;
|
||||||
|
double zoom_duration;
|
||||||
|
double zoom_range;
|
||||||
|
|
||||||
|
int hide_below_windows;
|
||||||
|
int hide_mode;
|
||||||
|
int alpha;
|
||||||
|
int stacking;
|
||||||
|
int mouse_over_anim;
|
||||||
|
|
||||||
|
Eina_List *boxes;
|
||||||
|
|
||||||
|
Evas_Object *ilist;
|
||||||
|
|
||||||
|
Evas_Object *tlist_box;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
Config_Item *cfg;
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
|
||||||
|
const char *app_dir;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void * _create_data(E_Config_Dialog *cfd);
|
||||||
|
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
|
static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
|
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
|
|
||||||
|
static void _cb_add(void *data, void *data2);
|
||||||
|
static void _cb_del(void *data, void *data2);
|
||||||
|
static void _cb_config(void *data, void *data2);
|
||||||
|
static void _cb_entry_ok(void *data, char *text);
|
||||||
|
static void _cb_confirm_dialog_yes(void *data);
|
||||||
|
static void _load_ilist(E_Config_Dialog_Data *cfdata);
|
||||||
|
static void _cb_slider_change(void *data, Evas_Object *obj);
|
||||||
|
|
||||||
|
static void _cb_box_add_launcher(void *data, void *data2);
|
||||||
|
static void _cb_box_add_taskbar(void *data, void *data2);
|
||||||
|
static void _cb_box_add_gadcon(void *data, void *data2);
|
||||||
|
static void _cb_box_del(void *data, void *data2);
|
||||||
|
static void _cb_box_config(void *data, void *data2);
|
||||||
|
static void _cb_box_up(void *data, void *data2);
|
||||||
|
static void _cb_box_down(void *data, void *data2);
|
||||||
|
static void _load_box_tlist(E_Config_Dialog_Data *cfdata);
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_configure_module(Config_Item *ci)
|
||||||
|
{
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
E_Config_Dialog_View *v;
|
||||||
|
Eina_List *l;
|
||||||
|
char buf[4096];
|
||||||
|
char path[128];
|
||||||
|
Config_Item *ci2;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
if (!ci->ng)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (ci->config_dialog)
|
||||||
|
return;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(ngi_config->items, l, ci2)
|
||||||
|
if (ci == ci2)
|
||||||
|
break;
|
||||||
|
else i++;
|
||||||
|
|
||||||
|
snprintf(path, sizeof(path), "extensions/engage::%d", i);
|
||||||
|
if (e_config_dialog_find("E", path))
|
||||||
|
return;
|
||||||
|
|
||||||
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
|
||||||
|
/* Dialog Methods */
|
||||||
|
v->create_cfdata = _create_data;
|
||||||
|
v->free_cfdata = _free_data;
|
||||||
|
v->basic.apply_cfdata = _basic_apply_data;
|
||||||
|
v->basic.create_widgets = _basic_create_widgets;
|
||||||
|
v->advanced.apply_cfdata = NULL;
|
||||||
|
v->advanced.create_widgets = NULL;
|
||||||
|
|
||||||
|
/* Create The Dialog */
|
||||||
|
snprintf(buf, sizeof(buf), "%s/e-module-ng.edj", e_module_dir_get(ngi_config->module));
|
||||||
|
cfd = e_config_dialog_new(e_container_current_get(e_manager_current_get()),
|
||||||
|
D_("Engage Configuration"),
|
||||||
|
"E", path, buf, 0, v, ci);
|
||||||
|
|
||||||
|
ci->config_dialog = cfd;
|
||||||
|
ngi_bar_lock(ci->ng, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
#define C(_name) cfdata->_name = ci->_name;
|
||||||
|
C(show_background);
|
||||||
|
C(show_label);
|
||||||
|
C(orient);
|
||||||
|
C(size);
|
||||||
|
C(zoomfactor);
|
||||||
|
C(autohide);
|
||||||
|
C(autohide_show_urgent);
|
||||||
|
C(hide_below_windows);
|
||||||
|
C(hide_timeout);
|
||||||
|
C(zoom_duration);
|
||||||
|
C(zoom_range);
|
||||||
|
C(alpha);
|
||||||
|
C(stacking);
|
||||||
|
C(mouse_over_anim);
|
||||||
|
C(lock_deskswitch);
|
||||||
|
C(ecomorph_features);
|
||||||
|
#undef C
|
||||||
|
|
||||||
|
cfdata->cfg = ci;
|
||||||
|
cfdata->cfd = ci->config_dialog;
|
||||||
|
|
||||||
|
cfdata->ilist = NULL;
|
||||||
|
cfdata->tlist_box = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
_create_data(E_Config_Dialog *cfd)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
Config_Item *ci;
|
||||||
|
|
||||||
|
ci = (Config_Item *)cfd->data;
|
||||||
|
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||||
|
_fill_data(ci, cfdata);
|
||||||
|
return cfdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
cfdata->cfg->config_dialog = NULL;
|
||||||
|
|
||||||
|
if (cfdata->cfg->ng)
|
||||||
|
ngi_bar_lock(cfdata->cfg->ng, 0);
|
||||||
|
|
||||||
|
free(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
E_Radio_Group *rg;
|
||||||
|
Evas_Object *ol, *of, *ob, *ot, *otb;
|
||||||
|
|
||||||
|
otb = e_widget_toolbook_add(evas, 0, 0);
|
||||||
|
|
||||||
|
/* _______ first column __________________________________________________*/
|
||||||
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
|
of = e_widget_framelist_add(evas, D_("Appearance"), 0);
|
||||||
|
ob = e_widget_label_add (evas, D_("Icon Size:"));
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_slider_add (evas, 1, 0, D_("%1.0f px"), 16.0, 128,
|
||||||
|
1.0, 0, NULL, &(cfdata->size), 100);
|
||||||
|
e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata);
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
|
||||||
|
/* ob = e_widget_label_add (evas, D_("Reflection Opacity:"));
|
||||||
|
* e_widget_framelist_object_append (of, ob);
|
||||||
|
* ob = e_widget_slider_add (evas, 1, 0, D_("%1.0f"), 0, 255,
|
||||||
|
* 1.0, 0, NULL, &(cfdata->rflxn_alpha), 100);
|
||||||
|
* e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata);
|
||||||
|
* e_widget_framelist_object_append (of, ob); */
|
||||||
|
|
||||||
|
if (ngi_config->use_composite)
|
||||||
|
{
|
||||||
|
ob = e_widget_label_add (evas, D_("Background Opacity:"));
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_slider_add (evas, 1, 0, D_("%1.0f \%"), 0, 255,
|
||||||
|
1.0, 0, NULL, &(cfdata->alpha), 100);
|
||||||
|
e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata);
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cfdata->alpha = 255;
|
||||||
|
|
||||||
|
ob = e_widget_check_add(evas, D_("Show Background Box"), &(cfdata->show_background));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
ob = e_widget_check_add(evas, D_("Show Mouse-Over Animation"), &(cfdata->mouse_over_anim));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
e_widget_list_object_append(ol, of, 1, 0, 0.0);
|
||||||
|
|
||||||
|
of = e_widget_framelist_add(evas, D_("Orientation"), 0);
|
||||||
|
rg = e_widget_radio_group_new(&(cfdata->orient));
|
||||||
|
ob = e_widget_radio_add(evas, D_("Bottom Edge"), E_GADCON_ORIENT_BOTTOM, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, D_("Top Edge"), E_GADCON_ORIENT_TOP, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, D_("Left Edge"), E_GADCON_ORIENT_LEFT, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, D_("Right Edge"), E_GADCON_ORIENT_RIGHT, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
/* of = e_widget_frametable_add(evas, D_("Orientation"), 1);
|
||||||
|
* ob = e_widget_radio_icon_add(evas, NULL, "enlightenment/shelf_position_left",
|
||||||
|
* 24, 24, E_GADCON_ORIENT_LEFT, rg);
|
||||||
|
* e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
* ob = e_widget_radio_icon_add(evas, NULL, "enlightenment/shelf_position_right",
|
||||||
|
* 24, 24, E_GADCON_ORIENT_RIGHT, rg);
|
||||||
|
* e_widget_frametable_object_append(of, ob, 2, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
* ob = e_widget_radio_icon_add(evas, NULL, "enlightenment/shelf_position_top",
|
||||||
|
* 24, 24, E_GADCON_ORIENT_TOP, rg);
|
||||||
|
* e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 0);
|
||||||
|
* ob = e_widget_radio_icon_add(evas, NULL, "enlightenment/shelf_position_bottom",
|
||||||
|
* 24, 24, E_GADCON_ORIENT_BOTTOM, rg);
|
||||||
|
* e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 0); */
|
||||||
|
|
||||||
|
e_widget_list_object_append(ol, of, 1, 0, 0.0);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, D_("Appearance"), ol, 1, 1, 1, 1, 0.5, 0.5);
|
||||||
|
|
||||||
|
|
||||||
|
of = e_widget_framelist_add(evas, D_("Zoom"), 0);
|
||||||
|
ob = e_widget_label_add (evas, D_("Factor:"));
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_slider_add (evas, 1, 0, "%1.2f", 1.0, 5.0,
|
||||||
|
0.01, 0, &(cfdata->zoomfactor), NULL, 100);
|
||||||
|
e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata);
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_label_add (evas, D_("Range:"));
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_slider_add (evas, 1, 0, "%1.2f", 1.0, 4.0,
|
||||||
|
0.01, 0, &(cfdata->zoom_range), NULL, 100);
|
||||||
|
e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata);
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_label_add (evas, D_("Duration:"));
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
ob = e_widget_slider_add (evas, 1, 0, "%1.2f", 0.1, 0.5,
|
||||||
|
0.01, 0, &(cfdata->zoom_duration), NULL, 100);
|
||||||
|
e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata);
|
||||||
|
e_widget_framelist_object_append (of, ob);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, D_("Zoom"), of, 1, 0, 1, 0, 0.5, 0.0);
|
||||||
|
|
||||||
|
|
||||||
|
of = e_widget_frametable_add(evas, D_("Bar Items"), 0);
|
||||||
|
ol = e_widget_ilist_add(evas, 0, 0, NULL);
|
||||||
|
cfdata->ilist = ol;
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
e_widget_size_min_set(ol, 300, 80);
|
||||||
|
e_widget_frametable_object_append(of, ol, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
ot = e_widget_table_add(evas, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Delete"), "widget/del", _cb_box_del, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Configure"), "widget/config", _cb_box_config, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Up"), "widget/up_arrow", _cb_box_up, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 1, 0, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Down"), "widget/down_arrow", _cb_box_down, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 1, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
e_widget_frametable_object_append(of, ot, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
|
||||||
|
ot = e_widget_table_add(evas, 0);
|
||||||
|
ob = e_widget_label_add(evas, D_("Add"));
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Taskbar"), "widget/add", _cb_box_add_taskbar, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Launcher"), "widget/add", _cb_box_add_launcher, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 1, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Gadcon"), "widget/add", _cb_box_add_gadcon, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 2, 1, 1, 1, 1, 1, 0);
|
||||||
|
e_widget_frametable_object_append(of, ot, 0, 2, 1, 1, 1, 1, 1, 0);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, D_("Bar Items"), of, 1, 1, 1, 1, 0.5, 0.5);
|
||||||
|
|
||||||
|
|
||||||
|
of = e_widget_framelist_add(evas, D_("Auto Hide"), 0);
|
||||||
|
cfdata->hide_mode = cfdata->autohide;
|
||||||
|
|
||||||
|
rg = e_widget_radio_group_new(&cfdata->hide_mode);
|
||||||
|
ob = e_widget_radio_add(evas, "None",
|
||||||
|
AUTOHIDE_NONE, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, "Autohide",
|
||||||
|
AUTOHIDE_NORMAL, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, "Hide when Window overlaps",
|
||||||
|
AUTOHIDE_OVERLAP, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, "Hide on Fullscreen",
|
||||||
|
AUTOHIDE_FULLSCREEN, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
ob = e_widget_check_add(evas, D_("Show Bar when Urgent"), &(cfdata->autohide_show_urgent));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, D_("Auto Hide"), of, 1, 0, 1, 0, 0.5, 0.0);
|
||||||
|
|
||||||
|
|
||||||
|
/* e_widget_toolbook_page_append(otb, NULL, D_("Orientation"), of, 1, 1, 1, 0, 0.5, 0.0); */
|
||||||
|
|
||||||
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
|
of = e_widget_framelist_add(evas, D_("Stacking"), 0);
|
||||||
|
rg = e_widget_radio_group_new(&cfdata->stacking);
|
||||||
|
ob = e_widget_radio_add(evas, D_("Above All"), 0, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, D_("Below Fullscreen"), 1, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
e_widget_list_object_append(ol, of, 1, 0, 0.0);
|
||||||
|
|
||||||
|
of = e_widget_framelist_add(evas, D_("Other"), 0);
|
||||||
|
ob = e_widget_check_add(evas, D_("Ecomorph Features"), &(cfdata->ecomorph_features));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_check_add(evas, D_("Show Icon Label"), &(cfdata->show_label));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
e_widget_list_object_append(ol, of, 1, 0, 0.0);
|
||||||
|
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, D_("Other"), ol, 1, 0, 1, 0, 0.5, 0.0);
|
||||||
|
|
||||||
|
e_widget_toolbook_page_show(otb, 0);
|
||||||
|
|
||||||
|
|
||||||
|
return otb;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Config_Item *ci;
|
||||||
|
Ng *ng;
|
||||||
|
|
||||||
|
ci = cfd->data;
|
||||||
|
ng = ci->ng;
|
||||||
|
|
||||||
|
ci->size = cfdata->size;
|
||||||
|
ci->zoomfactor = cfdata->zoomfactor;
|
||||||
|
ci->hide_timeout = cfdata->hide_timeout;
|
||||||
|
ci->zoom_duration = cfdata->zoom_duration;
|
||||||
|
ci->zoom_range = cfdata->zoom_range;
|
||||||
|
ci->alpha = cfdata->alpha;
|
||||||
|
ci->mouse_over_anim = cfdata->mouse_over_anim;
|
||||||
|
ci->autohide = cfdata->hide_mode;
|
||||||
|
ci->lock_deskswitch = cfdata->lock_deskswitch;
|
||||||
|
ci->ecomorph_features = cfdata->ecomorph_features;
|
||||||
|
ci->show_background = cfdata->show_background;
|
||||||
|
ci->show_label = cfdata->show_label;
|
||||||
|
ci->stacking = cfdata->stacking;
|
||||||
|
ci->autohide_show_urgent = cfdata->autohide_show_urgent;
|
||||||
|
|
||||||
|
if (ci->show_label)
|
||||||
|
evas_object_show(ng->o_label);
|
||||||
|
else
|
||||||
|
evas_object_hide(ng->o_label);
|
||||||
|
|
||||||
|
if (ci->show_background)
|
||||||
|
evas_object_show(ng->bg_clip);
|
||||||
|
else
|
||||||
|
evas_object_hide(ng->bg_clip);
|
||||||
|
|
||||||
|
if (ci->orient != cfdata->orient)
|
||||||
|
{
|
||||||
|
ci->orient = cfdata->orient;
|
||||||
|
ngi_free(ng);
|
||||||
|
ngi_new(ci);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ci->autohide == AUTOHIDE_NORMAL)
|
||||||
|
ng->hide = EINA_TRUE;
|
||||||
|
if (ng->es)
|
||||||
|
{
|
||||||
|
ng->es->cfg->autohide = ng->cfg->autohide;
|
||||||
|
ng->es->cfg->overlap = (ng->cfg->autohide == AUTOHIDE_OVERLAP);
|
||||||
|
}
|
||||||
|
ng->hide_step = 0;
|
||||||
|
ng->hide_state = show;
|
||||||
|
ngi_reposition(ng);
|
||||||
|
ngi_input_extents_calc(ng);
|
||||||
|
ngi_thaw(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
e_config_domain_save("module.ng", ngi_conf_edd, ngi_config);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_update_boxes(Ng *ng)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Ngi_Box *box;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
|
||||||
|
while(ng->boxes)
|
||||||
|
{
|
||||||
|
box = ng->boxes->data;
|
||||||
|
if (box->cfg->type == taskbar)
|
||||||
|
ngi_taskbar_remove(box);
|
||||||
|
else if (box->cfg->type == launcher)
|
||||||
|
ngi_launcher_remove(box);
|
||||||
|
else if (box->cfg->type == gadcon)
|
||||||
|
ngi_gadcon_remove(box);
|
||||||
|
}
|
||||||
|
|
||||||
|
ngi_freeze(ng);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH (ng->cfg->boxes, l, cfg_box)
|
||||||
|
{
|
||||||
|
switch (cfg_box->type)
|
||||||
|
{
|
||||||
|
case launcher:
|
||||||
|
ngi_launcher_new(ng, cfg_box);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case taskbar:
|
||||||
|
ngi_taskbar_new(ng, cfg_box);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case gadcon:
|
||||||
|
ngi_gadcon_new(ng, cfg_box);
|
||||||
|
break;
|
||||||
|
} /* switch */
|
||||||
|
}
|
||||||
|
|
||||||
|
ngi_thaw(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
/***************************************************************************************/
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_add_taskbar(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
|
||||||
|
cfg_box = E_NEW(Config_Box, 1);
|
||||||
|
cfg_box->type = taskbar;
|
||||||
|
cfg_box->taskbar_adv_bordermenu = 0;
|
||||||
|
cfg_box->taskbar_skip_dialogs = 0;
|
||||||
|
cfg_box->taskbar_skip_dialogs = 1;
|
||||||
|
cfg_box->taskbar_show_iconified = 1;
|
||||||
|
cfg_box->taskbar_show_desktop = 0;
|
||||||
|
|
||||||
|
cfdata->cfg->boxes = eina_list_append(cfdata->cfg->boxes, cfg_box);
|
||||||
|
|
||||||
|
_update_boxes(cfdata->cfg->ng);
|
||||||
|
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_add_launcher(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
|
||||||
|
cfg_box = E_NEW(Config_Box, 1);
|
||||||
|
cfg_box->type = launcher;
|
||||||
|
cfg_box->launcher_app_dir = eina_stringshare_add("default");
|
||||||
|
cfdata->cfg->boxes = eina_list_append(cfdata->cfg->boxes, cfg_box);
|
||||||
|
|
||||||
|
_update_boxes(cfdata->cfg->ng);
|
||||||
|
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_add_gadcon(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
|
||||||
|
cfg_box = E_NEW(Config_Box, 1);
|
||||||
|
cfg_box->type = gadcon;
|
||||||
|
//cfg_box->gadcon_items = eina_stringshare_add("ng_gadcon-tmp");
|
||||||
|
cfdata->cfg->boxes = eina_list_append(cfdata->cfg->boxes, cfg_box);
|
||||||
|
|
||||||
|
_update_boxes(cfdata->cfg->ng);
|
||||||
|
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_del(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
int selected = e_widget_ilist_selected_get(cfdata->ilist);
|
||||||
|
|
||||||
|
if (selected < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Eina_List *boxes = cfdata->cfg->boxes;
|
||||||
|
|
||||||
|
Config_Box *cfg_box = eina_list_nth(boxes, selected);
|
||||||
|
|
||||||
|
if (!cfg_box)
|
||||||
|
return;
|
||||||
|
|
||||||
|
cfdata->cfg->boxes = eina_list_remove(boxes, cfg_box);
|
||||||
|
|
||||||
|
switch(cfg_box->type)
|
||||||
|
{
|
||||||
|
case launcher:
|
||||||
|
ngi_launcher_remove(cfg_box->box);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case taskbar:
|
||||||
|
ngi_taskbar_remove(cfg_box->box);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case gadcon:
|
||||||
|
ngi_gadcon_remove(cfg_box->box);
|
||||||
|
} /* switch */
|
||||||
|
|
||||||
|
ngi_thaw(cfdata->cfg->ng);
|
||||||
|
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_basic_create_box_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Evas_Object *o, *ol, *of, *ob, *ot;
|
||||||
|
E_Radio_Group *rg;
|
||||||
|
|
||||||
|
o = e_widget_list_add(evas, 0, 0);
|
||||||
|
if (cfdata->cfg_box->type == launcher)
|
||||||
|
{
|
||||||
|
cfdata->app_dir = eina_stringshare_add(cfdata->cfg_box->launcher_app_dir);
|
||||||
|
|
||||||
|
of = e_widget_frametable_add(evas, D_("Launcher Settings"), 0);
|
||||||
|
ol = e_widget_ilist_add(evas, 0, 0, &cfdata->app_dir);
|
||||||
|
cfdata->tlist_box = ol;
|
||||||
|
_load_ilist(cfdata);
|
||||||
|
e_widget_size_min_set(ol, 140, 140);
|
||||||
|
e_widget_frametable_object_append(of, ol, 0, 0, 1, 2, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
ot = e_widget_table_add(evas, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Add"), "widget/add", _cb_add, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Delete"), "widget/del", _cb_del, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Configure"), "widget/config", _cb_config, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 2, 1, 1, 1, 1, 1, 0);
|
||||||
|
|
||||||
|
e_widget_frametable_object_append(of, ot, 2, 0, 1, 1, 1, 1, 1, 0);
|
||||||
|
e_widget_list_object_append(o, of, 0, 1, 0.5);
|
||||||
|
}
|
||||||
|
else if (cfdata->cfg_box->type == taskbar)
|
||||||
|
{
|
||||||
|
of = e_widget_framelist_add(evas, D_("Taskbar Settings"), 0);
|
||||||
|
|
||||||
|
ob = e_widget_check_add(evas, D_("Dont Show Dialogs"),
|
||||||
|
&(cfdata->cfg_box->taskbar_skip_dialogs));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_check_add(evas, D_("Advanced Window Menu"),
|
||||||
|
&(cfdata->cfg_box->taskbar_adv_bordermenu));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_check_add(evas, D_("Only Show Current Desk"),
|
||||||
|
&(cfdata->cfg_box->taskbar_show_desktop));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_check_add(evas, D_("Group Applications by Window Class"),
|
||||||
|
&(cfdata->cfg_box->taskbar_group_apps));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_check_add(evas, D_("Append new Applications on the right Side"),
|
||||||
|
&(cfdata->cfg_box->taskbar_append_right));
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||||
|
|
||||||
|
of = e_widget_framelist_add(evas, D_("Iconified Applications"), 0);
|
||||||
|
rg = e_widget_radio_group_new(&cfdata->cfg_box->taskbar_show_iconified);
|
||||||
|
ob = e_widget_radio_add(evas, "Not Shown", 0, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, "Show", 1, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, "Only Iconified", 2, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_basic_apply_box_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
eina_stringshare_replace(&cfdata->cfg_box->launcher_app_dir, cfdata->app_dir);
|
||||||
|
|
||||||
|
_update_boxes(cfdata->cfg->ng);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* urgh */
|
||||||
|
static void *
|
||||||
|
_create_box_data(E_Config_Dialog *cfd)
|
||||||
|
{
|
||||||
|
return cfd->data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_free_box_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
eina_stringshare_del(cfdata->app_dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_config(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
E_Config_Dialog_View *v;
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
int selected = e_widget_ilist_selected_get(cfdata->ilist);
|
||||||
|
|
||||||
|
if (selected < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Eina_List *boxes = cfdata->cfg->boxes;
|
||||||
|
|
||||||
|
cfdata->cfg_box = eina_list_nth(boxes, selected);
|
||||||
|
|
||||||
|
if (!cfdata->cfg_box)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (cfdata->cfg_box->type == gadcon)
|
||||||
|
{
|
||||||
|
ngi_gadcon_config(cfdata->cfg_box->box);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
|
||||||
|
v->create_cfdata = _create_box_data;
|
||||||
|
v->free_cfdata = _free_box_data;
|
||||||
|
v->basic.apply_cfdata = _basic_apply_box_data;
|
||||||
|
v->basic.create_widgets = _basic_create_box_widgets;
|
||||||
|
v->advanced.apply_cfdata = NULL;
|
||||||
|
v->advanced.create_widgets = NULL;
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/e-module-ng.edj", e_module_dir_get(ngi_config->module));
|
||||||
|
cfd = e_config_dialog_new(e_container_current_get(e_manager_current_get()),
|
||||||
|
D_("Engage Bar Configuration"),
|
||||||
|
"e", "_e_mod_ngi_config_dialog_add_box", buf, 0, v, cfdata);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
_create_data2(E_Config_Dialog *cfd)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
Config_Item *ci;
|
||||||
|
|
||||||
|
Ngi_Box *box = cfd->data;
|
||||||
|
|
||||||
|
ci = (Config_Item *)box->ng->cfg;
|
||||||
|
|
||||||
|
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||||
|
_fill_data(ci, cfdata);
|
||||||
|
cfdata->cfg_box = box->cfg;
|
||||||
|
|
||||||
|
return cfdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_configure_box(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
E_Config_Dialog_View *v;
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
|
||||||
|
v->create_cfdata = _create_data2;
|
||||||
|
v->free_cfdata = _free_data;
|
||||||
|
v->basic.apply_cfdata = _basic_apply_box_data;
|
||||||
|
v->basic.create_widgets = _basic_create_box_widgets;
|
||||||
|
v->advanced.apply_cfdata = NULL;
|
||||||
|
v->advanced.create_widgets = NULL;
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/e-module-ng.edj", e_module_dir_get(ngi_config->module));
|
||||||
|
cfd = e_config_dialog_new(e_container_current_get(e_manager_current_get()),
|
||||||
|
D_("Engage Bar Configuration"),
|
||||||
|
"e", "_e_mod_ngi_config_dialog_add_box", buf, 0, v, box);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_up(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
int selected = e_widget_ilist_selected_get(cfdata->ilist);
|
||||||
|
|
||||||
|
if (selected < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Eina_List *boxes = cfdata->cfg->boxes;
|
||||||
|
|
||||||
|
Eina_List *l = eina_list_nth_list(boxes, selected);
|
||||||
|
|
||||||
|
if (!l || !l->prev)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Config_Box *cfg_box = l->data;
|
||||||
|
|
||||||
|
boxes = eina_list_remove(boxes, cfg_box);
|
||||||
|
cfdata->cfg->boxes = eina_list_prepend_relative(boxes, cfg_box, l->prev->data);
|
||||||
|
|
||||||
|
_update_boxes(cfdata->cfg->ng);
|
||||||
|
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
|
||||||
|
e_widget_ilist_selected_set(cfdata->ilist, selected - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_box_down(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
int selected = e_widget_ilist_selected_get(cfdata->ilist);
|
||||||
|
|
||||||
|
if (selected < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Eina_List *boxes = cfdata->cfg->boxes;
|
||||||
|
|
||||||
|
Eina_List *l = eina_list_nth_list(boxes, selected);
|
||||||
|
|
||||||
|
if (!l || !l->next)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Config_Box *cfg_box = l->data;
|
||||||
|
|
||||||
|
boxes = eina_list_remove(boxes, cfg_box);
|
||||||
|
cfdata->cfg->boxes = eina_list_append_relative(boxes, cfg_box, l->next->data);
|
||||||
|
|
||||||
|
_update_boxes(cfdata->cfg->ng);
|
||||||
|
|
||||||
|
_load_box_tlist(cfdata);
|
||||||
|
|
||||||
|
e_widget_ilist_selected_set(cfdata->ilist, selected + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_load_box_tlist(E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
e_widget_ilist_clear(cfdata->ilist);
|
||||||
|
|
||||||
|
int cnt = 1;
|
||||||
|
Eina_List *l;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
char *blub;
|
||||||
|
|
||||||
|
for(l = cfdata->cfg->boxes; l; l = l->next)
|
||||||
|
{
|
||||||
|
cfg_box = l->data;
|
||||||
|
switch (cfg_box->type)
|
||||||
|
{
|
||||||
|
case launcher:
|
||||||
|
snprintf(buf, sizeof(buf), "%i Launcher", cnt);
|
||||||
|
blub = strdup(buf);
|
||||||
|
|
||||||
|
e_widget_ilist_append(cfdata->ilist, NULL, blub, NULL, cfg_box, blub);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case taskbar:
|
||||||
|
snprintf(buf, sizeof(buf), "%i Taskbar", cnt);
|
||||||
|
blub = strdup(buf);
|
||||||
|
e_widget_ilist_append(cfdata->ilist, NULL, blub, NULL, cfg_box, blub);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case gadcon:
|
||||||
|
snprintf(buf, sizeof(buf), "%i Gadcon", cnt);
|
||||||
|
blub = strdup(buf);
|
||||||
|
e_widget_ilist_append(cfdata->ilist, NULL, blub, NULL, cfg_box, blub);
|
||||||
|
break;
|
||||||
|
} /* switch */
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
e_widget_ilist_go(cfdata->ilist);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_add(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
e_entry_dialog_show(D_("Create new source"), "enlightenment/e",
|
||||||
|
D_("Enter a name for this new Application Launcher:"), "", NULL, NULL,
|
||||||
|
_cb_entry_ok, NULL, cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_del(void *data, void *data2)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
snprintf(buf, sizeof(buf), D_("You requested to delete \"%s\".<br><br>"
|
||||||
|
"Are you sure you want to delete this source?"),
|
||||||
|
cfdata->app_dir);
|
||||||
|
|
||||||
|
e_confirm_dialog_show(D_("Are you sure you want to delete this source?"),
|
||||||
|
"enlightenment/exit", buf, NULL, NULL,
|
||||||
|
_cb_confirm_dialog_yes, NULL, cfdata, NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_config(void *data, void *data2)
|
||||||
|
{
|
||||||
|
char path[4096];
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
snprintf(path, sizeof(path), "%s/.e/e/applications/bar/%s/.order",
|
||||||
|
e_user_homedir_get(), cfdata->app_dir);
|
||||||
|
|
||||||
|
e_configure_registry_call("internal/ibar_other",
|
||||||
|
e_container_current_get(e_manager_current_get()),
|
||||||
|
path);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_entry_ok(void *data, char *text)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
char tmp[4096];
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s",
|
||||||
|
e_user_homedir_get(), text);
|
||||||
|
|
||||||
|
if (!ecore_file_exists(buf))
|
||||||
|
{
|
||||||
|
ecore_file_mkdir(buf);
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s/.order",
|
||||||
|
e_user_homedir_get(), text);
|
||||||
|
|
||||||
|
f = fopen(buf, "w");
|
||||||
|
if (f)
|
||||||
|
{
|
||||||
|
// Populate this .order file with some defaults
|
||||||
|
snprintf(tmp, sizeof(tmp), "xterm.desktop\n"
|
||||||
|
"firefox.desktop\n"
|
||||||
|
"gimp.desktop\n" "xmms.desktop\n");
|
||||||
|
fwrite(tmp, sizeof(char), strlen(tmp), f);
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_load_ilist((E_Config_Dialog_Data *)data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_confirm_dialog_yes(void *data)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s", e_user_homedir_get(), cfdata->app_dir);
|
||||||
|
|
||||||
|
if (ecore_file_is_dir(buf))
|
||||||
|
ecore_file_recursive_rm(buf);
|
||||||
|
|
||||||
|
_load_ilist(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_load_ilist(E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Eina_List *dirs, *l;
|
||||||
|
char buf[4096], *file;
|
||||||
|
int selnum = -1;
|
||||||
|
const char *home;
|
||||||
|
int i = 0;
|
||||||
|
e_widget_ilist_clear(cfdata->tlist_box);
|
||||||
|
|
||||||
|
home = e_user_homedir_get();
|
||||||
|
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar", home);
|
||||||
|
dirs = ecore_file_ls(buf);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(dirs, l, file)
|
||||||
|
{
|
||||||
|
if (file[0] == '.')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s", home, file);
|
||||||
|
if (ecore_file_is_dir(buf))
|
||||||
|
{
|
||||||
|
e_widget_ilist_append(cfdata->tlist_box, NULL, file, NULL, NULL, file);
|
||||||
|
if ((cfdata->app_dir) && (!strcmp(cfdata->app_dir, file)))
|
||||||
|
selnum = i;
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e_widget_ilist_go(cfdata->tlist_box);
|
||||||
|
if (selnum >= 0)
|
||||||
|
e_widget_ilist_selected_set(cfdata->tlist_box, selnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_slider_change(void *data, Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
Ng *ng = cfdata->cfg->ng;
|
||||||
|
int a;
|
||||||
|
|
||||||
|
ng->cfg->size = (int)cfdata->size;
|
||||||
|
ng->size = ng->cfg->size;
|
||||||
|
|
||||||
|
ng->cfg->zoomfactor = cfdata->zoomfactor;
|
||||||
|
ng->cfg->zoom_duration = cfdata->zoom_duration;
|
||||||
|
ng->cfg->zoom_range = cfdata->zoom_range;
|
||||||
|
ng->cfg->hide_timeout = cfdata->hide_timeout;
|
||||||
|
ng->cfg->alpha = cfdata->alpha;
|
||||||
|
|
||||||
|
a = ng->cfg->alpha;
|
||||||
|
evas_object_color_set(ng->bg_clip, a, a, a, a);
|
||||||
|
|
||||||
|
ngi_win_position_calc(ng->win);
|
||||||
|
ngi_thaw(ng);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,321 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
static void * _create_data(E_Config_Dialog *cfd);
|
||||||
|
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
|
static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
|
static void _ilist_fill(E_Config_Dialog_Data *cfdata);
|
||||||
|
static void _ilist_cb_selected(void *data);
|
||||||
|
static void _cb_add(void *data, void *data2);
|
||||||
|
static void _cb_delete(void *data, void *data2);
|
||||||
|
static void _cb_dialog_yes(void *data);
|
||||||
|
static void _cb_dialog_destroy(void *data);
|
||||||
|
static void _cb_config(void *data, void *data2);
|
||||||
|
|
||||||
|
struct _E_Config_Dialog_Data
|
||||||
|
{
|
||||||
|
Evas_Object *o_list;
|
||||||
|
Evas_Object *o_delete;
|
||||||
|
Evas_Object *o_config;
|
||||||
|
|
||||||
|
const char *cur_ng;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _Ngi_Del_Confirm_Data Ngi_Del_Confirm_Data;
|
||||||
|
struct _Ngi_Del_Confirm_Data
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
Config_Item *cfg;
|
||||||
|
};
|
||||||
|
|
||||||
|
EAPI E_Config_Dialog *
|
||||||
|
ngi_instances_config(E_Container *con, const char *params)
|
||||||
|
{
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
E_Config_Dialog_View *v;
|
||||||
|
|
||||||
|
if (params)
|
||||||
|
{
|
||||||
|
int i = atoi(params);
|
||||||
|
Config_Item *ci = eina_list_nth(ngi_config->items, i);
|
||||||
|
if (ci)
|
||||||
|
{
|
||||||
|
ngi_configure_module(ci);
|
||||||
|
return ci->config_dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ngi_config->cfd)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (e_config_dialog_find("E", "extensions/engage"))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
if (!v)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
v->create_cfdata = _create_data;
|
||||||
|
v->free_cfdata = _free_data;
|
||||||
|
v->basic.create_widgets = _basic_create_widgets;
|
||||||
|
|
||||||
|
cfd = e_config_dialog_new(con,
|
||||||
|
D_("Engage Instances"),
|
||||||
|
"E", "extensions/engage",
|
||||||
|
"enlightenment/module/ng-instances", 0, v, NULL);
|
||||||
|
ngi_config->cfd = cfd;
|
||||||
|
return cfd;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
_create_data(E_Config_Dialog *cfd)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
|
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||||
|
return cfdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
ngi_config->cfd = NULL;
|
||||||
|
E_FREE(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Evas_Object *o, *of, *ot, *ob;
|
||||||
|
|
||||||
|
o = e_widget_list_add(evas, 0, 1);
|
||||||
|
|
||||||
|
of = e_widget_framelist_add(evas, D_("Engage Instances"), 0);
|
||||||
|
cfdata->o_list = e_widget_ilist_add(evas, 24, 24, &(cfdata->cur_ng));
|
||||||
|
e_widget_ilist_selector_set(cfdata->o_list, 1);
|
||||||
|
e_widget_size_min_set(cfdata->o_list, 200, 250);
|
||||||
|
e_widget_framelist_object_append(of, cfdata->o_list);
|
||||||
|
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||||
|
|
||||||
|
ot = e_widget_table_add(evas, 0);
|
||||||
|
ob = e_widget_button_add(evas, D_("Add"), "widget/add", _cb_add, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 1, 0, 0);
|
||||||
|
cfdata->o_delete = e_widget_button_add(evas, D_("Delete"), "widget/del", _cb_delete, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, cfdata->o_delete, 0, 1, 1, 1, 1, 1, 0, 0);
|
||||||
|
cfdata->o_config = e_widget_button_add(evas, D_("Configure"), "widget/config", _cb_config, cfdata, NULL);
|
||||||
|
e_widget_table_object_append(ot, cfdata->o_config, 0, 2, 1, 1, 1, 1, 0, 0);
|
||||||
|
|
||||||
|
e_widget_disabled_set(cfdata->o_delete, 1);
|
||||||
|
e_widget_disabled_set(cfdata->o_config, 1);
|
||||||
|
|
||||||
|
e_widget_list_object_append(o, ot, 1, 0, 0.0);
|
||||||
|
|
||||||
|
_ilist_fill(cfdata);
|
||||||
|
|
||||||
|
e_dialog_resizable_set(cfd->dia, 1);
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* private functions */
|
||||||
|
static void
|
||||||
|
_ilist_fill(E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Evas *evas;
|
||||||
|
Eina_List *l;
|
||||||
|
int n = -1;
|
||||||
|
char buf[256];
|
||||||
|
Ng *ng;
|
||||||
|
Config_Item *ci;
|
||||||
|
Evas_Object *ob;
|
||||||
|
const char *label;
|
||||||
|
|
||||||
|
if (!cfdata)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!cfdata->o_list)
|
||||||
|
return;
|
||||||
|
|
||||||
|
evas = evas_object_evas_get(cfdata->o_list);
|
||||||
|
|
||||||
|
if (e_widget_ilist_count(cfdata->o_list) > 0)
|
||||||
|
n = e_widget_ilist_selected_get(cfdata->o_list);
|
||||||
|
|
||||||
|
evas_event_freeze(evas);
|
||||||
|
edje_freeze();
|
||||||
|
e_widget_ilist_freeze(cfdata->o_list);
|
||||||
|
|
||||||
|
e_widget_ilist_clear(cfdata->o_list);
|
||||||
|
e_widget_ilist_go(cfdata->o_list);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH (ngi_config->items, l, ci)
|
||||||
|
{
|
||||||
|
if (!ci)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ng = ci->ng;
|
||||||
|
|
||||||
|
/* FIXME*/
|
||||||
|
/*if(ci->launcher)
|
||||||
|
label = D_("Launcher NG");
|
||||||
|
else if(ci->taskbar)
|
||||||
|
label = D_("Taskbar NG");
|
||||||
|
*/
|
||||||
|
label = D_("Bar");
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s / Zone %d", label, ci->zone);
|
||||||
|
|
||||||
|
ob = edje_object_add(evas);
|
||||||
|
switch (ci->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
e_util_edje_icon_set(ob, "enlightenment/shelf_position_left");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
e_util_edje_icon_set(ob, "enlightenment/shelf_position_right");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
e_util_edje_icon_set(ob, "enlightenment/shelf_position_top");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
e_util_edje_icon_set(ob, "enlightenment/shelf_position_bottom");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
e_util_edje_icon_set(ob, "enlightenment/e");
|
||||||
|
break;
|
||||||
|
} /* switch */
|
||||||
|
e_widget_ilist_append(cfdata->o_list, ob, buf, _ilist_cb_selected, cfdata, buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
e_widget_size_min_set(cfdata->o_list, 155, 250);
|
||||||
|
e_widget_ilist_go(cfdata->o_list);
|
||||||
|
|
||||||
|
e_widget_ilist_thaw(cfdata->o_list);
|
||||||
|
edje_thaw();
|
||||||
|
evas_event_thaw(evas);
|
||||||
|
|
||||||
|
if (n > -1)
|
||||||
|
{
|
||||||
|
e_widget_disabled_set(cfdata->o_delete, 0);
|
||||||
|
e_widget_disabled_set(cfdata->o_config, 0);
|
||||||
|
e_widget_ilist_selected_set(cfdata->o_list, n);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e_widget_disabled_set(cfdata->o_delete, 1);
|
||||||
|
e_widget_disabled_set(cfdata->o_config, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ilist_cb_selected(void *data)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
if (!cfdata)
|
||||||
|
return;
|
||||||
|
|
||||||
|
e_widget_disabled_set(cfdata->o_delete, 0);
|
||||||
|
e_widget_disabled_set(cfdata->o_config, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_add(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
Config_Item *cfg;
|
||||||
|
Config_Box *cfg_box;
|
||||||
|
E_Container *con;
|
||||||
|
E_Zone *zone;
|
||||||
|
|
||||||
|
if (!cfdata)
|
||||||
|
return;
|
||||||
|
|
||||||
|
con = e_container_current_get(e_manager_current_get());
|
||||||
|
zone = e_zone_current_get(con);
|
||||||
|
|
||||||
|
cfg = ngi_bar_config_new(con->num, zone->num);
|
||||||
|
|
||||||
|
ngi_new(cfg);
|
||||||
|
|
||||||
|
_ilist_fill(cfdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_delete(void *data, void *data2)
|
||||||
|
{
|
||||||
|
Ngi_Del_Confirm_Data *d;
|
||||||
|
char buf[4096];
|
||||||
|
Config_Item *ci;
|
||||||
|
|
||||||
|
d = E_NEW(Ngi_Del_Confirm_Data, 1);
|
||||||
|
if (!d)
|
||||||
|
return;
|
||||||
|
|
||||||
|
d->cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
if (!d->cfdata)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!d->cfdata->cur_ng)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ci = (Config_Item *)eina_list_nth(ngi_config->items, e_widget_ilist_selected_get(d->cfdata->o_list));
|
||||||
|
if (!ci)
|
||||||
|
return;
|
||||||
|
|
||||||
|
d->cfg = ci;
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), D_("You requested to delete \"%s\".<br><br>"
|
||||||
|
"Are you sure you want to delete this Instance?"),
|
||||||
|
d->cfdata->cur_ng);
|
||||||
|
|
||||||
|
e_confirm_dialog_show(D_("Are you sure you want to delete this Instance?"),
|
||||||
|
"enlightenment/exit", buf, NULL, NULL, _cb_dialog_yes, NULL, d, NULL,
|
||||||
|
_cb_dialog_destroy, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_dialog_yes(void *data)
|
||||||
|
{
|
||||||
|
Ngi_Del_Confirm_Data *d = (Ngi_Del_Confirm_Data *)data;
|
||||||
|
if (!data)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(d->cfg->ng)
|
||||||
|
ngi_free(d->cfg->ng);
|
||||||
|
|
||||||
|
ngi_config->items = eina_list_remove(ngi_config->items, d->cfg);
|
||||||
|
|
||||||
|
e_config_domain_save("module.ng", ngi_conf_edd, ngi_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_dialog_destroy(void *data)
|
||||||
|
{
|
||||||
|
Ngi_Del_Confirm_Data *d = (Ngi_Del_Confirm_Data *)data;
|
||||||
|
_ilist_fill(d->cfdata);
|
||||||
|
E_FREE(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_config(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = (E_Config_Dialog_Data *)data;
|
||||||
|
Config_Item *ci;
|
||||||
|
int item = 0;
|
||||||
|
|
||||||
|
if (!cfdata)
|
||||||
|
return;
|
||||||
|
|
||||||
|
item = e_widget_ilist_selected_get(cfdata->o_list);
|
||||||
|
|
||||||
|
ci = (Config_Item *)eina_list_nth(ngi_config->items, item);
|
||||||
|
if (!ci)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ngi_configure_module(ci);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,687 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
static void _ngi_gadcon_cb_gadcon_min_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h);
|
||||||
|
static void _ngi_gadcon_cb_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h);
|
||||||
|
static Evas_Object * _ngi_gadcon_cb_gadcon_frame_request(void *data, E_Gadcon_Client *gcc, const char *style);
|
||||||
|
static void * _create_data(E_Config_Dialog *cfd);
|
||||||
|
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
|
static Evas_Object * _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
|
static Eina_Bool _cb_mod_update(void *data, int type, void *event);
|
||||||
|
static void _avail_list_cb_change(void *data, Evas_Object *obj);
|
||||||
|
static void _sel_list_cb_change(void *data, Evas_Object *obj);
|
||||||
|
static void _load_avail_gadgets(void *data);
|
||||||
|
static void _load_sel_gadgets(void *data);
|
||||||
|
static void _cb_add(void *data, void *data2);
|
||||||
|
static void _cb_del(void *data, void *data2);
|
||||||
|
static void _set_description(void *data, const char *name);
|
||||||
|
|
||||||
|
static Eina_Hash *ngi_gadcon_hash = NULL;
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_gadcon_init(void)
|
||||||
|
{
|
||||||
|
Eina_List *l, *ll, *lll;
|
||||||
|
Config_Item *ci;
|
||||||
|
Config_Box *cb;
|
||||||
|
Config_Gadcon *cg;
|
||||||
|
|
||||||
|
ngi_gadcon_hash = eina_hash_string_superfast_new(NULL);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH (ngi_config->items, l, ci)
|
||||||
|
{
|
||||||
|
EINA_LIST_FOREACH (ci->boxes, ll, cb)
|
||||||
|
{
|
||||||
|
if (cb->type != gadcon)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(cb->gadcon_items, lll, cg)
|
||||||
|
eina_hash_add(ngi_gadcon_hash, cg->name, cg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_gadcon_shutdown(void)
|
||||||
|
{
|
||||||
|
if (ngi_gadcon_hash)
|
||||||
|
eina_hash_free(ngi_gadcon_hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
_ngi_gadcon_name_new()
|
||||||
|
{
|
||||||
|
char name[256];
|
||||||
|
int cnt = 0;
|
||||||
|
|
||||||
|
while(cnt < 1000)
|
||||||
|
{
|
||||||
|
snprintf(name, 256, "ng_gadcon-%d", cnt++);
|
||||||
|
|
||||||
|
if (!eina_hash_find(ngi_gadcon_hash, name))
|
||||||
|
return strdup(name);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_item_cb_mouse_down(Ngi_Item *it, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_item_cb_mouse_up(Ngi_Item *it, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_item_cb_mouse_in(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_item_cb_mouse_out(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_item_cb_free(Ngi_Item *item)
|
||||||
|
{
|
||||||
|
Ngi_Item_Gadcon *it = (Ngi_Item_Gadcon *) item;
|
||||||
|
|
||||||
|
if (it->gadcon)
|
||||||
|
e_object_del(E_OBJECT(it->gadcon));
|
||||||
|
|
||||||
|
if (it->o_icon)
|
||||||
|
evas_object_del(it->o_icon);
|
||||||
|
|
||||||
|
if (it->o_proxy)
|
||||||
|
evas_object_del(it->o_proxy);
|
||||||
|
|
||||||
|
E_FREE(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_locked_set(void *data, int lock)
|
||||||
|
{
|
||||||
|
Ng *ng = data;
|
||||||
|
|
||||||
|
ngi_bar_lock(ng, lock);
|
||||||
|
ngi_animate(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Ngi_Item_Gadcon *
|
||||||
|
_ngi_gadcon_item_new(Ngi_Box *box, Config_Gadcon *cg, Ngi_Item *after)
|
||||||
|
{
|
||||||
|
Ngi_Item_Gadcon *it;
|
||||||
|
Evas_Object *o;
|
||||||
|
Ng *ng = box->ng;
|
||||||
|
|
||||||
|
it = E_NEW(Ngi_Item_Gadcon, 1);
|
||||||
|
it->base.box = box;
|
||||||
|
it->cfg_gadcon = cg;
|
||||||
|
|
||||||
|
ngi_item_init_defaults((Ngi_Item*)it);
|
||||||
|
|
||||||
|
it->base.cb_mouse_in = _ngi_gadcon_item_cb_mouse_in;
|
||||||
|
it->base.cb_mouse_out = _ngi_gadcon_item_cb_mouse_out;
|
||||||
|
it->base.cb_mouse_down = _ngi_gadcon_item_cb_mouse_down;
|
||||||
|
it->base.cb_mouse_up = _ngi_gadcon_item_cb_mouse_up;
|
||||||
|
it->base.cb_drag_start = NULL; //_ngi_gadcon_item_cb_drag_start;
|
||||||
|
it->base.cb_free = _ngi_gadcon_item_cb_free;
|
||||||
|
|
||||||
|
it->gadcon = e_gadcon_swallowed_new(cg->name, 0, it->base.obj, "e.swallow.content");
|
||||||
|
it->gadcon->instant_edit = 0;
|
||||||
|
/* edje_extern_object_min_size_set(it->gadcon->o_container, ng->size, ng->size); */
|
||||||
|
|
||||||
|
e_gadcon_min_size_request_callback_set(it->gadcon, _ngi_gadcon_cb_gadcon_min_size_request, it);
|
||||||
|
e_gadcon_size_request_callback_set(it->gadcon, _ngi_gadcon_cb_gadcon_size_request, it);
|
||||||
|
e_gadcon_frame_request_callback_set(it->gadcon, _ngi_gadcon_cb_gadcon_frame_request, it);
|
||||||
|
e_gadcon_orient(it->gadcon, ng->cfg->orient);
|
||||||
|
e_gadcon_zone_set(it->gadcon, box->ng->zone);
|
||||||
|
e_gadcon_ecore_evas_set(it->gadcon, box->ng->win->popup->ecore_evas);
|
||||||
|
e_gadcon_util_lock_func_set(it->gadcon, _ngi_gadcon_locked_set, ng);
|
||||||
|
|
||||||
|
if (after)
|
||||||
|
box->items = eina_list_prepend_relative(box->items, it, after);
|
||||||
|
else
|
||||||
|
box->items = eina_list_append(box->items, it);
|
||||||
|
|
||||||
|
e_gadcon_populate(it->gadcon);
|
||||||
|
|
||||||
|
/* if(it->gadcon->clients)
|
||||||
|
* {
|
||||||
|
* char buf[256];
|
||||||
|
* E_Gadcon_Client *gcc = it->gadcon->clients->data;
|
||||||
|
* snprintf(buf, 256, "%s-%d", gcc->name, gcc->id);
|
||||||
|
* it->label = e_datastore_get(buf);
|
||||||
|
* } */
|
||||||
|
|
||||||
|
evas_object_show(it->gadcon->o_container);
|
||||||
|
|
||||||
|
it->o_proxy = e_icon_add(ng->evas);
|
||||||
|
o = evas_object_image_add(ng->evas);
|
||||||
|
evas_object_image_source_set(o, it->base.obj);
|
||||||
|
evas_object_resize(o, 128, 128);
|
||||||
|
evas_object_image_fill_set(o, 0,0,128,128);
|
||||||
|
e_icon_object_set(it->o_proxy, o);
|
||||||
|
|
||||||
|
edje_object_part_swallow(it->base.over, "e.swallow.content", it->o_proxy);
|
||||||
|
evas_object_pass_events_set(it->o_proxy, 1);
|
||||||
|
evas_object_show(it->o_proxy);
|
||||||
|
|
||||||
|
ngi_item_show((Ngi_Item*)it, 0);
|
||||||
|
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_gadcon_new(Ng *ng, Config_Box *cfg)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Config_Gadcon *cg;
|
||||||
|
Ngi_Box *box = ngi_box_new(ng);
|
||||||
|
|
||||||
|
if(!box) return;
|
||||||
|
|
||||||
|
box->cfg = cfg;
|
||||||
|
cfg->box = box;
|
||||||
|
|
||||||
|
if(!cfg->gadcon_items)
|
||||||
|
return;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH (cfg->gadcon_items, l, cg)
|
||||||
|
_ngi_gadcon_item_new(box, cg, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_gadcon_remove(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
ngi_box_free(box);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_cb_gadcon_min_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h)
|
||||||
|
{
|
||||||
|
Ngi_Item *it;
|
||||||
|
|
||||||
|
it = data;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ngi_gadcon_cb_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h)
|
||||||
|
{
|
||||||
|
Ngi_Item *it;
|
||||||
|
|
||||||
|
it = data;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_ngi_gadcon_cb_gadcon_frame_request(void *data, E_Gadcon_Client *gcc, const char *style)
|
||||||
|
{
|
||||||
|
/* FIXME: provide an inset look edje thing */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct _E_Config_Dialog_Data
|
||||||
|
{
|
||||||
|
Evas_Object *o_avail, *o_sel;
|
||||||
|
Evas_Object *o_add, *o_del;
|
||||||
|
Evas_Object *o_desc;
|
||||||
|
|
||||||
|
E_Gadcon *gc;
|
||||||
|
|
||||||
|
Ngi_Box *box;
|
||||||
|
|
||||||
|
Ecore_Event_Handler *hdl;
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_gadcon_config(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
E_Config_Dialog *cfd;
|
||||||
|
E_Config_Dialog_View *v;
|
||||||
|
E_Container *con;
|
||||||
|
|
||||||
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
if (!v)
|
||||||
|
return;
|
||||||
|
|
||||||
|
con = e_container_current_get(e_manager_current_get());
|
||||||
|
|
||||||
|
v->create_cfdata = _create_data;
|
||||||
|
v->free_cfdata = _free_data;
|
||||||
|
v->basic.create_widgets = _basic_create;
|
||||||
|
|
||||||
|
cfd = e_config_dialog_new(con, "Gadcon Config", "E", "_ngi_gadcon_config_dialog",
|
||||||
|
"enlightenment/shelf", 0, v, box);
|
||||||
|
box->cfd = cfd;
|
||||||
|
e_dialog_resizable_set(cfd->dia, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
_create_data(E_Config_Dialog *cfd)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
|
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||||
|
cfdata->box = cfd->data;
|
||||||
|
return cfdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Ngi_Box *box;
|
||||||
|
|
||||||
|
if (cfdata->hdl)
|
||||||
|
ecore_event_handler_del(cfdata->hdl);
|
||||||
|
|
||||||
|
E_FREE(cfdata);
|
||||||
|
|
||||||
|
if (!(box = cfd->data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
box->cfd = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Evas_Object *o = NULL, *of = NULL;
|
||||||
|
Evas_Object *ow = NULL;
|
||||||
|
|
||||||
|
o = e_widget_table_add(evas, 0);
|
||||||
|
of = e_widget_frametable_add(evas, D_("Available Gadgets"), 0);
|
||||||
|
ow = e_widget_ilist_add(evas, 24, 24, NULL);
|
||||||
|
e_widget_ilist_multi_select_set(ow, 1);
|
||||||
|
e_widget_on_change_hook_set(ow, _avail_list_cb_change, cfdata);
|
||||||
|
cfdata->o_avail = ow;
|
||||||
|
_load_avail_gadgets(cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
ow = e_widget_button_add(evas, D_("Add Gadget"), NULL, _cb_add, cfdata, NULL);
|
||||||
|
e_widget_disabled_set(ow, 1);
|
||||||
|
cfdata->o_add = ow;
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
e_widget_table_object_append(o, of, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
of = e_widget_frametable_add(evas, D_("Selected Gadgets"), 0);
|
||||||
|
ow = e_widget_ilist_add(evas, 24, 24, NULL);
|
||||||
|
e_widget_ilist_multi_select_set(ow, 1);
|
||||||
|
e_widget_on_change_hook_set(ow, _sel_list_cb_change, cfdata);
|
||||||
|
cfdata->o_sel = ow;
|
||||||
|
_load_sel_gadgets(cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
ow = e_widget_button_add(evas, D_("Remove Gadget"), NULL, _cb_del, cfdata, NULL);
|
||||||
|
e_widget_disabled_set(ow, 1);
|
||||||
|
cfdata->o_del = ow;
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 1, 1, 1, 1, 1, 1, 0);
|
||||||
|
e_widget_table_object_append(o, of, 1, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
ow = e_widget_textblock_add(evas);
|
||||||
|
e_widget_size_min_set(ow, 200, 70);
|
||||||
|
e_widget_textblock_markup_set(ow, D_("Description: Unavailable"));
|
||||||
|
cfdata->o_desc = ow;
|
||||||
|
e_widget_table_object_append(o, ow, 0, 1, 2, 1, 1, 1, 1, 0);
|
||||||
|
|
||||||
|
if (cfdata->hdl)
|
||||||
|
ecore_event_handler_del(cfdata->hdl);
|
||||||
|
|
||||||
|
cfdata->hdl = ecore_event_handler_add(E_EVENT_MODULE_UPDATE,
|
||||||
|
_cb_mod_update, cfdata);
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_cb_mod_update(void *data, int type, void *event)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
|
||||||
|
if (type != E_EVENT_MODULE_UPDATE)
|
||||||
|
return EINA_TRUE;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return EINA_TRUE;
|
||||||
|
|
||||||
|
_load_avail_gadgets(cfdata);
|
||||||
|
_load_sel_gadgets(cfdata);
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_avail_list_cb_change(void *data, Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
const char *name;
|
||||||
|
int sel, count;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
e_widget_ilist_unselect(cfdata->o_sel);
|
||||||
|
e_widget_disabled_set(cfdata->o_del, 1);
|
||||||
|
e_widget_disabled_set(cfdata->o_add, 0);
|
||||||
|
count = e_widget_ilist_selected_count_get(cfdata->o_avail);
|
||||||
|
if ((count > 1) || (count == 0))
|
||||||
|
e_widget_textblock_markup_set(cfdata->o_desc, D_("Description: Unavailable"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sel = e_widget_ilist_selected_get(cfdata->o_avail);
|
||||||
|
name = (char *)e_widget_ilist_nth_data_get(cfdata->o_avail, sel);
|
||||||
|
_set_description(cfdata, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_sel_list_cb_change(void *data, Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
const char *name;
|
||||||
|
int sel, count;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
e_widget_ilist_unselect(cfdata->o_avail);
|
||||||
|
e_widget_disabled_set(cfdata->o_add, 1);
|
||||||
|
e_widget_disabled_set(cfdata->o_del, 0);
|
||||||
|
count = e_widget_ilist_selected_count_get(cfdata->o_sel);
|
||||||
|
if ((count > 1) || (count == 0))
|
||||||
|
e_widget_textblock_markup_set(cfdata->o_desc, D_("Description: Unavailable"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sel = e_widget_ilist_selected_get(cfdata->o_sel);
|
||||||
|
name = (char *)e_widget_ilist_nth_data_get(cfdata->o_sel, sel);
|
||||||
|
_set_description(cfdata, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_load_avail_gadgets(void *data)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
E_Gadcon_Client_Class *cc;
|
||||||
|
Eina_List *l = NULL;
|
||||||
|
Evas_Object *icon = NULL;
|
||||||
|
const char *lbl = NULL;
|
||||||
|
Evas *evas;
|
||||||
|
int w;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
evas = evas_object_evas_get(cfdata->o_avail);
|
||||||
|
evas_event_freeze(evas);
|
||||||
|
edje_freeze();
|
||||||
|
e_widget_ilist_freeze(cfdata->o_avail);
|
||||||
|
e_widget_ilist_clear(cfdata->o_avail);
|
||||||
|
EINA_LIST_FOREACH (e_gadcon_provider_list(), l, cc)
|
||||||
|
{
|
||||||
|
if (!cc)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (cc->func.label)
|
||||||
|
lbl = cc->func.label(cc);
|
||||||
|
|
||||||
|
if (!lbl)
|
||||||
|
lbl = cc->name;
|
||||||
|
|
||||||
|
if (cc->func.icon)
|
||||||
|
icon = cc->func.icon(cc, evas);
|
||||||
|
|
||||||
|
e_widget_ilist_append(cfdata->o_avail, icon, lbl, NULL,
|
||||||
|
(void *)cc->name, NULL);
|
||||||
|
}
|
||||||
|
e_widget_ilist_go(cfdata->o_avail);
|
||||||
|
e_widget_size_min_get(cfdata->o_avail, &w, NULL);
|
||||||
|
if (w < 200)
|
||||||
|
w = 200;
|
||||||
|
|
||||||
|
e_widget_size_min_set(cfdata->o_avail, w, 250);
|
||||||
|
e_widget_ilist_thaw(cfdata->o_avail);
|
||||||
|
edje_thaw();
|
||||||
|
evas_event_thaw(evas);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_load_sel_gadgets(void *data)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
Eina_List *ll = NULL, *l = NULL, *l2 = NULL;
|
||||||
|
Evas *evas;
|
||||||
|
int w;
|
||||||
|
Ngi_Item_Gadcon *it;
|
||||||
|
E_Config_Gadcon_Client *cgc;
|
||||||
|
E_Gadcon_Client_Class *gcc;
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
evas = evas_object_evas_get(cfdata->o_sel);
|
||||||
|
evas_event_freeze(evas);
|
||||||
|
edje_freeze();
|
||||||
|
e_widget_ilist_freeze(cfdata->o_sel);
|
||||||
|
e_widget_ilist_clear(cfdata->o_sel);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(cfdata->box->items, ll, it)
|
||||||
|
{
|
||||||
|
EINA_LIST_FOREACH(it->gadcon->cf->clients, l, cgc)
|
||||||
|
{
|
||||||
|
if (!cgc) continue;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_gadcon_provider_list(), l2, gcc)
|
||||||
|
{
|
||||||
|
Evas_Object *icon = NULL;
|
||||||
|
const char *lbl = NULL;
|
||||||
|
|
||||||
|
if (!gcc) continue;
|
||||||
|
|
||||||
|
if ((cgc->name) && (gcc->name) &&
|
||||||
|
(!strcmp(cgc->name, gcc->name)))
|
||||||
|
{
|
||||||
|
if (gcc->func.label)
|
||||||
|
lbl = gcc->func.label(gcc);
|
||||||
|
|
||||||
|
if (!lbl)
|
||||||
|
lbl = gcc->name;
|
||||||
|
|
||||||
|
if (gcc->func.icon)
|
||||||
|
icon = gcc->func.icon(gcc, evas);
|
||||||
|
|
||||||
|
e_widget_ilist_append(cfdata->o_sel, icon, lbl, NULL,
|
||||||
|
(void *)gcc->name, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e_widget_ilist_go(cfdata->o_sel);
|
||||||
|
e_widget_size_min_get(cfdata->o_sel, &w, NULL);
|
||||||
|
if (w < 200)
|
||||||
|
w = 200;
|
||||||
|
|
||||||
|
e_widget_size_min_set(cfdata->o_sel, w, 250);
|
||||||
|
e_widget_ilist_thaw(cfdata->o_sel);
|
||||||
|
edje_thaw();
|
||||||
|
evas_event_thaw(evas);
|
||||||
|
if (l)
|
||||||
|
eina_list_free(l);
|
||||||
|
|
||||||
|
if (l2)
|
||||||
|
eina_list_free(l2);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_add(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
Eina_List *l, *ll;
|
||||||
|
char *gadcon_name;
|
||||||
|
Ngi_Box *box;
|
||||||
|
E_Ilist_Item *item;
|
||||||
|
int i = 0, update = 0;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
box = cfdata->box;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_widget_ilist_items_get(cfdata->o_avail), l, item)
|
||||||
|
{
|
||||||
|
Config_Gadcon *cg;
|
||||||
|
E_Config_Gadcon_Client *cgc;
|
||||||
|
Ngi_Item_Gadcon *it;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
if (!item->selected) continue;
|
||||||
|
|
||||||
|
name = (char *) e_widget_ilist_item_data_get(item);
|
||||||
|
if (!name) continue;
|
||||||
|
|
||||||
|
gadcon_name = _ngi_gadcon_name_new();
|
||||||
|
if (!gadcon_name) continue;
|
||||||
|
|
||||||
|
cg = E_NEW(Config_Gadcon, 1);
|
||||||
|
cg->name = eina_stringshare_add(gadcon_name);
|
||||||
|
eina_hash_add(ngi_gadcon_hash, cg->name, cg);
|
||||||
|
box->cfg->gadcon_items = eina_list_append(box->cfg->gadcon_items, cg);
|
||||||
|
|
||||||
|
it = _ngi_gadcon_item_new(box, cg, NULL);
|
||||||
|
|
||||||
|
if (it->gadcon->cf->clients)
|
||||||
|
e_gadcon_unpopulate(it->gadcon);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(it->gadcon->cf->clients, ll, cgc)
|
||||||
|
e_gadcon_client_config_del(it->gadcon->cf, cgc);
|
||||||
|
|
||||||
|
if (!e_gadcon_client_config_new(it->gadcon, name))
|
||||||
|
{
|
||||||
|
// FIXME free item
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e_gadcon_populate(it->gadcon);
|
||||||
|
update = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (update)
|
||||||
|
{
|
||||||
|
e_config_save_queue();
|
||||||
|
|
||||||
|
_load_sel_gadgets(cfdata);
|
||||||
|
e_widget_ilist_selected_set(cfdata->o_sel, i);
|
||||||
|
|
||||||
|
ngi_thaw(box->ng);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_del(void *data, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
Eina_List *l = NULL, *g = NULL;
|
||||||
|
int i = 0, update = 0;
|
||||||
|
Ngi_Item_Gadcon *it;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i = 0, l = e_widget_ilist_items_get(cfdata->o_sel); l; l = l->next, i++)
|
||||||
|
{
|
||||||
|
E_Ilist_Item *item = NULL;
|
||||||
|
E_Config_Gadcon_Client *cgc;
|
||||||
|
const char *name = NULL;
|
||||||
|
if (!(item = l->data))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!item->selected)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
name = (char *)e_widget_ilist_nth_data_get(cfdata->o_sel, i);
|
||||||
|
if (!name)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
it = eina_list_nth(cfdata->box->items, i);
|
||||||
|
|
||||||
|
if (!it)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH (it->gadcon->cf->clients, g, cgc)
|
||||||
|
{
|
||||||
|
if (!cgc)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (strcmp(name, cgc->name))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
e_gadcon_client_config_del(it->gadcon->cf, cgc);
|
||||||
|
|
||||||
|
cfdata->box->cfg->gadcon_items =
|
||||||
|
eina_list_remove(cfdata->box->cfg->gadcon_items, it->cfg_gadcon);
|
||||||
|
|
||||||
|
eina_hash_del_by_key(ngi_gadcon_hash, it->cfg_gadcon->name);
|
||||||
|
|
||||||
|
e_gadcon_unpopulate(it->gadcon);
|
||||||
|
|
||||||
|
/* it->base.obj = NULL;
|
||||||
|
* it->box->items = eina_list_remove(it->box->items, it);
|
||||||
|
* ngi_item_free(it); */
|
||||||
|
|
||||||
|
ngi_item_remove((Ngi_Item*)it);
|
||||||
|
|
||||||
|
e_config_save_queue();
|
||||||
|
|
||||||
|
update = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (update)
|
||||||
|
{
|
||||||
|
_load_sel_gadgets(cfdata);
|
||||||
|
|
||||||
|
/* we just default to selecting first one here as the user may have had
|
||||||
|
* more than one selected */
|
||||||
|
e_widget_ilist_selected_set(cfdata->o_sel, 0);
|
||||||
|
ngi_thaw(cfdata->box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g)
|
||||||
|
eina_list_free(g);
|
||||||
|
|
||||||
|
if (l)
|
||||||
|
eina_list_free(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_set_description(void *data, const char *name)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = NULL;
|
||||||
|
E_Module *mod = NULL;
|
||||||
|
Efreet_Desktop *desk = NULL;
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!name)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(mod = e_module_find(name)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/module.desktop", e_module_dir_get(mod));
|
||||||
|
if (!ecore_file_exists(buf))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(desk = efreet_desktop_get(buf)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (desk->comment)
|
||||||
|
e_widget_textblock_markup_set(cfdata->o_desc, desk->comment);
|
||||||
|
|
||||||
|
efreet_desktop_free(desk);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,223 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_init_defaults(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
Ng *ng = it->box->ng;
|
||||||
|
int ok = 0;
|
||||||
|
|
||||||
|
it->obj = edje_object_add(ng->evas);
|
||||||
|
|
||||||
|
switch(ng->cfg->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
ok = ngi_object_theme_set(it->obj, "e/modules/engage/icon_bottom");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
ok = ngi_object_theme_set(it->obj, "e/modules/engage/icon_top");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
ok = ngi_object_theme_set(it->obj, "e/modules/engage/icon_left");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
ok = ngi_object_theme_set(it->obj, "e/modules/engage/icon_right");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO remove fallback */
|
||||||
|
if (!ok)
|
||||||
|
{
|
||||||
|
if (!e_theme_edje_object_set(it->obj, "base/theme/modules/engage", "e/modules/engage/icon"))
|
||||||
|
edje_object_file_set(it->obj, ngi_config->theme_path, "e/modules/engage/icon");
|
||||||
|
}
|
||||||
|
|
||||||
|
it->over = edje_object_add(ng->evas);
|
||||||
|
|
||||||
|
switch(ng->cfg->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
ok = ngi_object_theme_set(it->over, "e/modules/engage/icon_over_bottom");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
ok = ngi_object_theme_set(it->over, "e/modules/engage/icon_over_top");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
ok = ngi_object_theme_set(it->over, "e/modules/engage/icon_over_left");
|
||||||
|
break;
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
ok = ngi_object_theme_set(it->over, "e/modules/engage/icon_over_right");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
{
|
||||||
|
if (!e_theme_edje_object_set(it->over, "base/theme/modules/engage", "e/modules/engage/icon_overlay"))
|
||||||
|
edje_object_file_set(it->over, ngi_config->theme_path, "e/modules/engage/icon_overlay");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
evas_object_layer_set(it->over, 9999);
|
||||||
|
evas_object_show(it->over);
|
||||||
|
evas_object_show(it->obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_show(Ngi_Item *it, int instant)
|
||||||
|
{
|
||||||
|
Ng *ng = it->box->ng;
|
||||||
|
|
||||||
|
evas_object_show(it->obj);
|
||||||
|
evas_object_show(it->over);
|
||||||
|
|
||||||
|
ngi_item_signal_emit(it, "e,state,item,show");
|
||||||
|
|
||||||
|
if (eina_list_data_find(ng->items_remove, it))
|
||||||
|
ng->items_remove = eina_list_remove(ng->items_remove, it);
|
||||||
|
|
||||||
|
if (instant)
|
||||||
|
{
|
||||||
|
it->scale = 1.0;
|
||||||
|
ngi_animate(ng);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
it->start_time = ecore_time_get();
|
||||||
|
it->scale = 0.0;
|
||||||
|
ng->items_show = eina_list_append(ng->items_show, it);
|
||||||
|
ngi_animate(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_remove(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
if (!it) return;
|
||||||
|
|
||||||
|
Ng *ng = it->box->ng;
|
||||||
|
double now = ecore_time_get();
|
||||||
|
|
||||||
|
edje_object_signal_emit(it->obj, "e,state,item,hide", "e");
|
||||||
|
|
||||||
|
if (now - it->start_time < ng->opt.fade_duration)
|
||||||
|
it->start_time = now - (ng->opt.fade_duration - (now - it->start_time));
|
||||||
|
else
|
||||||
|
it->start_time = now;
|
||||||
|
|
||||||
|
it->delete_me = 1;
|
||||||
|
|
||||||
|
if (eina_list_data_find(ng->items_show, it))
|
||||||
|
ng->items_show = eina_list_remove(ng->items_show, it);
|
||||||
|
|
||||||
|
if (!eina_list_data_find(ng->items_remove, it))
|
||||||
|
ng->items_remove = eina_list_append(ng->items_remove, it);
|
||||||
|
|
||||||
|
if (it == ng->item_active)
|
||||||
|
ng->item_active = NULL;
|
||||||
|
|
||||||
|
if (it == ng->item_drag)
|
||||||
|
ng->item_drag = NULL;
|
||||||
|
|
||||||
|
ngi_animate(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_free(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
Ng *ng = it->box->ng;
|
||||||
|
|
||||||
|
if (it == ng->item_active)
|
||||||
|
ng->item_active = NULL;
|
||||||
|
|
||||||
|
if (it == ng->item_drag)
|
||||||
|
ng->item_drag = NULL;
|
||||||
|
|
||||||
|
if (eina_list_data_find(ng->items_remove, it))
|
||||||
|
ng->items_remove = eina_list_remove(ng->items_remove, it);
|
||||||
|
|
||||||
|
if (eina_list_data_find(ng->items_show, it))
|
||||||
|
ng->items_show = eina_list_remove(ng->items_show, it);
|
||||||
|
|
||||||
|
it->box->items = eina_list_remove(it->box->items, it);
|
||||||
|
|
||||||
|
if (it->obj)
|
||||||
|
evas_object_del(it->obj);
|
||||||
|
|
||||||
|
if (it->over)
|
||||||
|
evas_object_del(it->over);
|
||||||
|
|
||||||
|
if (it->label)
|
||||||
|
eina_stringshare_del(it->label);
|
||||||
|
|
||||||
|
if (it->cb_free) it->cb_free(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_label_set(Ngi_Item *it, const char *label)
|
||||||
|
{
|
||||||
|
if (it->label)
|
||||||
|
eina_stringshare_del(it->label);
|
||||||
|
|
||||||
|
if (label)
|
||||||
|
it->label = eina_stringshare_add(label);
|
||||||
|
else
|
||||||
|
it->label = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_signal_emit(Ngi_Item *it, char *sig)
|
||||||
|
{
|
||||||
|
if (it->obj)
|
||||||
|
edje_object_signal_emit(it->obj, sig, "e");
|
||||||
|
if (it->over)
|
||||||
|
edje_object_signal_emit(it->over, sig, "e");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_mouse_in(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
if (!it || it->delete_me) return;
|
||||||
|
|
||||||
|
ngi_item_signal_emit(it,"e,state,mouse,in");
|
||||||
|
|
||||||
|
if (it->box->ng->cfg->mouse_over_anim)
|
||||||
|
ngi_item_signal_emit(it,"e,state,animate,in");
|
||||||
|
|
||||||
|
if (it->cb_mouse_in)
|
||||||
|
it->cb_mouse_in(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_mouse_out(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
if (!it || it->delete_me) return;
|
||||||
|
|
||||||
|
ngi_item_signal_emit(it,"e,state,mouse,out");
|
||||||
|
|
||||||
|
if (it->box->ng->cfg->mouse_over_anim)
|
||||||
|
ngi_item_signal_emit(it,"e,state,animate,out");
|
||||||
|
|
||||||
|
if (it->cb_mouse_out)
|
||||||
|
it->cb_mouse_out(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_mouse_down(Ngi_Item *it, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
if (!it || it->delete_me) return;
|
||||||
|
|
||||||
|
ngi_item_signal_emit(it,"e,state,mouse,down");
|
||||||
|
|
||||||
|
if (it->cb_mouse_down)
|
||||||
|
it->cb_mouse_down(it, ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_item_mouse_up(Ngi_Item *it, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
if (!it || it->delete_me) return;
|
||||||
|
|
||||||
|
ngi_item_signal_emit(it,"e,state,mouse,up");
|
||||||
|
|
||||||
|
if (it->cb_mouse_up)
|
||||||
|
it->cb_mouse_up(it, ev);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,604 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO
|
||||||
|
- update on icon changes
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void _box_fill (Ngi_Box *box);
|
||||||
|
static void _app_change_cb (void *data, E_Order *eo);
|
||||||
|
|
||||||
|
static void _item_new (Ngi_Box *box, Efreet_Desktop *dekstop, int instant, Ngi_Item_Launcher *after);
|
||||||
|
static void _item_fill (Ngi_Item_Launcher *it);
|
||||||
|
|
||||||
|
static void _item_cb_free (Ngi_Item *it);
|
||||||
|
static void _item_cb_drag_start (Ngi_Item *it);
|
||||||
|
static void _item_cb_mouse_up (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
static void _item_cb_mouse_down (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
|
||||||
|
static void _cb_drop_enter (void *data, const char *type, void *event_info);
|
||||||
|
static void _cb_drop_leave (void *data, const char *type, void *event_info);
|
||||||
|
static void _cb_drop_move (void *data, const char *type, void *event_info);
|
||||||
|
static void _cb_drop_end (void *data, const char *type, void *event_info);
|
||||||
|
static Eina_Bool _cb_icons_update(void *data, int type, void *event);
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_launcher_new(Ng *ng, Config_Box *cfg)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
Ecore_Event_Handler *h;
|
||||||
|
Ngi_Box *box = ngi_box_new(ng);
|
||||||
|
|
||||||
|
box->cfg = cfg;
|
||||||
|
cfg->box = box;
|
||||||
|
|
||||||
|
const char *drop[] =
|
||||||
|
{ "enlightenment/desktop",
|
||||||
|
"enlightenment/border",
|
||||||
|
"text/uri-list" };
|
||||||
|
|
||||||
|
box->drop_handler = e_drop_handler_add
|
||||||
|
(ng->win->drop_win, box,
|
||||||
|
_cb_drop_enter, _cb_drop_move,
|
||||||
|
_cb_drop_leave, _cb_drop_end,
|
||||||
|
drop, 3, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
h = ecore_event_handler_add(E_EVENT_CONFIG_ICON_THEME, _cb_icons_update, box);
|
||||||
|
if (h) box->handlers = eina_list_append(box->handlers, h);
|
||||||
|
h = ecore_event_handler_add(EFREET_EVENT_ICON_CACHE_UPDATE, _cb_icons_update, box);
|
||||||
|
if (h) box->handlers = eina_list_append(box->handlers, h);
|
||||||
|
h = ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _cb_icons_update, box);
|
||||||
|
if (h) box->handlers = eina_list_append(box->handlers, h);
|
||||||
|
|
||||||
|
if (!cfg->launcher_app_dir || strlen(cfg->launcher_app_dir) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (cfg->launcher_app_dir[0] != '/')
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s/.order",
|
||||||
|
e_user_homedir_get(), cfg->launcher_app_dir);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
snprintf(buf, sizeof(buf), "%s", cfg->launcher_app_dir);
|
||||||
|
|
||||||
|
box->apps = e_order_new(buf);
|
||||||
|
e_order_update_callback_set(box->apps, _app_change_cb, box);
|
||||||
|
|
||||||
|
_box_fill(box);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_launcher_remove(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
Ecore_Event_Handler *h;
|
||||||
|
|
||||||
|
e_drop_handler_del(box->drop_handler);
|
||||||
|
|
||||||
|
if (box->apps)
|
||||||
|
{
|
||||||
|
e_order_update_callback_set(box->apps, NULL, NULL);
|
||||||
|
e_object_del(E_OBJECT(box->apps));
|
||||||
|
}
|
||||||
|
|
||||||
|
EINA_LIST_FREE(box->handlers, h)
|
||||||
|
ecore_event_handler_del(h);
|
||||||
|
|
||||||
|
ngi_box_free(box);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_box_fill(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
Efreet_Desktop *desktop;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
|
if (!box->apps)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ngi_freeze(box->ng);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(box->apps->desktops, l, desktop)
|
||||||
|
_item_new(box, desktop, 1, NULL);
|
||||||
|
|
||||||
|
ngi_thaw(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_cb_icons_update(void *data, int type, void *event)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
Eina_List *l;
|
||||||
|
Ngi_Item_Launcher *it;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(box->items, l, it)
|
||||||
|
_item_fill(it);
|
||||||
|
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_app_change_cb(void *data, E_Order *eo)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
|
||||||
|
if (box->item_drop)
|
||||||
|
return;
|
||||||
|
|
||||||
|
while(box->items)
|
||||||
|
ngi_item_free(box->items->data);
|
||||||
|
|
||||||
|
_box_fill(box);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ******************************* LAUNCHER DROP HANDLER ******************** */
|
||||||
|
|
||||||
|
static Ngi_Item *
|
||||||
|
_drop_item_new(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
Ngi_Item *it;
|
||||||
|
|
||||||
|
it = (Ngi_Item*)E_NEW(Ngi_Item_Launcher, 1);
|
||||||
|
it->box = box;
|
||||||
|
ngi_item_show(it, 0);
|
||||||
|
it->delete_me = EINA_TRUE;
|
||||||
|
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_drop_handle_move(Ngi_Box *box, int x, int y)
|
||||||
|
{
|
||||||
|
Ngi_Item *item;
|
||||||
|
Ngi_Item_Launcher *it, *it2;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
|
if (box->ng->horizontal)
|
||||||
|
box->ng->pos = x + box->ng->size/2 - box->ng->zone->x;
|
||||||
|
else
|
||||||
|
box->ng->pos = y + box->ng->size/2 - box->ng->zone->y;
|
||||||
|
|
||||||
|
item = ngi_item_at_position_get(box->ng);
|
||||||
|
|
||||||
|
if (item && (item->box != box))
|
||||||
|
{
|
||||||
|
l = eina_list_last(box->items);
|
||||||
|
if (l && (it = l->data) && (!it->app)) return;
|
||||||
|
|
||||||
|
ngi_item_remove(box->item_drop);
|
||||||
|
|
||||||
|
box->item_drop = _drop_item_new(box);
|
||||||
|
box->items = eina_list_append(box->items, box->item_drop);
|
||||||
|
}
|
||||||
|
else if (item && item->box == box)
|
||||||
|
{
|
||||||
|
it = (Ngi_Item_Launcher*)item;
|
||||||
|
l = eina_list_data_find_list(box->items, it);
|
||||||
|
|
||||||
|
if (l) it2 = eina_list_data_get(l->prev);
|
||||||
|
|
||||||
|
if (it->app && (!it2 || it2->app))
|
||||||
|
{
|
||||||
|
ngi_item_remove(box->item_drop);
|
||||||
|
|
||||||
|
box->item_drop = _drop_item_new(box);
|
||||||
|
box->items = eina_list_prepend_relative(box->items, box->item_drop, it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_enter(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
E_Event_Dnd_Enter *ev = (E_Event_Dnd_Enter *)event_info;
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
|
||||||
|
if (!strcmp(type, "text/uri-list"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
_drop_handle_move(box, ev->x, ev->y);
|
||||||
|
|
||||||
|
box->ng->dnd = 1;
|
||||||
|
ngi_mouse_in(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_move(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
E_Event_Dnd_Move *ev = (E_Event_Dnd_Move *)event_info;
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
|
||||||
|
if (!strcmp(type, "text/uri-list"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
_drop_handle_move(box, ev->x, ev->y);
|
||||||
|
|
||||||
|
ngi_thaw(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_leave(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
|
||||||
|
if (!strcmp(type, "text/uri-list"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (box->item_drop)
|
||||||
|
ngi_item_remove(box->item_drop);
|
||||||
|
box->item_drop = NULL;
|
||||||
|
|
||||||
|
ngi_reposition(box->ng);
|
||||||
|
ngi_input_extents_calc(box->ng);
|
||||||
|
box->ng->dnd = 0;
|
||||||
|
ngi_mouse_out(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_end(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
E_Event_Dnd_Drop *ev = (E_Event_Dnd_Drop *)event_info;
|
||||||
|
Ngi_Box *box = data;
|
||||||
|
Efreet_Desktop *app = NULL;
|
||||||
|
Ngi_Item_Launcher *it = NULL;
|
||||||
|
|
||||||
|
Eina_List *l;
|
||||||
|
if (!strcmp(type, "enlightenment/desktop"))
|
||||||
|
{
|
||||||
|
app = (Efreet_Desktop *)ev->data;
|
||||||
|
}
|
||||||
|
else if (!strcmp(type, "enlightenment/border"))
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)ev->data;
|
||||||
|
app = bd->desktop;
|
||||||
|
|
||||||
|
if (bd->internal)
|
||||||
|
{
|
||||||
|
const char *class = bd->client.icccm.class;
|
||||||
|
|
||||||
|
if ((class) && (!strncmp(class, "e_fwin::", 8)) &&
|
||||||
|
(ecore_file_exists(class+8)))
|
||||||
|
{
|
||||||
|
const char *file = class+8;
|
||||||
|
char buf[PATH_MAX];
|
||||||
|
|
||||||
|
if (!app)
|
||||||
|
{
|
||||||
|
app = e_desktop_border_create(bd);
|
||||||
|
|
||||||
|
if (app->name) free(app->name);
|
||||||
|
app->name = strdup(ecore_file_file_get(file));
|
||||||
|
if (app->icon) free(app->icon);
|
||||||
|
app->icon = strdup("folder");
|
||||||
|
if (app->comment)free(app->comment);
|
||||||
|
app->comment = strdup(D_("Open folder with EFM"));
|
||||||
|
if (app->exec) free(app->exec);
|
||||||
|
snprintf(buf, PATH_MAX, "enlightenment_remote -efm-open-dir %s", file);
|
||||||
|
app->exec = strdup(buf);
|
||||||
|
|
||||||
|
efreet_desktop_save(app);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!app)
|
||||||
|
{
|
||||||
|
app = e_desktop_border_create(bd);
|
||||||
|
efreet_desktop_save(app);
|
||||||
|
e_desktop_edit(e_container_current_get(e_manager_current_get()), app);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!strcmp(type, "text/uri-list"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!app)
|
||||||
|
return;
|
||||||
|
|
||||||
|
l = eina_list_data_find_list(box->items, box->item_drop);
|
||||||
|
if (l) it = eina_list_data_get(l->next);
|
||||||
|
|
||||||
|
if (box->item_drop)
|
||||||
|
ngi_item_free(box->item_drop);
|
||||||
|
|
||||||
|
if (it && it->app)
|
||||||
|
e_order_prepend_relative(box->apps, app, it->app);
|
||||||
|
else
|
||||||
|
e_order_append(box->apps, app);
|
||||||
|
/* _save_order(box); */
|
||||||
|
|
||||||
|
_item_new(box, app, 1, it);
|
||||||
|
|
||||||
|
box->ng->dnd = 0;
|
||||||
|
ngi_reposition(box->ng);
|
||||||
|
ngi_input_extents_calc(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ******************************* LAUNCHER ITEM ********************************** */
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_new(Ngi_Box *box, Efreet_Desktop *desktop, int instant, Ngi_Item_Launcher *after)
|
||||||
|
{
|
||||||
|
Ngi_Item_Launcher *it;
|
||||||
|
|
||||||
|
it = E_NEW(Ngi_Item_Launcher, 1);
|
||||||
|
it->base.box = box;
|
||||||
|
ngi_item_init_defaults((Ngi_Item*)it);
|
||||||
|
|
||||||
|
it->base.cb_free = _item_cb_free;
|
||||||
|
it->base.cb_mouse_down = _item_cb_mouse_down;
|
||||||
|
it->base.cb_mouse_up = _item_cb_mouse_up;
|
||||||
|
it->base.cb_drag_start = _item_cb_drag_start;
|
||||||
|
|
||||||
|
efreet_desktop_ref(desktop);
|
||||||
|
it->app = desktop;
|
||||||
|
|
||||||
|
_item_fill(it);
|
||||||
|
|
||||||
|
if (after)
|
||||||
|
box->items = eina_list_prepend_relative(box->items, it, after);
|
||||||
|
else
|
||||||
|
box->items = eina_list_append(box->items, it);
|
||||||
|
|
||||||
|
ngi_item_show((Ngi_Item*)it, instant);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_free(Ngi_Item *item)
|
||||||
|
{
|
||||||
|
Ngi_Item_Launcher *it = (Ngi_Item_Launcher *) item;
|
||||||
|
|
||||||
|
if (it->app)
|
||||||
|
efreet_desktop_unref(it->app);
|
||||||
|
|
||||||
|
if (it->o_icon)
|
||||||
|
evas_object_del(it->o_icon);
|
||||||
|
|
||||||
|
if (it->o_proxy)
|
||||||
|
evas_object_del(it->o_proxy);
|
||||||
|
|
||||||
|
E_FREE(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_fill(Ngi_Item_Launcher *it)
|
||||||
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
Evas *e = it->base.box->ng->evas;
|
||||||
|
|
||||||
|
if (it->o_icon)
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow(it->base.obj, it->o_icon);
|
||||||
|
evas_object_del(it->o_icon);
|
||||||
|
}
|
||||||
|
if (it->o_proxy)
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow(it->base.obj, it->o_proxy);
|
||||||
|
evas_object_del(it->o_proxy);
|
||||||
|
}
|
||||||
|
|
||||||
|
o = e_util_desktop_icon_add(it->app, 128, e);
|
||||||
|
if (o)
|
||||||
|
{
|
||||||
|
edje_object_part_swallow(it->base.obj, "e.swallow.content", o);
|
||||||
|
evas_object_show(o);
|
||||||
|
it->o_icon = o;
|
||||||
|
|
||||||
|
o = evas_object_image_filled_add(e);
|
||||||
|
evas_object_image_fill_set(o, 0, 0, 1, 1);
|
||||||
|
evas_object_image_source_set(o, it->base.obj);
|
||||||
|
|
||||||
|
edje_object_part_swallow(it->base.over, "e.swallow.content", o);
|
||||||
|
evas_object_show(o);
|
||||||
|
it->o_proxy = o;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (it->app->name && it->app->name[0])
|
||||||
|
ngi_item_label_set((Ngi_Item*)it, it->app->name);
|
||||||
|
else if (it->app->generic_name && it->app->generic_name[0])
|
||||||
|
ngi_item_label_set((Ngi_Item*)it, it->app->generic_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drag_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = data;
|
||||||
|
|
||||||
|
ngi_bar_lock(box->ng, 0);
|
||||||
|
ngi_thaw(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drag_finished(E_Drag *d, int dropped)
|
||||||
|
{
|
||||||
|
efreet_desktop_unref((Efreet_Desktop*)d->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_drag_start(Ngi_Item *item)
|
||||||
|
{
|
||||||
|
Ngi_Item_Launcher *it = (Ngi_Item_Launcher*) item;
|
||||||
|
E_Drag *d;
|
||||||
|
Evas_Object *o;
|
||||||
|
Evas_Coord x, y, w, h, px, py;
|
||||||
|
Ngi_Box *box = item->box;
|
||||||
|
|
||||||
|
const char *drag_types[] = { "enlightenment/desktop" };
|
||||||
|
|
||||||
|
if (item->box->cfg->launcher_lock_dnd)
|
||||||
|
return;
|
||||||
|
|
||||||
|
evas_object_geometry_get(it->o_icon, &x, &y, &w, &h);
|
||||||
|
|
||||||
|
if (!ngi_config->use_composite)
|
||||||
|
{
|
||||||
|
x -= box->ng->win->rect.x;
|
||||||
|
y -= box->ng->win->rect.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
d = e_drag_new(box->ng->zone->container, x, y, drag_types, 1,
|
||||||
|
it->app, -1, NULL,
|
||||||
|
_cb_drag_finished);
|
||||||
|
efreet_desktop_ref(it->app);
|
||||||
|
|
||||||
|
o = e_util_desktop_icon_add(it->app, MIN(w, h), e_drag_evas_get(d));
|
||||||
|
e_drag_object_set(d, o);
|
||||||
|
e_drag_resize(d, w, h);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _cb_drag_del, box);
|
||||||
|
|
||||||
|
e_order_remove(item->box->apps, it->app);
|
||||||
|
|
||||||
|
evas_object_hide(it->base.obj);
|
||||||
|
ngi_item_remove(&(it->base));
|
||||||
|
|
||||||
|
ecore_x_pointer_xy_get(box->ng->win->input, &px, &py);
|
||||||
|
e_drag_start(d, px, py);
|
||||||
|
|
||||||
|
box->ng->item_drag = NULL;
|
||||||
|
|
||||||
|
ngi_bar_lock(box->ng, 1);
|
||||||
|
ngi_thaw(box->ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_menu_cb_lock_dnd(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
|
||||||
|
if (box) box->cfg->launcher_lock_dnd = e_menu_item_toggle_get(mi);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_menu_cb_edit_icon(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Ngi_Item_Launcher *it = data;
|
||||||
|
|
||||||
|
if (it) e_desktop_edit(e_container_current_get(e_manager_current_get()), it->app);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_menu_cb_configure_bar(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Ng *ng = (Ng *)data;
|
||||||
|
|
||||||
|
if (ng) ngi_configure_module(ng->cfg);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_menu_cb_configure_launcher(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
char path[4096];
|
||||||
|
|
||||||
|
if (!box)
|
||||||
|
return;
|
||||||
|
|
||||||
|
snprintf(path, sizeof(path), "%s/.e/e/applications/bar/%s/.order",
|
||||||
|
e_user_homedir_get(), box->cfg->launcher_app_dir);
|
||||||
|
|
||||||
|
e_configure_registry_call("internal/ibar_other",
|
||||||
|
e_container_current_get(e_manager_current_get()),
|
||||||
|
path);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_menu_cb_menu_end(void *data, E_Menu *m)
|
||||||
|
{
|
||||||
|
Ng *ng = (Ng *)data;
|
||||||
|
|
||||||
|
e_object_del(E_OBJECT(m));
|
||||||
|
ngi_thaw(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_mouse_down(Ngi_Item *item, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
Ngi_Item_Launcher *it = (Ngi_Item_Launcher *) item;
|
||||||
|
Evas_Coord x, y, w, h;
|
||||||
|
E_Menu *m;
|
||||||
|
E_Menu_Item *mi;
|
||||||
|
Ngi_Box *box = item->box;
|
||||||
|
|
||||||
|
if (!(ev->buttons == 3))
|
||||||
|
{
|
||||||
|
item->mouse_down = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!it->app)
|
||||||
|
return;
|
||||||
|
|
||||||
|
evas_object_geometry_get(item->obj, &x, &y, &w, &h);
|
||||||
|
|
||||||
|
x += box->ng->win->popup->x + box->ng->zone->x;
|
||||||
|
y += box->ng->win->popup->y + box->ng->zone->y;
|
||||||
|
|
||||||
|
int dir = E_MENU_POP_DIRECTION_AUTO;
|
||||||
|
|
||||||
|
switch(box->ng->cfg->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
dir = E_MENU_POP_DIRECTION_DOWN;
|
||||||
|
y += h;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
dir = E_MENU_POP_DIRECTION_UP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_RIGHT;
|
||||||
|
x += w;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_LEFT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
m = e_menu_new();
|
||||||
|
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Configure Bar"));
|
||||||
|
e_menu_item_callback_set(mi, _menu_cb_configure_bar, box->ng);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Lock Dragging"));
|
||||||
|
e_menu_item_check_set(mi, 1);
|
||||||
|
e_menu_item_toggle_set(mi, box->cfg->launcher_lock_dnd);
|
||||||
|
e_menu_item_callback_set(mi, _menu_cb_lock_dnd, box);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_separator_set(mi, 1);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Applications"));
|
||||||
|
e_menu_item_callback_set(mi, _menu_cb_configure_launcher, box);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(m);
|
||||||
|
e_menu_item_label_set(mi, D_("Edit Icon"));
|
||||||
|
e_menu_item_callback_set(mi, _menu_cb_edit_icon, it);
|
||||||
|
|
||||||
|
e_menu_post_deactivate_callback_set(m, _menu_cb_menu_end, box->ng);
|
||||||
|
|
||||||
|
e_menu_activate_mouse(m, box->ng->zone, x, y, 1, 1,
|
||||||
|
dir, ev->timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_mouse_up(Ngi_Item *item, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
Ngi_Item_Launcher *it = (Ngi_Item_Launcher *) item;
|
||||||
|
|
||||||
|
if (!item->mouse_down)
|
||||||
|
return;
|
||||||
|
|
||||||
|
item->mouse_down = 0;
|
||||||
|
|
||||||
|
if (ev->buttons == 1)
|
||||||
|
{
|
||||||
|
e_exec(e_util_zone_current_get(e_manager_current_get()), it->app, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
ngi_item_signal_emit((Ngi_Item*)it, "e,action,start");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,934 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
|
static int _border_check (Ngi_Box *box, E_Border *bd);
|
||||||
|
static Ngi_Item_Taskbar *_border_find (Ngi_Box *box, E_Border *bd);
|
||||||
|
|
||||||
|
static Eina_Bool _cb_border_event (void *data, int type, void *event);
|
||||||
|
static Eina_Bool _cb_desk_show (void *data, int type, void *event);
|
||||||
|
|
||||||
|
static void _item_new (Ngi_Box *box, E_Border *bd);
|
||||||
|
static void _item_cb_free (Ngi_Item *it);
|
||||||
|
static void _item_set_icon (Ngi_Item_Taskbar *it);
|
||||||
|
static void _item_set_label (Ngi_Item_Taskbar *it);
|
||||||
|
|
||||||
|
static void _item_cb_mouse_down (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
static void _item_cb_mouse_up (Ngi_Item *it, Ecore_Event_Mouse_Button *ev);
|
||||||
|
static void _item_cb_mouse_in (Ngi_Item *it);
|
||||||
|
static void _item_cb_mouse_out (Ngi_Item *it);
|
||||||
|
static void _item_cb_drag_start (Ngi_Item *it);
|
||||||
|
static void _item_cb_drag_end (E_Drag *drag, int dropped);
|
||||||
|
|
||||||
|
static Eina_Bool _cb_show_window (void *data);
|
||||||
|
static void _cb_drop_enter (void *data, const char *type, void *event_info);
|
||||||
|
static void _cb_drop_move (void *data, const char *type, void *event_info);
|
||||||
|
static void _cb_drop_end (void *data, const char *type, void *event_info);
|
||||||
|
static void _cb_drop_leave (void *data, const char *type, void *event_info);
|
||||||
|
|
||||||
|
|
||||||
|
static Ecore_X_Atom ECOMORPH_ATOM_THUMBNAIL = 0;
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_taskbar_init(void)
|
||||||
|
{
|
||||||
|
ECOMORPH_ATOM_THUMBNAIL = ecore_x_atom_get("__ECOMORPH_THUMBNAIL");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_taskbar_new(Ng *ng, Config_Box *cfg)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = ngi_box_new(ng);
|
||||||
|
E_Border *bd;
|
||||||
|
E_Border_List *bl;
|
||||||
|
Ecore_Event_Handler *h;
|
||||||
|
|
||||||
|
if (!box) return;
|
||||||
|
|
||||||
|
box->cfg = cfg;
|
||||||
|
cfg->box = box;
|
||||||
|
|
||||||
|
// "enlightenment/border", "enlightenment/desktop",
|
||||||
|
const char *drop[] = {"text/uri-list","text/x-moz-url", "enlightenment/x-file"};
|
||||||
|
box->drop_handler = e_drop_handler_add(ng->win->drop_win, box,
|
||||||
|
_cb_drop_enter, _cb_drop_move,
|
||||||
|
_cb_drop_leave, _cb_drop_end,
|
||||||
|
drop, 3, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
#define HANDLE(_event, _cb) \
|
||||||
|
box->handlers = eina_list_append(box->handlers, ecore_event_handler_add(_event, _cb, box));
|
||||||
|
|
||||||
|
HANDLE(E_EVENT_BORDER_ADD, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_REMOVE, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_ICONIFY, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_UNICONIFY, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_ICON_CHANGE, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_PROPERTY, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_ZONE_SET, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_URGENT_CHANGE, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_FOCUS_IN, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_BORDER_FOCUS_OUT, _cb_border_event);
|
||||||
|
HANDLE(E_EVENT_DESK_SHOW, _cb_desk_show);
|
||||||
|
#undef HANDLE
|
||||||
|
|
||||||
|
bl = e_container_border_list_first(box->ng->zone->container);
|
||||||
|
|
||||||
|
while ((bd = e_container_border_list_next(bl)))
|
||||||
|
{
|
||||||
|
if (box->ng->zone == bd->zone)
|
||||||
|
_item_new(box, bd);
|
||||||
|
}
|
||||||
|
|
||||||
|
e_container_border_list_free(bl);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ngi_taskbar_remove(Ngi_Box *box)
|
||||||
|
{
|
||||||
|
Ecore_Event_Handler *h;
|
||||||
|
|
||||||
|
e_drop_handler_del(box->drop_handler);
|
||||||
|
|
||||||
|
EINA_LIST_FREE(box->handlers, h)
|
||||||
|
ecore_event_handler_del(h);
|
||||||
|
|
||||||
|
ngi_box_free(box);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_border_check(Ngi_Box *box, E_Border *bd)
|
||||||
|
{
|
||||||
|
if (box->ng->zone != bd->zone)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (box->cfg->taskbar_show_iconified == 0 && bd->iconic)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (box->cfg->taskbar_show_iconified == 2 && !bd->iconic)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if ((box->cfg->taskbar_skip_dialogs && bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)
|
||||||
|
|| (bd->user_skip_winlist)
|
||||||
|
|| (bd->client.netwm.state.skip_taskbar))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* XXX Xitk menu windows act like normal windows... */
|
||||||
|
if (bd->client.icccm.transient_for &&
|
||||||
|
bd->client.icccm.class &&
|
||||||
|
!strcmp(bd->client.icccm.class, "Xitk"))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Ngi_Item_Taskbar *
|
||||||
|
_border_find(Ngi_Box *box, E_Border *bd)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Ngi_Item_Taskbar *it;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(box->items, l, it)
|
||||||
|
if (it->border == bd) return it;
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ************************* DND CALLBACKS ************************** */
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_enter(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
E_Event_Dnd_Enter *ev = (E_Event_Dnd_Enter *)event_info;
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
Ng *ng = box->ng;
|
||||||
|
|
||||||
|
ng->pos = (ng->horizontal ? ev->x : ev->y);
|
||||||
|
|
||||||
|
ng->item_active = ngi_item_at_position_get(ng);
|
||||||
|
|
||||||
|
if (!ng->item_active)
|
||||||
|
return; /* FIXME set edge_in before ?*/
|
||||||
|
|
||||||
|
if (box->dnd_timer)
|
||||||
|
ecore_timer_del(box->dnd_timer);
|
||||||
|
|
||||||
|
box->dnd_timer = ecore_timer_add(0.5, _cb_show_window, ng->item_active);
|
||||||
|
|
||||||
|
ng->dnd = 1;
|
||||||
|
ngi_mouse_in(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_leave(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
Ng *ng = box->ng;
|
||||||
|
|
||||||
|
if (box->dnd_timer)
|
||||||
|
{
|
||||||
|
ecore_timer_del(box->dnd_timer);
|
||||||
|
box->dnd_timer = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ng->item_active = NULL;
|
||||||
|
ngi_mouse_out(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_move(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
E_Event_Dnd_Move *ev = (E_Event_Dnd_Move *)event_info;
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
Ng *ng = box->ng;
|
||||||
|
Ngi_Item *it;
|
||||||
|
|
||||||
|
ng->pos = (ng->horizontal ? ev->x : ev->y);
|
||||||
|
|
||||||
|
it = ngi_item_at_position_get(ng);
|
||||||
|
|
||||||
|
if (!it || !ng->item_active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (ng->item_active != it)
|
||||||
|
{
|
||||||
|
if (box->dnd_timer)
|
||||||
|
ecore_timer_del(box->dnd_timer);
|
||||||
|
box->dnd_timer = NULL;
|
||||||
|
|
||||||
|
if (it)
|
||||||
|
{
|
||||||
|
ngi_item_activate(ng);
|
||||||
|
|
||||||
|
box->dnd_timer = ecore_timer_add(0.5, _cb_show_window, it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngi_animate(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_drop_end(void *data, const char *type, void *event_info)
|
||||||
|
{
|
||||||
|
Ngi_Box *box = (Ngi_Box *)data;
|
||||||
|
Ng *ng = box->ng;
|
||||||
|
|
||||||
|
if (!ng->item_active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (box->dnd_timer)
|
||||||
|
{
|
||||||
|
ecore_timer_del(box->dnd_timer);
|
||||||
|
box->dnd_timer = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ng->item_active = NULL;
|
||||||
|
ngi_mouse_out(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_cb_show_window(void *data)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it = (Ngi_Item_Taskbar*) data;
|
||||||
|
E_Desk *desk;
|
||||||
|
|
||||||
|
if (!it) return EINA_FALSE;
|
||||||
|
|
||||||
|
desk = e_desk_current_get(it->border->zone);
|
||||||
|
|
||||||
|
if (desk != it->border->desk && !it->border->sticky)
|
||||||
|
{
|
||||||
|
e_desk_show(it->border->desk);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (it->border->shaded)
|
||||||
|
{
|
||||||
|
e_border_unshade(it->border, E_DIRECTION_UP);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!it->border->visible)
|
||||||
|
{
|
||||||
|
e_border_show(it->border);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (it->border->iconic)
|
||||||
|
{
|
||||||
|
e_border_uniconify(it->border);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e_border_raise(it->border);
|
||||||
|
}
|
||||||
|
|
||||||
|
e_border_focus_set(it->border, 1, 1);
|
||||||
|
|
||||||
|
it->base.box->dnd_timer = NULL;
|
||||||
|
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ************************** BORDER CALLBACKS ************************* */
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_cb_border_event(void *data, int type, void *event)
|
||||||
|
{
|
||||||
|
E_Event_Border_Add *ev = event;
|
||||||
|
Ngi_Box *box = data;
|
||||||
|
Ngi_Item *it;
|
||||||
|
E_Border *bd = ev->border;
|
||||||
|
|
||||||
|
/* XXX workaround for e sending event after the
|
||||||
|
* border_remove event */
|
||||||
|
/* if (bd->already_unparented)
|
||||||
|
* return ECORE_CALLBACK_PASS_ON; */
|
||||||
|
|
||||||
|
it = (Ngi_Item*)_border_find(box, bd);
|
||||||
|
|
||||||
|
if (type == E_EVENT_BORDER_FOCUS_IN)
|
||||||
|
{
|
||||||
|
if (it) ngi_item_signal_emit(it, "e,state,taskbar,focus,on");
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_FOCUS_OUT)
|
||||||
|
{
|
||||||
|
if (it) ngi_item_signal_emit(it, "e,state,taskbar,focus,off");
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_ICONIFY)
|
||||||
|
{
|
||||||
|
if (it) ngi_item_signal_emit(it, "e,state,taskbar,iconic,on");
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_UNICONIFY)
|
||||||
|
{
|
||||||
|
if (it) ngi_item_signal_emit(it, "e,state,taskbar,iconic,off");
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_ICON_CHANGE)
|
||||||
|
{
|
||||||
|
if (it) _item_set_icon((Ngi_Item_Taskbar *)it);
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_ADD)
|
||||||
|
{
|
||||||
|
_item_new(box, bd);
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_REMOVE)
|
||||||
|
{
|
||||||
|
if (it) ngi_item_remove(it);
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_ZONE_SET)
|
||||||
|
{
|
||||||
|
if (box->ng->zone == bd->zone)
|
||||||
|
_item_new(box, bd);
|
||||||
|
else if (it)
|
||||||
|
ngi_item_remove(it);
|
||||||
|
}
|
||||||
|
else if ((type == E_EVENT_BORDER_URGENT_CHANGE) && (it))
|
||||||
|
{
|
||||||
|
if (bd->client.icccm.urgent)
|
||||||
|
{
|
||||||
|
((Ngi_Item_Taskbar *)it)->urgent = 1;
|
||||||
|
ngi_item_signal_emit(it, "e,state,taskbar,urgent,on");
|
||||||
|
|
||||||
|
if (box->ng->cfg->autohide_show_urgent)
|
||||||
|
{
|
||||||
|
ngi_bar_lock(box->ng, 1);
|
||||||
|
ngi_animate(box->ng);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
((Ngi_Item_Taskbar *)it)->urgent = 0;
|
||||||
|
ngi_item_signal_emit(it, "e,state,taskbar,urgent,off");
|
||||||
|
|
||||||
|
if (box->ng->cfg->autohide_show_urgent)
|
||||||
|
{
|
||||||
|
ngi_bar_lock(box->ng, 0);
|
||||||
|
ngi_animate(box->ng);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (type == E_EVENT_BORDER_PROPERTY)
|
||||||
|
{
|
||||||
|
if (it)
|
||||||
|
{
|
||||||
|
if (!_border_check(box, bd))
|
||||||
|
ngi_item_remove(it);
|
||||||
|
else
|
||||||
|
_item_set_label((Ngi_Item_Taskbar *)it);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_item_new(box, ev->border);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_cb_desk_show(void *data, int type, void *event)
|
||||||
|
{
|
||||||
|
E_Event_Desk_Show *ev = event;
|
||||||
|
Ngi_Box *box = data;
|
||||||
|
Ngi_Item_Taskbar *it;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
|
if (ev->desk->zone != box->ng->zone)
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
|
if (!box->cfg->taskbar_show_desktop)
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(box->items, l, it)
|
||||||
|
{
|
||||||
|
if ((it->border->desk == ev->desk) || (it->border->sticky))
|
||||||
|
{
|
||||||
|
evas_object_show(it->base.obj);
|
||||||
|
evas_object_show(it->base.over);
|
||||||
|
it->base.scale = 1.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
evas_object_hide(it->base.obj);
|
||||||
|
evas_object_hide(it->base.over);
|
||||||
|
it->base.scale = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngi_thaw(box->ng);
|
||||||
|
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* *************************** TASKBAR ITEM *************************** */
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_new(Ngi_Box *box, E_Border *bd)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it, *l_it = NULL, *ll_it = NULL;
|
||||||
|
Ngi_Item *item;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
|
if (!_border_check(box, bd))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_border_find(box, bd))
|
||||||
|
return;
|
||||||
|
|
||||||
|
it = E_NEW(Ngi_Item_Taskbar, 1);
|
||||||
|
it->base.box = box;
|
||||||
|
item = (Ngi_Item*) it;
|
||||||
|
ngi_item_init_defaults(item);
|
||||||
|
|
||||||
|
e_object_ref(E_OBJECT(bd));
|
||||||
|
it->border = bd;
|
||||||
|
|
||||||
|
it->base.cb_free = _item_cb_free;
|
||||||
|
it->base.cb_mouse_in = _item_cb_mouse_in;
|
||||||
|
it->base.cb_mouse_out = _item_cb_mouse_out;
|
||||||
|
it->base.cb_mouse_down = _item_cb_mouse_down;
|
||||||
|
it->base.cb_mouse_up = _item_cb_mouse_up;
|
||||||
|
it->base.cb_drag_start = _item_cb_drag_start;
|
||||||
|
|
||||||
|
_item_set_icon(it);
|
||||||
|
_item_set_label(it);
|
||||||
|
|
||||||
|
if ((box->cfg->taskbar_group_apps) &&
|
||||||
|
(bd->client.icccm.class && bd->client.icccm.class[0]))
|
||||||
|
{
|
||||||
|
it->class = eina_stringshare_ref(bd->client.icccm.class);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(box->items, l, l_it)
|
||||||
|
{
|
||||||
|
if (!l_it->class)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (l_it->class == it->class)
|
||||||
|
{
|
||||||
|
ll_it = l_it;
|
||||||
|
}
|
||||||
|
else if ((ll_it) && (l_it->class != it->class))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ll_it)
|
||||||
|
box->items = eina_list_append_relative(box->items, it, ll_it);
|
||||||
|
else if (box->cfg->taskbar_append_right)
|
||||||
|
box->items = eina_list_append(box->items, it);
|
||||||
|
else
|
||||||
|
box->items = eina_list_prepend(box->items, it);
|
||||||
|
|
||||||
|
if ((box->cfg->taskbar_show_desktop) &&
|
||||||
|
(bd->desk != e_desk_current_get(box->ng->zone)) &&
|
||||||
|
(!bd->sticky))
|
||||||
|
{
|
||||||
|
ngi_item_show(item, 1);
|
||||||
|
item->scale = 0.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ngi_item_show(item, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bd->iconic)
|
||||||
|
ngi_item_signal_emit(item, "e,state,taskbar,iconic,on");
|
||||||
|
|
||||||
|
it->urgent = bd->client.icccm.urgent;
|
||||||
|
if (it->urgent)
|
||||||
|
ngi_item_signal_emit(item, "e,state,taskbar,urgent,on");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_free(Ngi_Item *item)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it = (Ngi_Item_Taskbar *) item;
|
||||||
|
|
||||||
|
if (it->urgent)
|
||||||
|
ngi_bar_lock(item->box->ng, 0);
|
||||||
|
|
||||||
|
if (it->border)
|
||||||
|
e_object_unref(E_OBJECT(it->border));
|
||||||
|
|
||||||
|
if (it->o_icon)
|
||||||
|
evas_object_del(it->o_icon);
|
||||||
|
|
||||||
|
if (it->o_proxy)
|
||||||
|
edje_object_part_unswallow(it->base.obj, it->o_proxy);
|
||||||
|
|
||||||
|
E_FREE(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
Evas_Object *
|
||||||
|
_border_icon_add(E_Border *bd, Evas *evas)
|
||||||
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
|
||||||
|
E_OBJECT_CHECK_RETURN(bd, NULL);
|
||||||
|
E_OBJECT_TYPE_CHECK_RETURN(bd, E_BORDER_TYPE, NULL);
|
||||||
|
|
||||||
|
o = NULL;
|
||||||
|
|
||||||
|
if (bd->internal)
|
||||||
|
{
|
||||||
|
if (!bd->internal_icon)
|
||||||
|
{
|
||||||
|
o = e_icon_add(evas);
|
||||||
|
e_util_icon_theme_set(o, "enlightenment");
|
||||||
|
}
|
||||||
|
else if (!bd->internal_icon_key)
|
||||||
|
{
|
||||||
|
char *ext;
|
||||||
|
ext = strrchr(bd->internal_icon, '.');
|
||||||
|
if ((ext) && ((!strcmp(ext, ".edj"))))
|
||||||
|
{
|
||||||
|
o = edje_object_add(evas);
|
||||||
|
if (!edje_object_file_set(o, bd->internal_icon, "icon"))
|
||||||
|
e_util_icon_theme_set(o, "enlightenment");
|
||||||
|
}
|
||||||
|
else if (ext)
|
||||||
|
{
|
||||||
|
o = e_icon_add(evas);
|
||||||
|
e_icon_file_set(o, bd->internal_icon);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
o = e_icon_add(evas);
|
||||||
|
e_icon_scale_size_set(o, 128);
|
||||||
|
if (!e_util_icon_theme_set(o, bd->internal_icon))
|
||||||
|
e_util_icon_theme_set(o, "enlightenment");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
o = edje_object_add(evas);
|
||||||
|
edje_object_file_set(o, bd->internal_icon, bd->internal_icon_key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bd->client.netwm.icons)
|
||||||
|
{
|
||||||
|
if (e_config->use_app_icon)
|
||||||
|
goto _use_netwm_icon;
|
||||||
|
|
||||||
|
if (bd->remember && (bd->remember->prop.icon_preference == E_ICON_PREF_NETWM))
|
||||||
|
goto _use_netwm_icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bd->desktop)
|
||||||
|
{
|
||||||
|
o = e_util_desktop_icon_add(bd->desktop, 128, evas);
|
||||||
|
if (o) return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
_use_netwm_icon:
|
||||||
|
if (bd->client.netwm.icons)
|
||||||
|
{
|
||||||
|
int i, size, tmp, found = 0;
|
||||||
|
o = e_icon_add(evas);
|
||||||
|
|
||||||
|
size = bd->client.netwm.icons[0].width;
|
||||||
|
|
||||||
|
for (i = 1; i < bd->client.netwm.num_icons; i++)
|
||||||
|
{
|
||||||
|
if ((tmp = bd->client.netwm.icons[i].width) > size)
|
||||||
|
{
|
||||||
|
size = tmp;
|
||||||
|
found = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e_icon_data_set(o, bd->client.netwm.icons[found].data,
|
||||||
|
bd->client.netwm.icons[found].width,
|
||||||
|
bd->client.netwm.icons[found].height);
|
||||||
|
e_icon_alpha_set(o, 1);
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
o = e_border_icon_add(bd, evas);
|
||||||
|
if (o) return o;
|
||||||
|
|
||||||
|
o = edje_object_add(evas);
|
||||||
|
e_util_icon_theme_set(o, "unknown");
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_set_icon(Ngi_Item_Taskbar *it)
|
||||||
|
{
|
||||||
|
Evas_Object *o, *oo;
|
||||||
|
Evas *e = it->base.box->ng->evas;
|
||||||
|
|
||||||
|
if (it->o_icon)
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow(it->base.obj, it->o_icon);
|
||||||
|
evas_object_del(it->o_icon);
|
||||||
|
}
|
||||||
|
if (it->o_proxy)
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow(it->base.obj, it->o_proxy);
|
||||||
|
evas_object_del(it->o_proxy);
|
||||||
|
}
|
||||||
|
|
||||||
|
o = _border_icon_add(it->border, e);
|
||||||
|
edje_object_part_swallow(it->base.obj, "e.swallow.content", o);
|
||||||
|
evas_object_show(o);
|
||||||
|
it->o_icon = o;
|
||||||
|
|
||||||
|
oo = evas_object_image_filled_add(e);
|
||||||
|
evas_object_image_fill_set(oo, 0, 0, 1, 1);
|
||||||
|
evas_object_image_source_set(oo, it->base.obj);
|
||||||
|
edje_object_part_swallow(it->base.over, "e.swallow.content", oo);
|
||||||
|
evas_object_show(oo);
|
||||||
|
it->o_proxy = oo;
|
||||||
|
|
||||||
|
if (it->border->iconic)
|
||||||
|
ngi_item_signal_emit((Ngi_Item*)it, "e,state,taskbar,iconic,on");
|
||||||
|
if (it->urgent)
|
||||||
|
ngi_item_signal_emit((Ngi_Item*)it, "e,state,taskbar,urgent,on");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_set_label(Ngi_Item_Taskbar *it)
|
||||||
|
{
|
||||||
|
const char *title;
|
||||||
|
unsigned int max_len = 36;
|
||||||
|
|
||||||
|
title = e_border_name_get(it->border);
|
||||||
|
|
||||||
|
if ((!title) || (!title[0]))
|
||||||
|
title = D_("No name!");
|
||||||
|
|
||||||
|
if (strlen(title) > max_len)
|
||||||
|
{
|
||||||
|
char *abbv;
|
||||||
|
const char *left, *right;
|
||||||
|
|
||||||
|
abbv = E_NEW(char, E_CLIENTLIST_MAX_CAPTION_LEN + 4);
|
||||||
|
left = title;
|
||||||
|
right = title + (strlen(title) - (max_len / 2));
|
||||||
|
|
||||||
|
strncpy(abbv, left, max_len / 2);
|
||||||
|
strncat(abbv, "...", 3);
|
||||||
|
strncat(abbv, right, max_len / 2);
|
||||||
|
|
||||||
|
ngi_item_label_set((Ngi_Item*)it, abbv);
|
||||||
|
E_FREE(abbv);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngi_item_label_set((Ngi_Item*)it, title);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ************************** ITEM CALLBACKS ************************** */
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_mouse_down(Ngi_Item *item, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it = (Ngi_Item_Taskbar *) item;
|
||||||
|
Evas_Coord x, y, w, h;
|
||||||
|
E_Border *bd;
|
||||||
|
Ng *ng;
|
||||||
|
|
||||||
|
ng = item->box->ng;
|
||||||
|
bd = it->border;
|
||||||
|
|
||||||
|
if (ev->buttons == 3 && bd)
|
||||||
|
{
|
||||||
|
int dir = E_MENU_POP_DIRECTION_AUTO;
|
||||||
|
evas_object_geometry_get(item->obj, &x, &y, &w, &h);
|
||||||
|
|
||||||
|
x += ng->win->popup->x + ng->zone->x;
|
||||||
|
y += ng->win->popup->y + ng->zone->y;
|
||||||
|
|
||||||
|
switch(ng->cfg->orient)
|
||||||
|
{
|
||||||
|
case E_GADCON_ORIENT_TOP:
|
||||||
|
dir = E_MENU_POP_DIRECTION_DOWN;
|
||||||
|
y += h;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_BOTTOM:
|
||||||
|
dir = E_MENU_POP_DIRECTION_UP;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_LEFT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_RIGHT;
|
||||||
|
x += w;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_GADCON_ORIENT_RIGHT:
|
||||||
|
dir = E_MENU_POP_DIRECTION_LEFT;
|
||||||
|
break;
|
||||||
|
} /* switch */
|
||||||
|
ngi_border_menu_show(item->box, it->border, x, y, dir, ev->timestamp);
|
||||||
|
}
|
||||||
|
else if (ev->buttons == 1 && ev->double_click && !it->border->iconic)
|
||||||
|
{
|
||||||
|
e_border_iconify(it->border);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
item->mouse_down = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_mouse_up(Ngi_Item *item, Ecore_Event_Mouse_Button *ev)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it = (Ngi_Item_Taskbar *) item;
|
||||||
|
E_Border *bd = it->border;
|
||||||
|
|
||||||
|
if (!item->mouse_down)
|
||||||
|
return;
|
||||||
|
|
||||||
|
item->mouse_down = 0;
|
||||||
|
|
||||||
|
if (it->urgent)
|
||||||
|
{
|
||||||
|
it->urgent = 0;
|
||||||
|
|
||||||
|
ngi_item_signal_emit((Ngi_Item*)it, "e,state,taskbar,urgent,off");
|
||||||
|
ngi_bar_lock(item->box->ng, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ev->buttons != 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (bd->shaded)
|
||||||
|
e_border_unshade(bd, E_DIRECTION_UP);
|
||||||
|
|
||||||
|
if (bd->shaded)
|
||||||
|
e_border_unshade(bd, E_DIRECTION_UP);
|
||||||
|
|
||||||
|
if ((e_desk_current_get(bd->zone) != bd->desk) && (!bd->sticky))
|
||||||
|
e_desk_show(bd->desk);
|
||||||
|
|
||||||
|
if (bd->iconic)
|
||||||
|
{
|
||||||
|
e_border_uniconify(bd);
|
||||||
|
|
||||||
|
if (it->border_was_fullscreen)
|
||||||
|
e_border_fullscreen(bd, (E_Fullscreen)e_config->fullscreen_policy);
|
||||||
|
|
||||||
|
it->border_was_fullscreen = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e_border_raise(bd);
|
||||||
|
}
|
||||||
|
if (bd->focused)
|
||||||
|
{
|
||||||
|
char buf[1024];
|
||||||
|
E_Action *act = e_action_find("scale-windows");
|
||||||
|
|
||||||
|
if (!act) return;
|
||||||
|
if (!bd->client.icccm.class) return;
|
||||||
|
|
||||||
|
snprintf(buf, 1024, "go_scale_class:%s", bd->client.icccm.class);
|
||||||
|
act->func.go(NULL, buf);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
e_border_focus_set(bd, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_drag_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
Ng *ng = data;
|
||||||
|
|
||||||
|
ngi_bar_lock(ng, 0);
|
||||||
|
ngi_thaw(ng);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_drag_start(Ngi_Item *item)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it = (Ngi_Item_Taskbar *) item;
|
||||||
|
E_Drag *d;
|
||||||
|
Evas_Object *o;
|
||||||
|
Evas_Coord x, y, w, h, px, py;
|
||||||
|
Ng *ng = item->box->ng;
|
||||||
|
|
||||||
|
if (!it->border)
|
||||||
|
return;
|
||||||
|
|
||||||
|
edje_object_signal_emit(ng->o_label, "e,state,label,hide", "e");
|
||||||
|
|
||||||
|
evas_object_geometry_get(it->o_icon, &x, &y, &w, &h);
|
||||||
|
|
||||||
|
if (!ngi_config->use_composite)
|
||||||
|
{
|
||||||
|
x -= ng->win->rect.x;
|
||||||
|
y -= ng->win->rect.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *drag_types[] = { "enlightenment/border" };
|
||||||
|
|
||||||
|
d = e_drag_new(ng->zone->container, x, y, drag_types, 1,
|
||||||
|
it->border, -1, NULL, _item_cb_drag_end);
|
||||||
|
|
||||||
|
o = _border_icon_add(it->border,e_drag_evas_get(d));
|
||||||
|
e_object_ref(E_OBJECT(it->border));
|
||||||
|
e_drag_object_set(d, o);
|
||||||
|
e_drag_resize(d, w, h);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _item_cb_drag_del, ng);
|
||||||
|
|
||||||
|
ecore_x_pointer_xy_get(ng->win->input, &px, &py);
|
||||||
|
e_drag_start(d, px, py);
|
||||||
|
|
||||||
|
ngi_bar_lock(ng, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_drag_end(E_Drag *drag, int dropped)
|
||||||
|
{
|
||||||
|
E_Border *bd = (E_Border *)drag->data;
|
||||||
|
|
||||||
|
if (dropped)
|
||||||
|
{
|
||||||
|
e_object_unref(E_OBJECT(bd));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
E_Desk *desk = e_desk_current_get(bd->zone);
|
||||||
|
int w = bd->zone->w;
|
||||||
|
int h = bd->zone->h;
|
||||||
|
|
||||||
|
if (desk != bd->desk)
|
||||||
|
e_border_desk_set(bd, desk);
|
||||||
|
|
||||||
|
if ((bd->w < w) && (bd->h < w))
|
||||||
|
{
|
||||||
|
int dx = abs(drag->x - w/2);
|
||||||
|
int dy = abs(drag->y - h/2);
|
||||||
|
|
||||||
|
if (sqrt(dx*dx + dy*dy) < w/8)
|
||||||
|
{
|
||||||
|
drag->x = w/2;
|
||||||
|
drag->y = h/2;
|
||||||
|
}
|
||||||
|
|
||||||
|
int x = drag->x - bd->w/2;
|
||||||
|
|
||||||
|
if (bd->w < w - 50)
|
||||||
|
{
|
||||||
|
if (x < 50) x = 50;
|
||||||
|
if (x + bd->w > w) x = w - bd->w - 50;
|
||||||
|
}
|
||||||
|
else x = bd->x;
|
||||||
|
|
||||||
|
int y = drag->y - bd->h/2;
|
||||||
|
|
||||||
|
if (bd->h < h - 50)
|
||||||
|
{
|
||||||
|
if (y < 50) y = 50;
|
||||||
|
if (y + bd->h > h) y = h - bd->h - 50;
|
||||||
|
}
|
||||||
|
else y = bd->y;
|
||||||
|
|
||||||
|
e_border_move(bd, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bd->iconic)
|
||||||
|
e_border_uniconify(bd);
|
||||||
|
else
|
||||||
|
e_border_raise(bd);
|
||||||
|
|
||||||
|
if (bd->shaded)
|
||||||
|
e_border_unshade(bd, E_DIRECTION_UP);
|
||||||
|
|
||||||
|
e_object_unref(E_OBJECT(bd));
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_cb_preview_hide(void *data)
|
||||||
|
{
|
||||||
|
Ng *ng = data;
|
||||||
|
|
||||||
|
ng->effect_timer = NULL;
|
||||||
|
|
||||||
|
ecore_x_client_message32_send(e_manager_current_get()->root,
|
||||||
|
ECORE_X_ATOM_NET_WM_ICON_GEOMETRY,
|
||||||
|
SubstructureNotifyMask,
|
||||||
|
0, 0, 0, 0, 0);
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_mouse_in(Ngi_Item *item)
|
||||||
|
{
|
||||||
|
Ngi_Item_Taskbar *it = (Ngi_Item_Taskbar *) item;
|
||||||
|
|
||||||
|
Ng *ng = item->box->ng;
|
||||||
|
|
||||||
|
if (ng->cfg->ecomorph_features)
|
||||||
|
{
|
||||||
|
if (ng->effect_timer)
|
||||||
|
ecore_timer_del(ng->effect_timer);
|
||||||
|
|
||||||
|
ng->effect_timer = NULL;
|
||||||
|
|
||||||
|
ecore_x_client_message32_send(e_manager_current_get()->root,
|
||||||
|
ECORE_X_ATOM_NET_WM_ICON_GEOMETRY,
|
||||||
|
SubstructureNotifyMask,
|
||||||
|
it->border->win, item->pos,
|
||||||
|
(double)ng->size * item->scale,
|
||||||
|
ng->cfg->orient,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_cb_mouse_out(Ngi_Item *it)
|
||||||
|
{
|
||||||
|
Ng *ng = it->box->ng;
|
||||||
|
if (ng->cfg->ecomorph_features)
|
||||||
|
{
|
||||||
|
if (ng->effect_timer)
|
||||||
|
ecore_timer_del(ng->effect_timer);
|
||||||
|
|
||||||
|
ng->effect_timer = ecore_timer_add(0.2, _cb_preview_hide, ng);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|