Browse Source

* Import my 4_5_nick branch into trunk:

- Completely rewritten launcher (Bugs 2336, 2365, 1323, 2262 and 1225)
	  - Various improvements in libxfce4panel (memory leaks, G_GNUC_INTERNAL,
	    GSList, canonical strings and fixed pedantic warnings).
	  - Libxfce4panel does no longer depend on libxfcegui4. This might cause
	    some problems with plugins. Plugin developers should add libxfcegui4
	    to the dependencies of their package (including cflags and libadd in
	    the makefiles).

(Old svn revision: 25077)
upstream/xfce4-panel-4.10.1
Nick Schermer 16 years ago
parent
commit
78f66fe712
  1. 4
      AUTHORS
  2. 10
      COPYING
  3. 3
      COPYING.LIB
  4. 11
      ChangeLog
  5. 127
      HACKING
  6. 51
      Makefile.am
  7. 87
      NEWS
  8. 54
      README
  9. 20
      README.Kiosk
  10. 4
      README.Plugins
  11. 46
      TODO
  12. 6
      autogen.sh
  13. 27
      config/Makefile.am
  14. 7
      config/launcher-10.rc.in
  15. 8
      config/launcher-7.rc.in
  16. 7
      config/launcher-8.rc.in
  17. 7
      config/launcher-9.rc.in
  18. 135
      configure.ac.in
  19. 205
      configure.in.in
  20. 15
      icons/16x16/Makefile.am
  21. 0
      icons/16x16/xfce-system-exit.png
  22. 0
      icons/16x16/xfce-system-info.png
  23. 0
      icons/16x16/xfce-system-lock.png
  24. 0
      icons/16x16/xfce-system-settings.png
  25. 14
      icons/48x48/Makefile.am
  26. 0
      icons/48x48/xfce-mouse.png
  27. 0
      icons/48x48/xfce4-iconbox.png
  28. 0
      icons/48x48/xfce4-panel.png
  29. 0
      icons/48x48/xfce4-taskbar.png
  30. 23
      icons/Makefile.am
  31. BIN
      icons/xfce-mail.png
  32. 182
      libxfce4panel/Makefile.am
  33. 11
      libxfce4panel/libxfce4panel-1.0.pc.in
  34. 254
      libxfce4panel/xfce-arrow-button.c
  35. 67
      libxfce4panel/xfce-arrow-button.h
  36. 96
      libxfce4panel/xfce-hvbox.c
  37. 39
      libxfce4panel/xfce-hvbox.h
  38. 933
      libxfce4panel/xfce-itembar.c
  39. 157
      libxfce4panel/xfce-itembar.h
  40. 3
      libxfce4panel/xfce-marshal.list
  41. 55
      libxfce4panel/xfce-panel-convenience.c
  42. 47
      libxfce4panel/xfce-panel-convenience.h
  43. 43
      libxfce4panel/xfce-panel-enums.h
  44. 398
      libxfce4panel/xfce-panel-external-item.c
  45. 62
      libxfce4panel/xfce-panel-external-item.h
  46. 433
      libxfce4panel/xfce-panel-external-plugin.c
  47. 56
      libxfce4panel/xfce-panel-external-plugin.h
  48. 487
      libxfce4panel/xfce-panel-internal-plugin.c
  49. 63
      libxfce4panel/xfce-panel-internal-plugin.h
  50. 239
      libxfce4panel/xfce-panel-item-iface.c
  51. 161
      libxfce4panel/xfce-panel-item-iface.h
  52. 49
      libxfce4panel/xfce-panel-macros.h
  53. 129
      libxfce4panel/xfce-panel-plugin-iface-private.h
  54. 700
      libxfce4panel/xfce-panel-plugin-iface.c
  55. 139
      libxfce4panel/xfce-panel-plugin-iface.h
  56. 37
      libxfce4panel/xfce-panel-plugin-messages.c
  57. 50
      libxfce4panel/xfce-panel-plugin-messages.h
  58. 151
      libxfce4panel/xfce-panel-plugin.h
  59. 654
      libxfce4panel/xfce-panel-window.c
  60. 172
      libxfce4panel/xfce-panel-window.h
  61. 2
      mcs-plugin/Makefile.am
  62. 98
      mcs-plugin/plugin.c
  63. 127
      panel/Makefile.am
  64. 20
      panel/main.c
  65. 24
      plugins/Makefile.am
  66. 82
      plugins/actions/Makefile.am
  67. 126
      plugins/actions/actions.c
  68. 2
      plugins/actions/actions.desktop.in.in
  69. 82
      plugins/clock/Makefile.am
  70. 152
      plugins/clock/clock.c
  71. 2
      plugins/clock/clock.desktop.in.in
  72. 82
      plugins/iconbox/Makefile.am
  73. 233
      plugins/iconbox/iconbox.c
  74. 2
      plugins/iconbox/iconbox.desktop.in.in
  75. 91
      plugins/launcher/Makefile.am
  76. 2819
      plugins/launcher/launcher-dialog.c
  77. 18
      plugins/launcher/launcher-dialog.h
  78. 602
      plugins/launcher/launcher-exec.c
  79. 29
      plugins/launcher/launcher-exec.h
  80. 1855
      plugins/launcher/launcher.c
  81. 2
      plugins/launcher/launcher.desktop.in.in
  82. 158
      plugins/launcher/launcher.h
  83. 82
      plugins/pager/Makefile.am
  84. 106
      plugins/pager/pager.c
  85. 2
      plugins/pager/pager.desktop.in.in
  86. 82
      plugins/separator/Makefile.am
  87. 80
      plugins/separator/separator.c
  88. 2
      plugins/separator/separator.desktop.in.in
  89. 83
      plugins/showdesktop/Makefile.am
  90. 1
      plugins/showdesktop/showdesktop.c
  91. 2
      plugins/showdesktop/showdesktop.desktop.in.in
  92. 82
      plugins/systray/Makefile.am
  93. 98
      plugins/systray/systray.c
  94. 2
      plugins/systray/systray.desktop.in.in
  95. 87
      plugins/tasklist/Makefile.am
  96. 253
      plugins/tasklist/tasklist-dialogs.c
  97. 25
      plugins/tasklist/tasklist-dialogs.h
  98. 539
      plugins/tasklist/tasklist.c
  99. 2
      plugins/tasklist/tasklist.desktop.in.in
  100. 56
      plugins/tasklist/tasklist.h

4
AUTHORS

@ -1,7 +1,7 @@
Maintainers
===========
Jasper Huijsmans <jasper@xfce.org>
Nick Schermer <nick@xfce.org>
Jasper Huijsmans <jasper@xfce.org>
Nick Schermer <nick@xfce.org>
Contributors
============

10
COPYING

@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest

3
COPYING_LIBS → COPYING.LIB

@ -1,6 +1,3 @@
This license applies to the libraries in this package, but not the
applications. See header comments in specific source files.
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991

11
ChangeLog

