README for xfce version 4.x
WHAT IS IT ?
'xfce4-panel' is the panel of the XFce Desktop Environment. It is modeled
after the CDE panel and, of course, previous versions of xfce.
This version is based on GTK2 and should have all the advantages that come
with this new and improved toolkit (see http://www.gtk.org).
WHAT'S NEW ?
Apart from the toolkit changes the underlying framework of the panel has also
All interactions with the window manager take place through the new window
manager hints as defined on http://www.freedesktop.org. This means that you
will need a compliant window manager for xfce to function properly (preferably
Highlights from the new panel include:
o vertical and horizontal mode
o icon themes
o dynamic modules as well as traditional luancher buttons
INFO FOR DEVELOPERS
Please keep in mind that this information will usually not be up to date!
If you are interested in helping with the development of xfce4 the best place to
start reading is global.h which hold the type definitions of the different
data structures used.
Then just continue reading at main.c and follow the flow of the program. The
panel design is a hierarchy of components:
- main.c: main program / quit / restart
- panel.c: Panel framework.
- groups.c: The panel consists of a list of panel groups. A panel group holds
two widgets: a panel control and a toggle button with associated popup menu.
This file also contains code for moving items on the panel and for adding and
- controls.c: This file defines functions for handling panel controls. The
interface to a panel control is defined by an associated control class. A
control class defines the functions to interface with a specific type of panel
control, including creating new instances of a class.
The default control class is the traditional launcher, a button with an icon
that, when clicked, runs a program.
All other classes are defined through external plugins. At the time of this
writing (2002-12-17) the following plugins are available: clock, mailcheck,
trashcan, switcher (CDE like desktop switcher with minibuttons) and system
buttons (which are the same as the mini butons on the switcher).
- popup.c: function for the popup menu inlcuding menu items.
- item.c: traditional panel control (icon button that launches programs)
- handle.c: the move handles opn either side of the panel.
- callbacks.c: most callback functions are defined here.
- dialogs.c: global panel configuration dialog.
- controls_dialog.c: configuration of panel controls
- item_dialog.c: configuration dialog for panel item or menu item
- xfce_support.c: convenience dialogs and general convenience functions.
- settings.c: reading and writing panel configuration.