@ -1,3 +1,14 @@
2007-03-03 21:00 nick
* Import my 4_5_nick branch into trunk:
- Completely rewritten launcher (Bugs 2336, 2365, 1323, 2262 and 1225)
- Various improvements in libxfce4panel (memory leaks, G_GNUC_INTERNAL,
GSList, canonical strings and fixed pedantic warnings).
- Libxfce4panel does no longer depend on libxfcegui4. This might cause
some problems with plugins. Plugin developers should add libxfcegui4
to the dependencies of their package (including cflags and libadd in
the makefiles).
2007-01-19 19:59 nick
* NEWS: Update NEWS

127
HACKING

@ -1,58 +1,85 @@
This file describes the coding style I prefer for the panel. If you want to
help out with panel development, please try to conform to these 'rules'.
-- Jasper
* 2006-12-26
Nick prefers to align variable declarations, so here is an updated set of rules:
- Coding style:
o Indentation is 4 spaces. Expand tabs, i.e. only use spaces for indentation.
o Braces are on a new line. For one-line if statements braces may be omitted.
o Return type of function definitions on a separate line.
o Function arguments on separate lines with the same alignment rules as
variable declarations.
o Variable declarations are aligned on the variable name. Short variable
declarations may be combined. Example:
static gboolean
example_function (GtkWidget *widget,
Panel *panel,
int value)
{
XfceHandleType type;
const char *string;
int important_value;
int i, n, x, y;
/* ... */
}
o In header files and for static prototypes, you may align functions names as
well as arguments. No need to limit the line length. Example:
static gboolean xfce_panel_long_name_for_example_function (GtkWidget *widget,
Panel *panel,
int value);
static void example_function_2 (Panel *panel,
const char *value);
- ChangeLog: I use the svn2cl package to create the changelog from the SVN log
messages.
o Website: http://ch.tudelft.nl/~arthur/svn2cl/ .
o Current version: 0.8.
o Command line: svn2cl.sh --linelen=74 --break-before-msg .
Note: I don't care about linelen, but with this parameter the changes with
previous ChangeLog were smallest.
- Patches: use 'svn diff' to create patches if possible, or 'diff -u'.
Bug tracking system
===================
To report bugs or file feature requests for xfce4-panel, please
use the Xfce bugzilla at http://bugzilla.xfce.org/. The product
is Xfce, component xfce4-panel.
Before reporting the bug, please search the bug tracker, to make
sure it wasn't reported already before.
Patches
=======
Please submit patches to the Xfce bug tracking system or use the
xfce4-dev mailinglists.
Please send a patch againts a recent version of xfce4-panel. Patches
against the Subversion trunk branch are most preferable. You can always
access the trunk branch from
http://svn.xfce.org/svn/xfce/xfce4-panel/trunk
or using an installed Subversion client
svn co http://svn.xfce.org/svn/xfce/xfce4-panel/trunk xfce4-panel
Coding Style
============
- Always expand tabs, so the code is not dependent from a gives tab
setting.
- Braces are on a new line. For one-line if statements braces may be omitted.
- Return type of function definitions on a separate line.
- Function arguments on separate lines with the same alignment rules as
variable declarations.
- Use 3 empty lines between functions.
- Variable declarations are aligned on the variable name. Short variable
declarations may be combined. Example:
static gboolean
example_function (GtkWidget *widget,
Panel *panel,
gint value)
{
XfceHandleType type;
const gchar *string;
gint important_value;
gint i, n, x, y;
/* ... */
}
- In header files and for static prototypes, you may align functions names as
well as arguments. No need to limit the line length. Example:
static gboolean xfce_panel_long_name_for_example_function (GtkWidget *widget,
Panel *panel,
gint value);
static void example_function_2 (Panel *panel,
const gchar *value);
- Write ChangeLog entries.
ChangeLogs
==========
I use the svn2cl package to create the changelog from the SVN log messages.
- Website: http://ch.tudelft.nl/~arthur/svn2cl/ .
- Current version: 0.8.
- Command line: svn2cl.sh --linelen=74 --break-before-msg.
Note: I don't care about linelen, but with this parameter the changes with
previous ChangeLog were smallest.
Misc
====
- If you have SVN access it is ok to commit trivial changes directly, but
please send a patch to the mailing list for discussion for any non-trivial
or non-obvious changes.
- As an exception to the rule above, if you are managing an Xfce release, feel
free to do anything you need to achieve that goal.
- Managing the po/ directory, including the ChangeLog found there is left
completely in the hands of the Xfce Translation Team.

51
Makefile.am

@ -1,30 +1,5 @@
# $Id$
EXTRA_DIST = \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
AUTHORS \
COPYING \
COPYING_LIBS \
ChangeLog \
HACKING \
INSTALL \
NEWS \
README \
README.Kiosk \
README.Plugins \
.indent.pro \
xfce4-panel.spec
DISTCLEANFILES = \
configure.ac \
intltool-extract \
intltool-merge \
intltool-update
# docs should be at the end to make sure the library is build before
# scanning it.
SUBDIRS = \
config \
icons \
@ -35,12 +10,8 @@ SUBDIRS = \
po \
docs
AUTOMAKE_OPTIONS = \
1.8 \
dist-bzip2
distclean-local:
rm -rf *.cache *~
rm -rf *.spec *.cache *~
rpm: dist
rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
@ -49,6 +20,24 @@ rpm: dist
html:
make -C docs html
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
EXTRA_DIST = \
README \
COPYING \
COPYING.LIB \
HACKING \
INSTALL \
xfce4-panel.spec.in \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
DISTCLEANFILES = \
xfce4-panel.spec \
intltool-extract \
intltool-merge \
intltool-update
DISTCHECK_CONFIGURE_FLAGS = \
--enable-gtk-doc
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

87
NEWS

@ -1,44 +1,51 @@
NEWS for xfce4-panel
====================
4.4.0
4.5.x
=====
- Many fixes when using the panel in a multiscreen setup (Jasper, Nick)
- Update or add blinking for urgent windows in taslist, windowlist and iconbox.
(Jasper)
- Move test plugin to Xfce Goodies. (Nick)
- Several fixes for (re)sizing and positioning behavior. (Jasper)
- Lots of small fixes and polish. (Jasper, Nick, Olivier, Benedikt)
- Update manual. (Jasper)
- Many translation updates. (Xfce Translation Team)
4.3.99.2 (4.4-RC2)
==================
- Adjust the plugin system to improve support for other platforms
(read: windows). (Jasper, Olivier)
- Many small fixes. (Jasper, Nick, Olivier, Jean-Francois)
- Translation updates. (Xfce Translation Team)
4.3.99.1 (4.4-RC1)
==================
- Add helper utility to open windowlist, useful for keyboard shortcuts.
Patch by Darren Salt. (Jasper)
- Create dummy scripts for obsolete xftaskbar4 and xfce4-iconbox.
- Change unix signal handling to use a pipe with an io watch, instead
of a timeout. (Jasper)
- Add search box to new item dialog. Patch by Benedikt. (Jasper)
- Fixes and improvements to memory management, and timeout handling.
(Nick, Jasper)
- Translation updates. (Xfce Translation Team)
4.3.x (changes from 4.2.x)
==========================
- Major rewrite of the panel
- New plugin API supporting out-of-process plugins
- Support for multiple panels
- Completely rewritten launcher (Bugs 2336, 2365, 1323, 2262 and 1225)
- Various improvements in libxfce4panel (memory leaks, G_GNUC_INTERNAL,
GSList, canonical strings and fixed pedantic warnings).
- Libxfce4panel does no longer depend on libxfcegui4. This might cause
some problems with plugins. Plugin developers should add libxfcegui4
to the dependencies of their package (including cflags and libadd in
the makefiles).
4.3.99.3 (4.4-RC3)
==================
- Update or add blinking for urgent windows in taslist, windowlist and iconbox.
(Jasper)
- Move test plugin to Xfce Goodies. (Nick)
- Several fixes for (re)sizing and positioning behavior. (Jasper)
- Lots of small fixes and polish. (Jasper, Nick, Olivier, Benedikt)
- Update manual. (Jasper)
- Many translation updates. (Xfce Translation Team)
4.3.99.2 (4.4-RC2)
==================
- Adjust the plugin system to improve support for other platforms
(read: windows). (Jasper, Olivier)
- Many small fixes. (Jasper, Nick, Olivier, Jean-Francois)
- Translation updates. (Xfce Translation Team)
4.3.99.1 (4.4-RC1)
==================
- Add helper utility to open windowlist, useful for keyboard shortcuts.
Patch by Darren Salt. (Jasper)
- Create dummy scripts for obsolete xftaskbar4 and xfce4-iconbox.
- Change unix signal handling to use a pipe with an io watch, instead
of a timeout. (Jasper)
- Add search box to new item dialog. Patch by Benedikt. (Jasper)
- Fixes and improvements to memory management, and timeout handling.
(Nick, Jasper)
- Translation updates. (Xfce Translation Team)
4.3.x (changes from 4.2.x)
==========================
- Major rewrite of the panel
- New plugin API supporting out-of-process plugins
- Support for multiple panels
- Xinerama and multi-head support

54
README

@ -1,11 +1,9 @@
README for xfce version 4.4.x
=============================
What is it?
===========
WHAT IS IT ?
------------
'xfce4-panel' is the panel of the Xfce Desktop Environment. It is no longer
modeled after the CDE panel like the first versions of xfce.
This version is based on GTK2 and should have all the advantages that come
This version is based on GTK+ and should have all the advantages that come
with this toolkit (see http://www.gtk.org).
The panel provides program lauchers with, optionally, non-hierarchical menus
@ -13,3 +11,49 @@ The panel provides program lauchers with, optionally, non-hierarchical menus
pager. Additional plugins may be installed separately.
Installation
============
The file 'INSTALL' contains generic installation instructions.
Plugins
=======
Starting from version 4.4, the Xfce Panel support two types of plugins:
* Internal plugins. These are loadable modules, using the gmodule interface.
* External plugins. These are separate programs that are embedded into the
panel using the GtkPlug/GtkSocket mechanism.
For more information about the panel plugins framework, you can read the API
documentation (http://www.xfce.org/documentation/4.4/api/libxfce4panel/) or
the panel plugins how to (http://wiki.xfce.org/panel_plugins_howto).
KIOSK mode
==========
The Xfce Panel supports the KIOSK mode introduced with libxfce4util 4.1.13.
It provides the following KIOSK capabilities:
CustomizePanel: Only users with this capability will be allowed to customize
their panel (add panel plugins, configure panel plugins, add launchers, etc.).
This is similar to setting the environment va- riable XFCE_DISABLE_USER_CONFIG
with the old panel.
So a sample xfce4-panel section in your kioskrc might look like this:
<-- start snip -->
[xfce4-panel]
CustomizePanel=%powerusers,foo
<-- end snip -->
This allows only users in the group powerusers and the user foo to customize
their panels.
How to report bugs?
===================
Bugs should be reported to the Xfce bug tracking system:
(http://bugzilla.xfce.org, product Xfce, component xfce4-panel).

20
README.Kiosk

@ -1,20 +0,0 @@
The Xfce Panel supports the KIOSK mode introduced with libxfce4util 4.1.13. It
provides the following KIOSK capabilities:
CustomizePanel Only users with this capability will be allowed
to customize their panel (add panel plugins,
configure panel plugins, add launchers, etc.).
This is similar to setting the environment va-
riable XFCE_DISABLE_USER_CONFIG with the old
panel.
So a sample xfce4-panel section in your kioskrc might look like this:
--- snip ---
[xfce4-panel]
CustomizePanel=%powerusers,foo
--- snip ---
This allows only users in the group powerusers and the user foo to customize
their panels.

4
README.Plugins

@ -1,4 +0,0 @@
Information about the plugin system can be found on the Xfce wiki:
http://wiki.xfce.org/panel_plugins_howto

46
TODO

@ -0,0 +1,46 @@
General
=======
* Improve the code layout, so it is consistent and easy to read. We should also
add more comments inside functions. (Nick & Jasper)
Launcher
========
* Finish the orientation code. I have no idea what to do here, because we
have no solution for the customizable arrow direction yet. (Nick)
* We also need a good way to popup the launcher menu when we drag over the
button. (Nick)
Panel
=====
* Re-evaluate interfaces. Make sure not too much implementation detail is
visible between separate parts of the panel.
Libxfce4panel
=============
* In xfce-panel-plugin-iface we use g_object_{get,set} all over the place,
this should be changed to reduce the number of relocations.
* Create some macros for common used code in plugins. This should make writing
consistent plugins easier.
Tasklist
========
* We're going to rewrite the tasklist, see bug #2680 for more information. (Nick)
--- End of sane plans ---
Blue Sky
========
* Transparency. The way cairo is integrated into gtk means we will need to
write our own widgets for panel plugins, because every widget with a window
needs to handle this separately :( See
http://www.loculus.nl/xfce/files/panel-cairo-20070125.patch for a quick
hack.
It would be much nicer if transparency were a style property, configurable
by a gtkrc file, but I don't think that will happen any time soon...

6
autogen.sh

@ -1,6 +1,6 @@
#!/bin/sh
#
# $Id: autogen.sh 4312 2005-01-27 10:10:04Z jasper $
# $Id: autogen.sh 25025 2007-02-24 09:54:07Z jasper $
#
# Copyright (c) 2002-2005
# The Xfce development team. All rights reserved.
@ -32,13 +32,13 @@ linguas=`sed -e '/^#/d' po/LINGUAS`
revision=`LC_ALL=C svn info $0 | awk '/^Revision: / {printf "%05d\n", $2}'`
sed -e "s/@LINGUAS@/${linguas}/g" \
-e "s/@REVISION@/${revision}/g" \
< "configure.ac.in" > "configure.ac"
< "configure.in.in" > "configure.in"
xdt-autogen $@
# xdt-autogen clean does not remove all generated files
(test x"clean" = x"$1") && {
rm -f configure.ac
rm -f configure.in
rm -f INSTALL
} || true
# vi:set ts=2 sw=2 et ai:

27
config/Makefile.am

@ -1,18 +1,35 @@
# $Id$
confdir = \
$(sysconfdir)/xdg/xfce4/panel
conf_in_files = \
launcher-7.rc.in \
launcher-8.rc.in \
launcher-9.rc.in \
launcher-10.rc.in
conf_files = $(conf_in_files:.rc.in=.rc)
conf_files = \
$(conf_in_files:.rc.in=.rc)
confdir = $(sysconfdir)/xdg/xfce4/panel
conf_DATA = panels.xml systray-4.rc xfce4-menu-5.rc clock-14.rc $(conf_files)
conf_DATA = \
panels.xml \
systray-4.rc \
xfce4-menu-5.rc \
clock-14.rc \
$(conf_files)
# copied from INTLTOOL_DESKTOP_RULE
%.rc: %.rc.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
EXTRA_DIST = panels.xml systray-4.rc xfce4-menu-5.rc clock-14.rc $(conf_in_files)
EXTRA_DIST = \
panels.xml \
systray-4.rc \
xfce4-menu-5.rc \
clock-14.rc \
$(conf_in_files)
distclean-local:
distclean-local:
rm -f $(conf_files)
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

7
config/launcher-10.rc.in

@ -1,8 +1,11 @@
[Global]
MoveFirst=false
[Entry 0]
_Name=Web Browser
_Comment=Surf the internet
Icon=internet-web-browser
Exec=exo-open --launch WebBrowser
Terminal=false
StartupNotify=false
_Comment=Surf the internet
X-XFCE-IconCategory=7

8
config/launcher-7.rc.in

@ -1,8 +1,10 @@
[Global]
MoveFirst=false
[Entry 0]
_Name=Command Prompt
_Comment=X terminal emulator
Icon=utilities-terminal
Exec=Terminal
Terminal=false
StartupNotify=true
_Comment=X terminal emulator
X-XFCE-IconCategory=13

7
config/launcher-8.rc.in

@ -1,8 +1,11 @@
[Global]
MoveFirst=false
[Entry 0]
_Name=Editor
_Comment=Edit text files
Icon=accessories-text-editor
Exec=mousepad
Terminal=false
StartupNotify=true
_Comment=Edit text files
X-XFCE-IconCategory=1

7
config/launcher-9.rc.in

@ -1,8 +1,11 @@
[Global]
MoveFirst=false
[Entry 0]
_Name=File Manager
_Comment=Manage files and folders
Icon=Thunar
Exec=thunar
Terminal=false
StartupNotify=true
_Comment=Manage files and folders
X-XFCE-IconCategory=2

135
configure.ac.in

@ -1,135 +0,0 @@
dnl configure.ac
dnl
dnl xfce4 - panel for the Xfce Desktop environment
dnl
dnl 2005-2007 Jasper Huijsmans <jasper@xfce.org>
dnl
dnl library version info
m4_define([libxfce4panel_verinfo], [2:2:1])
dnl panel version info
m4_define([xfce4_panel_version_major], [4])
m4_define([xfce4_panel_version_minor], [4])
m4_define([xfce4_panel_version_micro], [0])
m4_define([xfce4_panel_version_nano], []) dnl leave this empty to have no nano version
m4_define([xfce4_panel_version_build], [@REVISION@])
m4_define([xfce4_panel_version_tag], [])
m4_define([xfce4_panel_version], [xfce4_panel_version_major().xfce4_panel_version_minor().xfce4_panel_version_micro()ifelse(xfce4_panel_version_nano(), [], [], [.xfce4_panel_version_nano()])ifelse(xfce4_panel_version_tag(), [svn], [xfce4_panel_version_tag()-xfce4_panel_version_build()], [xfce4_panel_version_tag()])])
dnl init autoconf
AC_COPYRIGHT([Copyright (c) 2002-2007
The Xfce development team. All rights reserved.
Written for Xfce by Jasper Huijsmans <jasper@xfce.org>.])
AC_INIT([xfce4-panel], [xfce4_panel_version()], [xfce4-dev@xfce.org])
dnl init automake
XFCE4_PANEL_VERSION=xfce4_panel_version()
AM_INIT_AUTOMAKE([xfce4-panel], [$XFCE4_PANEL_VERSION])
AM_CONFIG_HEADER([config.h])
AM_MAINTAINER_MODE
dnl Check for UNIX variants
AC_AIX
AC_ISC_POSIX
AC_MINIX
AM_CONDITIONAL([HAVE_CYGWIN], [test "`uname | grep \"CYGWIN\"`" != ""])
dnl disable static libs
AC_DISABLE_STATIC
dnl Check for basic programs
AC_PROG_CC()
AC_PROG_INSTALL()
AC_PROG_LN_S()
AC_PROG_LIBTOOL()
AC_PROG_INTLTOOL([0.31], [no-xml])
dnl patch intltool-update to support *.rc.in config files
AC_CONFIG_COMMANDS([intltool-update],
[(sed -e 's/^\("desktop.*".*\)/\1\n"rc(?:\\\\.in)+|"\./' intltool-update > intltool-update-tmp &&
mv intltool-update-tmp intltool-update && chmod 755 intltool-update)])
LIBXFCE4PANEL_VERINFO=libxfce4panel_verinfo()
AC_SUBST([LIBXFCE4PANEL_VERINFO])
dnl Check for standard header files
AC_HEADER_STDC
AC_CHECK_HEADERS([signal.h stddef.h sys/wait.h time.h string.h sys/mman.h])
AC_CHECK_FUNCS([sigaction])
AC_FUNC_MMAP()
dnl Check for i18n support
XDT_I18N([@LINGUAS@])
dnl Check for X11 installed
XDT_CHECK_LIBX11_REQUIRE
XDT_CHECK_LIBSM
dnl Check for required packages
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.4.0])
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0])
XDT_CHECK_PACKAGE(LIBXFCE4MCS_MANAGER, libxfce4mcs-manager-1.0, 4.4.0)
XFCE_MCS_PLUGIN([XFCE_MCS_MANAGER], [4.4.0])
dnl Check for optional packages
XDT_CHECK_OPTIONAL_PACKAGE([LIBSTARTUP_NOTIFICATION],
[libstartup-notification-1.0], [0.5],
[startup-notification],
[startup notification library], [yes])
dnl install dummy scripts?
AC_ARG_ENABLE([dummy-scripts],
AC_HELP_STRING([--enable-dummy-scripts],
[Install empty scripts for the deprecated xftaskbar4
and xfce4-iconbox (default=enabled)]),
[ac_cv_enable_dummy_scripts=$enableval],
[ac_cv_enable_dummy_scripts=yes])
if test "x$ac_cv_enable_dummy_scripts" = "xno"; then
DUMMY_SCRIPTS=""
else
DUMMY_SCRIPTS="xftaskbar4 xfce4-iconbox"
fi
AC_SUBST(DUMMY_SCRIPTS)
dnl gtk-doc
GTK_DOC_CHECK([1.0])
dnl Check for debugging support
XDT_FEATURE_DEBUG()
AC_OUTPUT([
xfce4-panel.spec
Makefile
config/Makefile
icons/Makefile
libxfce4panel/Makefile
libxfce4panel/libxfce4panel-1.0.pc
panel/Makefile
plugins/actions/Makefile
plugins/clock/Makefile
plugins/iconbox/Makefile
plugins/launcher/Makefile
plugins/Makefile
plugins/pager/Makefile
plugins/separator/Makefile
plugins/showdesktop/Makefile
plugins/systray/Makefile
plugins/tasklist/Makefile
plugins/windowlist/Makefile
mcs-plugin/Makefile
po/Makefile.in
docs/Makefile
docs/API/Makefile
docs/API/version.xml
docs/manual/Makefile
docs/manual/C/Makefile
docs/manual/C/images/Makefile
])

205
configure.in.in

@ -0,0 +1,205 @@
dnl $Id$
dnl
dnl Copyright (c) 2004-2006
dnl The Xfce development team. All rights reserved.
dnl
dnl 2005-2007 Jasper Huijsmans <jasper@xfce.org>
dnl 2006-2007 Nick Schermer <nick@xfce.org>
dnl
dnl ***************************
dnl *** Version information ***
dnl ***************************
m4_define([libxfce4panel_verinfo], [2:2:1])
m4_define([xfce4_panel_version_major], [4])
m4_define([xfce4_panel_version_minor], [5])
m4_define([xfce4_panel_version_micro], [0])
m4_define([xfce4_panel_version_nano], [2]) dnl leave this empty to have no nano version
m4_define([xfce4_panel_version_build], [r@REVISION@])
m4_define([xfce4_panel_version_tag], [svn])
m4_define([xfce4_panel_version], [xfce4_panel_version_major().xfce4_panel_version_minor().xfce4_panel_version_micro()ifelse(xfce4_panel_version_nano(), [], [], [.xfce4_panel_version_nano()])ifelse(xfce4_panel_version_tag(), [svn], [xfce4_panel_version_tag()-xfce4_panel_version_build()], [xfce4_panel_version_tag()])])
dnl ***************************
dnl *** Initialize autoconf ***
dnl ***************************
AC_COPYRIGHT([Copyright (c) 2002-2007
The Xfce development team. All rights reserved.
Written for Xfce by Jasper Huijsmans <jasper@xfce.org>.])
AC_INIT([xfce4-panel], [xfce4_panel_version()], [http://bugzilla.xfce.org/], [xfce4-panel])
AC_PREREQ([2.50])
AC_REVISION([$Id$])
dnl ***************************
dnl *** Initialize automake ***
dnl ***************************
AM_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE([1.8 dist-bzip2 tar-ustar])
AM_MAINTAINER_MODE()
dnl *******************************
dnl *** Check for UNIX variants ***
dnl *******************************
AC_AIX()
AC_ISC_POSIX()
AC_MINIX()
AM_CONDITIONAL([HAVE_CYGWIN], [test "`uname | grep \"CYGWIN\"`" != ""])
dnl ********************************
dnl *** Check for basic programs ***
dnl ********************************
AC_PROG_CC()
AC_PROG_INSTALL()
AC_PROG_LN_S()
AC_PROG_INTLTOOL([0.31], [no-xml])
dnl **************************
dnl *** Initialize libtool ***
dnl **************************
AC_DISABLE_STATIC()
AC_PROG_LIBTOOL()
dnl ****************************
dnl *** Intltool-update hack ***
dnl ****************************
AC_CONFIG_COMMANDS([intltool-update],
[(sed -e 's/^\("desktop.*".*\)/\1\n"rc(?:\\\\.in)+|"\./' intltool-update > intltool-update-tmp &&
mv intltool-update-tmp intltool-update && chmod 755 intltool-update)])
dnl **************************************
dnl *** Substitute version information ***
dnl **************************************
LIBXFCE4PANEL_VERINFO=libxfce4panel_verinfo()
AC_SUBST([LIBXFCE4PANEL_VERINFO])
dnl **********************************
dnl *** Check for standard headers ***
dnl **********************************
AC_HEADER_STDC()
AC_CHECK_HEADERS([stdlib.h unistd.h locale.h stdio.h fcntl.h errno.h \
math.h signal.h stddef.h sys/wait.h sys/stat.h \
sys/type.h sys/mman.h time.h string.h])
dnl ************************************
dnl *** Check for standard functions ***
dnl ************************************
AC_FUNC_MMAP()
AC_CHECK_FUNCS([sigaction])
dnl ******************************
dnl *** Check for i18n support ***
dnl ******************************
XDT_I18N([@LINGUAS@])
dnl *******************************
dnl *** Check for X11 installed ***
dnl *******************************
XDT_CHECK_LIBX11_REQUIRE()
XDT_CHECK_LIBSM()
dnl ***********************************
dnl *** Check for required packages ***
dnl ***********************************
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.4.0])
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.4])
XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.4])
XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0])
XDT_CHECK_PACKAGE([LIBEXO], [exo-0.3], [0.3.1.11])
dnl ***********************************
dnl *** Check for optional packages ***
dnl ***********************************
XDT_CHECK_OPTIONAL_PACKAGE([XFCE_MCS_MANAGER],
[xfce-mcs-manager],
[4.4.0], [mcs-plugin],
[xfce-mcs-manager], [yes])
XDT_CHECK_OPTIONAL_PACKAGE([LIBSTARTUP_NOTIFICATION],
[libstartup-notification-1.0],
[0.5], [startup-notification],
[startup notification library], [yes])
dnl *******************************
dnl *** Check for dummy scripts ***
dnl *******************************
AC_ARG_ENABLE([dummy-scripts],
AC_HELP_STRING([--enable-dummy-scripts],
[Install empty scripts for the deprecated xftaskbar4 and xfce4-iconbox @<:@default=enabled@:>@]),
[enable_dummy_scripts=$enableval],
[enable_dummy_scripts=yes])
AM_CONDITIONAL([ENABLE_DUMMY_SCRIPTS], [test x"$enable_dummy_scripts" = x"yes"])
dnl *************************
dnl *** Check for gtk-doc ***
dnl *************************
GTK_DOC_CHECK([1.0])
dnl ***********************************
dnl *** Check for debugging support ***
dnl ***********************************
XDT_FEATURE_DEBUG()
dnl *********************************
dnl *** Substitute platform flags ***
dnl *********************************
AC_MSG_CHECKING([PLATFORM_CPPFLAGS])
AC_MSG_RESULT([$PLATFORM_CPPFLAGS])
AC_SUBST([PLATFORM_CPPFLAGS])
AC_MSG_CHECKING([PLATFORM_CFLAGS])
AC_MSG_RESULT([$PLATFORM_CFLAGS])
AC_SUBST([PLATFORM_CFLAGS])
AC_MSG_CHECKING([PLATFORM_LDFLAGS])
AC_MSG_RESULT([$PLATFORM_LDFLAGS])
AC_SUBST([PLATFORM_LDFLAGS])
AC_OUTPUT([
xfce4-panel.spec
Makefile
config/Makefile
icons/Makefile
icons/16x16/Makefile
icons/48x48/Makefile
libxfce4panel/Makefile
libxfce4panel/libxfce4panel-1.0.pc
panel/Makefile
plugins/actions/Makefile
plugins/clock/Makefile
plugins/iconbox/Makefile
plugins/launcher/Makefile
plugins/Makefile
plugins/pager/Makefile
plugins/separator/Makefile
plugins/showdesktop/Makefile
plugins/systray/Makefile
plugins/tasklist/Makefile
plugins/windowlist/Makefile
mcs-plugin/Makefile
po/Makefile.in
docs/Makefile
docs/API/Makefile
docs/API/version.xml
docs/manual/Makefile
docs/manual/C/Makefile
docs/manual/C/images/Makefile
])
dnl ***************************
dnl *** Print configuration ***
dnl ***************************
echo
echo "Build Configuration:"
echo
if test x"$LIBSTARTUP_NOTIFICATION_FOUND" = x"yes"; then
echo "* Startup Notification: yes"
else
echo "* Startup Notification: no"
fi
if test x"$XFCE_MCS_MANAGER_FOUND" = x"yes"; then
echo "* Xfce Settings Manager plugin: yes"
else
echo "* Xfce Settings Manager plugin: no"
fi
echo "* Debugging Support: $enable_debug"
echo "* Dummy Scripts: $enable_dummy_scripts"
echo

15
icons/16x16/Makefile.am

@ -0,0 +1,15 @@
# $Id$
iconsdir = $(datadir)/icons/hicolor/16x16/apps
icons_DATA = \
xfce-system-settings.png \
xfce-system-lock.png \
xfce-system-info.png \
xfce-system-exit.png
EXTRA_DIST = \
$(icons_DATA)
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

0
icons/xfce-system-exit.png → icons/16x16/xfce-system-exit.png

Before

Width:  |  Height:  |  Size: 688 B

After

Width:  |  Height:  |  Size: 688 B

0
icons/xfce-system-info.png → icons/16x16/xfce-system-info.png

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 479 B

0
icons/xfce-system-lock.png → icons/16x16/xfce-system-lock.png

Before

Width:  |  Height:  |  Size: 572 B

After

Width:  |  Height:  |  Size: 572 B

0
icons/xfce-system-settings.png → icons/16x16/xfce-system-settings.png

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 652 B

14
icons/48x48/Makefile.am

@ -0,0 +1,14 @@
# $Id$
iconsdir = $(datadir)/icons/hicolor/48x48/apps
icons_DATA = \
xfce4-panel.png \
xfce4-iconbox.png \
xfce4-taskbar.png \
xfce-mouse.png
EXTRA_DIST = \
$(icons_DATA)
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

0
icons/xfce-mouse.png → icons/48x48/xfce-mouse.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
icons/xfce4-iconbox.png → icons/48x48/xfce4-iconbox.png

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
icons/xfce4-panel.png → icons/48x48/xfce4-panel.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
icons/xfce4-taskbar.png → icons/48x48/xfce4-taskbar.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

23
icons/Makefile.am

@ -1,23 +1,8 @@
# $Id$
hicolor48dir = $(datadir)/icons/hicolor/48x48/apps
hicolor16dir = $(datadir)/icons/hicolor/16x16/apps
hicolor48_DATA = \
xfce4-panel.png \
xfce4-iconbox.png \
xfce4-taskbar.png \
xfce-mouse.png \
xfce-mail.png
hicolor16_DATA = \
xfce-system-exit.png \
xfce-system-info.png \
xfce-system-lock.png \
xfce-system-settings.png
EXTRA_DIST = $(hicolor48_DATA) $(hicolor16_DATA)
SUBDIRS = \
16x16 \
48x48
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
@ -32,4 +17,4 @@ install-data-hook:
echo "***"; \
fi
# vi:set ts=8 sw=8 noet ai nocindent:
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

BIN
icons/xfce-mail.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

182
libxfce4panel/Makefile.am

@ -1,94 +1,106 @@
lib_LTLIBRARIES = libxfce4panel.la
# $Id: Makefile.am 24484 2007-01-15 17:20:39Z nick $
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libxfce4panel-1.0.pc
INCLUDES = \
-I$(top_srcdir) \
-DG_LOG_DOMAIN=\"libxfce4panel\" \
-DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
$(PLATFORM_CPPFLAGS)
generated_files = \
xfce-panel-enum-types.c \
xfce-panel-enum-types.h \
xfce-marshal.c \
xfce-marshal.h
lib_LTLIBRARIES = \
libxfce4panel.la
libxfce4panel_la_SOURCES = \
$(generated_files) \
xfce-panel-window.c \
xfce-panel-window.h \
xfce-arrow-button.c \
xfce-arrow-button.h \
xfce-itembar.c \
xfce-itembar.h \
xfce-hvbox.c \
xfce-hvbox.h \
xfce-panel-enums.h \
xfce-panel-convenience.c \
xfce-panel-convenience.h \
xfce-panel-external-item.c \
xfce-panel-external-item.h \
xfce-panel-external-plugin.c \
xfce-panel-external-plugin.h \
xfce-panel-internal-plugin.c \
xfce-panel-internal-plugin.h \
xfce-panel-item-iface.c \
xfce-panel-item-iface.h \
xfce-panel-plugin-iface.c \
xfce-panel-plugin-iface.h \
xfce-panel-plugin-iface-private.h \
xfce-panel-plugin-messages.c \
libxfce4panel_la_SOURCES = \
$(generated_files) \
xfce-panel-window.c \
xfce-panel-window.h \
xfce-arrow-button.c \
xfce-arrow-button.h \
xfce-itembar.c \
xfce-itembar.h \
xfce-hvbox.c \
xfce-hvbox.h \
xfce-panel-enums.h \
xfce-panel-convenience.c \
xfce-panel-convenience.h \
xfce-panel-external-item.c \
xfce-panel-external-item.h \
xfce-panel-external-plugin.c \
xfce-panel-external-plugin.h \
xfce-panel-internal-plugin.c \
xfce-panel-internal-plugin.h \
xfce-panel-item-iface.c \
xfce-panel-item-iface.h \
xfce-panel-plugin-iface.c \
xfce-panel-plugin-iface.h \
xfce-panel-plugin-iface-private.h \
xfce-panel-plugin-messages.c \
xfce-panel-plugin-messages.h
xfce4_panelincludedir = $(includedir)/xfce4/libxfce4panel
xfce4_panelinclude_HEADERS = \
xfce-panel-enum-types.h \
xfce-panel-window.h \
xfce-arrow-button.h \
xfce-itembar.h \
xfce-hvbox.h \
xfce-panel-enums.h \
xfce-panel-convenience.h \
xfce-panel-plugin-iface.h \
xfce-panel-internal-plugin.h \
xfce-panel-external-plugin.h \
xfce-panel-macros.h \
xfce4_panelincludedir = \
$(includedir)/xfce4/libxfce4panel
xfce4_panelinclude_HEADERS = \
xfce-panel-enum-types.h \
xfce-panel-window.h \
xfce-arrow-button.h \
xfce-itembar.h \
xfce-hvbox.h \
xfce-panel-enums.h \
xfce-panel-convenience.h \
xfce-panel-plugin-iface.h \
xfce-panel-internal-plugin.h \
xfce-panel-external-plugin.h \
xfce-panel-macros.h \
xfce-panel-plugin.h
libxfce4panel_la_CFLAGS = \
-I$(top_srcdir) \
-DLOCALEDIR=\"$(localedir)\" \
@LIBXFCE4UTIL_CFLAGS@ \
@LIBXFCEGUI4_CFLAGS@
libxfce4panel_la_LDFLAGS = \
-export-dynamic \
-version-info @LIBXFCE4PANEL_VERINFO@
libxfce4panel_la_LIBADD = \
@LIBXFCEGUI4_LIBS@ \
@LIBXFCE4UTIL_LIBS@
libxfce4panel_la_CFLAGS = \
$(LIBXFCE4UTIL_CFLAGS) \
$(GTK_CFLAGS) \
$(PLATFORM_CFLAGS)
libxfce4panel_la_LDFLAGS = \
-export-dynamic \
-version-info $(LIBXFCE4PANEL_VERINFO) \
$(PLATFORM_LDFLAGS)
if HAVE_CYGWIN
libxfce4panel_la_LDFLAGS += -no-undefined
libxfce4panel_la_LIBADD += @GTK_LIBS@
libxfce4panel_la_CFLAGS += @GTK_CFLAGS@
libxfce4panel_la_LDFLAGS += \
-no-undefined
endif
EXTRA_DIST = \
xfce-marshal.list \
libxfce4panel_la_LIBADD = \
$(GTK_LIBS) \
$(LIBXFCE4UTIL_LIBS)
pkgconfigdir = \
$(libdir)/pkgconfig
pkgconfig_DATA = \
libxfce4panel-1.0.pc
generated_files = \
xfce-panel-enum-types.c \
xfce-panel-enum-types.h \
xfce-marshal.c \
xfce-marshal.h
EXTRA_DIST = \
xfce-marshal.list \
$(generated_files)
DISTCLEANFILES = \
DISTCLEANFILES = \
$(generated_files)
xfce_headers = \
$(srcdir)/xfce-panel-window.h \
xfce_headers = \
$(srcdir)/xfce-panel-window.h \
$(srcdir)/xfce-panel-enums.h
xfce-panel-enum-types.h: $(xfce_headers)
( cd $(srcdir) && glib-mkenums \
--fhead "#ifndef _XFCE_PANEL_ENUM_TYPES_H\n#define _XFCE_PANEL_ENUM_TYPES_H\n#include <libxfce4util/libxfce4util.h>\nG_BEGIN_DECLS\n" \
--fhead "#ifndef __XFCE_PANEL_ENUM_TYPES_H__\n#define __XFCE_PANEL_ENUM_TYPES_H__\n#include <libxfce4util/libxfce4util.h>\nG_BEGIN_DECLS\n" \
--fprod "/* enumerations from \"@filename@\" */\n#include <libxfce4panel/@filename@>\n" \
--vhead "GType @enum_name@_get_type (void);\n#define XFCE_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
--ftail "G_END_DECLS\n\n#endif /* _XFCE_PANEL_ENUM_TYPES_H__ */" \
--vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define XFCE_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
--ftail "G_END_DECLS\n\n#endif /* !__XFCE_PANEL_ENUM_TYPES_H__ */" \
$(xfce_headers) ) >> xgen \
&& (cmp -s xgen xfce-panel-enum-types.h || cp xgen xfce-panel-enum-types.h ) \
&& rm -f xgen xgen~
@ -97,22 +109,26 @@ xfce-panel-enum-types.c: xfce-panel-enum-types.h
( cd $(srcdir) && glib-mkenums \
--fhead "#include <xfce-panel-enum-types.h>\n" \
--fprod "\n/* enumerations from \"@filename@\" */\n" \
--vhead "GType\n@enum_name@_get_type (void)\n{\n\tstatic GType type = 0;\n\tif (type == 0) {\n\tstatic const G@Type@Value values[] = {"\
--vhead "GType\n@enum_name@_get_type (void)\n{\n\tstatic GType type = 0;\n\tif (type == 0) {\n\tstatic const G@Type@Value values[] = {" \
--vprod "\t{ @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
--vtail "\t{ 0, NULL, NULL }\n\t};\n\ttype = g_@type@_register_static (\"@EnumName@\", values);\n }\n\treturn type;\n}\n" \
$(xfce_headers) ) > xgen \
&& cp xgen xfce-panel-enum-types.c \
&& cp xgen xfce-panel-enum-types.c \
&& rm -f xgen xgen~
xfce-marshal.h: $(srcdir)/xfce-marshal.list
glib-genmarshal --header --prefix="_xfce_marshal" \
$(srcdir)/xfce-marshal.list > tmp-marshal.h && \
cp tmp-marshal.h $(@F) && \
rm -f tmp-marshal.h tmp-marshal.h~
( cd $(srcdir) && glib-genmarshal \
--prefix="_xfce_marshal" \
--header xfce-marshal.list \
| sed -e 's/marshal_data);$$/marshal_data) G_GNUC_INTERNAL;/' ) > xgen-xpmh \
&& cp xgen-xpmh $(@F) \
&& rm -f xgen-xpmh xgen-xpmh~
xfce-marshal.c: xfce-marshal.h
glib-genmarshal --body --prefix="_xfce_marshal" \
$(srcdir)/xfce-marshal.list > tmp-marshal.c && \
cp tmp-marshal.c $(@F) && \
rm -f tmp-marshal.c tmp-marshal.c~
( cd $(srcdir) && glib-genmarshal \
--prefix="_xfce_marshal" \
--body xfce-marshal.list ) > xgen-xpmc \
&& cp xgen-xpmc xfce-marshal.c \
&& rm -f xgen-xpmc xgen-xpmc~
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

11
libxfce4panel/libxfce4panel-1.0.pc.in

@ -1,18 +1,11 @@
prefix=@prefix@
datadir=@datadir@
exec_prefix=@exec_prefix@
libdir=@libdir@
libexecdir=@libexecdir@
includedir=@includedir@
localedir=@localedir@
internalplugindir=${libdir}/xfce4/panel-plugins
externalplugindir=${libexecdir}/xfce4/panel-plugins
desktopdatadir=${datadir}/xfce4/panel-plugins
Name: libxfce4panel
Description: Library for the Xfce Panel
Requires: libxfcegui4-1.0 libxfce4util-1.0
Version: @VERSION@
Requires: libxfce4util-1.0 libxfcegui4-1.0
Version: @PACKAGE_VERSION@
Libs: -L${libdir} -lxfce4panel
Cflags: -I${includedir}/xfce4/

254
libxfce4panel/xfce-arrow-button.c

@ -1,22 +1,21 @@
/* vim: set expandtab ts=8 sw=4: */
/* $Id$
/* $Id$
*
* Copyright © 2004-2005 Jasper Huijsmans <jasper@xfce.org>
* Copyright (c) 2004-2007 Jasper Huijsmans <jasper@xfce.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as published
* by the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
@ -29,6 +28,7 @@
#include <gtk/gtk.h>
#include "xfce-marshal.h"
#include "xfce-panel-macros.h"
#include "xfce-panel-enum-types.h"
#include "xfce-arrow-button.h"
@ -53,73 +53,66 @@ enum
PROP_ARROW_TYPE
};
static void xfce_arrow_button_class_init (XfceArrowButtonClass *klass);
static void xfce_arrow_button_init (XfceArrowButton *button);
static void xfce_arrow_button_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec);
static void xfce_arrow_button_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
static gint xfce_arrow_button_expose (GtkWidget *widget,
GdkEventExpose *event);
static void xfce_arrow_button_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static void xfce_arrow_button_add (GtkContainer *container,
GtkWidget *child);
static GType xfce_arrow_button_child_type (GtkContainer *container);
static void xfce_arrow_button_class_init (XfceArrowButtonClass * klass);
static void xfce_arrow_button_init (XfceArrowButton * button);
static void xfce_arrow_button_set_property (GObject * object,
guint prop_id,
const GValue * value,
GParamSpec * pspec);
static void xfce_arrow_button_get_property (GObject * object,
guint prop_id,
GValue * value,
GParamSpec * pspec);
static int xfce_arrow_button_expose (GtkWidget * widget,
GdkEventExpose * event);
static void xfce_arrow_button_size_request (GtkWidget * widget,
GtkRequisition * requisition);
static void xfce_arrow_button_add (GtkContainer * container,
GtkWidget *child);
static GType xfce_arrow_button_child_type (GtkContainer * container);
/* global vars */
static GtkToggleButtonClass *parent_class = NULL;
static guint arrow_button_signals[LAST_SIGNAL] = { 0 };
static guint arrow_button_signals[LAST_SIGNAL] = { 0 };
GType
xfce_arrow_button_get_type (void)
{
static GtkType type = 0;
static GtkType type = G_TYPE_INVALID;
if (!type)
if (G_UNLIKELY (type == G_TYPE_INVALID))
{
static const GTypeInfo type_info = {
sizeof (XfceArrowButtonClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) xfce_arrow_button_class_init,
(GClassFinalizeFunc) NULL,
NULL,
sizeof (XfceArrowButton),
0, /* n_preallocs */
(GInstanceInitFunc) xfce_arrow_button_init,
static const GTypeInfo type_info = {
sizeof (XfceArrowButtonClass),
NULL,
NULL,
(GClassInitFunc) xfce_arrow_button_class_init,
NULL,
NULL,
sizeof (XfceArrowButton),
0,
(GInstanceInitFunc) xfce_arrow_button_init,
NULL
};
};
type = g_type_register_static (GTK_TYPE_TOGGLE_BUTTON,
"XfceArrowButton", &type_info, 0);
type =
g_type_register_static (GTK_TYPE_TOGGLE_BUTTON, I_("XfceArrowButton"), &type_info, 0);
}
return type;
}
static void
xfce_arrow_button_class_init (XfceArrowButtonClass * klass)
{
GObjectClass *gobject_class;
GtkWidgetClass *widget_class;
GObjectClass *gobject_class;
GtkWidgetClass *widget_class;
GtkContainerClass *container_class;
parent_class = g_type_class_peek_parent (klass);
@ -130,9 +123,9 @@ xfce_arrow_button_class_init (XfceArrowButtonClass * klass)
gobject_class->get_property = xfce_arrow_button_get_property;
gobject_class->set_property = xfce_arrow_button_set_property;
widget_class->expose_event = xfce_arrow_button_expose;
widget_class->size_request = xfce_arrow_button_size_request;
widget_class->expose_event = xfce_arrow_button_expose;
widget_class->size_request = xfce_arrow_button_size_request;
container_class->add = xfce_arrow_button_add;
container_class->child_type = xfce_arrow_button_child_type;
@ -147,14 +140,14 @@ xfce_arrow_button_class_init (XfceArrowButtonClass * klass)
* This value also determines the direction of the popup menu.
**/
arrow_button_signals[ARROW_TYPE_CHANGED] =
g_signal_new ("arrow-type-changed",
G_OBJECT_CLASS_TYPE (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (XfceArrowButtonClass,
arrow_type_changed),
NULL, NULL,
g_cclosure_marshal_VOID__ENUM,
G_TYPE_NONE, 1, GTK_TYPE_ARROW_TYPE);
g_signal_new (I_("arrow-type-changed"),
G_OBJECT_CLASS_TYPE (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (XfceArrowButtonClass,
arrow_type_changed),
NULL, NULL,
g_cclosure_marshal_VOID__ENUM,
G_TYPE_NONE, 1, GTK_TYPE_ARROW_TYPE);
/* properties */
@ -164,16 +157,18 @@ xfce_arrow_button_class_init (XfceArrowButtonClass * klass)
* The arrow type of the button. This value also determines the direction
* of the popup menu.
**/
g_object_class_install_property (gobject_class,
PROP_ARROW_TYPE,
g_param_spec_enum ("arrow-type",
"Arrow type",
"The arrow type of the menu button",
GTK_TYPE_ARROW_TYPE,
GTK_ARROW_UP,
G_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
PROP_ARROW_TYPE,
g_param_spec_enum ("arrow-type",
"Arrow type",
"The arrow type of the menu button",
GTK_TYPE_ARROW_TYPE,
GTK_ARROW_UP,
G_PARAM_READWRITE));
}
static void
xfce_arrow_button_init (XfceArrowButton * arrow_button)
{
@ -182,58 +177,65 @@ xfce_arrow_button_init (XfceArrowButton * arrow_button)
arrow_button->arrow_type = DEFAULT_ARROW_TYPE;
}
static void
xfce_arrow_button_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
xfce_arrow_button_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
XfceArrowButton *button = XFCE_ARROW_BUTTON (object);
switch (prop_id)
{
case PROP_ARROW_TYPE:
xfce_arrow_button_set_arrow_type (button,
g_value_get_enum (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_ARROW_TYPE:
xfce_arrow_button_set_arrow_type (button, g_value_get_enum (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
xfce_arrow_button_get_property (GObject * object,
guint prop_id, GValue * value,
GParamSpec * pspec)
xfce_arrow_button_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
XfceArrowButton *button = XFCE_ARROW_BUTTON (object);
switch (prop_id)
{
case PROP_ARROW_TYPE:
g_value_set_enum (value, button->arrow_type);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_ARROW_TYPE: