← Back to team overview

cairo-dock-team team mailing list archive

[Merge] lp:~cairo-dock-team/cairo-dock-plug-ins/ubuntu into lp:ubuntu/cairo-dock-plug-ins

 

Matthieu Baerts has proposed merging lp:~cairo-dock-team/cairo-dock-plug-ins/ubuntu into lp:ubuntu/cairo-dock-plug-ins.

Requested reviews:
  Cairo-Dock Team (cairo-dock-team)
Related bugs:
  #449422 Cairo-Dock resize problem
  https://bugs.launchpad.net/bugs/449422
  #455261 Cannot Modify / Add Custom Launchers
  https://bugs.launchpad.net/bugs/455261
  #483963 Dustbin applet does not display trash on all volumes
  https://bugs.launchpad.net/bugs/483963
  #485159 Some applications have problem with Systray
  https://bugs.launchpad.net/bugs/485159
  #489349 showDesktop Applet only seems to work every second time you click on it.
  https://bugs.launchpad.net/bugs/489349
  #500677 xsession-errors log
  https://bugs.launchpad.net/bugs/500677
  #500979 shortcuts display order gets messed up
  https://bugs.launchpad.net/bugs/500979
  #519915 Create a cairo dock plugin
  https://bugs.launchpad.net/bugs/519915
  #521531 mail plugin crashes on Maildir
  https://bugs.launchpad.net/bugs/521531
  #521536 Please update cairo-dock-plug-ins to 2.1.3-3 version
  https://bugs.launchpad.net/bugs/521536
  #523447 MusicPlayer applet crashes on tracks with russians symbols
  https://bugs.launchpad.net/bugs/523447
  #526138 GMenu does not handle desktop file exec strings properly
  https://bugs.launchpad.net/bugs/526138
  #526742 The system monitor plugin and netspeed plugin inverts upside-down continuously
  https://bugs.launchpad.net/bugs/526742
  #531317 cairo-dock-plugins does not support prefix on make install
  https://bugs.launchpad.net/bugs/531317
  #531319 please check the version of cairo-dock when building the plugin
  https://bugs.launchpad.net/bugs/531319
  #537115 Click at the position where icon label was, the icon and dock still receive the event
  https://bugs.launchpad.net/bugs/537115
  #537943 Terminal applet shortkey behaviour
  https://bugs.launchpad.net/bugs/537943
  #538637 Trash applet doesn't create *.trashinfo files on Xfce
  https://bugs.launchpad.net/bugs/538637
  #568083 Please update Cairo-Dock to v2.1.3-10
  https://bugs.launchpad.net/bugs/568083
  #568258 [lucid] cannot start cairo-dock since last updates
  https://bugs.launchpad.net/bugs/568258
  #575178 music-player applet crashes on change songs automatically
  https://bugs.launchpad.net/bugs/575178
  #576647 Please update Cairo-Dock with the following patches
  https://bugs.launchpad.net/bugs/576647
  #582452 GMenu does not contain any applications
  https://bugs.launchpad.net/bugs/582452
  #604034 Change terminal tab's name lost the color
  https://bugs.launchpad.net/bugs/604034
  #614625 Please update cairo-dock to 2.2.0 version  
  https://bugs.launchpad.net/bugs/614625
  #616176 Dust Bin Hang and Incorrect Configuration
  https://bugs.launchpad.net/bugs/616176
  #632054 Please update cairo-dock-plug-ins to the latest 2.2.0 version
  https://bugs.launchpad.net/bugs/632054

-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~cairo-dock-team/cairo-dock-plug-ins/ubuntu/+merge/34712
Your team Cairo-Dock Team is requested to review the proposed merge of lp:~cairo-dock-team/cairo-dock-plug-ins/ubuntu into lp:ubuntu/cairo-dock-plug-ins.
=== removed file 'Animated-icons/data/messages'
--- Animated-icons/data/messages	2010-08-07 01:43:25 +0000
+++ Animated-icons/data/messages	1970-01-01 00:00:00 +0000
@@ -1,192 +0,0 @@
-_("Global")
-
-_("Animations are triggered when hovering an icon only in OpenGL mode.")
-
-_("when hovering over an icon")
-
-_("Effects used:")
-
-_("Bounce")
-
-_("Rotate")
-
-_("Blink")
-
-_("Pulse")
-
-_("Wobbly")
-
-_("Wave")
-
-_("Spot")
-
-_("when clicking on an launcher")
-
-_("Effects used on launcher:")
-
-_("Bounce")
-
-_("Rotate")
-
-_("Blink")
-
-_("Pulse")
-
-_("Wobbly")
-
-_("Wave")
-
-_("Number of times the animation will play:")
-
-_("when clicking on an application")
-
-_("Effects used on applications:")
-
-_("Bounce")
-
-_("Rotate")
-
-_("Blink")
-
-_("Pulse")
-
-_("Wobbly")
-
-_("Wave")
-
-_("Number of times the animation will play:")
-
-_("when clicking on an applet")
-
-_("Effects used on applets:")
-
-_("Bounce")
-
-_("Rotate")
-
-_("Blink")
-
-_("Pulse")
-
-_("Wobbly")
-
-_("Wave")
-
-_("Number of times the animation will play:")
-
-_("Rotation")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Type of mesh:")
-
-_("Normal")
-
-_("Cube")
-
-_("Capsule")
-
-_("Colour of the sheen:")
-
-_("Spot")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Spot")
-
-_("Leave empty to use the default one.")
-
-_("Image for the spotlight:")
-
-_("Leave empty to use the default one.")
-
-_("Image for the front spotlight:")
-
-_("Spot colour:")
-
-_("Halo colour:")
-
-_("Rays")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Random colours?")
-
-_("Number of rays:")
-
-_("Ray size:")
-
-_("Ray speed:")
-
-_("Wobbly")
-
-_("Initial stretch:")
-
-_("Horizontal stretch")
-
-_("Vertical stretch")
-
-_("Corner stretch")
-
-_("Spring constant:")
-
-_("Friction:")
-
-_("Number of points on the grid in each direction:")
-
-_("Wave")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Wave width:")
-
-_("Wave amplitude:")
-
-_("Pulse")
-
-_("In ms.")
-
-_("Pulse duration:")
-
-_("Repeat while icon is pointed to?")
-
-_("Pulse max zoom:")
-
-_("Pulse follows icon shape?")
-
-_("Bounce")
-
-_("In ms.")
-
-_("Bounce duration:")
-
-_("Repeat while icon is pointed to?")
-
-_("When bouncing, resize the icon by:")
-
-_("the lower the value, the more it will flatten.")
-
-_("How much the icon will flatten when hitting the ground:")
-
-_("Blink")
-
-_("In ms.")
-
-_("Blink duration:")
-
-_("Repeat while icon is pointed to?")
-

=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2010-08-07 01:43:25 +0000
+++ CMakeLists.txt	2010-09-07 00:46:10 +0000
@@ -10,7 +10,7 @@
 ########### project ###############
 
 project ("cairo-dock-plugins")
-set (VERSION "2.2.0-0beta4")
+set (VERSION "2.2.0-0rc1")
 
 add_definitions (-std=c99 -Wstrict-prototypes -Wextra -Wwrite-strings -Wuninitialized -Werror-implicit-function-declaration) #-Wunreachable-code -Wno-unused-parameter -Wall
 if (NOT ${CMAKE_BUILD_TYPE})
@@ -509,12 +509,17 @@
 
 ############# STATUS NOTIFIER #################
 if ("${enable-status-notifier}" STREQUAL "yes")
-	set (GETTEXT_STATUS_NOTIFIER ${GETTEXT_PLUGINS})
-	set (VERSION_STATUS_NOTIFIER "0.0.1")
-	set (PACKAGE_STATUS_NOTIFIER "cd-status-notifier")
-	set (status_notifierdatadir "${pluginsdatadir}/Status-Notifier")
-	configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Status-Notifier/data/Status-Notifier.conf.in ${CMAKE_CURRENT_BINARY_DIR}/Status-Notifier/data/Status-Notifier.conf)
-	add_subdirectory (Status-Notifier)
+	pkg_check_modules (STATUS_NOTIFIER dbusmenu-gtk)
+	if ("${STATUS_NOTIFIER_FOUND}" STREQUAL "")
+		message (STATUS "Could not find Status-Notifier libs; Cairo-Dock won't be built with Status-Notifier support.")
+	else()
+		set (GETTEXT_STATUS_NOTIFIER ${GETTEXT_PLUGINS})
+		set (VERSION_STATUS_NOTIFIER "0.1.0")
+		set (PACKAGE_STATUS_NOTIFIER "cd-status-notifier")
+		set (status_notifierdatadir "${pluginsdatadir}/Status-Notifier")
+		configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Status-Notifier/data/Status-Notifier.conf.in ${CMAKE_CURRENT_BINARY_DIR}/Status-Notifier/data/Status-Notifier.conf)
+		add_subdirectory (Status-Notifier)
+	endif()
 endif()
 
 ############# SWITCHER #################
@@ -527,7 +532,7 @@
 
 ############# SYSTEM MONITOR #################
 set (GETTEXT_SYSTEM_MONITOR ${GETTEXT_PLUGINS})
-set (VERSION_SYSTEM_MONITOR "1.0.4")
+set (VERSION_SYSTEM_MONITOR "1.0.5")
 set (PACKAGE_SYSTEM_MONITOR "cd-system-monitor")
 set (system_monitordatadir "${pluginsdatadir}/System-monitor")
 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/System-Monitor/data/System-Monitor.conf.in ${CMAKE_CURRENT_BINARY_DIR}/System-Monitor/data/System-Monitor.conf)
@@ -631,3 +636,13 @@
 endif()
 
 add_subdirectory (po)
+
+############# REMOTE_CONTROL #################
+if ("${enable_remote_control}" STREQUAL "yes")
+	set (GETTEXT_REMOTE_CONTROL ${GETTEXT_PLUGINS})
+	set (VERSION_REMOTE_CONTROL "0.0.1")
+	set (PACKAGE_REMOTE_CONTROL "cd-Remote-Control")
+	set (remote_controldatadir "${pluginsdatadir}/Remote-Control")
+	configure_file (Remote-Control/data/Remote-Control.conf.in ${CMAKE_CURRENT_SOURCE_DIR}/Remote-Control/data/Remote-Control.conf)
+	add_subdirectory (Remote-Control)
+endif()

=== modified file 'Cairo-Penguin/data/Cairo-Penguin.conf.in'
--- Cairo-Penguin/data/Cairo-Penguin.conf.in	2010-08-07 01:43:25 +0000
+++ Cairo-Penguin/data/Cairo-Penguin.conf.in	2010-09-07 00:46:10 +0000
@@ -7,7 +7,7 @@
 icon size = 0;0
 
 #s Icon name for busy penguin:
-name = Tux
+name = 
 
 #d Name of the dock it belongs to:
 dock name = 
@@ -26,7 +26,7 @@
 theme = Classic
 
 #i Delay between animation changes :
-#{in seconds.
+#{in seconds.}
 change delay = 8
 
 #e[0;1] Penguin transparency:

=== removed file 'Cairo-Penguin/data/messages'
--- Cairo-Penguin/data/messages	2010-08-07 01:43:25 +0000
+++ Cairo-Penguin/data/messages	1970-01-01 00:00:00 +0000
@@ -1,28 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Icon size for busy penguin:")
-
-_("Icon name for busy penguin:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Configuration")
-
-_("Choose one of the available themes:")
-
-_("in seconds.")
-
-_("Delay between animation changes :")
-
-_("Penguin transparency:")
-
-_("Let the penguin wander everywhere in the dock?")
-
-_("in pixels.")
-
-_("Ground offset:")
-

=== modified file 'Cairo-Penguin/src/applet-notifications.c'
--- Cairo-Penguin/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ Cairo-Penguin/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -105,7 +105,7 @@
 {
 	PenguinAnimation *pAnimation = penguin_get_current_animation ();
 	if(pAnimation == NULL)
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 	
 	if ((myConfig.bFree && pClickedContainer == myContainer && myDock->container.iMouseX >  (myDock->container.iWidth - myDock->fFlatDockWidth) / 2 + myData.iCurrentPositionX && myDock->container.iMouseX < (myDock->container.iWidth - myDock->fFlatDockWidth) / 2 +  myData.iCurrentPositionX + pAnimation->iFrameWidth && myDock->container.iMouseY > myContainer->iHeight - myData.iCurrentPositionY - pAnimation->iFrameHeight && myDock->container.iMouseY < myContainer->iHeight - myData.iCurrentPositionY) || (! myConfig.bFree && pClickedIcon == myIcon))
 	{
@@ -113,15 +113,14 @@
 		{
 			cd_debug ("%s\n", myApplet->cConfFilePath);
 			cairo_dock_notify (CAIRO_DOCK_BUILD_ICON_MENU, myIcon, myContainer, CD_APPLET_MY_MENU);
-			return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
+			CD_APPLET_LEAVE (CAIRO_DOCK_INTERCEPT_NOTIFICATION);
 		}
 		
 		GtkWidget *pMenuItem, *image;
 		
 		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
 		
-		GtkWidget *pModuleSubMenu = CD_APPLET_ADD_SUB_MENU (D_("Hey, you there!"), CD_APPLET_MY_MENU);
-		//GtkWidget *pModuleSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
+		GtkWidget *pModuleSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
 		if (penguin_is_resting (pAnimation))
 		{
 			CD_APPLET_ADD_IN_MENU(D_("Wake up"), _wake_up, pModuleSubMenu);
@@ -170,7 +169,7 @@
 			else if (iRandom == 1 && ! myConfig.bFree)
 			{
 				CD_APPLET_ANIMATE_MY_ICON ("bounce", 3);
-				myData.pDialog = cairo_dock_show_temporary_dialog ("Olllééééé !", myIcon, myContainer, 2500);
+				myData.pDialog = cairo_dock_show_temporary_dialog ("Olll����� !", myIcon, myContainer, 2500);
 			}
 			else
 			{

=== modified file 'Clipper/data/Clipper.conf.in'
--- Clipper/data/Clipper.conf.in	2010-08-07 01:43:25 +0000
+++ Clipper/data/Clipper.conf.in	2010-09-07 00:46:10 +0000
@@ -59,9 +59,6 @@
 #b Should be visible on all desktops?
 sticky=true
 
-
-
-
 #F[Decorations;gtk-orientation-portrait]
 frame_deco=
 
@@ -95,6 +92,7 @@
 #e+[0;1] Foreground tansparency:
 fg alpha = 1
 
+
 #[gtk-preferences]
 [Configuration]
 
@@ -132,7 +130,7 @@
 shortkey = <Control>F8
 
 #b Pop-up menus at mouse position?
-menu on mouse = true
+menu on mouse = false 
 
 
 #F[Actions;gtk-execute]
@@ -140,7 +138,7 @@
 
 #b Enable actions?
 #{If some actions are associated with an item, they will be proposed when the item is created.}
-enable actions = true
+enable actions = false
 
 #b Replay actions?
 #{Display actions when selecting an item in the history.}

=== removed file 'Clipper/data/messages'
--- Clipper/data/messages	2010-08-07 01:43:25 +0000
+++ Clipper/data/messages	1970-01-01 00:00:00 +0000
@@ -1,146 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Items")
-
-_("Clipboard items are those you get with CTRL+c. Selection items are those you get by selecting some text with the mouse.")
-
-_("Which items should be remembered?")
-
-_("None")
-
-_("Clipboard")
-
-_("Selection")
-
-_("Both")
-
-_("Number of items:")
-
-_("Remember items between 2 sessions ?")
-
-_("It is especially useful if you often select text with the mouse and don't want to loose your clipboard items due to too many items in the selection.")
-
-_("Separate clipboard and selection?")
-
-_("If so, number of selection items:")
-
-_("When you click on an item, its content will become accessible with CTRL+v")
-
-_("Paste into Clipboard?")
-
-_("When you click on an item, its content will become accessible with the middle-click")
-
-_("Paste into Selection?")
-
-_("Shortkey to pop-up the items menu:")
-
-_("Pop-up menus at mouse position?")
-
-_("Actions")
-
-_("If some actions are associated with an item, they will be proposed when the item is created.")
-
-_("Enable actions?")
-
-_("Display actions when selecting an item in the history.")
-
-_("Replay actions?")
-
-_("in seconds.")
-
-_("Duration of the action menu:")
-
-_("Persistent items")
-
-_("A list of persistent items which can be accessed with middle-click:")
-

=== modified file 'Clipper/src/applet-init.c'
--- Clipper/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ Clipper/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -26,7 +26,7 @@
 #include "applet-init.h"
 
 
-CD_APPLET_DEFINITION (N_("Clipper"),
+CD_APPLET_DEFINE_BEGIN ("Clipper",
 	1, 6, 3,
 	CAIRO_DOCK_CATEGORY_APPLET_ACCESSORY,
 	N_("This applet keeps a trace of the clipboard and mouse selection,\n"
@@ -35,6 +35,9 @@
 	"Left-click to popup the clipboard and mouse selection history,\n"
 	"Drop text on the icon to create persistent items, and middle-clck to recall them."),
 	"Fabrice Rey (Fabounet)")
+	CD_APPLET_DEFINE_COMMON_APPLET_INTERFACE
+	CD_APPLET_REDEFINE_TITLE (N_("Clipboard history"))
+CD_APPLET_DEFINE_END
 
 
 //\___________ Here is where you initiate your applet. myConfig is already set at this point, and also myIcon, myContainer, myDock, myDesklet (and myDrawContext if you're in dock mode). The macro CD_APPLET_MY_CONF_FILE and CD_APPLET_MY_KEY_FILE can give you access to the applet's conf-file and its corresponding key-file (also available during reload). If you're in desklet mode, myDrawContext is still NULL, and myIcon's buffers has not been filled, because you may not need them then (idem when reloading).

=== modified file 'Clipper/src/applet-notifications.c'
--- Clipper/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ Clipper/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -35,7 +35,7 @@
 	else
 	{
 		GtkWidget *pMenu = cd_clipper_build_items_menu ();
-		cairo_dock_popup_menu_on_container (pMenu, myContainer);
+		cairo_dock_popup_menu_on_icon (pMenu, myIcon, myContainer);
 	}
 CD_APPLET_ON_CLICK_END
 
@@ -85,9 +85,11 @@
 	CD_APPLET_LEAVE();
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
+	// Sub-Menu
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK ("Clear clipboard History", "gtk-clear", _cd_clipper_clear_history, pSubMenu);
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK ("Paste all copied items", "gtk-paste", _cd_clipper_paste_all, pSubMenu);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK ("Clear clipboard History", GTK_STOCK_CLEAR, _cd_clipper_clear_history, pSubMenu);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK ("Paste all copied items", GTK_STOCK_PASTE, _cd_clipper_paste_all, pSubMenu);
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 
@@ -101,7 +103,7 @@
 	else
 	{
 		GtkWidget *pMenu = cd_clipper_build_persistent_items_menu ();
-		cairo_dock_popup_menu_on_container (pMenu, myContainer);
+		cairo_dock_popup_menu_on_icon (pMenu, myIcon, myContainer);
 	}
 CD_APPLET_ON_MIDDLE_CLICK_END
 

=== removed file 'Dbus/data/messages'
--- Dbus/data/messages	2010-08-07 01:43:25 +0000
+++ Dbus/data/messages	1970-01-01 00:00:00 +0000
@@ -1,26 +0,0 @@
-_("Configuration")
-
-_("Let external applications pop up dialogs in the dock?")
-
-_("Let external applications reboot the dock?")
-
-_("Let external applications quit the dock?")
-
-_("Let external applications show/hide desklets?")
-
-_("Let external applications reload applets?")
-
-_("Let external applications show/hide docks?")
-
-_("Let extern applications add launchers to the docks?")
-
-_("Let external applications modify the labels of icons?")
-
-_("Let extern applications modify the quick-infos on icons?")
-
-_("Let extern applications modify the icons' image?")
-
-_("Let extern applications animate icons?")
-
-_("Let extern applications register new module?")
-

=== modified file 'Dbus/src/applet-dbus.c'
--- Dbus/src/applet-dbus.c	2010-08-07 01:43:25 +0000
+++ Dbus/src/applet-dbus.c	2010-09-07 00:46:10 +0000
@@ -146,7 +146,7 @@
 	gchar *cUserPackagesDir = g_strdup_printf ("%s/%s", g_cCairoDockDataDir, CD_DBUS_APPLETS_FOLDER);
 	gchar *cDistantPackagesDir = g_strdup_printf ("%s/%d.%d.%d", CD_DBUS_APPLETS_FOLDER, g_iMajorVersion, g_iMinorVersion, g_iMicroVersion);
 	gchar *cPath = cairo_dock_get_package_path (cModuleName, cSharePackagesDir, cUserPackagesDir, cDistantPackagesDir,  CAIRO_DOCK_UPDATED_PACKAGE);
-	g_print ("*** update of the applet '%s' -> got '%s'\n", cModuleName, cPath);
+	cd_debug ("*** update of the applet '%s' -> got '%s'\n", cModuleName, cPath);
 	g_free (cPath);
 	g_free (cSharePackagesDir);
 	g_free (cUserPackagesDir);
@@ -161,7 +161,7 @@
 	
 	if (pModule->pInstancesList != NULL)  // applet active => on la recharge.
 	{
-		g_print ("*** applet '%s' is active, reload it\n", cModuleName);
+		cd_debug ("*** applet '%s' is active, reload it", cModuleName);
 		CairoDockModuleInstance *pModuleInstance = pModule->pInstancesList->data;
 		Icon *pIcon = pModuleInstance->pIcon;
 		CairoContainer *pContainer = pModuleInstance->pContainer;
@@ -193,15 +193,15 @@
 	//cairo_dock_free_task (pUpdateTask);
 	return TRUE;
 }
-static void _check_update_theme (const gchar *cModuleName, CairoDockPackage *pPackage, gpointer data)
+static void _check_update_package (const gchar *cModuleName, CairoDockPackage *pPackage, gpointer data)
 {
-	g_print ("*** %s (%s, %d)\n", __func__, cModuleName, pPackage->iType);
+	cd_message ("*** %s (%s, %d)", __func__, cModuleName, pPackage->iType);
 	if (pPackage->iType == CAIRO_DOCK_UPDATED_PACKAGE)
 	{
 		gchar *cUserDirPath = g_strdup_printf ("%s/%s/%s", g_cCairoDockDataDir, CD_DBUS_APPLETS_FOLDER, cModuleName);
 		if (g_file_test (cUserDirPath, G_FILE_TEST_EXISTS))
 		{
-			g_print ("*** the applet '%s' needs to be updated\n", cModuleName);
+			cd_message ("*** the applet '%s' needs to be updated", cModuleName);
 			CairoDockTask *pUpdateTask = cairo_dock_new_task_full (0, (CairoDockGetDataAsyncFunc) _get_package_path, (CairoDockUpdateSyncFunc) _apply_package_update, (GFreeFunc) g_free, g_strdup (cModuleName));
 			myData.pUpdateTasksList = g_list_prepend (myData.pUpdateTasksList, pUpdateTask);
 			cairo_dock_launch_task (pUpdateTask);
@@ -212,7 +212,7 @@
 {
 	if (pThemesTable != NULL)
 	{
-		g_hash_table_foreach (pThemesTable, (GHFunc) _check_update_theme, NULL);
+		g_hash_table_foreach (pThemesTable, (GHFunc) _check_update_package, NULL);
 	}
 	cairo_dock_free_task (myData.pGetListTask);
 	myData.pGetListTask = NULL;
@@ -240,11 +240,10 @@
 	g_idle_add ((GSourceFunc) _cd_dbus_launch_third_party_applets, NULL);  // on les lance avec un delai, car si l'applet DBus est lancee au demarrage du dock, on est dans la fonction cairo_dock_activate_modules_from_list(), et donc si on enregistre des applets pendant ce temps, le dock risque de recharger certaines des applets distantes (celles qui seront actives en conf et qui viendront apres DBus).
 	
 	// on telecharge en tache de fond la liste des applets.
-	gchar *cSharePackagesDir = g_strdup_printf ("%s/%s", MY_APPLET_SHARE_DATA_DIR, CD_DBUS_APPLETS_FOLDER);
+	const gchar *cSharePackagesDir = NULL;  // MY_APPLET_SHARE_DATA_DIR"/"CD_DBUS_APPLETS_FOLDER;
 	gchar *cUserPackagesDir = g_strdup_printf ("%s/%s", g_cCairoDockDataDir, CD_DBUS_APPLETS_FOLDER);
 	gchar *cDistantPackagesDir = g_strdup_printf ("%s/%d.%d.%d", CD_DBUS_APPLETS_FOLDER, g_iMajorVersion, g_iMinorVersion, g_iMicroVersion);
 	myData.pGetListTask = cairo_dock_list_packages_async (cSharePackagesDir, cUserPackagesDir, cDistantPackagesDir, (CairoDockGetPackagesFunc) _on_got_list, NULL);
-	g_free (cSharePackagesDir);
 	g_free (cUserPackagesDir);
 	g_free (cDistantPackagesDir);
 }
@@ -345,7 +344,7 @@
 {
 	if (! myConfig.bEnableNewModule)
 		return FALSE;
-	g_print ("%s (%s)\n", __func__, cModuleName);
+	cd_message ("%s (%s)", __func__, cModuleName);
 	
 	//\____________ on cree et on enregistre un nouveau module s'il n'existe pas deja.
 	CairoDockModule *pModule = cairo_dock_find_module_from_name (cModuleName);

=== removed file 'Doncky/data/messages'
--- Doncky/data/messages	2010-08-07 01:43:25 +0000
+++ Doncky/data/messages	1970-01-01 00:00:00 +0000
@@ -1,140 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Leave empty to use the default one.")
-
-_("Specify the xml file to be used :")
-
-_("Appearance")
-
-_("Text")
-
-_("Font to be used by default if none is specify in the .xml")
-
-_("Default Font:")
-
-_("Color to be used by default if none is specify in the .xml")
-
-_("Default colour:")
-
-_("Margin to be used on left, right and top of the desklet")
-
-_("Margin all around the desklet:")
-
-_("Use this to increase the space between the lines")
-
-_("Space between lines:")
-
-_("Background")
-
-_("You can have more attractive backgrounds using the Desklet decorations")
-
-_("Display a simple background?")
-
-_("first colour of the gradation")
-
-_("Background first colour :")
-
-_("second colour of the gradation")
-
-_("Background second colour:")
-
-_("Set the radius corner to 0 for no radius")
-
-_("Background radius corner:")
-
-_("Set the thickness to 0 for no border")
-
-_("Border thickness:")
-
-_("Border colour")
-
-_("Border colour :")
-

=== modified file 'Folders/data/Folders.conf.in'
--- Folders/data/Folders.conf.in	2010-08-07 01:43:25 +0000
+++ Folders/data/Folders.conf.in	2010-09-07 00:46:10 +0000
@@ -11,6 +11,12 @@
 #{Let empty to use the name of the folder.}
 name =
 
+#d Name of the dock it belongs to:
+dock name = 
+
+#v
+sep_icon=
+
 #Y[Use an image;1;1;Draw sub-dock's content as emblems;0;0;Draw sub-dock's content as stack;0;0;Draw sub-dock's content inside a box;0;0] How to render the icon :
 view type = 3
 
@@ -18,9 +24,6 @@
 #{Leave empty to use the default one.}
 image file = 
 
-#d Name of the dock it belongs to:
-dock name = 
-
 icon =
 order=
 
@@ -29,6 +32,7 @@
 #A
 handbook=Folders
 
+
 #[gtk-convert]
 [Desklet]
 
@@ -39,9 +43,9 @@
 #{If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.}
 locked = false
 
-#j+[48;512] Desklet dimensions (width x height):
+#j+[96;640] Desklet dimensions (width x height):
 #{Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.}
-size = 256;196
+size = 400;200
 
 #i[-2048;2048] Desklet position (x, y):
 #{Depending on your WindowManager, you may be able to move this with ALT + left-click.}
@@ -64,9 +68,6 @@
 #b Should be visible on all desktops?
 sticky=true
 
-
-
-
 #F[Decorations;gtk-orientation-portrait]
 frame_deco=
 

=== removed file 'Folders/data/messages'
--- Folders/data/messages	2010-08-07 01:43:25 +0000
+++ Folders/data/messages	1970-01-01 00:00:00 +0000
@@ -1,124 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Let empty to use the name of the folder.")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("How to render the icon :")
-
-_("Use an image")
-
-_("Draw sub-dock's content as emblems")
-
-_("Draw sub-dock's content as stack")
-
-_("Draw sub-dock's content inside a box")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Folder's path:")
-
-_("Maximum number of files to list:")
-
-_("Sort files by :")
-
-_("Name")
-
-_("Date")
-
-_("Size")
-
-_("Sort folders before files?")
-
-_("Show hidden files?")
-
-_("Leave empty to use default sub-dock view.")
-
-_("Sub-dock view name:")
-

=== modified file 'Folders/src/applet-config.c'
--- Folders/src/applet-config.c	2010-08-07 01:43:25 +0000
+++ Folders/src/applet-config.c	2010-09-07 00:46:10 +0000
@@ -30,11 +30,20 @@
 	myConfig.cDefaultTitle = CD_CONFIG_GET_STRING ("Icon", "name");
 	myConfig.cImageFile = CD_CONFIG_GET_STRING ("Icon", "image file");
 	myConfig.cDirPath = CD_CONFIG_GET_STRING ("Configuration", "dir path");
-	if (myConfig.cDirPath && *myConfig.cDirPath == '/')
+	if (myConfig.cDirPath)
 	{
-		gchar *tmp = myConfig.cDirPath;
-		myConfig.cDirPath = g_filename_to_uri (myConfig.cDirPath, NULL, NULL);
-		g_free (tmp);
+		if (*myConfig.cDirPath == '~')
+		{
+			gchar *tmp = myConfig.cDirPath;
+			myConfig.cDirPath = g_strdup_printf ("%s/%s", g_getenv ("HOME"), myConfig.cDirPath);
+			g_free (tmp);
+		}
+		if (*myConfig.cDirPath == '/')
+		{
+			gchar *tmp = myConfig.cDirPath;
+			myConfig.cDirPath = g_filename_to_uri (myConfig.cDirPath, NULL, NULL);
+			g_free (tmp);
+		}
 	}
 	myConfig.cRenderer = CD_CONFIG_GET_STRING ("Configuration", "renderer");
 	//myConfig.iNbIcons = CD_CONFIG_GET_INTEGER ("Configuration", "nb icons");

=== modified file 'Folders/src/applet-notifications.c'
--- Folders/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ Folders/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -47,7 +47,7 @@
 					D_("Empty or unreadable folder."));
 		}
 		else
-			return CAIRO_DOCK_LET_PASS_NOTIFICATION;  // on laisse passer la notification (pour ouvrir le sous-dock au clic).
+			CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);  // on laisse passer la notification (pour ouvrir le sous-dock au clic).
 	}
 	else if (CD_APPLET_CLICKED_ICON != NULL)
 	{
@@ -257,13 +257,13 @@
 	gtk_widget_destroy (pFileChooserDialog);
 }
 
-static void _cd_folders_new_file (GtkMenuItem *pMenuItem, CairoDockModuleInstance *myApplet)
+static inline void _create_new_file (CairoDockModuleInstance *myApplet, gboolean bFolder)
 {
 	gchar *cNewName = cairo_dock_show_demand_and_wait (D_("Enter a file name:"), myIcon, myContainer, NULL);
 	if (cNewName != NULL && *cNewName != '\0')
 	{
 		gchar *cURI = g_strdup_printf ("%s/%s", myConfig.cDirPath, cNewName);
-		gboolean bSuccess = cairo_dock_fm_create_file (cURI, FALSE);  // FALSE <=> file
+		gboolean bSuccess = cairo_dock_fm_create_file (cURI, bFolder);
 		if (! bSuccess)
 		{
 			cd_warning ("couldn't create this file.\nCheck that you have writing rights, and that the new name does not already exist.");
@@ -271,10 +271,18 @@
 		}
 	}
 }
+static void _cd_folders_new_file (GtkMenuItem *pMenuItem, CairoDockModuleInstance *myApplet)
+{
+	_create_new_file (myApplet, FALSE);
+}
+static void _cd_folders_new_folder (GtkMenuItem *pMenuItem, CairoDockModuleInstance *myApplet)
+{
+	_create_new_file (myApplet, TRUE);
+}
 
 static void _cd_folders_open_folder (GtkMenuItem *pMenuItem, CairoDockModuleInstance *myApplet)
 {
-	
+	cairo_dock_fm_launch_uri (myConfig.cDirPath);
 }
 
 static void _cd_folders_launch_with (GtkMenuItem *pMenuItem, gpointer *app)
@@ -308,21 +316,30 @@
 	data[1] = CD_APPLET_CLICKED_CONTAINER;
 	data[2] = myApplet;
 	
-	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
-	
-	if (CD_APPLET_CLICKED_ICON != NULL && CD_APPLET_CLICKED_ICON != myIcon)  // clic sur un des fichiers
-	{
+	if (CD_APPLET_CLICKED_ICON == myIcon || CD_APPLET_CLICKED_ICON == NULL)  // click on main icon or on the container.
+	{
+		GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Open the folder (middle-click)"), GTK_STOCK_OPEN, _cd_folders_open_folder, CD_APPLET_MY_MENU, myApplet);
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
+		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
+	}
+	else  // clic on a file.
+	{
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Rename this file"), GTK_STOCK_SAVE_AS, _cd_folders_rename_file, CD_APPLET_MY_MENU, data);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Delete this file"), GTK_STOCK_REMOVE, _cd_folders_delete_file, CD_APPLET_MY_MENU, data);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Move this file"), GTK_STOCK_JUMP_TO, _cd_folders_move_file, CD_APPLET_MY_MENU, data);
+		
 		GList *pApps = cairo_dock_fm_list_apps_for_file (CD_APPLET_CLICKED_ICON->cBaseURI);
 		if (pApps != NULL)
 		{
+			CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
 			GtkWidget *pSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("Open with"), CD_APPLET_MY_MENU, GTK_STOCK_OPEN);
 			
 			cd_folders_free_apps_list (myApplet);
 			
 			GList *a;
 			gchar **pAppInfo;
-			gchar *cIconPath; 
+			gchar *cIconPath;
 			gpointer *app;
 			for (a = pApps; a != NULL; a = a->next)
 			{
@@ -349,19 +366,12 @@
 		else
 			g_print ("no apps list for '%s'\n", CD_APPLET_CLICKED_ICON->cBaseURI);
 		
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Delete this file"), GTK_STOCK_REMOVE, _cd_folders_delete_file, CD_APPLET_MY_MENU, data);
-		
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Rename this file"), GTK_STOCK_EDIT, _cd_folders_rename_file, CD_APPLET_MY_MENU, data);
-		
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Move this file"), GTK_STOCK_JUMP_TO, _cd_folders_move_file, CD_APPLET_MY_MENU, data);
-		
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
 		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Properties"), GTK_STOCK_PROPERTIES, _cd_folders_show_file_properties, CD_APPLET_MY_MENU, data);
 		
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
 		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Create a new file"), GTK_STOCK_NEW, _cd_folders_new_file, CD_APPLET_MY_MENU, myApplet);
-	}
-	else
-	{
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Open the folder (middle-click)"), GTK_STOCK_OPEN, _cd_folders_open_folder, CD_APPLET_MY_MENU, myApplet);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Create a new folder"), GTK_STOCK_NEW, _cd_folders_new_folder, CD_APPLET_MY_MENU, myApplet);
 	}
 	
 	if (CD_APPLET_CLICKED_ICON != NULL && CD_APPLET_CLICKED_ICON != myIcon)

=== removed file 'GMenu/data/messages'
--- GMenu/data/messages	2010-08-07 01:43:25 +0000
+++ GMenu/data/messages	1970-01-01 00:00:00 +0000
@@ -1,114 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Display icons in the menu?")
-
-_("Shortkey to show/hide the menu:")
-
-_("Shortkey to show/hide the quick-launch dialog:")
-
-_("Leave empty to use the default one.")
-
-_("Command to use for configuring the menu:")
-
-_("Recent documents")
-
-_("Show recent documents?")
-
-_("Leave blank if filter is not needed.")
-
-_("Only show files that are under this folder or its sub-folder:")
-
-_("in days. Set 0 if unsued.")
-
-_("Only show files whose last modification date is less than ;")
-

=== modified file 'GMenu/src/applet-menu.c'
--- GMenu/src/applet-menu.c	2010-08-07 01:43:25 +0000
+++ GMenu/src/applet-menu.c	2010-09-07 00:46:10 +0000
@@ -690,8 +690,20 @@
 GtkWidget * create_main_menu (CairoDockModuleInstance *myApplet)
 {
 	GtkWidget *main_menu;
-
-	main_menu = create_applications_menu ("applications.menu", NULL, NULL);
+	
+	// workaround pour KDE, qui ne loupe pas une occasion de se distinguer.
+	const gchar *cMenuFileName = NULL;
+	if (! g_file_test ("/etc/xdg/menus/applications.menu", G_FILE_TEST_EXISTS))  // on pourrait aussi aller lire le start-here.menu, mais je suis pas sur que ce soit standard.
+	{
+		if (g_file_test ("/etc/xdg/menus/kde-applications.menu", G_FILE_TEST_EXISTS))
+			cMenuFileName = "kde-applications.menu";
+		else if (g_file_test ("/etc/xdg/menus/xfce-applications.menu", G_FILE_TEST_EXISTS))
+			cMenuFileName = "xfce-applications.menu";
+	}
+	if (cMenuFileName == NULL)
+		cMenuFileName = "applications.menu";
+	
+	main_menu = create_applications_menu (cMenuFileName, NULL, NULL);
 	
 	g_object_set_data (G_OBJECT (main_menu),
 		"panel-menu-append-callback",

=== modified file 'GMenu/src/applet-notifications.c'
--- GMenu/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ GMenu/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -30,7 +30,7 @@
 {
 	if (myData.pMenu != NULL)
 	{
-		cairo_dock_popup_menu_on_container (myData.pMenu, myContainer);
+		cairo_dock_popup_menu_on_icon (myData.pMenu, myIcon, myContainer);
 	}
 }
 
@@ -48,79 +48,8 @@
 }
 
 //\___________ Define here the action to be taken when the user left-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons.
-static void _on_activate_item (GtkWidget *pMenuItem, gpointer *data);
-static void _fill_menu_with_dir (gchar *cDirPath, GtkWidget *pMenu)
-{
-	GError *erreur = NULL;
-	GDir *dir = g_dir_open (cDirPath, 0, &erreur);
-	if (erreur != NULL)
-	{
-		return ;
-	}
-	
-	const gchar *cFileName;
-	gchar *cPath;
-	gpointer *data;
-	GtkWidget *pMenuItem;
-	do
-	{
-		cFileName = g_dir_read_name (dir);
-		if (cFileName == NULL)
-			break ;
-		
-		cPath = g_strdup_printf ("%s/%s", cDirPath, cFileName);
-		pMenuItem = gtk_menu_item_new_with_label (cFileName);
-		data = g_new (gpointer, 2);
-		data[0] = cPath;
-		
-		gtk_menu_shell_append  (GTK_MENU_SHELL (pMenu), pMenuItem);
-		g_signal_connect (G_OBJECT (pMenuItem), "activate", G_CALLBACK(_on_activate_item), data);
-		
-		if (g_file_test (cPath, G_FILE_TEST_IS_DIR))
-		{
-			GtkWidget *pSubMenu = gtk_menu_new ();
-			gtk_menu_item_set_submenu (GTK_MENU_ITEM (pMenuItem), pSubMenu);
-			data[1] = pSubMenu;
-		}
-	}
-	while (1);
-	g_dir_close (dir);
-}
-static void _on_activate_item (GtkWidget *pMenuItem, gpointer *data)
-{
-	gchar *cPath = data[0];
-	cd_debug ("%s (%s)\n", __func__, cPath);
-	
-	if (g_file_test (cPath, G_FILE_TEST_IS_DIR))
-	{
-		cd_debug ("c'est un repertoire\n");
-		GtkWidget *pSubMenu = data[1];
-		_fill_menu_with_dir (cPath, pSubMenu);
-		gtk_widget_show_all (pSubMenu);
-	}
-	else
-	{
-		cairo_dock_fm_launch_uri (cPath);
-	}
-}
 CD_APPLET_ON_CLICK_BEGIN
 	cd_menu_show_menu ();
-	
-	/*gchar *cDirPath = g_getenv ("HOME");
-	GtkWidget *pMenu = gtk_menu_new ();
-	
-	_fill_menu_with_dir (cDirPath, pMenu);
-	
-	gtk_widget_show_all (pMenu);
-	
-	gtk_menu_popup (GTK_MENU (pMenu),
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		1,
-		gtk_get_current_event_time ());*/
-	
 CD_APPLET_ON_CLICK_END
 
 
@@ -143,10 +72,14 @@
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Quick launch (Middle-click)"), GTK_STOCK_EXECUTE, cd_menu_show_hide_quick_launch, CD_APPLET_MY_MENU);
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Configure menu"), GTK_STOCK_PREFERENCES, _cd_menu_configure_menu, CD_APPLET_MY_MENU);
+		
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Clear recent"), GTK_STOCK_CLEAR, cd_menu_clear_recent, CD_APPLET_MY_MENU);
+		
 		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Quick launch"), GTK_STOCK_EXECUTE, cd_menu_show_hide_quick_launch, pSubMenu);
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Configure menu"), GTK_STOCK_PREFERENCES, _cd_menu_configure_menu, pSubMenu);
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Clear recent"), GTK_STOCK_CLEAR, cd_menu_clear_recent, pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 
 

=== modified file 'Indicator-applet/indicator-applet.c'
--- Indicator-applet/indicator-applet.c	2010-08-07 01:43:25 +0000
+++ Indicator-applet/indicator-applet.c	2010-09-07 00:46:10 +0000
@@ -164,7 +164,7 @@
 	_cd_indicator_make_menu (pIndicator);
 	if (pIndicator->pMenu != NULL)
 	{
-		cairo_dock_popup_menu_on_container (GTK_WIDGET (pIndicator->pMenu), myContainer);
+		cairo_dock_popup_menu_on_icon (GTK_WIDGET (pIndicator->pMenu), myIcon, myContainer);
 		return TRUE;
 	}
 	return FALSE;

=== removed file 'MeMenu/data/messages'
--- MeMenu/data/messages	2010-08-07 01:43:25 +0000
+++ MeMenu/data/messages	1970-01-01 00:00:00 +0000
@@ -1,86 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-

=== removed file 'Messaging-Menu/data/messages'
--- Messaging-Menu/data/messages	2010-08-07 01:43:25 +0000
+++ Messaging-Menu/data/messages	1970-01-01 00:00:00 +0000
@@ -1,90 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Animation of the icon when one of the application demands your attention :")
-

=== modified file 'Network-Monitor/data/Network-Monitor.conf.in'
--- Network-Monitor/data/Network-Monitor.conf.in	2010-08-07 01:43:25 +0000
+++ Network-Monitor/data/Network-Monitor.conf.in	2010-09-07 00:46:10 +0000
@@ -140,7 +140,7 @@
 #X[Gauge;gtk-dialog-info]
 frame_gauge=
 
-#h+[@gaugesdir@;gauges;gauges] Choose one of the available themes:/
+#h+[@gaugesdir@;gauges;gauges2] Choose one of the available themes:/
 theme = turbo-night-fuel
 
 #X[Graph;gtk-dialog-info]
@@ -179,7 +179,7 @@
 #X[Gauge;gtk-dialog-info]
 frame_gauge=
 
-#h+[@gaugesdir@;gauges;gauges] Choose one of the available themes:/
+#h+[@gaugesdir@;gauges;gauges2] Choose one of the available themes:/
 theme = turbo-night-fuel
 
 

=== removed file 'Network-Monitor/data/messages'
--- Network-Monitor/data/messages	2010-08-07 01:43:25 +0000
+++ Network-Monitor/data/messages	1970-01-01 00:00:00 +0000
@@ -1,258 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Leave empty to use the connection name.")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Always display the icon, even when the dock is hidden?")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Parameters")
-
-_("You can quickly switch to the other mode by scrolling on the icon.")
-
-_("Info displayed by the icon:")
-
-_("Wifi signal")
-
-_("Connexion speed")
-
-_("By default the first active interface is used.")
-
-_("Connection interface to monitor:")
-
-_("Display numeric values:")
-
-_("No")
-
-_("On icon")
-
-_("On label")
-
-_("You need OpenGL for this option. Set it to 0 means not used, 1 means the movement is continue.")
-
-_("Fluidity of the transition animation between 2 values:")
-
-_("Animation of the icon when connecting:")
-
-_("Allow you to overwrite applet's default command line and launch your preferred wireless configuration interface.")
-
-_("User command to show Wireless Configuration:")
-
-_("Leave empty to use the default.")
-
-_("User command to display a system monitor:")
-
-_("Net Speed")
-
-_("Choose the style of the display: ")
-
-_("Gauge")
-
-_("Graph")
-
-_("Gauge")
-
-_("Choose one of the available themes:")
-
-_("Graph")
-
-_("Type of graphic :")
-
-_("Line")
-
-_("Plain")
-
-_("Bar")
-
-_("Circle")
-
-_("Plain Circle")
-
-_("It's the colour of the graphic for high quality signal.")
-
-_("High value's colour :")
-
-_("It's the colour of the graphic for low quality signal.")
-
-_("Low value's colour :")
-
-_("Background colour of the graphic :")
-
-_("Parameters")
-
-_("in seconds.")
-
-_("Delays between net speed checks:")
-
-_("Wifi")
-
-_("Choose the style of the display:")
-
-_("Gauge")
-
-_("Graph")
-
-_("Icons")
-
-_("Gauge")
-
-_("Choose one of the available themes:")
-
-_("Graph")
-
-_("Type of graphic :")
-
-_("Line")
-
-_("Plain")
-
-_("Bar")
-
-_("Circle")
-
-_("Plain Circle")
-
-_("It's the colour of the graphic for high quality signal.")
-
-_("High value's colour :")
-
-_("It's the colour of the graphic for low quality signal.")
-
-_("Low value's colour :")
-
-_("Background colour of the graphic :")
-
-_("Icons")
-
-_("Effect to apply on the icon according to strength :")
-
-_("None")
-
-_("Zoom")
-
-_("Transparency")
-
-_("Draw Bar")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'No signal' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'Very low' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'Low' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'Middle' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of an image for the 'Good' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'Excellent' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'Not connected' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'Wired connection' icon :")
-
-_("Parameters")
-
-_("in seconds. if you don't have Network-Manager.")
-
-_("Delays between wifi signal checks:")
-

=== removed file 'RSSreader/data/messages'
--- RSSreader/data/messages	2010-08-07 01:43:25 +0000
+++ RSSreader/data/messages	1970-01-01 00:00:00 +0000
@@ -1,204 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Leave empty to use the title of the RSS feed.")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("RSS Feed")
-
-_("Enter a valid atom/rss feed")
-
-_("URL:")
-
-_("RSS login (optional):")
-
-_("RSS password (optional):")
-
-_("Behaviour")
-
-_("In minutes.")
-
-_("Refresh time:")
-
-_("Notify about feed updates:")
-
-_("No")
-
-_("Icon animation")
-
-_("Dialog bubble")
-
-_("Icon animation + Dialog bubble")
-
-_("Let empty to use the default notification animation.")
-
-_("Animation of the icon:")
-
-_("In seconds. Set to 0 for infinite time (need to click on dialog to close it).")
-
-_("Duration of the notification:")
-
-_("Leave empty to use the default one.")
-
-_("Open the feed with the following program:")
-
-_("Appearance")
-
-_("Title")
-
-_("Font to be used for the title")
-
-_("Title font:")
-
-_("Colour to be used for the title")
-
-_("Title colour:")
-
-_("Alignment of the title:")
-
-_("left")
-
-_("right")
-
-_("Text")
-
-_("Font to be used for the feed lines")
-
-_("Feed lines font:")
-
-_("Colour to be used for the feed lines")
-
-_("Feed lines colour:")
-
-_("Left margin for the feed lines:")
-
-_("Space between 2 feed lines:")
-
-_("Logo")
-
-_("The default logo is the applet's icon")
-
-_("Display the logo?")
-
-_("Adjust to increase/decrease the logo's size")
-
-_("Logo size:")
-
-_("normal")
-
-_("big")
-
-_("Background")
-
-_("You can have more attractive backgrounds using the Desklet decorations")
-
-_("Display a simple background?")
-
-_("first colour of the gradation")
-
-_("Background first colour :")
-
-_("second colour of the gradation")
-
-_("Background second colour:")
-
-_("Set the radius corner to 0 for no radius")
-
-_("Background radius corner:")
-
-_("Set the thickness to 0 for no border")
-
-_("Border thickness:")
-
-_("Border colour")
-
-_("Border colour :")
-

=== modified file 'RSSreader/src/applet-notifications.c'
--- RSSreader/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ RSSreader/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -137,13 +137,13 @@
 }
 CD_APPLET_ON_SCROLL_BEGIN
 	if (! myDesklet)
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 	
 	myData.iFirstDisplayedItem += (CD_APPLET_SCROLL_UP ? -1 : 1);
 	if (myData.iFirstDisplayedItem < 0)  // on a scrolle trop haut.
 	{
 		myData.iFirstDisplayedItem = 0;
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 	}
 	else
 	{
@@ -151,7 +151,7 @@
 		if (myData.iFirstDisplayedItem > n - 1)  // on a scrolle trop bas.
 		{
 			myData.iFirstDisplayedItem = n - 1;
-			return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+			CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 		}
 	}
 	if (myData.iSidRedrawIdle == 0)  // on planifie un redessin pour quand la boucle principale sera accessible, de facon a éviter de la surcharger en cas de scroll rapide.

=== removed file 'Scooby-Do/data/messages'
--- Scooby-Do/data/messages	2010-08-07 01:43:25 +0000
+++ Scooby-Do/data/messages	1970-01-01 00:00:00 +0000
@@ -1,118 +0,0 @@
-_("Configuration")
-
-_("Shortkey to enable/disable the finder mode:")
-
-_("Shortkey to enable/disable the navigation mode:")
-
-_("Maximum number of mails that will be previewed. Put -1 to show the maximum possible.")
-
-_("Maximum number of results :")
-
-_("Number of lines of the listing. If there are more results, the listing will scroll when you go up or down with the arrows.")
-
-_("Number of lines to display :")
-
-_("Animations")
-
-_("In ms.")
-
-_("Duration of the appearance animation :")
-
-_("In ms.")
-
-_("Duration of the stop animation :")
-
-_("Animation of the current icon :")
-
-_("Is detached from the dock")
-
-_("Font used to display what you type:")
-
-_("Color of the text's frame  :")
-
-_("Font size, relative to the dock size:")
-
-_("between 1 and 9, the higher, the bigger.")
-
-_("Text size:")
-
-_("Outline text?")
-
-_("Text colour:")
-
-_("Character background colour:")
-
-_("Write text on the top of the dock?")
-
-_("Favorite applications")
-
-_("FAvorite applications starting with 'a' :")
-
-_("Favorite application starting with 'b' :")
-
-_("Favorite application(s) starting with 'c' :")
-
-_("Favorite application(s starting with 'd' :")
-
-_("Favorite application(s) starting with 'e' :")
-
-_("Favorite application(s) starting with 'f' :")
-
-_("Favorite application(s) starting with 'g' :")
-
-_("Favorite application(s) starting with 'h' :")
-
-_("Favorite application(s) starting with 'i' :")
-
-_("Favorite application(s) starting with 'j' :")
-
-_("Favorite application(s) starting with 'k' :")
-
-_("Favorite application(s) starting with 'l' :")
-
-_("Favorite application(s) starting with 'm' :")
-
-_("Favorite application(s) starting with 'n' :")
-
-_("Favorite application(s) starting with 'o' :")
-
-_("Favorite application(s) starting with 'p' :")
-
-_("Favorite application(s) starting with 'q' :")
-
-_("Favorite application(s) starting with 'r' :")
-
-_("Favorite application(s) starting with 's' :")
-
-_("Favorite application(s) starting with 't' :")
-
-_("Favorite application(s) starting with 'u' :")
-
-_("Favorite application(s) starting with 'v' :")
-
-_("Favorite application(s) starting with 'w' :")
-
-_("Favorite application(s) starting with 'x' :")
-
-_("Favorite application(s) starting with 'y' :")
-
-_("Favorite application(s) starting with 'z' :")
-
-_("Start XPenguins")
-
-_("Show hidden files?")
-
-_("Firefox bookmarks")
-
-_("Recent files")
-
-_("Propose some web search engines ?")
-
-_("It can launch commands and even do some calculations.")
-
-_("Enter a command to launch:")
-
-_("Help")
-
-_("Applet's Handbook")
-

=== modified file 'Status-Notifier/CMakeLists.txt'
--- Status-Notifier/CMakeLists.txt	2010-08-07 01:43:25 +0000
+++ Status-Notifier/CMakeLists.txt	2010-09-07 00:46:10 +0000
@@ -1,15 +1,3 @@
 
 add_subdirectory(src)
 add_subdirectory(data)
-
-
-########### install files ###############
-
-
-
-
-#original Makefile.am contents follow:
-
-##dnl Process this file with automake to produce Makefile.in
-#
-#SUBDIRS = . src data

=== modified file 'Status-Notifier/data/Status-Notifier.conf.in'
--- Status-Notifier/data/Status-Notifier.conf.in	2010-08-07 01:43:25 +0000
+++ Status-Notifier/data/Status-Notifier.conf.in	2010-09-07 00:46:10 +0000
@@ -24,88 +24,78 @@
 #A
 handbook=CD_APPLET_NAME
 
+
 #[gtk-convert]
 [Desklet]
 
 #X[Position]
 frame_pos =
 
-#b Lock position ?
-#{If locked, the desklet can't be moved by simply dragging it with the left mouse button. Of course you can still move it with ALT + left_click.}
+#b Lock position?
+#{If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.}
 locked = false
 
-#j+[48;512] Desklet's dimension (width x height) :
-#{Depending on your WindowManager, you can resize it with ALT + middle_click or ALT + left_click for exemple.}
+#j+[24;512] Desklet dimensions (width x height):
+#{Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.}
 size = 96;96
 
-#i[-2048;2048] Desklet's position (x ; y) :
-#{Depending on your WindowManager, you can move it with ALT + left_click}
+#i[-2048;2048] Desklet position (x, y):
+#{Depending on your WindowManager, you may be able to move this with ALT + left-click.. Negative values are counted from the right/bottom of the screen}
 x position=0
 #i[-2048;2048] ...
 y position=0
 
-#I[-180;180] Rotation :
+#I[-180;180] Rotation:
 #{You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.}
 rotation = 0
 
 #X[Visibility]
 frame_visi =
 
-#b Is detached from the dock ?
+#b Is detached from the dock
 initially detached=false
-#l[Normal;Keep above;Keep below;On Widget Layer;Reserve space] Visibility :
+#l[Normal;Keep above;Keep below;Keep on widget layer;Reserve space] Visibility:
 #{for CompizFusion's "widget layer", set behaviour in Compiz to: (class=Cairo-dock & type=utility)}
 accessibility=0
-#b Should be visible on all desktops ?
+#b Should be visible on all desktops?
 sticky=true
 
-
-
-
 #F[Decorations;gtk-orientation-portrait]
 frame_deco=
 
-#o+ Choose a decoration theme for this desklet :
+#o+ Choose a decoration theme for this desklet:
 #{Choose 'Custom decorations' to define your own decorations below.}
 decorations = default
 
 #v
 sep_deco =
 
-#S+ Background image :
-#{It's an image that will be displayed below the drawings, like a frame for exemple. Let empty to not use any.}
+#S+ Background image:
+#{Image to be displayed below drawings, e.g. a frame. Leave empty for no image.}
 bg desklet =
-#e+[0;1] Background tansparency :
+#e+[0;1] Background transparency:
 bg alpha = 1
-#i+[0;256] Left offset :
-#{in pixels. Use this to adjust the left position of the drawings.}
+#i+[0;256] Left offset:
+#{in pixels. Use this to adjust the left position of drawings.}
 left offset = 0
-#i+[0;256] Top offset :
-#{in pixels. Use this to adjust the top position of the drawings.}
+#i+[0;256] Top offset:
+#{in pixels. Use this to adjust the top position of drawings.}
 top offset = 0
-#i+[0;256] Right offset :
-#{in pixels. Use this to adjust the right position of the drawings.}
+#i+[0;256] Right offset:
+#{in pixels. Use this to adjust the right position of drawings.}
 right offset = 0
-#i+[0;256] Bottom offset :
-#{in pixels. Use this to adjust the bottom position of the drawings.}
+#i+[0;256] Bottom offset:
+#{in pixels. Use this to adjust the bottom position of drawings.}
 bottom offset = 0
-#S+ Foreground image :
-#{It's an image that will be displayed above the drawings, like a reflect for exemple. Let empty to not use any.}
+#S+ Foreground image:
+#{Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.}
 fg desklet =
-#e+[0;1] Foreground tansparency :
+#e+[0;1] Foreground tansparency:
 fg alpha = 1
 
 
 #[gtk-preferences]
 [Configuration]
 
-#b This is a boolean parameter. Y/N ?
-#{This is a tooltip for this parameter.}
-yes_no = false
-
-#i[0;10] This integer can go from 0 to 10 :
-int = 0
-
-#s Enter some text here :
-text = pouic pouic
-
+#b Display items in compact mode?
+compact = false

=== removed file 'Status-Notifier/data/messages'
--- Status-Notifier/data/messages	2010-08-07 01:43:25 +0000
+++ Status-Notifier/data/messages	1970-01-01 00:00:00 +0000
@@ -1,100 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its label in the dock :")
-
-_("Let empty to use the default one.")
-
-_("Image's filename :")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet can't be moved by simply dragging it with the left mouse button. Of course you can still move it with ALT + left_click.")
-
-_("Lock position ?")
-
-_("Depending on your WindowManager, you can resize it with ALT + middle_click or ALT + left_click for exemple.")
-
-_("Desklet's dimension (width x height) :")
-
-_("Depending on your WindowManager, you can move it with ALT + left_click")
-
-_("Desklet's position (x ; y) :")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation :")
-
-_("Visibility")
-
-_("Is detached from the dock ?")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility :")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("On Widget Layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops ?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet :")
-
-_("It's an image that will be displayed below the drawings, like a frame for exemple. Let empty to not use any.")
-
-_("Background image :")
-
-_("Background tansparency :")
-
-_("in pixels. Use this to adjust the left position of the drawings.")
-
-_("Left offset :")
-
-_("in pixels. Use this to adjust the top position of the drawings.")
-
-_("Top offset :")
-
-_("in pixels. Use this to adjust the right position of the drawings.")
-
-_("Right offset :")
-
-_("in pixels. Use this to adjust the bottom position of the drawings.")
-
-_("Bottom offset :")
-
-_("It's an image that will be displayed above the drawings, like a reflect for exemple. Let empty to not use any.")
-
-_("Foreground image :")
-
-_("Foreground tansparency :")
-
-_("Configuration")
-
-_("This is a tooltip for this parameter.")
-
-_("This is a boolean parameter. Y/N ?")
-
-_("This integer can go from 0 to 10 :")
-
-_("Enter some text here :")
-

=== modified file 'Status-Notifier/src/CMakeLists.txt'
--- Status-Notifier/src/CMakeLists.txt	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/CMakeLists.txt	2010-09-07 00:46:10 +0000
@@ -2,14 +2,12 @@
 ########### sources ###############
 
 SET(cd-StatusNotifier_LIB_SRCS
-	applet-init.c
-	applet-init.h
-	applet-config.c
-	applet-config.h
-	applet-host.c
-	applet-host.h
-	applet-notifications.c
-	applet-notifications.h
+	applet-init.c 		applet-init.h
+	applet-config.c 		applet-config.h
+	applet-host.c 		applet-host.h
+	applet-item.c 		applet-item.h
+	applet-draw.c 		applet-draw.h
+	applet-notifications.c 	applet-notifications.h
 	applet-struct.h
 )
 
@@ -27,15 +25,15 @@
 
 include_directories (
 	${PACKAGE_INCLUDE_DIRS}
-	${STATUS_NOTIFIER_PACKAGE_INCLUDE_DIRS})
+	${STATUS_NOTIFIER_INCLUDE_DIRS})
 
 link_directories (
 	${PACKAGE_LIBRARY_DIRS}
-	${STATUS_NOTIFIER_PACKAGE_LIBRARY_DIRS})
+	${STATUS_NOTIFIER_LIBRARY_DIRS})
 
 target_link_libraries (${PACKAGE_STATUS_NOTIFIER}
 	${PACKAGE_LIBRARIES}
-	${STATUS_NOTIFIER_PACKAGE_LIBRARIES})
+	${STATUS_NOTIFIER_LIBRARIES})
 
 ########### install files ###############
 

=== modified file 'Status-Notifier/src/applet-config.c'
--- Status-Notifier/src/applet-config.c	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/applet-config.c	2010-09-07 00:46:10 +0000
@@ -28,15 +28,15 @@
 
 //\_________________ Here you have to get all your parameters from the conf file. Use the macros CD_CONFIG_GET_BOOLEAN, CD_CONFIG_GET_INTEGER, CD_CONFIG_GET_STRING, etc. myConfig has been reseted to 0 at this point. This function is called at the beginning of init and reload.
 CD_APPLET_GET_CONFIG_BEGIN
-	
-	
+	myConfig.bCompactMode = CD_CONFIG_GET_BOOLEAN ("Configuration", "compact");
+	myConfig.bResizeIcon = FALSE;
+	myConfig.iNbLines = 2;
 CD_APPLET_GET_CONFIG_END
 
 
 //\_________________ Here you have to free all ressources allocated for myConfig. This one will be reseted to 0 at the end of this function. This function is called right before you get the applet's config, and when your applet is stopped, in the end.
 CD_APPLET_RESET_CONFIG_BEGIN
 	
-	
 CD_APPLET_RESET_CONFIG_END
 
 

=== added file 'Status-Notifier/src/applet-draw.c'
--- Status-Notifier/src/applet-draw.c	1970-01-01 00:00:00 +0000
+++ Status-Notifier/src/applet-draw.c	2010-09-07 00:46:10 +0000
@@ -0,0 +1,241 @@
+/**
+* This file is a part of the Cairo-Dock project
+*
+* Copyright : (C) see the 'copyright' file.
+* E-mail    : see the 'copyright' file.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 3
+* 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 General Public License for more details.
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "applet-struct.h"
+#include "applet-item.h"
+#include "applet-draw.h"
+
+
+void cd_satus_notifier_compute_grid (void)
+{
+	if (myData.pItems == NULL)
+		return;
+	
+	// on compte les items actifs.
+	int iNbItems = 0;
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->iStatus != CD_STATUS_PASSIVE)
+			iNbItems ++;
+	}
+	
+	// taille disponible.
+	int iWidth, iHeight;
+	CD_APPLET_GET_MY_ICON_EXTENT (&iWidth, &iHeight);
+	
+	// on calcule la meilleure grille.
+	int iNbLines, iNbItemsByLine;
+	int iSize, iSizeMax = 0;
+	for (iNbLines = 1; iNbLines <= iNbItems; iNbLines ++)
+	{
+		iNbItemsByLine = iNbItems / iNbLines;
+		iSize = MIN (iWidth / iNbItemsByLine, iHeight / iNbLines);
+		if (iSize > iSizeMax)
+		{
+			iSizeMax = iSize;
+			myData.iNbLines = iNbLines;
+			myData.iNbColumns = iNbItemsByLine;
+			myData.iItemSize = iSize;
+		}
+	}
+	g_print ("satus_notifier : %dx%d\n", myData.iNbLines, myData.iNbColumns);
+}
+
+
+void cd_satus_notifier_draw_compact_icon (void)
+{
+	g_print ("%s ()\n", __func__);
+	int iWidth, iHeight;
+	CD_APPLET_GET_MY_ICON_EXTENT (&iWidth, &iHeight);
+	
+	// erase all.
+	cairo_dock_erase_cairo_context (myDrawContext);
+	
+	// icons background.
+	if (g_pIconBackgroundBuffer.pSurface != NULL)
+	{
+		cairo_save (myDrawContext);
+		cairo_scale(myDrawContext,
+			iWidth / g_pIconBackgroundBuffer.iWidth,
+			iHeight / g_pIconBackgroundBuffer.iHeight);
+		cairo_set_source_surface (myDrawContext,
+			g_pIconBackgroundBuffer.pSurface,
+			0.,
+			0.);
+		cairo_paint (myDrawContext);
+		cairo_restore (myDrawContext);
+	}
+	
+	int x_pad = (iWidth - myData.iItemSize * myData.iNbColumns) / 2;  // pour centrer le dessin.
+	int y_pad = (iHeight - myData.iItemSize * myData.iNbLines) / 2;
+	
+	// draw each active item, in lines, from left to right.
+	int i = 0, j = 0;  // ligne, colonne
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->pSurface != NULL && pItem->iStatus != CD_STATUS_PASSIVE)
+		{
+			cairo_set_source_surface (myDrawContext,
+				pItem->pSurface,
+				x_pad + j * myData.iItemSize,
+				y_pad + i * myData.iItemSize);
+			cairo_paint (myDrawContext);
+			
+			j ++;
+			if (j == myData.iNbColumns)  // ligne suivante.
+			{
+				j = 0;
+				i ++;
+			}
+		}
+	}
+	
+	// update cairo/opengl
+	if (CD_APPLET_MY_CONTAINER_IS_OPENGL)  // we are lazy, we could do an opengl rendering.
+	{
+		cairo_dock_update_icon_texture (myIcon);
+	}
+	else if (myDock)  // les reflets pour cairo.
+	{
+		CD_APPLET_UPDATE_REFLECT_ON_MY_ICON;
+	}
+	
+	CD_APPLET_REDRAW_MY_ICON;
+}
+
+
+void cd_satus_notifier_reload_compact_mode (void)
+{
+	g_print ("%s ()\n", __func__);
+	// re-compute the grid.
+	int iPrevSize = myData.iItemSize;
+	cd_satus_notifier_compute_grid ();
+	
+	// reload surfaces if their size has changed.
+	g_print (" size: %d -> %d\n", iPrevSize, myData.iItemSize);
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->iStatus != CD_STATUS_PASSIVE)
+		{
+			if (iPrevSize != myData.iItemSize || pItem->pSurface == NULL)
+			{
+				gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
+				if (cIconPath != NULL)
+				{
+					if (pItem->pSurface != NULL)
+						cairo_surface_destroy (pItem->pSurface);
+					pItem->pSurface = cairo_dock_create_surface_from_icon (cIconPath, myData.iItemSize, myData.iItemSize);
+					g_free (cIconPath);
+				}
+			}
+		}
+	}
+	
+	// redraw all.
+	cd_satus_notifier_draw_compact_icon ();
+}
+
+
+CDStatusNotifierItem *cd_satus_notifier_find_item_from_coord (void)
+{
+	if (myData.pItems == NULL)
+		return NULL;
+	
+	int iMouseX, iMouseY;
+	iMouseX = myContainer->iMouseX;
+	iMouseY = myContainer->iMouseY;
+	
+	// get index on the grid.
+	int iWidth, iHeight;
+	CD_APPLET_GET_MY_ICON_EXTENT (&iWidth, &iHeight);
+	int x_pad = (iWidth - myData.iItemSize * myData.iNbColumns) / 2;
+	int y_pad = (iHeight - myData.iItemSize * myData.iNbLines) / 2;
+	
+	int line, col;  // line, column
+	col = (iMouseX - x_pad) / myData.iItemSize;
+	line = (iMouseY - y_pad) / myData.iItemSize;
+	
+	// get item from index.
+	CDStatusNotifierItem *pItem, *pFoundItem = NULL;
+	GList *it;
+	int i=0, j=0;  // line, column
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->pSurface != NULL && pItem->iStatus != CD_STATUS_PASSIVE)
+		{
+			j ++;
+			if (j == myData.iNbColumns)  // next line.
+			{
+				j = 0;
+				i ++;
+			}
+			if (i == line && j == col)
+			{
+				pFoundItem = pItem;
+				break;
+			}
+		}
+	}
+	
+	return pFoundItem;
+}
+
+
+void cd_satus_notifier_update_item_image (CDStatusNotifierItem *pItem)
+{
+	if (myConfig.bCompactMode)
+	{
+		gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
+		if (cIconPath != NULL)
+		{
+			if (pItem->pSurface != NULL)
+				cairo_surface_destroy (pItem->pSurface);
+			pItem->pSurface = cairo_dock_create_surface_from_icon (cIconPath, myData.iItemSize, myData.iItemSize);
+			g_free (cIconPath);
+		}
+		cd_satus_notifier_draw_compact_icon ();
+	}
+	else
+	{
+		Icon *pIcon = cd_satus_notifier_get_icon_from_item (pItem);
+		if (pIcon != NULL && pIcon->pIconBuffer != NULL)
+		{
+			cairo_t *pIconContext = cairo_create (pIcon->pIconBuffer);
+			cairo_dock_set_image_on_icon (pIconContext,
+				pItem->iStatus == CD_STATUS_NEEDS_ATTENTION ? pItem->cAttentionIconName : pItem->cIconName,
+				pIcon, CD_APPLET_MY_ICONS_LIST_CONTAINER);
+			cairo_destroy (pIconContext);
+		}
+	}
+}

=== added file 'Status-Notifier/src/applet-draw.h'
--- Status-Notifier/src/applet-draw.h	1970-01-01 00:00:00 +0000
+++ Status-Notifier/src/applet-draw.h	2010-09-07 00:46:10 +0000
@@ -0,0 +1,41 @@
+/**
+* This file is a part of the Cairo-Dock project
+*
+* Copyright : (C) see the 'copyright' file.
+* E-mail    : see the 'copyright' file.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 3
+* 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 General Public License for more details.
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __APPLET_DRAW__
+#define  __APPLET_DRAW__
+
+#include <cairo-dock.h>
+
+
+void cd_satus_notifier_compute_grid (void);
+
+
+void cd_satus_notifier_draw_compact_icon (void);
+
+
+void cd_satus_notifier_reload_compact_mode (void);
+
+
+CDStatusNotifierItem *cd_satus_notifier_find_item_from_coord (void);
+
+
+void cd_satus_notifier_update_item_image (CDStatusNotifierItem *pItem);
+
+
+#endif

=== modified file 'Status-Notifier/src/applet-host.c'
--- Status-Notifier/src/applet-host.c	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/applet-host.c	2010-09-07 00:46:10 +0000
@@ -23,155 +23,155 @@
 #include <unistd.h>
 
 #include "applet-struct.h"
+#include "applet-item.h"
+#include "applet-draw.h"
 #include "applet-host.h"
 
-#define CD_STATUS_NOTIFIER_ITEM_IFACE "org.kde.StatusNotifierItem"
-#define CD_STATUS_NOTIFIER_ITEM_OBJ "/StatusNotifierItem"
 #define CD_STATUS_NOTIFIER_HOST_ADDR "org.kde.StatusNotifierHost"
+
+#define CD_STATUS_NOTIFIER_WATCHER_ADDR2 "org.kde.NotificationItemWatcher"
+#define CD_STATUS_NOTIFIER_WATCHER_OBJ2 "/NotificationItemWatcher"
+#define CD_STATUS_NOTIFIER_WATCHER_IFACE2 "org.kde.NotificationItemWatcher"
+
 #define CD_STATUS_NOTIFIER_WATCHER_ADDR "org.kde.StatusNotifierWatcher"
 #define CD_STATUS_NOTIFIER_WATCHER_OBJ "/StatusNotifierWatcher"
 #define CD_STATUS_NOTIFIER_WATCHER_IFACE "org.kde.StatusNotifierWatcher"
 
-static void cd_free_tooltip (CDToolTip *pToolTip);
-static void cd_free_item_data (CDStatusNotifierItemData *pItemData);
-static Icon *cd_satus_notifier_create_item_icon (const gchar *cService);
-
-
-G_DEFINE_TYPE(statusNotifierHostObject, cd_satus_notifier_host, G_TYPE_OBJECT);
-
-static void cd_satus_notifier_host_class_init(statusNotifierHostObjectClass *klass)
-{
-	cd_message("");
-}
-static void cd_satus_notifier_host_init (statusNotifierHostObject *pMainObject)
-{
-	cd_message("");
-	
-	// Initialise the DBus connection
-	pMainObject->connection = cairo_dock_get_session_connection ();
-	
-	//dbus_g_object_type_install_info(cd_satus_notifier_host_get_type(), &dbus_glib_cd_satus_notifier_host_object_info);
-	
-	// Register DBUS path
-	dbus_g_connection_register_g_object(pMainObject->connection, "/org/kde/StatusNotifierHost", G_OBJECT(pMainObject));
-}
-
-
-static CDCategoryEnum _find_category (const gchar *cCategory)
-{
-	if (!cCategory)
-		return CD_CATEGORY_APPLICATION_STATUS;
-	if (*cCategory == 'A')
-		return CD_CATEGORY_APPLICATION_STATUS;
-	if (*cCategory == 'C')
-		return CD_CATEGORY_COMMUNICATIONS;
-	if (*cCategory == 'S')
-		return CD_CATEGORY_SYSTEM_SERVICES;
-	if (*cCategory == 'H')
-		return CD_CATEGORY_HARDWARE;
-	return CD_CATEGORY_APPLICATION_STATUS;
-}
-
-static CDStatusEnum _find_status (const gchar *cStatus)
-{
-	if (!cStatus)
-		return CD_STATUS_ACTIVE;
-	if (*cStatus == 'N')
-		return CD_STATUS_NEEDS_ATTENTION;
-	if (*cStatus == 'A')
-		return CD_STATUS_ACTIVE;
-	if (*cStatus == 'P')
-		return CD_STATUS_PASSIVE;
-	return CD_STATUS_ACTIVE;
-}
-
-static CDToolTip *_make_tooltip_from_dbus_struct (GValueArray *pToolTipTab)
-{
-	CDToolTip *pToolTip = NULL;
-	if (pToolTipTab)
-	{
-		pToolTip = g_new0 (CDToolTip, 1);
-		GValue *v = &pToolTipTab->values[0];
-		if (v && G_VALUE_HOLDS_STRING (v))
-			pToolTip->cIconName = g_strdup (g_value_get_string (v));
-		v = &pToolTipTab->values[2];
-		if (v && G_VALUE_HOLDS_STRING (v))
-			pToolTip->cTitle = g_strdup (g_value_get_string (v));
-		v = &pToolTipTab->values[3];
-		if (v && G_VALUE_HOLDS_STRING (v))
-			pToolTip->cMessage = g_strdup (g_value_get_string (v));
-		if (pToolTip->cMessage != NULL)
-		{
-			if (strncmp (pToolTip->cMessage, "<qt>", 4) == 0)
-			{
-				gchar *str = pToolTip->cMessage;
-				int n = strlen (str);
-				*(str + n - 5) = '\0';
-				pToolTip->cMessage = g_strdup (str+4);
-				g_free (str);
-			}
-			/// remplacer <br/> pas \n
-			
-			/// virer les <nobr> et </nobr>
-			
-			/// virer les <img src=...> et </img>
-			
-		}
-	}
-	return pToolTip;
-}
-
-static void _show_item_tooltip (Icon *pIcon, CDStatusNotifierItemData *pItemData)
-{
-	gchar *cText = g_strdup_printf ("<b>%s</b>\n%s", pItemData->pToolTip->cTitle, pItemData->pToolTip->cMessage);
-	cairo_dock_show_temporary_dialog_with_icon (cText, pIcon, CAIRO_CONTAINER (myIcon->pSubDock), 4000, pItemData->pToolTip->cIconName);
-	g_free (cText);
-}
-
-static void _show_item_status (Icon *pIcon, CDStatusNotifierItemData *pItemData)
-{
-	switch (pItemData->iStatus)
-	{
-		case CD_STATUS_PASSIVE :
-			pIcon->fAlpha = 0.5;
-			cairo_dock_stop_icon_attention (pIcon, myIcon->pSubDock);
-			cairo_dock_redraw_icon (pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-		break;
-		case CD_STATUS_ACTIVE :
-		default:
-			pIcon->fAlpha = 1.;
-			cairo_dock_stop_icon_attention (pIcon, myIcon->pSubDock);
-			cairo_dock_redraw_icon (pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-		break;
-		case CD_STATUS_NEEDS_ATTENTION:
-			pIcon->fAlpha = 1.;
-			cairo_dock_request_icon_attention (pIcon, myIcon->pSubDock, "rotate", 60);
-		break;
-	}
-}
-
+#define CD_INDICATOR_APPLICATION_ADDR "org.ayatana.indicator.application"
+#define CD_INDICATOR_APPLICATION_OBJ "/org/ayatana/indicator/application/service"
+#define CD_INDICATOR_APPLICATION_IFACE "org.ayatana.indicator.application.service"
+
+
+static void _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING (GClosure *closure,
+	GValue *return_value G_GNUC_UNUSED,
+	guint n_param_values,
+	const GValue *param_values,
+	gpointer invocation_hint G_GNUC_UNUSED,
+	gpointer marshal_data)
+{
+	g_print ("%s ()\n", __func__);
+	typedef void (*GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING) (
+		gpointer     data1,
+		gchar      *arg_1,
+		gint        arg_2,
+		gchar      *arg_3,
+		gchar      *arg_4,
+		gchar      *arg_5,
+		gchar      *arg_6,
+		gchar      *arg_7,
+		gpointer     data2);
+	register GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING callback;
+	register GCClosure *cc = (GCClosure*) closure;
+	register gpointer data1, data2;
+	g_return_if_fail (n_param_values == 8);  // return_value est NULL ici, car la callback ne renvoit rien.
+
+	if (G_CCLOSURE_SWAP_DATA (closure))
+	{
+		data1 = closure->data;
+		data2 = g_value_peek_pointer (param_values + 0);
+	}
+	else
+	{
+		data1 = g_value_peek_pointer (param_values + 0);
+		data2 = closure->data;
+	}
+	callback = (GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING) (marshal_data ? marshal_data : cc->callback);
+
+	callback (data1,
+		(char*) g_value_get_string (param_values + 1),
+		g_value_get_int (param_values + 2),
+		(char*) g_value_get_string (param_values + 3),
+		(char*) g_value_get_string (param_values + 4),
+		(char*) g_value_get_string (param_values + 5),
+		(char*) g_value_get_string (param_values + 6),
+		(char*) g_value_get_string (param_values + 7),
+		data2);
+}
+
+
+static CDStatusNotifierItem * _cd_satus_notifier_find_item_from_service (const gchar *cService)
+{
+	g_return_val_if_fail (cService != NULL, NULL);
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->cService && strcmp (pItem->cService, cService) == 0)
+			return pItem;
+	}
+	return NULL;
+}
+
+static CDStatusNotifierItem * _cd_satus_notifier_find_item_from_position (int iPosition)
+{
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->iPosition == iPosition)
+			return pItem;
+	}
+	return NULL;
+}
+
+  //////////////////////////////
+ /// SIGNAUX SUR LE WATCHER ///
+//////////////////////////////
+
+static inline void _add_new_item (const gchar *cService, const gchar *cObjectPath, int iPosition)
+{
+	CDStatusNotifierItem *pItem = _cd_satus_notifier_find_item_from_service (cService);
+	g_return_if_fail (pItem == NULL);  // on evite d'ajouter 2 fois le meme service.
+	
+	pItem = cd_satus_notifier_create_item (cService, cObjectPath);
+	g_return_if_fail (pItem != NULL);
+	
+	pItem->iPosition = iPosition;
+	myData.pItems = g_list_prepend (myData.pItems, pItem);
+	
+	if (pItem->iStatus == CD_STATUS_PASSIVE)  // don't show a passive item.
+		return;
+	if (myConfig.bCompactMode)
+	{
+		cd_satus_notifier_reload_compact_mode ();
+	}
+	else
+	{
+		Icon *pIcon = cd_satus_notifier_create_icon_for_item (pItem);
+		CD_APPLET_ADD_ICON_IN_MY_ICONS_LIST (pIcon);
+	}
+}
+
+static inline void _remove_item (const gchar *cService, int iPosition)
+{
+	CDStatusNotifierItem *pItem = (cService ? _cd_satus_notifier_find_item_from_service (cService) : _cd_satus_notifier_find_item_from_position (iPosition));
+	g_return_if_fail (pItem != NULL);
+	
+	myData.pItems = g_list_remove (myData.pItems, pItem);
+	
+	if (pItem->iStatus == CD_STATUS_PASSIVE)  // the item was passive, therefore not visible.
+		return;
+	if (myConfig.bCompactMode)
+	{
+		cd_satus_notifier_reload_compact_mode ();
+	}
+	else
+	{
+		Icon *pIcon = cd_satus_notifier_get_icon_from_item (pItem);
+		CD_APPLET_REMOVE_ICON_FROM_MY_ICONS_LIST (pIcon);
+	}
+	
+	cd_free_item (pItem);
+}
 
 static void on_new_item (DBusGProxy *proxy_watcher, const gchar *cService, CairoDockModuleInstance *myApplet)
 {
 	CD_APPLET_ENTER;
-	g_print ("new item : '%s'\n", cService);
-	
-	Icon *pIcon = cd_satus_notifier_create_item_icon (cService);
-	CD_APPLET_LEAVE_IF_FAIL (pIcon != NULL);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	cairo_dock_load_icon_buffers (pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-	
-	if (myIcon->pSubDock)
-		cairo_dock_insert_icon_in_dock (pIcon, myIcon->pSubDock, CAIRO_DOCK_UPDATE_DOCK_SIZE, CAIRO_DOCK_ANIMATE_ICON);
-	else
-	{
-		CD_APPLET_LOAD_MY_ICONS_LIST (g_list_copy (myData.pIcons), NULL, "Caroussel", NULL);
-	}
-	
-	if (pItemData->iStatus != CD_STATUS_ACTIVE)
-		_show_item_status (pIcon, pItemData);
+	g_print ("%s (%s)\n", __func__, cService);
+	
+	_add_new_item (cService, NULL, -1);  // on suppose que leur indicator-application ne mettra jamais -1 comme position.
 	
 	CD_APPLET_LEAVE ();
 }
@@ -179,459 +179,434 @@
 static void on_removed_item (DBusGProxy *proxy_watcher, const gchar *cService, CairoDockModuleInstance *myApplet)
 {
 	CD_APPLET_ENTER;
-	g_print ("item removed : '%s'\n", cService);
-	
-	gchar *str = strchr (cService, '/');
-	if (str)
-		*str = '\0';
-	
-	Icon *pIcon = cd_satus_notifier_find_icon_from_service (cService);
-	CD_APPLET_LEAVE_IF_FAIL (pIcon != NULL);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	myData.pIcons = g_list_remove (myData.pIcons, pIcon);
-	if (myIcon->pSubDock)
-		cairo_dock_detach_icon_from_dock (pIcon, myIcon->pSubDock, TRUE);
-	
-	cd_free_item_data (pItemData);
-	CD_APPLET_SET_MY_ICON_DATA (pIcon, NULL);
-	cairo_dock_free_icon (pIcon);
-	
-	cairo_dock_update_dock_size (myIcon->pSubDock);
-	
-	CD_APPLET_LEAVE ();
-}
-
-static void on_new_item_title (DBusGProxy *proxy_item, Icon *pIcon)
-{
-	CD_APPLET_ENTER;
-	g_print ("%s ()\n", __func__);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	gchar *cTitle = cairo_dock_dbus_get_property_as_string (pItemData->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "Title");
-	cairo_dock_set_icon_name (cTitle, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-	g_free (cTitle);
-	
-	CD_APPLET_LEAVE ();
-}
-
-static void on_new_item_icon (DBusGProxy *proxy_item, Icon *pIcon)
-{
-	CD_APPLET_ENTER;
-	g_print ("%s ()\n", __func__);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	gchar *cIconName = cairo_dock_dbus_get_property_as_string (pItemData->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "IconName");
-	cairo_t *pIconContext = cairo_create (pIcon->pIconBuffer);
-	cairo_dock_set_image_on_icon (pIconContext, pItemData->cAttentionIconName, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-	cairo_destroy (pIconContext);
-	g_free (cIconName);
-	
-	CD_APPLET_LEAVE ();
-}
-
-static void on_new_item_attention_icon (DBusGProxy *proxy_item, Icon *pIcon)
-{
-	CD_APPLET_ENTER;
-	g_print ("%s ()\n", __func__);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	g_free (pItemData->cAttentionIconName);
-	pItemData->cAttentionIconName = cairo_dock_dbus_get_property_as_string (pItemData->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "AttentionIconName");
-	if (pIcon->bIsDemandingAttention && pIcon->pIconBuffer)
-	{
-		cairo_t *pIconContext = cairo_create (pIcon->pIconBuffer);
-		cairo_dock_set_image_on_icon (pIconContext, pItemData->cAttentionIconName, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-		cairo_destroy (pIconContext);
-	}
-	
-	CD_APPLET_LEAVE ();
-}
-
-static void on_new_item_overlay_icon (DBusGProxy *proxy_item, Icon *pIcon)
-{
-	CD_APPLET_ENTER;
-	g_print ("%s ()\n", __func__);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	g_free (pItemData->cOverlayIconName);
-	pItemData->cOverlayIconName = cairo_dock_dbus_get_property_as_string (pItemData->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "OverlayIconName");
-	if (pIcon->pIconBuffer)
-	{
-		cairo_t *pIconContext = cairo_create (pIcon->pIconBuffer);
-		cairo_dock_set_image_on_icon (pIconContext, pIcon->cFileName, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-		cairo_destroy (pIconContext);
-		
-		if (pItemData->cOverlayIconName != NULL)
-		{
-			CairoEmblem *pEmblem = cairo_dock_make_emblem (pItemData->cOverlayIconName, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-			cairo_dock_set_emblem_position (pEmblem, CAIRO_DOCK_EMBLEM_MIDDLE);
-			cairo_dock_draw_emblem_on_icon (pEmblem, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
-			cairo_dock_free_emblem (pEmblem);
-		}
-	}
-	
-	CD_APPLET_LEAVE ();
-}
-
-static void on_new_item_tooltip (DBusGProxy *proxy_item, Icon *pIcon)
-{
-	CD_APPLET_ENTER;
-	g_print ("%s ()\n", __func__);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	cairo_dock_remove_dialog_if_any (pIcon);
-	cd_free_tooltip (pItemData->pToolTip);
-	pItemData->pToolTip = NULL;
-	
-	GValueArray *pToolTipTab = cairo_dock_dbus_get_property_as_boxed (pItemData->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "ToolTip");
-	if (pToolTipTab)
-	{
-		pItemData->pToolTip = _make_tooltip_from_dbus_struct (pToolTipTab);
-		
-		if (pItemData->pToolTip && pItemData->pToolTip->cMessage != NULL)
-			_show_item_tooltip (pIcon, pItemData);
-	}
-	
-	CD_APPLET_LEAVE ();
-}
-
-static void on_new_item_status (DBusGProxy *proxy_item, const gchar *cStatus, Icon *pIcon)
-{
-	CD_APPLET_ENTER;
-	g_print ("%s (%s)\n", __func__, cStatus);
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-	CD_APPLET_LEAVE_IF_FAIL (pItemData != NULL);
-	
-	pItemData->iStatus = _find_status (cStatus);
-	_show_item_status (pIcon, pItemData);
-	
-	CD_APPLET_LEAVE ();
-}
-
-
-static int _compare_items (const CDStatusNotifierItemData *i1, const CDStatusNotifierItemData *i2)
-{
-	if (!i1)
-		return -1;
-	if (!i2)
-		return 1;
-	return (i1->iCategory < i2->iCategory ? -1 : (i1->iCategory > i2->iCategory ? 1 : 0));
-}
-static Icon *cd_satus_notifier_create_item_icon (const gchar *cService)
-{
-	gchar *str = strchr (cService, '/');
-	if (str)
-		*str = '\0';
-	g_print (" + item '%s' on the bus\n", cService);
-	
-	//\_________________ get the properties of the item.
-	DBusGProxy *pProxyItemProp = cairo_dock_create_new_session_proxy (
-		cService,
-		"/StatusNotifierItem",
-		"org.freedesktop.DBus.Properties");
-	if (pProxyItemProp == NULL)
-		return NULL;
-	
-	g_print ("getting properties ...\n");
-	GHashTable *hProps = cairo_dock_dbus_get_all_properties (pProxyItemProp, CD_STATUS_NOTIFIER_ITEM_IFACE);
-	if (hProps == NULL)
-		return NULL;
-	
+	g_print ("%s (%s)\n", __func__, cService);
+	
+	gchar *str = strchr (cService, '/');
+	if (str)
+		*str = '\0';
+	
+	_remove_item (cService, -1);
+	
+	CD_APPLET_LEAVE ();
+}
+
+static void on_new_application (DBusGProxy *proxy_watcher, const gchar *cIconName, gint iPosition, const gchar *cAdress, const gchar *cObjectPath, const gchar *cIconThemePath, const gchar *cLabel, const gchar *cLabelGuide, CairoDockModuleInstance *myApplet)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s (%s, %s, %s, %s, %d)\n", __func__, cAdress, cObjectPath, cIconName, cIconThemePath, iPosition);
+	
+	_add_new_item (cAdress, cObjectPath, iPosition);
+	
+	CD_APPLET_LEAVE ();
+}
+
+static void on_removed_application (DBusGProxy *proxy_watcher, gint iPosition, CairoDockModuleInstance *myApplet)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s (%d)\n", __func__, iPosition);
+	
+	_remove_item (NULL, iPosition);
+	
+	CD_APPLET_LEAVE ();
+}
+
+
+  //////////////////////////////
+ /// INITIALISATION DU HOST ///
+//////////////////////////////
+
+static void _on_get_applications_from_service (DBusGProxy *proxy, DBusGProxyCall *call_id, CairoDockModuleInstance *myApplet)
+{
+	g_print ("%s ()\n", __func__);
+	CD_APPLET_ENTER;
+	myData.pGetApplicationsCall = NULL;
+	
+	//\______________________ get the applications list from the service.
+	GPtrArray *pApplications = NULL;
+	GError *erreur = NULL;
+	GType g_type_ptrarray = g_type_ptrarray = dbus_g_type_get_collection ("GPtrArray",
+		dbus_g_type_get_struct("GValueArray",
+			G_TYPE_STRING,  // iconname
+			G_TYPE_INT,  // position
+			G_TYPE_STRING,  // dbusaddress
+			DBUS_TYPE_G_OBJECT_PATH,  // dbusobject
+			G_TYPE_STRING,  // iconpath
+			G_TYPE_STRING,  // label
+			G_TYPE_STRING,  // labelguide
+			G_TYPE_INVALID));
+	gboolean bSuccess = dbus_g_proxy_end_call (proxy,
+		call_id,
+		&erreur,
+		g_type_ptrarray, &pApplications,
+		G_TYPE_INVALID);
+	if (erreur != NULL)
+	{
+		g_print ("couldn't get applications in the systray (%s)\n", erreur->message);
+		CD_APPLET_LEAVE ();
+	}
+	if (pApplications == NULL)
+		CD_APPLET_LEAVE ();
+	
+	//\______________________ build each items.
+	guint i, j;
+	GValueArray *va;
 	GValue *v;
-	const gchar *cId = NULL;
-	v = g_hash_table_lookup (hProps, "Id");
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cId = g_value_get_string (v);
-	}
-	g_print ("  ID '%s\n", cId);
-	
-	const gchar *cTitle = NULL;
-	v = g_hash_table_lookup (hProps, "Title");  // -> cName
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cTitle = g_value_get_string (v);
-	}
-	g_print ("  Title '%s\n", cTitle);
-	
-	const gchar *cCategory = NULL;
-	v = g_hash_table_lookup (hProps, "Category");  // (ApplicationStatus, Communications, SystemServices, Hardware) -> fOrder
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cCategory = g_value_get_string (v);
-	}
-	g_print ("  Category '%s'\n", cCategory);
-	
-	const gchar *cStatus = NULL;
-	v = g_hash_table_lookup (hProps, "Category");  // (Passive, Active, NeedsAttention) -> demands attention
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cStatus = g_value_get_string (v);
-	}
-	g_print ("  Status '%s'\n", cStatus);
-	
-	v = g_hash_table_lookup (hProps, "WindowId");
-	guint iWindowId = 0;
-	if (v && G_VALUE_HOLDS_UINT(v))
-	{
-		iWindowId = g_value_get_uint (v);
-	}
-	g_print ("  WindowId '%d'\n", iWindowId);
-	
-	const gchar *cIconName = NULL;
-	v = g_hash_table_lookup (hProps, "IconName");  // -> cIFileName
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cIconName = g_value_get_string (v);
-	}
-	g_print ("  IconName '%s'\n", cIconName);
-	
-	const gchar *cIconThemePath = NULL;
-	v = g_hash_table_lookup (hProps, "IconThemePath");
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cIconThemePath = g_value_get_string (v);
-	}
-	g_print ("  IconThemePath '%s'\n", cIconThemePath);
-	
-	const gchar *cOverlayIconName = NULL;
-	v = g_hash_table_lookup (hProps, "OverlayIconName");  // -> emblem
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cOverlayIconName = g_value_get_string (v);
-	}
-	g_print ("  OverlayIconName '%s'\n", cOverlayIconName);
-	
-	const gchar *cAttentionIconName = NULL;
-	v = g_hash_table_lookup (hProps, "AttentionIconName");  // -> keep for demands of attention
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cAttentionIconName = g_value_get_string (v);
-	}
-	g_print ("  AttentionIconName '%s'\n", cAttentionIconName);
-	
-	const gchar *cAttentionMovieName = NULL;
-	v = g_hash_table_lookup (hProps, "AttentionMovieName");  // -> idem
-	if (v && G_VALUE_HOLDS_STRING (v))
-	{
-		cAttentionMovieName = g_value_get_string (v);
-	}
-	g_print ("  AttentionMovieName '%s'\n", cAttentionMovieName);
-	
-	GValueArray *pToolTipTab = NULL;
-	v = g_hash_table_lookup (hProps, "ToolTip");
-	if (v && G_VALUE_HOLDS_BOXED (v))
-	{
-		pToolTipTab = g_value_get_boxed (v);
-	}
-	
-	g_print ("creating the icon...\n");
-	DBusGProxy *pProxyItem = cairo_dock_create_new_session_proxy (
-		cService,
-		"/StatusNotifierItem",
-		CD_STATUS_NOTIFIER_ITEM_IFACE);
-	if (pProxyItem == NULL)
-		return NULL;
-	
-	//\_________________ create a new item.
-	CDStatusNotifierItemData *pItemData = g_new0 (CDStatusNotifierItemData, 1);
-	pItemData->cService = g_strdup (cService);
-	pItemData->pProxyProps = pProxyItemProp;
-	pItemData->pProxy = pProxyItem;
-	pItemData->cId = g_strdup (cId);
-	pItemData->iWindowId = iWindowId;
-	pItemData->iCategory = _find_category (cCategory);
-	pItemData->iStatus = _find_status (cStatus);
-	pItemData->cIconThemePath = g_strdup (cIconThemePath);
-	pItemData->cAttentionIconName = g_strdup (cAttentionIconName);
-	pItemData->cAttentionMovieName = g_strdup (cAttentionMovieName);
-	pItemData->cOverlayIconName = g_strdup (cOverlayIconName);
-	if (pToolTipTab)
-	{
-		pItemData->pToolTip = _make_tooltip_from_dbus_struct (pToolTipTab);
-	}
-	
-	//\_________________ create a new associated icon.
-	Icon *pIcon = cairo_dock_create_dummy_launcher (g_strdup (cTitle),
-		g_strdup (cIconName),
-		g_strdup ("none"),
-		NULL,
-		pItemData->iCategory);
-	CD_APPLET_SET_MY_ICON_DATA (pIcon, pItemData);
-	
-	myData.pIcons = g_list_insert_sorted (myData.pIcons, pIcon, (GCompareFunc)_compare_items);
-	
-	//\_________________ track any changes in the item.
-	dbus_g_proxy_add_signal(pProxyItem, "NewTitle",
-		G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(pProxyItem, "NewTitle",
-		G_CALLBACK(on_new_item_title), myApplet, NULL);
-	
-	dbus_g_proxy_add_signal(pProxyItem, "NewIcon",
-		G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(pProxyItem, "NewIcon",
-		G_CALLBACK(on_new_item_icon), myApplet, NULL);
-	
-	dbus_g_proxy_add_signal(pProxyItem, "NewAttentionIcon",
-		G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(pProxyItem, "NewAttentionIcon",
-		G_CALLBACK(on_new_item_attention_icon), myApplet, NULL);
-	
-	dbus_g_proxy_add_signal(pProxyItem, "NewOverlayIcon",
-		G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(pProxyItem, "NewOverlayIcon",
-		G_CALLBACK(on_new_item_overlay_icon), myApplet, NULL);
-	
-	dbus_g_proxy_add_signal(pProxyItem, "NewToolTip",
-		G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(pProxyItem, "NewToolTip",
-		G_CALLBACK(on_new_item_tooltip), myApplet, NULL);
-	
-	dbus_g_proxy_add_signal(pProxyItem, "NewStatus",
-		G_TYPE_STRING, G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(pProxyItem, "NewStatus",
-		G_CALLBACK(on_new_item_status), myApplet, NULL);
-	
-	g_print ("destroy props...\n");
-	g_hash_table_destroy (hProps);
-	return pIcon;
-}
-
-static void cd_free_tooltip (CDToolTip *pToolTip)
-{
-	if (pToolTip == NULL)
-		return;
-	g_free (pToolTip->cIconName);
-	g_free (pToolTip->cTitle);
-	g_free (pToolTip->cMessage);
-	g_free (pToolTip);
-}
-
-static void cd_free_item_data (CDStatusNotifierItemData *pItemData)
-{
-	if (pItemData == NULL)
-		return;
-	if (pItemData->iSidPopupTooltip != 0)
-		g_source_remove (pItemData->iSidPopupTooltip);
-	g_object_unref (pItemData->pProxy);
-	g_object_unref (pItemData->pProxyProps);
-	g_free (pItemData->cService);
-	g_free (pItemData->cId);
-	g_free (pItemData->cAttentionIconName);
-	g_free (pItemData->cAttentionMovieName);
-	g_free (pItemData->cOverlayIconName);
-	cd_free_tooltip (pItemData->pToolTip);
-	g_free (pItemData);
-}
-
-
-
+	CDStatusNotifierItem *pItem=NULL;
+	g_print ("%d apps in the systray\n", pApplications->len);
+	for (i = 0; i < pApplications->len; i ++)
+	{
+		va = pApplications->pdata[i];
+		if (! va)
+			continue;
+		
+		const gchar *cIconName = NULL;
+		gint iPosition = 0;
+		const gchar *cAdress = NULL;
+		const gchar *cObjectPath = NULL;
+		const gchar *cIconThemePath = NULL;
+		const gchar *cLabel = NULL;
+		const gchar *cLabelGuide = NULL;
+		
+		v = g_value_array_get_nth (va, 0);
+		if (v && G_VALUE_HOLDS_STRING (v))
+			cIconName = g_value_get_string (v);
+		
+		v = g_value_array_get_nth (va, 1);
+		if (v && G_VALUE_HOLDS_INT (v))
+			iPosition = g_value_get_int (v);
+		
+		v = g_value_array_get_nth (va, 2);
+		if (v && G_VALUE_HOLDS_STRING (v))
+			cAdress = g_value_get_string (v);
+		
+		v = g_value_array_get_nth (va, 3);
+		if (v && G_VALUE_HOLDS_BOXED (v))
+			cObjectPath = (gchar*)g_value_get_boxed (v);
+		
+		v = g_value_array_get_nth (va, 4);
+		if (v && G_VALUE_HOLDS_STRING (v))
+			cIconThemePath = g_value_get_string (v);
+		
+		v = g_value_array_get_nth (va, 5);
+		if (v && G_VALUE_HOLDS_STRING (v))
+			cLabel = g_value_get_string (v);
+		
+		v = g_value_array_get_nth (va, 6);
+		if (v && G_VALUE_HOLDS_STRING (v))
+			cLabelGuide = g_value_get_string (v);
+		
+		g_print (" + item {%s ; %d ; %s ; %s ; %s ; %s ; %s}\n",
+			cIconName,
+			iPosition,
+			cAdress,
+			cObjectPath,
+			cIconThemePath,
+			cLabel,
+			cLabelGuide);
+		
+		pItem = cd_satus_notifier_create_item (cAdress, cObjectPath);
+		if (! pItem)
+			continue;
+		pItem->iPosition = iPosition;
+		myData.pItems = g_list_prepend (myData.pItems, pItem);
+	}
+	
+	if (myConfig.bCompactMode)
+	{
+		cd_satus_notifier_reload_compact_mode ();
+	}
+	else
+	{
+		cd_satus_notifier_load_icons_from_items ();
+	}
+	
+	g_ptr_array_free (pApplications, TRUE);
+	CD_APPLET_LEAVE ();
+}
+
+static void _cd_satus_notifier_get_indicator_application (void)
+{
+	g_print ("%s ()\n", __func__);
+	// get the service
+	myData.pProxyIndicatorApplicationService = cairo_dock_create_new_session_proxy (
+		CD_INDICATOR_APPLICATION_ADDR,
+		CD_INDICATOR_APPLICATION_OBJ,
+		CD_INDICATOR_APPLICATION_IFACE);
+	
+	// connect to the signals.
+	dbus_g_object_register_marshaller(_cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING,
+			G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal(myData.pProxyIndicatorApplicationService, "ApplicationAdded",
+		G_TYPE_STRING,  // iconname
+		G_TYPE_INT,  // position
+		G_TYPE_STRING,  // dbusaddress
+		G_TYPE_STRING,  // dbusobject
+		G_TYPE_STRING,  // iconpath
+		G_TYPE_STRING,  // label
+		G_TYPE_STRING,  // labelguide
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(myData.pProxyIndicatorApplicationService, "ApplicationAdded",
+		G_CALLBACK(on_new_application), myApplet, NULL);
+	
+	dbus_g_proxy_add_signal(myData.pProxyIndicatorApplicationService, "ApplicationRemoved",
+		G_TYPE_INT,  // position
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(myData.pProxyIndicatorApplicationService, "ApplicationRemoved",
+		G_CALLBACK(on_removed_application), myApplet, NULL);
+	
+	myData.pGetApplicationsCall = dbus_g_proxy_begin_call (myData.pProxyIndicatorApplicationService,
+		"GetApplications",
+		(DBusGProxyCallNotify)_on_get_applications_from_service,
+		myApplet,
+		(GDestroyNotify) NULL,
+		G_TYPE_INVALID);
+}
+
+static void _on_get_applications_from_watcher (DBusGProxy *proxy, DBusGProxyCall *call_id, CairoDockModuleInstance *myApplet)
+{
+	g_print ("%s ()\n", __func__);
+	CD_APPLET_ENTER;
+	myData.pGetApplicationsCall = NULL;
+	
+	gchar **pApplications = NULL;
+	GError *erreur = NULL;
+	gboolean bSuccess = dbus_g_proxy_end_call (proxy,
+		call_id,
+		&erreur,
+		G_TYPE_STRV, &pApplications,
+		G_TYPE_INVALID);
+	if (erreur != NULL)
+	{
+		cd_debug ("couldn't get applications from the watcher (%s)", erreur->message);
+		bSuccess = FALSE;
+	}
+	
+	if (bSuccess)
+	{
+		if (pApplications == NULL)
+			CD_APPLET_LEAVE ();
+		guint i;
+		CDStatusNotifierItem *pItem;
+		for (i = 0; pApplications[i] != NULL; i ++)
+		{
+			pItem = cd_satus_notifier_create_item (pApplications[i], NULL);
+			if (! pItem)
+				continue;
+			myData.pItems = g_list_prepend (myData.pItems, pItem);
+		}
+		
+		g_strfreev (pApplications);
+		
+		if (myConfig.bCompactMode)
+		{
+			cd_satus_notifier_reload_compact_mode ();
+		}
+		else
+		{
+			cd_satus_notifier_load_icons_from_items ();
+		}
+	}
+	else  // un watcher asocial comme celui d'Ubuntu, on essaye avec l'"indicator-application".
+	{
+		g_print ("this watcher is not so friendly, let's try the 'application indicator'\n");
+		_cd_satus_notifier_get_indicator_application ();
+	}
+	CD_APPLET_LEAVE ();
+}
+
+static void _on_register_host (DBusGProxy *proxy, DBusGProxyCall *call_id, CairoDockModuleInstance *myApplet)
+{
+	g_print ("%s ()\n", __func__);
+	CD_APPLET_ENTER;
+	GError *erreur = NULL;
+	gboolean bSuccess = dbus_g_proxy_end_call (proxy,
+		call_id,
+		&erreur,
+		G_TYPE_INVALID);
+	if (erreur != NULL)
+	{
+		cd_debug ("couldn't register to a Notification Watcher (%s)", erreur->message);
+		g_error_free (erreur);
+		erreur = NULL;
+		bSuccess = FALSE;
+	}
+	
+	if (bSuccess)  // il y'a un watcher.
+	{
+		g_print ("found a friendly watcher, now ask for the items...\n");
+		// get the items
+		DBusGProxy *pProxyWatcherProps = cairo_dock_create_new_session_proxy (
+			CD_STATUS_NOTIFIER_WATCHER_ADDR,
+			CD_STATUS_NOTIFIER_WATCHER_OBJ,
+			DBUS_INTERFACE_PROPERTIES);
+		myData.pGetApplicationsCall = dbus_g_proxy_begin_call (pProxyWatcherProps,
+			"Get",
+			(DBusGProxyCallNotify)_on_get_applications_from_watcher,
+			myApplet,
+			(GDestroyNotify) NULL,
+			G_TYPE_STRING, CD_STATUS_NOTIFIER_WATCHER_IFACE,
+			G_TYPE_STRING, "RegisteredStatusNotifierItems",
+			G_TYPE_INVALID);
+		
+		// connect to the signals.
+		dbus_g_proxy_add_signal(myData.pProxyWatcher, "ServiceRegistered",
+			G_TYPE_STRING, G_TYPE_INVALID);  // StatusNotifierItemRegistered
+		dbus_g_proxy_connect_signal(myData.pProxyWatcher, "ServiceRegistered",
+			G_CALLBACK(on_new_item), myApplet, NULL);
+		dbus_g_proxy_add_signal(myData.pProxyWatcher, "ServiceUnregistered",
+			G_TYPE_STRING, G_TYPE_INVALID);  // StatusNotifierItemUnregistered
+		dbus_g_proxy_connect_signal(myData.pProxyWatcher, "ServiceUnregistered",
+			G_CALLBACK(on_removed_item), myApplet, NULL);
+	}
+	else  // pas de watcher, ou un asocial comme celui d'Ubuntu, on essaye avec l'"indicator-application".
+	{
+		g_print ("no friendy watcher, let's try the 'application indicator'\n");
+		_cd_satus_notifier_get_indicator_application ();
+	}
+	CD_APPLET_LEAVE ();
+}
+static void _cd_satus_notifier_register_host (void)
+{
+	// register to the watcher.
+	g_print ("registering to the watcher...\n");
+	myData.pRegisterHostCall = dbus_g_proxy_begin_call (myData.pProxyWatcher, "RegisterNotificationHost",
+		(DBusGProxyCallNotify)_on_register_host,
+		myApplet,
+		(GDestroyNotify) NULL,
+		G_TYPE_STRING, myData.cHostName,
+		G_TYPE_INVALID);
+}
+
+
+static gboolean _get_watcher (CairoDockModuleInstance *myApplet)
+{
+	myData.pProxyWatcher = cairo_dock_create_new_session_proxy (
+		CD_STATUS_NOTIFIER_WATCHER_ADDR,
+		CD_STATUS_NOTIFIER_WATCHER_OBJ,
+		CD_STATUS_NOTIFIER_WATCHER_IFACE);
+	if (myData.pProxyWatcher != NULL)
+	{
+		myData.iSidGetWatcher = 0;
+		_cd_satus_notifier_register_host ();
+		return FALSE;
+	}
+	return TRUE;
+}
 void cd_satus_notifier_launch_service (void)
 {
-	g_return_if_fail (myData.pMainObject == NULL);
-	g_type_init();
+	if (myData.pThemePaths == NULL)
+		myData.pThemePaths = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);  // (path dir,ref count).
 	
-	// on cree l'objet distant principal.
-	g_print ("satus-notifier : Lancement du service\n");
+	// Register the service name on the bus.
 	pid_t pid = getpid ();
-	///myData.pMainObject = g_object_new (cd_satus_notifier_host_get_type(), NULL);  // appelle class_init() et init().
-	
-	// Register the service name no the bus.
 	myData.cHostName = g_strdup_printf (CD_STATUS_NOTIFIER_HOST_ADDR"-%d", pid);
-	g_print ("registering %s ...\n", myData.cHostName);
+	g_print ("registering name '%s' on the bus ...\n", myData.cHostName);
 	cairo_dock_register_service_name (myData.cHostName);
 	
 	// get the watcher.
-	g_print ("getting the watcher...\n");
+	g_print ("getting the watcher ...\n");
 	myData.pProxyWatcher = cairo_dock_create_new_session_proxy (
 		CD_STATUS_NOTIFIER_WATCHER_ADDR,
 		CD_STATUS_NOTIFIER_WATCHER_OBJ,
-		CD_STATUS_NOTIFIER_WATCHER_IFACE);
-	g_return_if_fail (myData.pProxyWatcher != NULL);
-	
-	// register to the watcher.
-	g_print ("registering to the watcher...\n");
-	GError *erreur = NULL;
-	dbus_g_proxy_call (myData.pProxyWatcher, "RegisterStatusNotifierHost", &erreur,
-		G_TYPE_STRING, myData.cHostName,
-		G_TYPE_INVALID,
-		G_TYPE_INVALID);
-	if (erreur != NULL)
+		CD_STATUS_NOTIFIER_WATCHER_IFACE);  /// dbus_g_proxy_new_for_name_owner ?...
+	if (myData.pProxyWatcher == NULL)  // no watcher yet, let's try again in a few moment.
 	{
-		cd_warning ("couldn't find a Status Notifier Watcher (%s)\nYour system doesn't support Systray 2.0", erreur->message);
-		g_error_free (erreur);
+		g_print ("no watcher yet, let's try again in a few moment\n");
+		myData.iSidGetWatcher = g_timeout_add (1000., (GSourceFunc)_get_watcher, myApplet);
 		return;
 	}
-	// connect to the signals.
-	dbus_g_proxy_add_signal(myData.pProxyWatcher, "StatusNotifierItemRegistered",
-		G_TYPE_STRING, G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(myData.pProxyWatcher, "StatusNotifierItemRegistered",
-		G_CALLBACK(on_new_item), myApplet, NULL);
-	dbus_g_proxy_add_signal(myData.pProxyWatcher, "StatusNotifierItemUnregistered",
-		G_TYPE_STRING, G_TYPE_INVALID);
-	dbus_g_proxy_connect_signal(myData.pProxyWatcher, "StatusNotifierItemUnregistered",
-		G_CALLBACK(on_removed_item), myApplet, NULL);
-	
-	// get the items.
-	DBusGProxy *pProxyWatcherProps = cairo_dock_create_new_session_proxy (
-		CD_STATUS_NOTIFIER_WATCHER_ADDR,
-		CD_STATUS_NOTIFIER_WATCHER_OBJ,
-		"org.freedesktop.DBus.Properties");
-	gchar **cItemsName = cairo_dock_dbus_get_property_as_string_list (pProxyWatcherProps, CD_STATUS_NOTIFIER_WATCHER_IFACE, "RegisteredStatusNotifierItems");
-	g_object_unref (pProxyWatcherProps);
-	
-	// create all the icons.
-	if (cItemsName != NULL)
-	{
-		int i;
-		for (i = 0; cItemsName[i] != NULL; i ++)
-		{
-			cd_satus_notifier_create_item_icon (cItemsName[i]);
-		}
-		g_strfreev (cItemsName);
-		
-		CD_APPLET_LOAD_MY_ICONS_LIST (g_list_copy (myData.pIcons), NULL, "Caroussel", NULL);
-	}
+	
+	_cd_satus_notifier_register_host ();
 }
 
+
 void cd_satus_notifier_stop_service (void)
 {
-	if (myData.pMainObject = NULL)
-		return;
-	g_object_unref (myData.pMainObject);
+	if (myData.iSidGetWatcher != 0)
+		g_source_remove (myData.iSidGetWatcher);
+	
 	g_object_unref (myData.pProxyWatcher);
-	
-	Icon *pIcon = NULL;
-	GList *ic;
-	for (ic = myData.pIcons; ic != NULL; ic = ic->next)
-	{
-		pIcon = ic->data;
-		CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-		cd_free_item_data (pItemData);
-		CD_APPLET_SET_MY_ICON_DATA (pIcon, NULL);
-	}
-	g_list_free (myData.pIcons);
-	CD_APPLET_DELETE_MY_ICONS_LIST;
-}
-
-Icon * cd_satus_notifier_find_icon_from_service (const gchar *cService)
-{
-	Icon *pIcon = NULL;
-	GList *ic;
-	for (ic = myData.pIcons; ic != NULL; ic = ic->next)
-	{
-		pIcon = ic->data;
-		CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-		if (pItemData && pItemData->cService && strcmp (pItemData->cService, cService) == 0)
-			return pIcon;
-	}
-	return NULL;
-}
-
+	g_object_unref (myData.pProxyIndicatorApplicationService);
+	
+	g_list_foreach (myData.pItems, (GFunc) cd_free_item, NULL);
+	g_list_free (myData.pItems);
+	
+	if (! myConfig.bCompactMode)
+		CD_APPLET_DELETE_MY_ICONS_LIST;
+	
+	g_hash_table_destroy (myData.pThemePaths);
+	myData.pThemePaths = NULL;
+}
+
+
+void cd_satus_notifier_add_theme_path (const gchar * cThemePath)
+{
+	g_return_if_fail (cThemePath != NULL);
+	int ref = GPOINTER_TO_INT (g_hash_table_lookup (myData.pThemePaths, cThemePath));  // 0 si le theme n'est pas dans la table.
+	ref ++;  // on incremente la reference.
+	g_hash_table_insert (myData.pThemePaths, g_strdup (cThemePath), GINT_TO_POINTER (ref));  // et on la met a jour dans la table.
+	
+	if (ref == 1)  // premiere fois qu'on voit ce chemin.
+		gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(), cThemePath);  // append car ce sont des icones par defaut.
+}
+
+void cd_satus_notifier_remove_theme_path (const gchar * cThemePath)
+{
+	g_return_if_fail (cThemePath != NULL);
+	int ref = GPOINTER_TO_INT (g_hash_table_lookup (myData.pThemePaths, cThemePath));
+	if (ref == 0)  // pas dans la table, rien a faire (ne devrait pas arriver).
+		return;
+	
+	if (ref == 1)  // derniere reference.
+	{
+		g_hash_table_remove (myData.pThemePaths, cThemePath);  // on le supprime de la table.
+		
+		GtkIconTheme *pIconTheme = gtk_icon_theme_get_default();  // et du theme.
+		gchar **paths = NULL;
+		gint iNbPaths = 0;
+		gtk_icon_theme_get_search_path (pIconTheme, &paths, &iNbPaths);
+	
+		int i;
+		for (i = 0; i < iNbPaths; i++)  // on cherche sa position dans le tableau.
+		{
+			if (strcmp (paths[i], cThemePath))
+				break;
+		}
+		if (i < iNbPaths)  // trouve
+		{
+			g_free (paths[i]);
+			for (i = i+1; i < iNbPaths; i++)  // on decale tous les suivants vers l'arriere.
+			{
+				paths[i-1] = paths[i];
+			}
+			paths[i-1] = NULL;
+			gtk_icon_theme_set_search_path (pIconTheme, (const gchar **)paths, iNbPaths - 1);
+		}
+		
+		g_strfreev (paths);
+	}
+	else  // on decremente la reference.
+	{
+		ref --;
+		g_hash_table_insert (myData.pThemePaths, g_strdup (cThemePath), GINT_TO_POINTER (ref));  // et on la met a jour dans la table.
+	}
+}
+
+
+void cd_satus_notifier_load_icons_from_items (void)
+{
+	GList *pIcons = NULL;
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pItem->iStatus != CD_STATUS_PASSIVE)
+		{
+			Icon *pIcon = cd_satus_notifier_create_icon_for_item (pItem);
+			if (pIcon)
+				pIcons = g_list_prepend (pIcons, pIcon);
+		}
+	}
+	CD_APPLET_LOAD_MY_ICONS_LIST (pIcons, NULL, "Slide", NULL);
+}

=== modified file 'Status-Notifier/src/applet-host.h'
--- Status-Notifier/src/applet-host.h	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/applet-host.h	2010-09-07 00:46:10 +0000
@@ -17,18 +17,24 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-
 #ifndef __APPLET_HOST__
 #define  __APPLET_HOST__
 
-
 #include <cairo-dock.h>
 
 
 void cd_satus_notifier_launch_service (void);
 
 
-Icon * cd_satus_notifier_find_icon_from_service (const gchar *cService);
+void cd_satus_notifier_stop_service (void);
+
+
+void cd_satus_notifier_add_theme_path (const gchar * cThemePath);
+
+void cd_satus_notifier_remove_theme_path (const gchar * cThemePath);
+
+
+void cd_satus_notifier_load_icons_from_items (void);
 
 
 #endif

=== modified file 'Status-Notifier/src/applet-init.c'
--- Status-Notifier/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -25,11 +25,12 @@
 #include "applet-notifications.h"
 #include "applet-struct.h"
 #include "applet-host.h"
+#include "applet-draw.h"
 #include "applet-init.h"
 
 
 CD_APPLET_DEFINITION (N_("Status Notifier"),
-	2, 0, 0,
+	2, 2, 0,
 	CAIRO_DOCK_CATEGORY_APPLET_DESKTOP,
 	N_("A <b>notification area</b> for your dock\n"
 	"Also called 'systray'.\n"
@@ -47,14 +48,15 @@
 		CD_APPLET_SET_DESKLET_RENDERER ("Simple");
 	}
 	
-	CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE;  // set the default icon if none is specified in conf.
+	if (!myConfig.bCompactMode && myDock)
+		CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE;  // set the default icon if none is specified in conf.
 	
 	CD_APPLET_REGISTER_FOR_CLICK_EVENT;
 	CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT;
 	CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT;
-	cairo_dock_register_notification (CAIRO_DOCK_ENTER_ICON,
+	/*cairo_dock_register_notification (CAIRO_DOCK_ENTER_ICON,
 		(CairoDockNotificationFunc) cd_status_notifier_on_enter_icon,
-		CAIRO_DOCK_RUN_AFTER, myApplet);
+		CAIRO_DOCK_RUN_AFTER, myApplet);*/
 	cairo_dock_register_notification (CAIRO_DOCK_BUILD_CONTAINER_MENU,
 		(CairoDockNotificationFunc) cd_status_notifier_on_right_click,
 		CAIRO_DOCK_RUN_FIRST, myApplet);
@@ -71,6 +73,7 @@
 	cairo_dock_remove_notification_func (CAIRO_DOCK_BUILD_CONTAINER_MENU,
 		(CairoDockNotificationFunc) cd_status_notifier_on_right_click,
 		myApplet);
+	cd_satus_notifier_stop_service ();
 CD_APPLET_STOP_END
 
 
@@ -78,12 +81,30 @@
 CD_APPLET_RELOAD_BEGIN
 	if (CD_APPLET_MY_CONFIG_CHANGED)
 	{
-		if (myDesklet && CD_APPLET_MY_CONTAINER_TYPE_CHANGED)  // we are now in a desklet, set a renderer.
-		{
-			CD_APPLET_SET_DESKLET_RENDERER ("Simple");  // set a desklet renderer.
-		}
-		
-		CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE;  // set the default icon if none is specified in conf.
-		
+		if (myConfig.bCompactMode)
+		{
+			if (myDesklet && CD_APPLET_MY_CONTAINER_TYPE_CHANGED)  // we are now in a desklet, set a renderer.
+			{
+				CD_APPLET_SET_DESKLET_RENDERER ("Simple");  // set a desklet renderer.
+			}
+			CD_APPLET_DELETE_MY_ICONS_LIST;
+			cd_satus_notifier_reload_compact_mode ();
+			
+		}
+		else
+		{
+			myData.iItemSize = 0;  // unvalidate the grid.
+			cd_satus_notifier_load_icons_from_items ();
+			
+			if (myDock)
+				CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE;  // set the default icon if none is specified in conf.
+		}
+	}
+	else  // applet resized
+	{
+		if (myConfig.bCompactMode)
+		{
+			cd_satus_notifier_reload_compact_mode ();
+		}
 	}
 CD_APPLET_RELOAD_END

=== added file 'Status-Notifier/src/applet-item.c'
--- Status-Notifier/src/applet-item.c	1970-01-01 00:00:00 +0000
+++ Status-Notifier/src/applet-item.c	2010-09-07 00:46:10 +0000
@@ -0,0 +1,675 @@
+/**
+* This file is a part of the Cairo-Dock project
+*
+* Copyright : (C) see the 'copyright' file.
+* E-mail    : see the 'copyright' file.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 3
+* 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 General Public License for more details.
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "applet-struct.h"
+#include "applet-host.h"
+#include "applet-draw.h"
+#include "applet-item.h"
+
+#define CD_STATUS_NOTIFIER_ITEM_IFACE "org.kde.StatusNotifierItem"
+#define CD_STATUS_NOTIFIER_ITEM_OBJ "/StatusNotifierItem"
+
+#define CD_INDICATOR_APPLICATION_ITEM_OBJ "/org/ayatana/NotificationItem"
+
+
+static CDCategoryEnum _find_category (const gchar *cCategory)
+{
+	if (!cCategory)
+		return CD_CATEGORY_APPLICATION_STATUS;
+	if (*cCategory == 'A')
+		return CD_CATEGORY_APPLICATION_STATUS;
+	if (*cCategory == 'C')
+		return CD_CATEGORY_COMMUNICATIONS;
+	if (*cCategory == 'S')
+		return CD_CATEGORY_SYSTEM_SERVICES;
+	if (*cCategory == 'H')
+		return CD_CATEGORY_HARDWARE;
+	return CD_CATEGORY_APPLICATION_STATUS;
+}
+
+static CDStatusEnum _find_status (const gchar *cStatus)
+{
+	if (!cStatus)
+		return CD_STATUS_ACTIVE;
+	if (*cStatus == 'N')
+		return CD_STATUS_NEEDS_ATTENTION;
+	if (*cStatus == 'A')
+		return CD_STATUS_ACTIVE;
+	if (*cStatus == 'P')
+		return CD_STATUS_PASSIVE;
+	return CD_STATUS_ACTIVE;
+}
+
+static void cd_free_tooltip (CDToolTip *pToolTip)
+{
+	if (pToolTip == NULL)
+		return;
+	g_free (pToolTip->cIconName);
+	g_free (pToolTip->cTitle);
+	g_free (pToolTip->cMessage);
+	g_free (pToolTip);
+}
+
+static CDToolTip *_make_tooltip_from_dbus_struct (GValueArray *pToolTipTab)
+{
+	CDToolTip *pToolTip = NULL;
+	if (pToolTipTab)
+	{
+		pToolTip = g_new0 (CDToolTip, 1);
+		GValue *v = &pToolTipTab->values[0];
+		if (v && G_VALUE_HOLDS_STRING (v))
+			pToolTip->cIconName = g_strdup (g_value_get_string (v));
+		v = &pToolTipTab->values[2];
+		if (v && G_VALUE_HOLDS_STRING (v))
+			pToolTip->cTitle = g_strdup (g_value_get_string (v));
+		v = &pToolTipTab->values[3];
+		if (v && G_VALUE_HOLDS_STRING (v))
+			pToolTip->cMessage = g_strdup (g_value_get_string (v));
+		if (pToolTip->cMessage != NULL)
+		{
+			if (strncmp (pToolTip->cMessage, "<qt>", 4) == 0)
+			{
+				gchar *str = pToolTip->cMessage;
+				int n = strlen (str);
+				*(str + n - 5) = '\0';
+				pToolTip->cMessage = g_strdup (str+4);
+				g_free (str);
+			}
+			/// remplacer <br/> par \n
+			
+			/// virer les <nobr> et </nobr>
+			
+			/// virer les <img src=...> et </img>
+			
+		}
+	}
+	return pToolTip;
+}
+
+static void _show_item_tooltip (Icon *pIcon, CDStatusNotifierItem *pItem)
+{
+	gchar *cText = g_strdup_printf ("<b>%s</b>\n%s", pItem->pToolTip->cTitle, pItem->pToolTip->cMessage);
+	cairo_dock_show_temporary_dialog_with_icon (cText, pIcon, CAIRO_CONTAINER (myIcon->pSubDock), 4000, pItem->pToolTip->cIconName);
+	g_free (cText);
+}
+
+static void _show_item_status (Icon *pIcon, CDStatusNotifierItem *pItem)
+{
+	switch (pItem->iStatus)
+	{
+		case CD_STATUS_PASSIVE :
+			pIcon->fAlpha = 0.5;
+			cairo_dock_stop_icon_attention (pIcon, myIcon->pSubDock);
+			cairo_dock_redraw_icon (pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
+		break;
+		case CD_STATUS_ACTIVE :
+		default:
+			pIcon->fAlpha = 1.;
+			cairo_dock_stop_icon_attention (pIcon, myIcon->pSubDock);
+			cairo_dock_redraw_icon (pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
+		break;
+		case CD_STATUS_NEEDS_ATTENTION:
+			pIcon->fAlpha = 1.;
+			cairo_dock_request_icon_attention (pIcon, myIcon->pSubDock, "rotate", 60);
+		break;
+	}
+}
+
+
+static void on_new_item_icon (DBusGProxy *proxy_item, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s ()\n", __func__);
+	
+	g_free (pItem->cIconName);
+	pItem->cIconName = cairo_dock_dbus_get_property_as_string (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "IconName");
+	g_print (" new icon : %s\n", pItem->cIconName);
+	
+	if (pItem->iStatus != CD_STATUS_NEEDS_ATTENTION)
+	{
+		cd_satus_notifier_update_item_image (pItem);
+	}
+	CD_APPLET_LEAVE ();
+}
+
+static void on_new_item_attention_icon (DBusGProxy *proxy_item, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s ()\n", __func__);
+	
+	g_free (pItem->cAttentionIconName);
+	pItem->cAttentionIconName = cairo_dock_dbus_get_property_as_string (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "AttentionIconName");
+	g_print (" new attention icon : %s\n", pItem->cAttentionIconName);
+	
+	if (pItem->iStatus == CD_STATUS_NEEDS_ATTENTION)
+	{
+		cd_satus_notifier_update_item_image (pItem);
+	}
+	CD_APPLET_LEAVE ();
+}
+
+static void on_new_item_status (DBusGProxy *proxy_item, const gchar *cStatus, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s (%s)\n", __func__, cStatus);
+	
+	// get the new status
+	CDStatusEnum iPrevStatus = pItem->iStatus;
+	pItem->iStatus = _find_status (cStatus);
+	if (pItem->iStatus == iPrevStatus)
+		CD_APPLET_LEAVE ();
+	
+	// update the item
+	if (iPrevStatus == CD_STATUS_PASSIVE || pItem->iStatus == CD_STATUS_PASSIVE)  // hide/show the item.
+	{
+		if (myConfig.bCompactMode)
+		{
+			cd_satus_notifier_reload_compact_mode ();
+		}
+		else
+		{
+			if (pItem->iStatus == CD_STATUS_PASSIVE)  // remove passive item
+			{
+				Icon *pIcon = cd_satus_notifier_get_icon_from_item (pItem);
+				CD_APPLET_REMOVE_ICON_FROM_MY_ICONS_LIST (pIcon);
+			}
+			else  // add newly active item
+			{
+				Icon *pIcon = cd_satus_notifier_create_icon_for_item (pItem);
+				CD_APPLET_ADD_ICON_IN_MY_ICONS_LIST (pIcon);
+			}
+		}
+	}
+	else  // status has changed => image has changed too.
+	{
+		cd_satus_notifier_update_item_image (pItem);
+	}
+	
+	CD_APPLET_LEAVE ();
+}
+
+
+static void on_new_item_label (DBusGProxy *proxy_item, const gchar *cLabel, const gchar *cLabelGuide, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s (%s, %s)\n", __func__, cLabel, cLabelGuide);
+	
+	g_free (pItem->cLabel);
+	pItem->cLabel = g_strdup (cLabel);
+	g_free (pItem->cLabelGuide);
+	pItem->cLabelGuide = g_strdup (cLabelGuide);
+	
+	
+	CD_APPLET_LEAVE ();
+}
+
+static void on_new_item_theme_path (DBusGProxy *proxy_item, const gchar *cNewThemePath, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s (%s)\n", __func__, cNewThemePath);
+	
+	g_free (pItem->cIconThemePath);
+	pItem->cIconThemePath = g_strdup (cNewThemePath);
+	
+	cd_satus_notifier_update_item_image (pItem);
+	
+	CD_APPLET_LEAVE ();
+}
+
+
+static void on_new_item_title (DBusGProxy *proxy_item, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s ()\n", __func__);
+	
+	g_free (pItem->cTitle);
+	pItem->cTitle = cairo_dock_dbus_get_property_as_string (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "Title");
+	g_print (" new title : %s\n", pItem->cTitle);
+	
+	//cairo_dock_set_icon_name (cTitle, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
+	
+	CD_APPLET_LEAVE ();
+}
+
+static void on_new_item_overlay_icon (DBusGProxy *proxy_item, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s ()\n", __func__);
+	
+	g_free (pItem->cOverlayIconName);
+	pItem->cOverlayIconName = cairo_dock_dbus_get_property_as_string (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "OverlayIconName");
+	g_print (" new overlay : %s\n", pItem->cOverlayIconName);
+	
+	/*if (pIcon->pIconBuffer)
+	{
+		cairo_t *pIconContext = cairo_create (pIcon->pIconBuffer);
+		cairo_dock_set_image_on_icon (pIconContext, pIcon->cFileName, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
+		cairo_destroy (pIconContext);
+		
+		if (pItem->cOverlayIconName != NULL)
+		{
+			CairoEmblem *pEmblem = cairo_dock_make_emblem (pItem->cOverlayIconName, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
+			cairo_dock_set_emblem_position (pEmblem, CAIRO_DOCK_EMBLEM_MIDDLE);
+			cairo_dock_draw_emblem_on_icon (pEmblem, pIcon, CAIRO_CONTAINER (myIcon->pSubDock));
+			cairo_dock_free_emblem (pEmblem);
+		}
+	}*/
+	
+	CD_APPLET_LEAVE ();
+}
+
+
+
+static void on_new_item_tooltip (DBusGProxy *proxy_item, CDStatusNotifierItem *pItem)
+{
+	CD_APPLET_ENTER;
+	g_print ("%s ()\n", __func__);
+	
+	cd_free_tooltip (pItem->pToolTip);
+	pItem->pToolTip = NULL;
+	
+	//cairo_dock_remove_dialog_if_any (pIcon);
+	
+	GValueArray *pToolTipTab = cairo_dock_dbus_get_property_as_boxed (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "ToolTip");
+	if (pToolTipTab)
+	{
+		pItem->pToolTip = _make_tooltip_from_dbus_struct (pToolTipTab);
+		
+		//if (pItem->pToolTip && pItem->pToolTip->cMessage != NULL)
+		//	_show_item_tooltip (pIcon, pItem);
+	}
+	
+	CD_APPLET_LEAVE ();
+}
+
+static void _on_item_proxy_destroyed (DBusGProxy *proxy_item, CDStatusNotifierItem *pItem)
+{
+	if (pItem->bInvalid)
+		return;
+	CD_APPLET_ENTER;
+	g_print ("this item (%s) was suddenly removed\n", __func__, pItem->cService);
+	
+	myData.pItems = g_list_remove (myData.pItems, pItem);
+	
+	if (myConfig.bCompactMode)
+	{
+		cd_satus_notifier_reload_compact_mode ();
+	}
+	else
+	{
+		Icon *pIcon = cd_satus_notifier_get_icon_from_item (pItem);
+		CD_APPLET_REMOVE_ICON_FROM_MY_ICONS_LIST (pIcon);
+	}
+	
+	cd_free_item (pItem);
+	CD_APPLET_LEAVE ();
+}
+
+gchar *cd_satus_notifier_search_item_icon_s_path (CDStatusNotifierItem *pItem)
+{
+	g_return_val_if_fail (pItem != NULL, NULL);
+	gchar *cImageName = (pItem->iStatus == CD_STATUS_NEEDS_ATTENTION ? pItem->cAttentionIconName: pItem->cIconName);
+	
+	gchar *cIconPath = NULL;
+	if (pItem->cIconThemePath != NULL)  // workaround pour des applis telles que dropbox qui trouvent malin de specifier des icones avec des noms hyper generiques (idle.png).
+	{
+		cIconPath = g_strdup_printf ("%s/%s", pItem->cIconThemePath, pItem->cIconName);
+		if (! g_file_test (cIconPath, G_FILE_TEST_EXISTS))
+		{
+			g_free (cIconPath);
+			cIconPath = NULL;
+		}
+	}
+	
+	if (cIconPath == NULL)
+	{
+		cIconPath = cairo_dock_search_icon_s_path (pItem->cIconName);
+	}
+	
+	return cIconPath;
+}
+
+CDStatusNotifierItem *cd_satus_notifier_create_item (const gchar *cService, const gchar *cObjectPath)
+{
+	g_return_val_if_fail  (cService != NULL, NULL);
+	gchar *str = strchr (cService, '/');
+	if (str)
+		*str = '\0';
+	g_print ("%s (%s)\n", __func__, cService);
+	
+	// special case for Ubuntu indicators: we don't know their object path.
+	if (cObjectPath != NULL && strncmp (cObjectPath, CD_INDICATOR_APPLICATION_ITEM_OBJ, strlen (CD_INDICATOR_APPLICATION_ITEM_OBJ)) == 0)
+	{
+		gchar *str = strrchr (cObjectPath, '/');
+		if (str)
+			*str = '\0';
+	}
+	else
+	{
+		cObjectPath = CD_STATUS_NOTIFIER_ITEM_OBJ;
+	}
+	
+	//\_________________ get the properties of the item.
+	DBusGProxy *pProxyItemProp = cairo_dock_create_new_session_proxy (
+		cService,
+		cObjectPath,
+		DBUS_INTERFACE_PROPERTIES);
+	if (pProxyItemProp == NULL)
+		return NULL;
+	g_print ("owner : %s\n", dbus_g_proxy_get_bus_name (pProxyItemProp));
+	
+	g_print ("getting properties ...\n");
+	GHashTable *hProps = cairo_dock_dbus_get_all_properties (pProxyItemProp, CD_STATUS_NOTIFIER_ITEM_IFACE);
+	if (hProps == NULL)
+		return NULL;
+	
+	// properties supported by KDE and Ubuntu.
+	GValue *v;
+	const gchar *cId = NULL;
+	v = g_hash_table_lookup (hProps, "Id");
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cId = g_value_get_string (v);
+	}
+	g_print ("  ID '%s'\n", cId);
+	
+	const gchar *cCategory = NULL;
+	v = g_hash_table_lookup (hProps, "Category");  // (ApplicationStatus, Communications, SystemServices, Hardware) -> fOrder
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cCategory = g_value_get_string (v);
+	}
+	g_print ("  Category '%s'\n", cCategory);
+	
+	const gchar *cStatus = NULL;
+	v = g_hash_table_lookup (hProps, "Status");  // (Passive, Active, NeedsAttention) -> demands attention
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cStatus = g_value_get_string (v);
+	}
+	g_print ("  Status '%s'\n", cStatus);
+	
+	const gchar *cIconName = NULL;
+	v = g_hash_table_lookup (hProps, "IconName");  // -> cIFileName
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cIconName = g_value_get_string (v);
+	}
+	g_print ("  IconName '%s'\n", cIconName);
+	
+	const gchar *cIconThemePath = NULL;
+	v = g_hash_table_lookup (hProps, "IconThemePath");
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cIconThemePath = g_value_get_string (v);
+	}
+	g_print ("  IconThemePath '%s'\n", cIconThemePath);
+	
+	const gchar *cAttentionIconName = NULL;
+	v = g_hash_table_lookup (hProps, "AttentionIconName");  // -> keep for demands of attention
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cAttentionIconName = g_value_get_string (v);
+	}
+	g_print ("  AttentionIconName '%s'\n", cAttentionIconName);
+	
+	// properties supported by Ubuntu.
+	const gchar *cMenuPath = NULL;
+	v = g_hash_table_lookup (hProps, "Menu");  // object path to a dbus-menu
+	if (v && G_VALUE_HOLDS_BOXED(v))
+	{
+		cMenuPath = (gchar*) g_value_get_boxed (v);
+	}
+	g_print ("  cMenuPath '%s'\n", cMenuPath);
+	
+	const gchar *cLabel = NULL;
+	v = g_hash_table_lookup (hProps, "XAyatanaLabel");
+	if (v && G_VALUE_HOLDS_BOXED(v))
+	{
+		cLabel = g_value_get_string (v);
+	}
+	g_print ("  cLabel '%s'\n", cLabel);
+	
+	const gchar *cLabelGuide = NULL;
+	v = g_hash_table_lookup (hProps, "XAyatanaLabelGuide");
+	if (v && G_VALUE_HOLDS_BOXED(v))
+	{
+		cLabelGuide = g_value_get_string (v);
+	}
+	g_print ("  cLabelGuide '%s'\n", cLabelGuide);
+	
+	// properties supported by KDE.
+	const gchar *cTitle = NULL;
+	v = g_hash_table_lookup (hProps, "Title");  // -> cName
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cTitle = g_value_get_string (v);
+	}
+	g_print ("  Title '%s\n", cTitle);
+	
+	v = g_hash_table_lookup (hProps, "WindowId");
+	guint iWindowId = 0;
+	if (v && G_VALUE_HOLDS_UINT(v))
+	{
+		iWindowId = g_value_get_uint (v);
+	}
+	g_print ("  WindowId '%d'\n", iWindowId);
+	
+	const gchar *cOverlayIconName = NULL;
+	v = g_hash_table_lookup (hProps, "OverlayIconName");  // -> emblem
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cOverlayIconName = g_value_get_string (v);
+	}
+	g_print ("  OverlayIconName '%s'\n", cOverlayIconName);
+	
+	const gchar *cAttentionMovieName = NULL;
+	v = g_hash_table_lookup (hProps, "AttentionMovieName");  // -> idem
+	if (v && G_VALUE_HOLDS_STRING (v))
+	{
+		cAttentionMovieName = g_value_get_string (v);
+	}
+	g_print ("  AttentionMovieName '%s'\n", cAttentionMovieName);
+	
+	GValueArray *pToolTipTab = NULL;
+	v = g_hash_table_lookup (hProps, "ToolTip");
+	if (v && G_VALUE_HOLDS_BOXED (v))
+	{
+		pToolTipTab = g_value_get_boxed (v);
+	}
+	
+	DBusGProxy *pProxyItem = cairo_dock_create_new_session_proxy (
+		cService,
+		cObjectPath,
+		CD_STATUS_NOTIFIER_ITEM_IFACE);
+	if (pProxyItem == NULL)
+		return NULL;
+	
+	//\_________________ create a new item.
+	CDStatusNotifierItem *pItem = g_new0 (CDStatusNotifierItem, 1);
+	pItem->cService = g_strdup (cService);
+	pItem->pProxyProps = pProxyItemProp;
+	pItem->pProxy = pProxyItem;
+	pItem->cId = g_strdup (cId);
+	pItem->cTitle = g_strdup (cTitle);
+	pItem->cLabel = g_strdup (cLabel);
+	pItem->cLabelGuide = g_strdup (cLabelGuide);
+	pItem->cMenuPath = g_strdup (cMenuPath);
+	pItem->iWindowId = iWindowId;
+	pItem->iCategory = _find_category (cCategory);
+	pItem->iStatus = _find_status (cStatus);
+	pItem->cIconName = g_strdup (cIconName);
+	pItem->cIconThemePath = g_strdup (cIconThemePath);
+	pItem->cAttentionIconName = g_strdup (cAttentionIconName);
+	pItem->cAttentionMovieName = g_strdup (cAttentionMovieName);
+	pItem->cOverlayIconName = g_strdup (cOverlayIconName);
+	if (pToolTipTab)
+	{
+		pItem->pToolTip = _make_tooltip_from_dbus_struct (pToolTipTab);
+	}
+	if (pItem->cIconThemePath)  // on le rajoute au theme d'icones par defaut; comme le launcher-manager va deja chercher dedans pour charger l'icone, on n'a rien d'autre a faire.
+	{
+		cd_satus_notifier_add_theme_path (pItem->cIconThemePath);
+	}
+	/*if (myConfig.bCompactMode && myData.iItemSize != 0 && pItem->iStatus != CD_STATUS_PASSIVE)
+	{
+		gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
+		if (cIconPath != NULL)
+		{
+			pItem->pSurface = cairo_dock_create_surface_from_icon (cIconPath, myData.iItemSize, myData.iItemSize);
+			g_free (cIconPath);
+		}
+	}*/
+	
+	//\_________________ track any changes in the item.
+	// signals supported by both.
+	dbus_g_proxy_add_signal(pProxyItem, "NewStatus",
+		G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewStatus",
+		G_CALLBACK(on_new_item_status), pItem, NULL);
+	
+	dbus_g_proxy_add_signal(pProxyItem, "NewIcon",
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewIcon",
+		G_CALLBACK(on_new_item_icon), pItem, NULL);
+	
+	dbus_g_proxy_add_signal(pProxyItem, "NewAttentionIcon",
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewAttentionIcon",
+		G_CALLBACK(on_new_item_attention_icon), pItem, NULL);
+	
+	// signals supported by Ubuntu.
+	dbus_g_proxy_add_signal(pProxyItem, "XAyatanaNewLabel",
+		G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "XAyatanaNewLabel",
+		G_CALLBACK(on_new_item_label), pItem, NULL);
+	
+	dbus_g_proxy_add_signal(pProxyItem, "NewIconThemePath",
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewIconThemePath",
+		G_CALLBACK(on_new_item_theme_path), pItem, NULL);
+	
+	// signals supported by KDE.
+	dbus_g_proxy_add_signal(pProxyItem, "NewOverlayIcon",
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewOverlayIcon",
+		G_CALLBACK(on_new_item_overlay_icon), pItem, NULL);
+	
+	dbus_g_proxy_add_signal(pProxyItem, "NewTitle",
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewTitle",
+		G_CALLBACK(on_new_item_title), pItem, NULL);
+	
+	dbus_g_proxy_add_signal(pProxyItem, "NewToolTip",
+		G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal(pProxyItem, "NewToolTip",
+		G_CALLBACK(on_new_item_tooltip), pItem, NULL);
+	
+	g_signal_connect (G_OBJECT(pProxyItem), "destroy", G_CALLBACK (_on_item_proxy_destroyed), pItem);  // attention, dangereux car on va etre appele lorsqu'on detruit un item.
+	
+	g_hash_table_destroy (hProps);
+	return pItem;
+}
+
+void cd_free_item (CDStatusNotifierItem *pItem)
+{
+	if (pItem == NULL)
+		return;
+	pItem->bInvalid = TRUE;
+	if (pItem->iSidPopupTooltip != 0)
+		g_source_remove (pItem->iSidPopupTooltip);
+	if (pItem->cIconThemePath)
+		cd_satus_notifier_remove_theme_path (pItem->cIconThemePath);
+	g_object_unref (pItem->pProxy);
+	g_object_unref (pItem->pProxyProps);
+	g_free (pItem->cService);
+	g_free (pItem->cId);
+	g_free (pItem->cIconName);
+	g_free (pItem->cAttentionIconName);
+	g_free (pItem->cLabel);
+	g_free (pItem->cLabelGuide);
+	g_free (pItem->cTitle);
+	g_free (pItem->cAttentionMovieName);
+	g_free (pItem->cOverlayIconName);
+	cd_free_tooltip (pItem->pToolTip);
+	cairo_surface_destroy (pItem->pSurface);
+	g_free (pItem);
+}
+
+
+static void _load_item_image (Icon *icon)
+{
+	int iWidth = icon->iImageWidth;
+	int iHeight = icon->iImageHeight;
+	
+	CDStatusNotifierItem *pItem = cd_satus_notifier_get_item_from_icon (icon);
+	gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
+	if (cIconPath != NULL && *cIconPath != '\0')
+		icon->pIconBuffer = cairo_dock_create_surface_from_image_simple (cIconPath,
+			iWidth,
+			iHeight);
+	g_free (cIconPath);
+}
+Icon *cd_satus_notifier_create_icon_for_item (CDStatusNotifierItem *pItem)
+{
+	g_return_val_if_fail (pItem != NULL, NULL);
+	Icon *pIcon = cairo_dock_create_dummy_launcher (g_strdup (pItem->cTitle?pItem->cTitle:pItem->cId),
+		g_strdup (pItem->cIconName),
+		g_strdup (pItem->cService),
+		NULL,
+		pItem->iPosition > -1 ? pItem->iPosition : (int)pItem->iCategory);
+	pIcon->iface.load_image = _load_item_image;  /// a voir...
+	return pIcon;
+}
+
+
+CDStatusNotifierItem *cd_satus_notifier_get_item_from_icon (Icon *pIcon)
+{
+	CDStatusNotifierItem *pItem;
+	GList *it;
+	for (it = myData.pItems; it != NULL; it = it->next)
+	{
+		pItem = it->data;
+		if (pIcon->cCommand && strcmp (pIcon->cCommand, pItem->cService) == 0)
+			return pItem;
+	}
+	return NULL;
+}
+
+Icon *cd_satus_notifier_get_icon_from_item (CDStatusNotifierItem *pItem)
+{
+	//g_print ("%s (%s)\n", __func__, pItem->cService);
+	GList *ic, *pIcons = CD_APPLET_MY_ICONS_LIST;
+	Icon *pIcon;
+	for (ic = pIcons; ic != NULL; ic = ic->next)
+	{
+		pIcon = ic->data;
+		//g_print ("  %s \n", pIcon->cCommand);
+		if (pIcon->cCommand && strcmp (pIcon->cCommand, pItem->cService) == 0)
+		{
+			return pIcon;
+		}
+	}
+	return NULL;
+}

=== added file 'Status-Notifier/src/applet-item.h'
--- Status-Notifier/src/applet-item.h	1970-01-01 00:00:00 +0000
+++ Status-Notifier/src/applet-item.h	2010-09-07 00:46:10 +0000
@@ -0,0 +1,40 @@
+/**
+* This file is a part of the Cairo-Dock project
+*
+* Copyright : (C) see the 'copyright' file.
+* E-mail    : see the 'copyright' file.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 3
+* 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 General Public License for more details.
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __APPLET_ITEM__
+#define  __APPLET_ITEM__
+
+#include <cairo-dock.h>
+
+
+CDStatusNotifierItem *cd_satus_notifier_create_item (const gchar *cService, const gchar *cObjectPath);
+
+void cd_free_item (CDStatusNotifierItem *pItem);
+
+gchar *cd_satus_notifier_search_item_icon_s_path (CDStatusNotifierItem *pItem);
+
+Icon *cd_satus_notifier_create_icon_for_item (CDStatusNotifierItem *pItem);
+
+
+CDStatusNotifierItem *cd_satus_notifier_get_item_from_icon (Icon *pIcon);
+
+Icon *cd_satus_notifier_get_icon_from_item (CDStatusNotifierItem *pItem);
+
+
+#endif

=== modified file 'Status-Notifier/src/applet-notifications.c'
--- Status-Notifier/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -17,14 +17,16 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-//\________________ Add your name in the copyright file (and / or modify your name here)
-
 #include <stdlib.h>
 #include <string.h>
 
 #include "applet-struct.h"
+#include "applet-item.h"
+#include "applet-draw.h"
 #include "applet-notifications.h"
 
+//\___________ Define here the action to be taken when the user left-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons.
+
 static void _get_x_y (Icon *pIcon, CairoContainer *pContainer, int *x, int *y)
 {
 	if (pContainer->bIsHorizontal)
@@ -37,63 +39,90 @@
 		*x = pContainer->iWindowPositionY + (pContainer->bDirectionUp ? 0 : pContainer->iHeight);
 		*y = pContainer->iWindowPositionX + pIcon->fDrawX + pIcon->fWidth * pIcon->fScale/2;
 	}
-	g_print ("menu position : %d;%d\n", *x, *y);
-}
-
-//\___________ Define here the action to be taken when the user left-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons.
-static inline gboolean _emit_click (Icon *pIcon, CairoContainer *pContainer, const gchar *cSignal)
-{
-	if (pContainer == CAIRO_CONTAINER (myIcon->pSubDock) && myIcon->pSubDock != NULL)
-	{
-		if (pIcon != NULL)
-		{
-			cairo_dock_remove_dialog_if_any (pIcon);
-			
-			CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
-			if (pItemData != NULL)
-			{
-				if (pItemData->iSidPopupTooltip != 0)
-				{
-					g_source_remove (pItemData->iSidPopupTooltip);
-					pItemData->iSidPopupTooltip = 0;
-				}	
-				int x, y;
-				_get_x_y (pIcon, pContainer, &x, &y);
-				dbus_g_proxy_call (pItemData->pProxy, cSignal, NULL,
-					G_TYPE_INT, x,
-					G_TYPE_INT, y,
-					G_TYPE_INVALID,
-					G_TYPE_INVALID);
-			}
-		}
-		return TRUE;
-	}
-	return FALSE;
-}
+	g_print ("click position : %d;%d\n", *x, *y);
+}
+static inline gboolean _emit_click (CDStatusNotifierItem *pItem, Icon *pIcon, CairoContainer *pContainer, const gchar *cSignal)
+{
+	int x, y;
+	_get_x_y (pIcon, pContainer, &x, &y);
+	
+	GError *erreur = NULL;
+	dbus_g_proxy_call (pItem->pProxy, cSignal, &erreur,
+		G_TYPE_INT, x,
+		G_TYPE_INT, y,
+		G_TYPE_INVALID,
+		G_TYPE_INVALID);
+	if (erreur != NULL)
+	{
+		g_print ("method %s failed (%s)\n", cSignal, erreur->message);
+		g_error_free (erreur);
+		return FALSE;
+	}
+	return TRUE;
+}
+
+static inline CDStatusNotifierItem *_get_item (Icon *pClickedIcon, CairoContainer *pClickedContainer)
+{
+	CDStatusNotifierItem *pItem = NULL;
+	if (myConfig.bCompactMode)
+	{
+		if (pClickedIcon == myIcon)  // clic sur la bonne icone.
+		{
+			pItem = cd_satus_notifier_find_item_from_coord ();
+		}
+	}
+	else
+	{
+		if ((myIcon->pSubDock != NULL && pClickedContainer == CAIRO_CONTAINER (myIcon->pSubDock)) ||
+			(myDesklet && pClickedContainer == myContainer))  // clic sur le bon container.
+		{
+			pItem = cd_satus_notifier_get_item_from_icon (pClickedIcon);
+		}
+	}
+	return pItem;
+}
+
 CD_APPLET_ON_CLICK_BEGIN
-	_emit_click (CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER, "Activate");
+	CDStatusNotifierItem *pItem = _get_item (CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER);
+	if (pItem != NULL)
+	{
+		gboolean r = _emit_click (pItem, CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER, "Activate");
+		if (!r)
+		{
+			CDStatusNotifierItem *pItem = cd_satus_notifier_get_item_from_icon (CD_APPLET_CLICKED_ICON);
+			g_return_val_if_fail (pItem != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
+			if (pItem->cId != NULL)
+			{
+				cairo_dock_launch_command (pItem->cId);  // lancer une nouvelle fois l'appli montre sa fenetre (enfin, generalement).
+			}
+		}
+	}
 CD_APPLET_ON_CLICK_END
 
 
 CD_APPLET_ON_MIDDLE_CLICK_BEGIN
-	_emit_click (CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER, "SecondaryActivate");
+	CDStatusNotifierItem *pItem = _get_item (CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER);
+	if (pItem != NULL)
+	{
+		_emit_click (pItem, CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER, "SecondaryActivate");
+	}
 CD_APPLET_ON_CLICK_END
 
 
 CD_APPLET_ON_SCROLL_BEGIN
-	if (CD_APPLET_CLICKED_CONTAINER == CAIRO_CONTAINER (myIcon->pSubDock) && myIcon->pSubDock != NULL)
+	CDStatusNotifierItem *pItem = _get_item (CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER);
+	if (pItem != NULL)
 	{
-		if (CD_APPLET_CLICKED_ICON != NULL)
+		GError *erreur = NULL;
+		dbus_g_proxy_call (pItem->pProxy, "Scroll", &erreur,
+			G_TYPE_INT, CD_APPLET_SCROLL_UP ? +1 : -1,
+			G_TYPE_STRING, "vertical",
+			G_TYPE_INVALID,
+			G_TYPE_INVALID);
+		if (erreur != NULL)
 		{
-			CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (CD_APPLET_CLICKED_ICON);
-			if (pItemData != NULL)
-			{
-				dbus_g_proxy_call (pItemData->pProxy, "Scroll", NULL,
-					G_TYPE_INT, CD_APPLET_SCROLL_UP ? +1 : -1,
-					G_TYPE_STRING, "vertical",
-					G_TYPE_INVALID,
-					G_TYPE_INVALID);
-			}
+			g_print ("method %s failed (%s)\n", "Scroll", erreur->message);
+			g_error_free (erreur);
 		}
 	}
 CD_APPLET_ON_SCROLL_END
@@ -108,22 +137,39 @@
 
 gboolean cd_status_notifier_on_right_click (CairoDockModuleInstance *myApplet, Icon *pClickedIcon, CairoContainer *pClickedContainer, GtkWidget *pAppletMenu, gboolean *bDiscardMenu)
 {
-	if (pClickedContainer == CAIRO_CONTAINER (myIcon->pSubDock) && myIcon->pSubDock != NULL)
+	if (pClickedIcon == NULL)
+		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+	
+	CD_APPLET_ENTER;
+	CDStatusNotifierItem *pItem = _get_item (CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER);
+	if (pItem != NULL)
 	{
+		gboolean r = FALSE;
+		if (pItem->cMenuPath != NULL)
+		{
+			if (pItem->pMenu == NULL)
+				pItem->pMenu = dbusmenu_gtkmenu_new ((gchar *)pItem->cService, (gchar *)pItem->cMenuPath);
+			if (pItem->pMenu != NULL)
+			{
+				cairo_dock_popup_menu_on_icon (GTK_WIDGET (pItem->pMenu), pClickedIcon, pClickedContainer);
+				r = TRUE;
+			}
+		}
+		
+		if (!r)
+		{
+			_emit_click (pItem, pClickedIcon, pClickedContainer, "ContextMenu");
+		}
 		*bDiscardMenu = TRUE;
-		if (pClickedIcon != NULL)
-		{
-			_emit_click (pClickedIcon, pClickedContainer, "ContextMenu");
-		}
-		return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_INTERCEPT_NOTIFICATION);
 	}
-	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+	CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 }
 
 
 static gboolean _popup_tooltip (Icon *pIcon)
 {
-	CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
+	CDStatusNotifierItem *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
 	if (pItemData != NULL && pItemData->pToolTip != NULL)
 	{
 		myDialogs.dialogTextDescription.bUseMarkup = TRUE;
@@ -146,12 +192,12 @@
 {
 	if (pDock == myIcon->pSubDock && myIcon->pSubDock != NULL)
 	{
-		Icon *icon = NULL;
+		/*Icon *icon = NULL;
 		GList *ic;
 		for (ic = myData.pIcons; ic != NULL; ic = ic->next)
 		{
 			icon = ic->data;
-			CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
+			CDStatusNotifierItem *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
 			if (pItemData && pItemData->iSidPopupTooltip != 0)
 			{
 				g_source_remove (pItemData->iSidPopupTooltip);
@@ -162,9 +208,9 @@
 		
 		if (pIcon)
 		{
-			CDStatusNotifierItemData *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
+			CDStatusNotifierItem *pItemData = CD_APPLET_GET_MY_ICON_DATA (pIcon);
 			pItemData->iSidPopupTooltip = g_timeout_add (600, (GSourceFunc) _popup_tooltip, pIcon);
-		}
+		}*/
 	}
 	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
 }

=== modified file 'Status-Notifier/src/applet-struct.h'
--- Status-Notifier/src/applet-struct.h	2010-08-07 01:43:25 +0000
+++ Status-Notifier/src/applet-struct.h	2010-09-07 00:46:10 +0000
@@ -21,28 +21,19 @@
 #ifndef __CD_APPLET_STRUCT__
 #define  __CD_APPLET_STRUCT__
 
+#include <libdbusmenu-gtk/menuitem.h>
+#include <libdbusmenu-gtk/menu.h>
+
 #include <cairo-dock.h>
 
 //\___________ structure containing the applet's configuration parameters.
 struct _AppletConfig {
-	gboolean bSomeBooleanValue;
-	gint iSomeIntegerValue;
-	gchar *cSomeStringValue;
+	gboolean bCompactMode;  // les items sur l'icone principale ou dans un sous-dock.
+	gboolean bResizeIcon;  // si compact, redimensionner l'icone principale automatiquement.
+	gint iNbLines;  // si compact et redimensionnement auto, nbre de lignes (colonnes en mode vertical).
 	} ;
 
 
-typedef struct _statusNotifierHostObject statusNotifierHostObject;
-
-struct _statusNotifierHostObject {
-	GObject parent;
-	DBusGConnection *connection;
-};
-typedef struct {
-	GObjectClass parent_class;
-} statusNotifierHostObjectClass;
-
-
-
 typedef enum {
 	CD_STATUS_PASSIVE=0,
 	CD_STATUS_ACTIVE,
@@ -66,29 +57,49 @@
 	} CDToolTip;
 
 typedef struct {
+	// props
 	gchar *cService;
-	DBusGProxy *pProxyProps;
-	DBusGProxy *pProxy;
 	gchar *cId;
+	CDCategoryEnum iCategory;
 	CDStatusEnum iStatus;
-	CDCategoryEnum iCategory;
-	Window iWindowId;
+	gchar *cIconName;
 	gchar *cIconThemePath;
 	gchar *cAttentionIconName;
+	gchar *cTitle;
+	// additionnal props supported by Ubuntu
+	gchar *cLabel;
+	gchar *cLabelGuide;
+	gchar *cMenuPath;
+	// additionnal props supported by KDE
+	Window iWindowId;
 	gchar *cAttentionMovieName;
 	gchar *cOverlayIconName;
 	CDToolTip *pToolTip;
+	
+	gint iPosition;  // donnee par l'indicator service
 	guint iSidPopupTooltip;
-} CDStatusNotifierItemData;
-
+	// data
+	DBusGProxy *pProxyProps;
+	DBusGProxy *pProxy;
+	gboolean bInvalid;  // item deja en cours de destruction
+	DbusmenuGtkMenu *pMenu;
+	cairo_surface_t *pSurface;
+	/*GLuint iTexture;
+	Icon *pIcon;*/
+} CDStatusNotifierItem;
 
 
 //\___________ structure containing the applet's data, like surfaces, dialogs, results of calculus, etc.
 struct _AppletData {
-	statusNotifierHostObject *pMainObject;
+	gchar *cHostName;
 	DBusGProxy *pProxyWatcher;
-	gchar *cHostName;
-	GList *pIcons;
+	DBusGProxy *pProxyIndicatorApplicationService;
+	DBusGProxyCall* pRegisterHostCall;
+	DBusGProxyCall* pGetApplicationsCall;
+	GList *pItems;
+	guint iSidGetWatcher;
+	GHashTable *pThemePaths;
+	gint iNbLines, iNbColumns, iItemSize;  // agencement compact.
 	} ;
 
 

=== modified file 'System-Monitor/data/System-Monitor.conf.in'
--- System-Monitor/data/System-Monitor.conf.in	2010-08-07 01:43:25 +0000
+++ System-Monitor/data/System-Monitor.conf.in	2010-09-07 00:46:10 +0000
@@ -104,7 +104,7 @@
 #X[Gauge;gtk-dialog-info]
 frame_gauge=
 
-#h+[@gaugesdir@;gauges;gauges] Choose one of the available themes:/
+#h+[@gaugesdir@;gauges;gauges2] Choose one of the available themes:/
 theme = Turbo-night-fuel
 
 

=== removed file 'System-Monitor/data/messages'
--- System-Monitor/data/messages	2010-08-07 01:43:25 +0000
+++ System-Monitor/data/messages	1970-01-01 00:00:00 +0000
@@ -1,208 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Always display the icon, even when the dock is hidden?")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Choose the style of the display: ")
-
-_("Gauge")
-
-_("Graph")
-
-_("Gauge")
-
-_("Choose one of the available themes:")
-
-_("Graph")
-
-_("Type of graphic :")
-
-_("Line")
-
-_("Plain")
-
-_("Bar")
-
-_("Circle")
-
-_("Plain Circle")
-
-_("It's the colour of the graphic for high values.")
-
-_("High value's colour :")
-
-_("It's the colour of the graphic for low values.")
-
-_("Low value's colour :")
-
-_("Background colour of the graphic :")
-
-_("Show all values on same graph?")
-
-_("Parameters")
-
-_("Show CPU usage?")
-
-_("Show RAM usage ?")
-
-_("Show SWAP too?")
-
-_("You need an nVidia card and the 'nvidia-settings' tool.")
-
-_("Show graphic card's temperature?")
-
-_("Show free memory instead of used memory?")
-
-_("Display values :")
-
-_("No")
-
-_("On icon")
-
-_("On label")
-
-_("in seconds.")
-
-_("Delay between refreshes:")
-
-_("You need OpenGL for this option. Set it to 0 means not used, 1 means the movement is continue.")
-
-_("How smooth is the movement?")
-
-_("Leave empty to use the default one.")
-
-_("User command to display a system monitor:")
-
-_("It will prevent the system monitor's icon to show in the taskbar. The applet's icon will then behave as a launcher, an application, and an applet.")
-
-_("Steal the system monitor's icon from the taskbar?")
-
-_("Leave empty to use the default one.")
-
-_("Class of the system monitor program:")
-
-_("Top List")
-
-_("When you left-click on the icon, you will get the list of the N most CPU/RAM-intensive programs.")
-
-_("Number of programs to display in the top list:")
-
-_("The first colour of the gradient used to display the top list.")
-
-_("Top list start colour:")
-
-_("The second colour of the gradient used to display the top list.")
-
-_("Top list stop colour:")
-
-_("Show top memory usage in %?")
-
-_("in seconds.")
-
-_("Delay between top list refreshes:")
-
-_("Graphic Card temperature")
-
-_("in Celsius. The temperature will be displayed between this value and the upper limit.")
-
-_("Lower limit of graphic card temperature:")
-
-_("in Celsius. The temperature will be displayed between this value and the upper limit.")
-
-_("Upper limit of graphic card temperature:")
-
-_("Notification when graphic card temperature is high?")
-
-_("in celcius.")
-
-_("Notification limit of graphic card temperature:")
-
-_("Play a sound when displaying warning?")
-
-_("Path to sound file:")
-

=== modified file 'System-Monitor/src/applet-init.c'
--- System-Monitor/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ System-Monitor/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -48,7 +48,7 @@
 
 static void _set_data_renderer (CairoDockModuleInstance *myApplet, gboolean bReload)
 {
-	CairoDataRendererAttribute *pRenderAttr = NULL;  // les attributs du data-renderer global.
+	CairoDataRendererAttribute *pRenderAttr = NULL;  // les attributs generiques du data-renderer.
 	if (myConfig.iDisplayType == CD_SYSMONITOR_GAUGE)
 	{
 		CairoGaugeAttribute attr;  // les attributs de la jauge.
@@ -103,13 +103,29 @@
 	{
 		/// A FAIRE...
 	}
-	if (pRenderAttr != NULL)
+	if (pRenderAttr != NULL)  // attributs generiques.
 	{
 		pRenderAttr->iLatencyTime = myConfig.iCheckInterval * 1000 * myConfig.fSmoothFactor;
 		pRenderAttr->iNbValues = myConfig.bShowCpu + myConfig.bShowRam + myConfig.bShowSwap + myConfig.bShowNvidia;
-		pRenderAttr->format_value = (CairoDockGetValueFormatFunc) cd_sysmonitor_format_value;
-		pRenderAttr->pFormatData = myApplet;
-		//pRenderAttr->bWriteValues = TRUE;
+		if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
+		{
+			pRenderAttr->bWriteValues = TRUE;
+			pRenderAttr->format_value = (CairoDataRendererFormatValueFunc)cd_sysmonitor_format_value;
+			pRenderAttr->pFormatData = myApplet;
+		}
+		const gchar *c[] = {"/usr/share/icons/gnome/scalable/actions/gtk-about.svg", "/usr/share/icons/gnome/scalable/actions/gtk-help.svg", "", ""};
+		//pRenderAttr->cEmblems = c;
+		const gchar *labels[4] = {NULL, NULL, NULL, NULL};
+		int i = 0;
+		if (myConfig.bShowCpu)
+			labels[i++] = "CPU";
+		if (myConfig.bShowRam)
+			labels[i++] = "RAM";
+		if (myConfig.bShowSwap)
+			labels[i++] = "SWAP";
+		if (myConfig.bShowNvidia)
+			labels[i++] = "TEMP";
+		pRenderAttr->cLabels = (gchar **)labels;
 		if (! bReload)
 			CD_APPLET_ADD_DATA_RENDERER_ON_MY_ICON (pRenderAttr);
 		else

=== modified file 'System-Monitor/src/applet-monitor.c'
--- System-Monitor/src/applet-monitor.c	2010-02-14 00:51:22 +0000
+++ System-Monitor/src/applet-monitor.c	2010-09-07 00:46:10 +0000
@@ -87,7 +87,7 @@
 		{
 			// Copier les donnes en memoire partagee...
 			
-			if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON || (myDock && myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_LABEL))  // on affiche les valeurs soit en info-rapide, soit sur l'etiquette en mode dock.
+			if (/**myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON || */(myDock && myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_LABEL))  // on affiche les valeurs soit en info-rapide, soit sur l'etiquette en mode dock.
 			{
 				gboolean bOneLine = (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_LABEL);
 				GString *sInfo = g_string_new ("");
@@ -146,7 +146,7 @@
 				{
 					s_fValues[i++] = myData.fGpuTempPercent / 100.;
 					if (myData.bAlerted && myData.iGPUTemp < myConfig.iAlertLimit)
-						myData.bAlerted = FALSE; //On reinitialise l'alerte quand la temperature descend en dessou de la limite.
+						myData.bAlerted = FALSE; //On reinitialise l'alerte quand la temperature descend en dessous de la limite.
 					
 					if (!myData.bAlerted && myData.iGPUTemp >= myConfig.iAlertLimit)
 						cd_nvidia_alert (myApplet);
@@ -157,12 +157,12 @@
 	}
 	
 	CD_APPLET_LEAVE (myData.bAcquisitionOK);
-	//return myData.bAcquisitionOK;
 }
 
 
-void cd_sysmonitor_format_value (double fValue, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet)
+void cd_sysmonitor_format_value (CairoDataRenderer *pRenderer, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet)
 {
+	double fValue = cairo_data_renderer_get_normalized_current_value_with_latency (pRenderer, iNumValue);
 	int i = -1;
 	if (myConfig.bShowCpu)
 	{
@@ -197,7 +197,7 @@
 		if (i == iNumValue)
 		{
 			double fTemp = myConfig.iLowerLimit + fValue * (myConfig.iUpperLimit - myConfig.iLowerLimit);
-			snprintf (cFormatBuffer, iBufferLength, fTemp < 100. ? " %.0f°" : "%.0f°", fTemp);
+			snprintf (cFormatBuffer, iBufferLength, fTemp < 100. ? " %.0f�" : "%.0f�", fTemp);
 			return ;
 		}
 	}

=== modified file 'System-Monitor/src/applet-monitor.h'
--- System-Monitor/src/applet-monitor.h	2010-02-14 00:51:22 +0000
+++ System-Monitor/src/applet-monitor.h	2010-09-07 00:46:10 +0000
@@ -27,6 +27,6 @@
 
 gboolean cd_sysmonitor_update_from_data (CairoDockModuleInstance *myApplet);
 
-void cd_sysmonitor_format_value (double fValue, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet);
+void cd_sysmonitor_format_value (CairoDataRenderer *pRenderer, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet);
 
 #endif

=== modified file 'System-Monitor/src/applet-notifications.c'
--- System-Monitor/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ System-Monitor/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -51,7 +51,7 @@
 	if (myData.bInitialized && myData.bAcquisitionOK)
 	{
 		if (myData.pTopDialog != NULL || cairo_dock_remove_dialog_if_any (myIcon))
-			return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
+			CD_APPLET_LEAVE (CAIRO_DOCK_INTERCEPT_NOTIFICATION);
 		
 		// On recupere l'uptime.
 		gchar *cUpTime = NULL, *cActivityTime = NULL, *cGCInfos = NULL;
@@ -112,6 +112,8 @@
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-		CD_APPLET_ADD_IN_MENU (D_("Monitor System"), _show_monitor_system, pSubMenu);
-		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
+	
+	CD_APPLET_ADD_IN_MENU (D_("System Monitor"), _show_monitor_system, CD_APPLET_MY_MENU);
+	
+	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END

=== modified file 'Toons/data/Toons.conf.in'
--- Toons/data/Toons.conf.in	2010-08-07 01:43:25 +0000
+++ Toons/data/Toons.conf.in	2010-09-07 00:46:10 +0000
@@ -8,7 +8,7 @@
 icon size = 0;0
 
 #s Name of the icon as it will appear in its caption in the dock:
-name = Toons
+name = 
 
 icon = 
 

=== removed file 'Toons/data/messages'
--- Toons/data/messages	2010-08-07 01:43:25 +0000
+++ Toons/data/messages	1970-01-01 00:00:00 +0000
@@ -1,106 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Always display the icon, even when the dock is hidden?")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Choose one of the available themes:")
-
-_("in seconds.")
-
-_("Mean delay between winks:")
-
-_("in ms.")
-
-_("Wink duration:")
-
-_("Keep ratio?")
-
-_("A high refresh frequency will use more CPU.")
-
-_("High refresh frequency?")
-

=== modified file 'Toons/src/applet-notifications.c'
--- Toons/src/applet-notifications.c	2009-10-05 19:27:17 +0000
+++ Toons/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -27,14 +27,6 @@
 
 #define _XEYES_SENSITIVITY .5
 
-
-//\___________ Define here the action to be taken when the user left-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons.
-/*CD_APPLET_ON_CLICK_BEGIN
-	
-	
-CD_APPLET_ON_CLICK_END*/
-
-
 //\___________ Define here the entries you want to add to the menu when the user right-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons. The menu where you can add your entries is available throught the macro CD_APPLET_MY_MENU; you can add sub-menu to it if you want.
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
@@ -47,8 +39,6 @@
 	int iMouseX, iMouseY;
  	gdk_window_get_pointer (myContainer->pWidget->window, &iMouseX, &iMouseY, NULL);
 	
-	//\_________________ On garde les anciennes coordonnees.
-	
 	//\_________________ On calcule les nouvelles coordonnees.
 	gboolean bNeedsUpdate = FALSE;
 	double fScale = myIcon->fScale / cairo_dock_get_max_scale (myContainer) * myContainer->fRatio;

=== removed file 'Xgamma/data/messages'
--- Xgamma/data/messages	2010-08-07 01:43:25 +0000
+++ Xgamma/data/messages	1970-01-01 00:00:00 +0000
@@ -1,98 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Variation for 1 mouse scroll, in %:")
-
-_("Use 0 for none.")
-
-_("Brightness to apply automatically on startup:")
-

=== modified file 'Xgamma/src/applet-notifications.c'
--- Xgamma/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ Xgamma/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -57,8 +57,10 @@
 		G_TYPE_INVALID);
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
+	//Sub-Menu
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-		CD_APPLET_ADD_IN_MENU (D_("Apply current luminosity on startup"), _cd_xgamma_remember_current_gamma, pSubMenu);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Apply current luminosity on startup"), GTK_STOCK_DIALOG_WARNING, _cd_xgamma_remember_current_gamma, pSubMenu);
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 

=== modified file 'alsaMixer/data/CMakeLists.txt'
--- alsaMixer/data/CMakeLists.txt	2010-08-07 01:43:25 +0000
+++ alsaMixer/data/CMakeLists.txt	2010-09-07 00:46:10 +0000
@@ -4,6 +4,7 @@
 install(FILES  ${CMAKE_CURRENT_BINARY_DIR}/AlsaMixer.conf
 	default.svg
 	mute.svg
+	emblem-mute.svg
 	broken.svg
 	preview.jpg
 	icon.png

=== added file 'alsaMixer/data/emblem-mute.svg'
--- alsaMixer/data/emblem-mute.svg	1970-01-01 00:00:00 +0000
+++ alsaMixer/data/emblem-mute.svg	2010-09-07 00:46:10 +0000
@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg6476"
+   inkscape:version="0.48.0 r9654"
+   sodipodi:docname="mute.svg"
+   inkscape:export-filename="/opt/cairo-dock_bzr/cairo-dock-plug-ins/alsaMixer/data/icon.png"
+   inkscape:export-xdpi="120"
+   inkscape:export-ydpi="120">
+  <metadata
+     id="metadata89">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="491"
+     id="namedview87"
+     showgrid="false"
+     inkscape:zoom="3.4766084"
+     inkscape:cx="-7.6737248"
+     inkscape:cy="6.2513755"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg6476" />
+  <defs
+     id="defs6478">
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient6057"
+       id="radialGradient2532"
+       fy="6.2806997"
+       fx="18.031223"
+       r="3.1819806"
+       cy="6.2806997"
+       cx="18.031223" />
+    <linearGradient
+       id="linearGradient6057">
+      <stop
+         offset="0"
+         style="stop-color:white;stop-opacity:1"
+         id="stop6059" />
+      <stop
+         offset="1"
+         style="stop-color:white;stop-opacity:0"
+         id="stop6061" />
+    </linearGradient>
+    <filter
+       id="filter5745"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur5747"
+         stdDeviation="0.8362597" />
+    </filter>
+    <linearGradient
+       gradientTransform="translate(0,-1.926279)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient10591"
+       id="linearGradient2534"
+       y2="17.470011"
+       x2="27.192274"
+       y1="2.9136841"
+       x1="10.650842" />
+    <linearGradient
+       id="linearGradient10591">
+      <stop
+         offset="0"
+         style="stop-color:#cad0c6;stop-opacity:1"
+         id="stop10593" />
+      <stop
+         offset="0.5"
+         style="stop-color:#eaece9;stop-opacity:1"
+         id="stop10599" />
+      <stop
+         offset="1"
+         style="stop-color:#c5cbc0;stop-opacity:1"
+         id="stop10595" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(1.6824037,1.125)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient6227"
+       id="linearGradient2536-7"
+       y2="14.849737"
+       x2="33.004314"
+       y1="14.849737"
+       x1="35.004684" />
+    <linearGradient
+       id="linearGradient6227">
+      <stop
+         offset="0"
+         style="stop-color:black;stop-opacity:1"
+         id="stop6229" />
+      <stop
+         offset="1"
+         style="stop-color:black;stop-opacity:0"
+         id="stop6231" />
+    </linearGradient>
+    <filter
+       id="filter6251"
+       color-interpolation-filters="sRGB"
+       height="1.0951581"
+       width="1.4848505"
+       y="-0.047579072"
+       x="-0.24242526">
+      <feGaussianBlur
+         id="feGaussianBlur6253"
+         stdDeviation="0.24444548" />
+    </filter>
+    <linearGradient
+       gradientTransform="translate(-19.532826,1.7437184)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient6227"
+       id="linearGradient2538"
+       y2="13.789077"
+       x2="35.020981"
+       y1="13.789077"
+       x1="32.128025" />
+    <radialGradient
+       gradientTransform="matrix(1.3870968,0,0,0.8113208,10.987903,1.9296697)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient6075"
+       id="radialGradient2527"
+       fy="20.3125"
+       fx="15.9375"
+       r="3.3125"
+       cy="20.3125"
+       cx="15.9375" />
+    <linearGradient
+       id="linearGradient6075">
+      <stop
+         offset="0"
+         style="stop-color:black;stop-opacity:1"
+         id="stop6077" />
+      <stop
+         offset="1"
+         style="stop-color:black;stop-opacity:0"
+         id="stop6079" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(1.3870968,0,0,0.8113208,-7.0120971,1.9296697)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient6075"
+       id="radialGradient2530"
+       fy="20.3125"
+       fx="15.9375"
+       r="3.3125"
+       cy="20.3125"
+       cx="15.9375" />
+    <filter
+       id="filter5957"
+       color-interpolation-filters="sRGB"
+       height="1.1647059"
+       width="1.9882354"
+       y="-0.082352944"
+       x="-0.49411765">
+      <feGaussianBlur
+         id="feGaussianBlur5959"
+         stdDeviation="0.69878785" />
+    </filter>
+    <linearGradient
+       gradientTransform="matrix(0.9413543,0,0,0.7755502,1.4105206,6.2414233)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient12071"
+       id="linearGradient3236"
+       y2="18.037588"
+       x2="21.941509"
+       y1="21.550869"
+       x1="21.941509" />
+    <linearGradient
+       id="linearGradient12071">
+      <stop
+         offset="0"
+         style="stop-color:white;stop-opacity:1"
+         id="stop12073" />
+      <stop
+         offset="1"
+         style="stop-color:white;stop-opacity:0"
+         id="stop12075" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.9422167,0,0,1.5,1.3898222,-9.4028767)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5881"
+       id="linearGradient3239"
+       y2="17"
+       x2="24.75"
+       y1="21"
+       x1="24.875" />
+    <linearGradient
+       id="linearGradient5881">
+      <stop
+         offset="0"
+         style="stop-color:#d6c8a7;stop-opacity:1"
+         id="stop5883" />
+      <stop
+         offset="1"
+         style="stop-color:#d0bd99;stop-opacity:1"
+         id="stop5885" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.9405192,0,0,1.1176137,1.4447998,-5.9978884)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient9845"
+       id="linearGradient3242"
+       y2="36.127281"
+       x2="30.875446"
+       y1="25.002281"
+       x1="10.907269" />
+    <linearGradient
+       id="linearGradient9845">
+      <stop
+         offset="0"
+         style="stop-color:white;stop-opacity:1"
+         id="stop9847" />
+      <stop
+         offset="1"
+         style="stop-color:white;stop-opacity:0.49484536"
+         id="stop9849" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.943025,0,0,1.1298556,1.3703378,-7.8420138)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2411"
+       id="linearGradient3255"
+       y2="32.161697"
+       x2="40.938126"
+       y1="32.161697"
+       x1="6.72682" />
+    <linearGradient
+       id="linearGradient2411">
+      <stop
+         offset="0"
+         style="stop-color:#fee7b1;stop-opacity:1"
+         id="stop2413" />
+      <stop
+         offset="0.25796592"
+         style="stop-color:#ebd4b4;stop-opacity:1"
+         id="stop2419" />
+      <stop
+         offset="0.50796592"
+         style="stop-color:#c8a775;stop-opacity:1"
+         id="stop2421" />
+      <stop
+         offset="0.74009573"
+         style="stop-color:#b0935b;stop-opacity:1"
+         id="stop2423" />
+      <stop
+         offset="1"
+         style="stop-color:#fcebbf;stop-opacity:1"
+         id="stop2415" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3257"
+       id="linearGradient3263"
+       y2="13.996504"
+       x2="22.015385"
+       y1="45"
+       x1="22.015385" />
+    <linearGradient
+       id="linearGradient3257">
+      <stop
+         offset="0"
+         style="stop-color:#957747;stop-opacity:1"
+         id="stop3259" />
+      <stop
+         offset="1"
+         style="stop-color:#ae8c56;stop-opacity:1"
+         id="stop3261" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(1.0196564,0,0,0.2039312,-0.935075,33.441752)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3437"
+       id="radialGradient2498"
+       fy="46.869949"
+       fx="24.45439"
+       r="19.61445"
+       cy="46.869949"
+       cx="24.45439" />
+    <linearGradient
+       id="linearGradient3437">
+      <stop
+         offset="0"
+         style="stop-color:black;stop-opacity:1"
+         id="stop3439" />
+      <stop
+         offset="1"
+         style="stop-color:black;stop-opacity:0"
+         id="stop3441" />
+    </linearGradient>
+  </defs>
+  <g
+     id="layer1"
+     transform="matrix(0.99658873,0,0,0.99658873,0.35947304,0.7209234)">
+    <path
+       style="opacity:0.4;fill:url(#radialGradient2498);fill-opacity:1;stroke:none"
+       id="path3435"
+       d="m 44,43 c 0,2.209138 -8.954306,4 -20,4 -11.045695,0 -20.0000001,-1.790862 -20.0000001,-4 0,-2.209139 8.9543051,-4.000001 20.0000001,-4.000001 11.045694,0 20,1.790862 20,4.000001 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:url(#linearGradient3255);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3263);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+       id="rect1314"
+       d="m 9.6076372,15.597122 c 9.5073408,-1.443399 19.1158448,-1.219316 28.7847248,0 1.167633,0 2.107638,1.04357 2.107638,2.339844 l 0,23.320312 c 0,1.296274 -1.000672,2.152344 -2.107638,2.339844 -10.02436,1.208603 -18.619576,1.199062 -28.7847248,0 -1.3496328,-0.4375 -2.107637,-1.04357 -2.107637,-2.339844 l 0,-23.320312 c 0,-1.296274 0.9400061,-2.339844 2.107637,-2.339844 z"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g4695"
+       transform="matrix(0.9706771,0,0,1,-0.7507553,-1.9028777)">
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path6193"
+         d="m 41.940271,24.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -16.308875,0.480472 -16.308875,0.480472 0,0 16.26324,0.159134 16.26324,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4678"
+         d="m 41.940271,26.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -19.058875,0.480472 -19.058875,0.480472 0,0 19.01324,0.159134 19.01324,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4680"
+         d="m 41.940271,28.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -16.308875,0.480472 -16.308875,0.480472 0,0 16.26324,0.159134 16.26324,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4682"
+         d="m 41.940271,30.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -11.058875,0.480472 -11.058875,0.480472 0,0 11.01324,0.159134 11.01324,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4684"
+         d="m 41.940271,32.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -16.308875,0.480472 -16.308875,0.480472 0,0 16.26324,0.159134 16.26324,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4686"
+         d="m 41.940271,34.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -18.746375,0.480472 -18.746375,0.480472 0,0 18.70074,0.159134 18.70074,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4688"
+         d="m 41.940271,36.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -13.996375,0.480472 -13.996375,0.480472 0,0 13.95074,0.159134 13.95074,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4690"
+         d="m 41.940271,38.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -8.433875,0.480472 -8.433875,0.480472 0,0 8.38824,0.159134 8.38824,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path4692"
+         d="m 41.940271,40.444505 c -0.398206,1.330312 -4.534152,1.670412 -5.302076,1.773431 0,0 -16.308875,0.480472 -16.308875,0.480472 0,0 16.26324,0.159134 16.26324,0.159134 0.825913,-0.09712 5.218651,0.103389 5.4361,-1.70593 l -0.08839,-0.707107 z"
+         inkscape:connector-curvature="0" />
+    </g>
+    <path
+       style="opacity:0.37999998;fill:none;stroke:url(#linearGradient3242);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.60109289;stroke-dashoffset:0"
+       id="rect6903"
+       d="m 9.6836237,17.092483 28.6396773,0 c 0.671971,0 1.212946,0.586115 1.212946,1.314159 l 0,22.876321 c 0,0.728044 -0.480307,1.064159 -1.212946,1.314159 -9.364556,1.203613 -18.60778,1.200821 -28.6396773,0 -0.6719726,-0.25 -1.2129464,-0.586115 -1.2129464,-1.314159 l 0,-22.876321 c 0,-0.728044 0.5409738,-1.314159 1.2129464,-1.314159 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:url(#linearGradient3239);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="rect1460"
+       d="m 9.545921,16.097122 c 9.638068,-1.460747 19.276134,-1.200569 28.914203,0 0.864562,0 1.560583,0.717046 1.560583,1.607725 l 0,2.78455 c 0,0.890679 -0.696021,1.607725 -1.560583,1.607725 -10.057893,0.6901 -19.312035,0.44381 -28.914203,0 -0.8645622,0 -1.5605819,-0.717046 -1.5605819,-1.607725 l 0,-2.78455 c 0,-0.890679 0.6960197,-1.607725 1.5605819,-1.607725 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="opacity:0.6;fill:none;stroke:url(#linearGradient3236);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       id="rect1593"
+       d="m 9.6004853,19.813555 28.8050767,0 c 0.625913,0 1.129809,0.398555 1.129809,0.893623 l 0,0.539405 c 0,0.495067 -0.503896,0.893623 -1.129809,0.893623 -9.512086,0.977722 -19.131629,1.037555 -28.8050767,0 -0.625914,0 -1.129808,-0.398556 -1.129808,-0.893623 l 0,-0.539405 c 0,-0.495068 0.503894,-0.893623 1.129808,-0.893623 z"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:0.2;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5957);enable-background:accumulate"
+       id="rect5887"
+       transform="matrix(1.9144392,0,0,1.2283366,-15.858733,-7.2062543)"
+       y="23.226137"
+       x="14.594036"
+       ry="1.6077254"
+       rx="1.6077254"
+       height="16.970562"
+       width="2.8284271" />
+    <path
+       style="opacity:0.3;fill:url(#radialGradient2530);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6073"
+       d="m 19.689516,18.409623 c 0,1.484266 -2.057144,2.6875 -4.594758,2.6875 -2.537615,0 -4.594758,-1.203234 -4.594758,-2.6875 0,-1.484266 2.057143,-2.6875 4.594758,-2.6875 2.537614,0 4.594758,1.203234 4.594758,2.6875 z"
+       inkscape:connector-curvature="0" />
+    <path
+       style="opacity:0.3;fill:url(#radialGradient2527);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6083"
+       d="m 37.689516,18.409623 c 0,1.484266 -2.057143,2.6875 -4.594758,2.6875 -2.537614,0 -4.594758,-1.203234 -4.594758,-2.6875 0,-1.484266 2.057144,-2.6875 4.594758,-2.6875 2.537615,0 4.594758,1.203234 4.594758,2.6875 z"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g1387"
+       transform="matrix(0.8563683,0,0,0.9968005,3.3880698,-2.4746473)">
+      <path
+         style="fill:url(#linearGradient2534);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.08234417;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path2086"
+         d="m 10.6402,20.234846 0,-5.734846 C 10.6402,6.6298666 15.897609,2.8910066 24.020027,2.9892921 32.18664,3.0875777 37.5,6.5372782 37.5,14.5 l 0,5.984846 c 0,1.954229 -5.490701,2.202951 -5.490701,0 l 0,-3.984846 c 0,-2 0.568453,-8.471853 -7.932058,-8.471853 -8.430413,0 -7.81615,6.511738 -7.783459,8.463879 l 0,3.776498 c 0,2.35462 -5.653582,2.344609 -5.653582,-0.03368 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.18235294;fill:url(#linearGradient2536-7);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter6251)"
+         id="rect1345"
+         d="m 34.687087,10.837069 1.263948,0.125 c 0.927239,2.822733 0.736052,9.510413 0.736052,9.510413 -0.0625,1.125 -2.03125,0.53125 -2,0 l 0,-9.635413 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="opacity:0.14117647;fill:url(#linearGradient2538);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter6251)"
+         id="path6332"
+         transform="matrix(-1,0,0,1,29.05878,-0.6187184)"
+         d="m 12.926606,11.544175 0.371719,0.169195 c 1.720331,1.054966 2.173532,9.37783 2.173532,9.37783 -0.0625,1.125 -2.03125,0.53125 -2,0 0,0 0.37822,-6.87064 -0.545251,-9.547025 z"
+         inkscape:connector-curvature="0" />
+    </g>
+    <path
+       style="opacity:0.62352941;fill:none;stroke:#ffffff;stroke-width:2.0439775;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5745);enable-background:accumulate"
+       id="path5675"
+       transform="matrix(0.9605048,0,0,0.9968005,0.9443375,-0.08738921)"
+       d="m 13.876557,17.722122 0.124999,-7.5 c 0,-9.8763728 18.6875,-10.6764 18.6875,0.875 l 0,6.875"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g6067"
+       transform="matrix(0.9605048,0,0,0.9968005,0.3540496,-2.5128119)">
+      <path
+         style="fill:url(#radialGradient2532);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path6055"
+         d="m 21.213204,6.2806997 c 4.41e-4,1.7576709 -1.42431,3.1827783 -3.181981,3.1827783 -1.75767,0 -3.182421,-1.4251074 -3.18198,-3.1827783 -4.41e-4,-1.7576709 1.42431,-3.1827783 3.18198,-3.1827783 1.757671,0 3.182422,1.4251074 3.181981,3.1827783 l 0,0 z"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path6065"
+         transform="matrix(0.4343344,0,0,0.4343344,10.199642,3.5527756)"
+         d="m 21.213204,6.2806997 c 4.41e-4,1.7576709 -1.42431,3.1827783 -3.181981,3.1827783 -1.75767,0 -3.182421,-1.4251074 -3.18198,-3.1827783 -4.41e-4,-1.7576709 1.42431,-3.1827783 3.18198,-3.1827783 1.757671,0 3.182422,1.4251074 3.181981,3.1827783 l 0,0 z"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>

=== removed file 'alsaMixer/data/messages'
--- alsaMixer/data/messages	2010-08-07 01:43:25 +0000
+++ alsaMixer/data/messages	1970-01-01 00:00:00 +0000
@@ -1,146 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Leave empty to use the default sound card.")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.. Negative values are counted from the right/bottom of the screen")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Alsa")
-
-_("Leave empty to use the default sound card.")
-
-_("Sound card:")
-
-_("Select channel:")
-
-_("On some cards, a channel only controls 1 side (right or left). You will then need to specify a second channel here, to control both sides. Most of the time, you should just leave this empty.")
-
-_("Choose a second channel to control (optional):")
-
-_("Leave empty to use the defaut command.")
-
-_("Specific command to run to show an advanced sound mixer:")
-
-_("Control")
-
-_("Shortkey to show/hide the sound control dialog:")
-
-_("Variation for 1 mouse scroll, in %:")
-
-_("Hide the scale when mouse leaves the desklet?")
-
-_("Display")
-
-_("Display volume :")
-
-_("No")
-
-_("On label")
-
-_("On icon")
-
-_("Effect to apply to the icon when adjusting volume:")
-
-_("None")
-
-_("Zoom")
-
-_("Transparency")
-
-_("Draw Bar")
-
-_("Leave empty to use the default one.")
-
-_("Default icon:")
-
-_("Leave empty to use the default one.")
-
-_("Broken icon:")
-
-_("Leave empty to use the default one.")
-
-_("Mute icon:")
-

=== modified file 'alsaMixer/src/applet-notifications.c'
--- alsaMixer/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ alsaMixer/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -42,7 +42,7 @@
 	}
 	else
 	{
-		g_spawn_command_line_async ("gnome-volume-control", &erreur);
+		g_spawn_command_line_async ("gnome-volume-control -p applications", &erreur);
 	}
 	
 	if (erreur != NULL)
@@ -54,8 +54,11 @@
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-		CD_APPLET_ADD_IN_MENU(_("Adjust channels"), _mixer_show_advanced_mixer, pSubMenu);
-		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
+	// Main Menu
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (_("Adjust channels"), GTK_STOCK_PREFERENCES, _mixer_show_advanced_mixer, CD_APPLET_MY_MENU);
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK ((myData.bIsMute ? _("Unmute (middle-click)") : _("Mute (middle-click)")), MY_APPLET_SHARE_DATA_DIR"/emblem-mute.svg", mixer_switch_mute, CD_APPLET_MY_MENU);
+	// Sub-Menu
+	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 
 
@@ -88,7 +91,7 @@
 		iVolume = MIN (iVolume + delta, 100);
 	}
 	else
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 	
 	mixer_set_volume (iVolume);
 CD_APPLET_ON_SCROLL_END

=== modified file 'clock/data/clock.conf.in'
--- clock/data/clock.conf.in	2010-08-07 01:43:25 +0000
+++ clock/data/clock.conf.in	2010-09-07 00:46:10 +0000
@@ -146,6 +146,9 @@
 #C+ Text colour:
 text color = 0.0; 0.0; 0.5; 1.
 
+#l+[Automatic;On 1 line;On 2 lines] Layout of the text:
+text layout = 0
+
 #e+[.5;1] Ratio to apply on text :
 text ratio = 1
 

=== removed file 'clock/data/messages'
--- clock/data/messages	2010-08-07 01:43:25 +0000
+++ clock/data/messages	1970-01-01 00:00:00 +0000
@@ -1,162 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Leave empty to use the location name if available.")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Always display the icon, even when the dock is hidden?")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.. Negative values are counted from the right/bottom of the screen")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Module")
-
-_("Behaviour")
-
-_("Show the date:")
-
-_("No")
-
-_("On icon")
-
-_("On label")
-
-_("for digital format only.")
-
-_("Display the time in a 24h format?")
-
-_("if not, then the applet will update the time once a minute, saving CPU power.")
-
-_("Show seconds?")
-
-_("In ms. Set 0 for non-smooth animation, set 1000 to have a continuous animation. Requires OpenGL.")
-
-_("Display seconds with smooth animation for a duration of:")
-
-_("E.g. :Europe/Paris, :Japan, etc. Leave empty for local time.")
-
-_("Timezone:")
-
-_("Use the tasks from the following task-manager:")
-
-_("Default")
-
-_("iCal")
-
-_("Style")
-
-_("The analogue view is based on CairoClock; otherwise it will be displayed in digital format.")
-
-_("Select the view :")
-
-_("Analogue")
-
-_("Digital")
-
-_("Analogue View")
-
-_("List of available themes for analogue display:")
-
-_("Date text colour:")
-
-_("Digital View")
-
-_("Font:")
-
-_("Text colour:")
-
-_("Ratio to apply on text :")
-
-_("Background image:")
-
-_("Configure time and date")
-
-_("Leave empty to use the default command.")
-
-_("Specific command to run:")
-
-_("Alarm")
-
-_("The new alarm will be added to the end / the last alarm will be removed.")
-
-_("Add or remove an alarm:")
-

=== modified file 'clock/src/applet-config.c'
--- clock/src/applet-config.c	2010-08-07 01:43:25 +0000
+++ clock/src/applet-config.c	2010-09-07 00:46:10 +0000
@@ -103,6 +103,8 @@
 		
 		myConfig.cNumericBackgroundImage = CD_CONFIG_GET_STRING ("Configuration", "numeric bg");
 		myConfig.fTextRatio = CD_CONFIG_GET_DOUBLE_WITH_DEFAULT ("Configuration", "text ratio", 1.);
+		
+		myConfig.iPreferedTextLayout = CD_CONFIG_GET_INTEGER ("Configuration", "text layout");
 	}
 	
 	//\_______________ On recupere les alarmes.

=== modified file 'clock/src/applet-draw.c'
--- clock/src/applet-draw.c	2010-08-07 01:43:25 +0000
+++ clock/src/applet-draw.c	2010-09-07 00:46:10 +0000
@@ -89,7 +89,7 @@
 }
 static void _set_warning_repetition (int iClickedButton, GtkWidget *pInteractiveWidget, CDClockTask *pTask, CairoDialog *pDialog)
 {
-	g_print ("%s (%d)\n", __func__, iClickedButton);
+	cd_debug ("%s (%d)", __func__, iClickedButton);
 	GList *cl = gtk_container_get_children (GTK_CONTAINER (pInteractiveWidget));
 	g_return_if_fail (cl != NULL && cl->next != NULL);
 	GtkWidget *pScale = cl->next->data;
@@ -394,8 +394,8 @@
 	cd_clock_put_text_on_frames (myApplet, width, height, fMaxScale, pTime);
 }*/
 
-#define GAPX 12
-#define GAPY 2
+#define GAPX .12
+#define GAPY .02
 #define MAX_RATIO 2.
 void cd_clock_draw_text (CairoDockModuleInstance *myApplet, int iWidth, int iHeight, struct tm *pTime)
 {
@@ -451,9 +451,9 @@
 		
 		double h=0, w=0, fZoomX=0, fZoomY=0;
 		double h_=0, w_=0, fZoomX_=0, fZoomY_=0;
-		if (myData.iTextOrientation == 1 || myData.iTextOrientation == 0)
+		if (myData.iTextLayout == CD_TEXT_LAYOUT_2_LINES || myData.iTextLayout == CD_TEXT_LAYOUT_AUTO)
 		{
-			h = ink.height + ink2.height + GAPY;
+			h = ink.height + ink2.height + GAPY * iHeight;
 			w = MAX (ink.width, ink2.width);
 			fZoomX = (double) iWidth / w;
 			fZoomY = (double) iHeight / h;
@@ -466,10 +466,10 @@
 				fZoomX = myConfig.fTextRatio * iWidth / w;
 			}
 		}
-		if (myData.iTextOrientation == 2 || myData.iTextOrientation == 0)
+		if (myData.iTextLayout == CD_TEXT_LAYOUT_1_LINE || myData.iTextLayout == CD_TEXT_LAYOUT_AUTO)
 		{
 			h_ = MAX (ink.height, ink2.height);
-			w_ = ink.width + ink2.width + GAPX;
+			w_ = ink.width + ink2.width + GAPX * iWidth;
 			fZoomX_ = (double) iWidth / w_;
 			fZoomY_ = (double) iHeight / h_;
 			if (myDock && fZoomY_ > MAX_RATIO * fZoomX_)  // on ne garde pas le ratio car ca ferait un texte trop petit en hauteur, toutefois on limite un peu la deformation en hauteur.
@@ -487,17 +487,17 @@
 			}
 		}
 		
-		if (myData.iTextOrientation == 0)  // si l'orientation n'est pas encore definie, on la definit de facon a ne pas changer (si on est tres proche de la limite, la taille du texte pourrait changer suffisamment pour nous faire passer d'une orientation a l'autre.
+		if (myData.iTextLayout == CD_TEXT_LAYOUT_AUTO)  // si l'orientation n'est pas encore definie, on la definit de facon a ne pas changer (si on est tres proche de la limite, la taille du texte pourrait changer suffisamment pour nous faire passer d'une orientation a l'autre.
 		{
 			double def = (fZoomX > fZoomY ? fZoomX / fZoomY : fZoomY / fZoomX);  // deformation.
 			double def_ = (fZoomX_ > fZoomY_ ? fZoomX_ / fZoomY_ : fZoomY_ / fZoomX_);
-			if (def > def_)  // deformation plus grande en mode vertical => on passe en mode horizontal.
-				myData.iTextOrientation = 2;
+			if (def > def_)  // deformation plus grande en mode 2 lignes => on passe en mode 1 ligne.
+				myData.iTextLayout = CD_TEXT_LAYOUT_2_LINES;
 			else
-				myData.iTextOrientation = 1;
+				myData.iTextLayout = CD_TEXT_LAYOUT_1_LINE;
 		}
 		
-		if (myData.iTextOrientation == 2)  // mode horizontal
+		if (myData.iTextLayout == CD_TEXT_LAYOUT_1_LINE)  // mode 1 ligne
 		{
 			cairo_translate (myDrawContext, (iWidth - fZoomX_ * w_) / 2, (iHeight - fZoomY_ * h_)/2);  // centre verticalement.
 			cairo_scale (myDrawContext, fZoomX_, fZoomY_);
@@ -512,7 +512,7 @@
 			cairo_translate (myDrawContext, -ink.x, -ink.y);
 			pango_cairo_show_layout (myDrawContext, pLayout);
 		}
-		else  // mode vertical
+		else  // mode 2 lignes
 		{
 			cairo_translate (myDrawContext, (iWidth - fZoomX * ink.width) / 2, (iHeight - fZoomY * h)/2);  // centre verticalement.
 			cairo_scale (myDrawContext, fZoomX, fZoomY);

=== modified file 'clock/src/applet-init.c'
--- clock/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ clock/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -72,6 +72,7 @@
 	myData.iLastCheckedDay = -1;
 	myData.iLastCheckedMonth = -1;
 	myData.iLastCheckedYear = -1;
+	myData.iTextLayout = myConfig.iPreferedTextLayout;
 	
 	//\_______________ On enregistre nos notifications.
 	CD_APPLET_REGISTER_FOR_CLICK_EVENT;
@@ -117,9 +118,9 @@
 
 CD_APPLET_RELOAD_BEGIN
 	//\_______________ On recharge les donnees qui ont pu changer.
-		///cd_clock_configure_digital (myApplet);  // mis en commentaire jusqu'a ce que ca soit fini.
+	///cd_clock_configure_digital (myApplet);  // mis en commentaire jusqu'a ce que ca soit fini.
 	
-	myData.iTextOrientation = 0;  // on recalcule l'orientation.
+	myData.iTextLayout = myConfig.iPreferedTextLayout;  // on recalcule l'orientation si elle est automatique.
 	if (CD_APPLET_MY_CONFIG_CHANGED)
 	{
 		//\_______________ set a desklet view.

=== modified file 'clock/src/applet-notifications.c'
--- clock/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ clock/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -87,10 +87,15 @@
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-		CD_APPLET_ADD_IN_MENU (D_("Set up time and date"), _cd_clock_launch_time_admin, pSubMenu);
-		CD_APPLET_ADD_IN_MENU (D_("Show today's tasks"), _cd_clock_show_tasks_today, pSubMenu);
-		CD_APPLET_ADD_IN_MENU (D_("Show this week's tasks"), _cd_clock_show_tasks_week, pSubMenu);
-		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
+	
+	// Main Menu
+	CD_APPLET_ADD_IN_MENU (D_("Show today's tasks"), _cd_clock_show_tasks_today, CD_APPLET_MY_MENU);
+	CD_APPLET_ADD_IN_MENU (D_("Show this week's tasks"), _cd_clock_show_tasks_week, CD_APPLET_MY_MENU);
+	
+	// Sub-Menu
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Set up time and date"), GTK_STOCK_PREFERENCES, _cd_clock_launch_time_admin, pSubMenu);
+	CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
+	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 
 

=== modified file 'clock/src/applet-struct.h'
--- clock/src/applet-struct.h	2010-08-07 01:43:25 +0000
+++ clock/src/applet-struct.h	2010-09-07 00:46:10 +0000
@@ -132,11 +132,19 @@
 	gpointer pData;
 	} CDClockTaskBackend;
 
+typedef enum _CDClockTextLayout
+{
+	CD_TEXT_LAYOUT_AUTO = 0,
+	CD_TEXT_LAYOUT_1_LINE,
+	CD_TEXT_LAYOUT_2_LINES
+} CDClockTextLayout;
+
 struct _AppletConfig {
 	CairoDockInfoDisplay iShowDate;
 	gboolean bShowSeconds;
 	gboolean bOldStyle;
 	gboolean b24Mode;
+	CDClockTextLayout iPreferedTextLayout;
 	double fTextColor[4];
 	double fDateColor[4];
 	gchar *cThemePath;
@@ -173,7 +181,7 @@
 	
 	cairo_surface_t *pNumericBgSurface;
 	ClockDigital pDigitalClock;
-	guint iTextOrientation;
+	guint iTextLayout;
 	
 	GLuint iBgTexture, iFgTexture, iHourNeedleTexture, iMinuteNeedleTexture, iSecondNeedleTexture, iDateTexture;
 	gint iNeedleWidth, iNeedleHeight;

=== modified file 'compiz-icon/data/compiz-icon.conf.in'
--- compiz-icon/data/compiz-icon.conf.in	2010-08-07 01:43:25 +0000
+++ compiz-icon/data/compiz-icon.conf.in	2010-09-07 00:46:10 +0000
@@ -56,8 +56,6 @@
 sticky=true
 
 
-
-
 #F[Decorations;gtk-orientation-portrait]
 frame_deco=
 
@@ -97,7 +95,7 @@
 #F[Actions;gtk-preferences]
 frame_act = 
 
-#l[None;Switch WM;Widget Layer;Expose;Show Desktop] Choose an action for middle click on the icon:
+#l[None;Switch WM;Widget Layer;Expose;Show Desktop] Action on middle click :
 #{Except when switching to another WM, you must activate the Dbus plugin in Compiz along with the plugin corresponding to the desired action.}
 middle click = 1
 

=== removed file 'compiz-icon/data/messages'
--- compiz-icon/data/messages	2010-08-07 01:43:25 +0000
+++ compiz-icon/data/messages	1970-01-01 00:00:00 +0000
@@ -1,196 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Actions")
-
-_("Except when switching to another WM, you must activate the Dbus plugin in Compiz along with the plugin corresponding to the desired action.")
-
-_("Choose an action for middle click on the icon:")
-
-_("None")
-
-_("Switch WM")
-
-_("Widget Layer")
-
-_("Expose")
-
-_("Show Desktop")
-
-_("This command will be used to launch the system WM. Leave blank to use the default.")
-
-_("Custom command for system's Windows Manager:")
-
-_("If Compiz quits unexpectedly, Cairo-Dock will restart it. You must then quit Compiz from the dock.")
-
-_("Auto-reload Compiz?")
-
-_("If the decorator quits unexpectedly, Cairo-Dock will restart it. ou must then quit Compiz from the dock.")
-
-_("Auto-reload the Decorator?")
-
-_("Load Compiz with options on startup.")
-
-_("Force Compiz settings on startup?")
-
-_("This will prevent the CSSM or Emerald icons appearing in the taskbar. The corresponding sub-dock's icons will then behave as a launcher and an application.")
-
-_("Steal the application's icon from the taskbar?")
-
-_("Display two icons for Compiz Exposition & Widget Layer plug-ins in the applet's sub-dock. Otherwise they will be available in the menu.")
-
-_("Add Exposition & Widget Layer to sub-dock?")
-
-_("Display an icon for the Emerald configuration panel in the applet's sub-dock.")
-
-_("Add Emerald Configuration to sub-dock?")
-
-_("Compiz Options")
-
-_("With strict binding, textures are bound whenever they are enabled. With loose binding they are enabled when created. The Nvidia driver seems a bit slow when binding textures, that's why this option gives a heavy performance increase with Nvidia cards.")
-
-_("Use Loose Binding?")
-
-_("Only use these options if you know what you're doing.?")
-
-_("Use Indirect Rendering?")
-
-_("Useful when using two or more separate X screens.")
-
-_("Only Current Screen?")
-
-_("By default this will be Emerald.")
-
-_("Choose your Window Decorator:")
-
-_("emerald")
-
-_("gtk-window-decorator")
-
-_("kde-window-decorator")
-
-_("heliodor")
-
-_("Leave empty to use default sub-dock view.")
-
-_("Sub-dock view name:")
-
-_("Images")
-
-_("Leave empty to use the default icon.")
-
-_("'Default' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Broken' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Other WM' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Settings' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Emerald' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Reload' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Exhibition' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("'Widget Layer' icon image name:")
-

=== modified file 'compiz-icon/src/applet-notifications.c'
--- compiz-icon/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ compiz-icon/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -144,7 +144,7 @@
 	if (myDock != NULL && myIcon->pSubDock != NULL && pClickedContainer == CAIRO_CONTAINER (myIcon->pSubDock) && pClickedIcon != NULL) {  // clic sur ne icone du sous-dock.
 		//cd_debug (" clic sur %s", pClickedIcon->cName);
 		///if (pClickedIcon->cCommand != NULL && strcmp (pClickedIcon->cCommand, "none") != 0)
-		///	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		///	CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 		_compiz_action_by_id ((int) pClickedIcon->fOrder/2, pClickedIcon);
 	}
 	else if (myDesklet != NULL && pClickedContainer == myContainer && pClickedIcon != NULL) {  // clic sur une des icones du desklet.
@@ -152,12 +152,12 @@
 			cairo_dock_launch_task (myData.pTask);
 		else {
 			if (pClickedIcon->cCommand != NULL && strcmp (pClickedIcon->cCommand, "none") != 0)
-				return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+				CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 			_compiz_action_by_id ((int) pClickedIcon->fOrder/2, pClickedIcon);
 		}
 	}
 	else
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 CD_APPLET_ON_CLICK_END
 
 
@@ -166,7 +166,7 @@
 		_action_on_click (myConfig.iActionOnMiddleClick);
 	}
 	else if (pClickedIcon != NULL && pClickedIcon->cCommand != NULL && strcmp (pClickedIcon->cCommand, "none") != 0)
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 CD_APPLET_ON_MIDDLE_CLICK_END
 
 
@@ -175,11 +175,12 @@
 	cd_compiz_start_decorator (iDecorator);
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
+	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
+
 	if (CD_APPLET_CLICKED_ICON != NULL && strcmp(CD_APPLET_CLICKED_ICON->cName,D_("Emerald Manager")) == 0) {
-		CD_APPLET_ADD_IN_MENU (D_("Reload Emerald"), cd_compiz_start_favorite_decorator, CD_APPLET_MY_MENU);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Reload Emerald"), GTK_STOCK_REFRESH, cd_compiz_start_favorite_decorator, CD_APPLET_MY_MENU);
 	}
 	
-	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
 	CD_APPLET_ADD_IN_MENU (D_("Switch Windows Manager"), cd_compiz_switch_manager, pSubMenu);
 	GtkWidget *pDecoratorSubMenu = CD_APPLET_ADD_SUB_MENU (D_("Switch Windows Decorator"), pSubMenu);
 		CD_APPLET_ADD_IN_MENU_WITH_DATA (myConfig.cDecorators[DECORATOR_EMERALD], cd_compiz_switch_decorator, pDecoratorSubMenu, GINT_TO_POINTER (DECORATOR_EMERALD));
@@ -193,8 +194,11 @@
 		CD_APPLET_ADD_IN_MENU (D_("Toggle Exposition Mode"), _compiz_menu_activate_expo, pSubMenu);
 		CD_APPLET_ADD_IN_MENU (D_("Toggle Widget Layer"), _compiz_menu_toggle_wlayer, pSubMenu);
 	}
-	CD_APPLET_ADD_IN_MENU (D_("Toggle Show Desktop"), _compiz_menu_show_desktop, pSubMenu);
+	
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Toggle Show Desktop"), GTK_STOCK_FULLSCREEN, _compiz_menu_show_desktop, CD_APPLET_MY_MENU);
+
+	if (pClickedIcon != myIcon && (pClickedIcon == NULL || pClickedIcon->cCommand == NULL || strcmp (pClickedIcon->cCommand, "none") == 0 || ! CAIRO_DOCK_IS_APPLI (pClickedIcon)))
+		CD_APPLET_LEAVE (CAIRO_DOCK_INTERCEPT_NOTIFICATION);  // on ne veut pas des autres entrees habituelles du menu.
+	CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
-	if (pClickedIcon != myIcon && (pClickedIcon == NULL || pClickedIcon->cCommand == NULL || strcmp (pClickedIcon->cCommand, "none") == 0 || ! CAIRO_DOCK_IS_APPLI (pClickedIcon)))
-		return CAIRO_DOCK_INTERCEPT_NOTIFICATION;  // on ne veut pas des autres entrees habituelles du menu.
 CD_APPLET_ON_BUILD_MENU_END

=== modified file 'copyright'
--- copyright	2010-08-07 01:43:25 +0000
+++ copyright	2010-09-07 00:46:10 +0000
@@ -1,5 +1,7 @@
-X-Source-Downloaded-From: http://developer.berlios.de/projects/cairo-dock/
-X-Upstream-Author: Fabrice Rey <fabounet@xxxxxxxxxxxx>.
+X-Source-Downloaded-From: https://launchpad.net/cairo-dock
+X-Upstream-Author: Fabrice Rey <fabounet@xxxxxxxxxxxx>
+X-Debianized-By: Matthieu Baerts (matttbe) <matttbe@xxxxxxxxx>
+X-Debianized-Date: Sat, 07 Aug 2010 03:37:36 +0200
 
 Files: systray/src/cd-tray.c: LGPL (v2 or later)
 Copyright: 2007 Neil Jagdish Patel
@@ -79,10 +81,6 @@
 Copyright: 2008 Adrien Pilleboue
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
 
-Files: 	rhythmbox/*
-Copyright: 2008 Adrien Pilleboue and 2009 Yann Dulieu
-Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
-
 Files: 	mail/*
 Copyright: Christophe Chapuis and Fabrice Rey
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
@@ -105,14 +103,25 @@
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
 
 Files: 	musicPlayer/*
-Copyright: Rémy Robertson, Yann Sladek and Fabrice Rey <fabounet@xxxxxxxxxxxx>
+Copyright: Rémy Robertson, Yann Sladek, Yann Dulieu and Fabrice Rey <fabounet@xxxxxxxxxxxx>
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
 
 Files: dnd2share/*
-	RSSreader/*
 Copyright: Yann Dulieu and Fabrice Rey <fabounet@xxxxxxxxxxxx>
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
 
+Files: 	RSSreader/*
+Copyright: 2008 Yann Dulieu and Fabrice Rey <fabounet@xxxxxxxxxxxx>
+Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
+
+Files: 	Doncky/*
+Copyright: 2008 Yann Dulieu
+Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
+
+Files: 	Network-Monitor/*
+Copyright: 2008 Yann Sladek and Fabrice Rey <fabounet@xxxxxxxxxxxx>
+Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
+
 
 Files: 	alsaMixer/*
 	Animated-icons/*
@@ -133,12 +142,18 @@
 	motion-blur/*
 	quick-browser/*
 	rendering/*
-	Scooby-Do
+	Scooby-Do/*
 	showDesklets/*
 	show-mouse/*
 	Toons/*
 	weather/*
 	Xgamma/*
+	*Menu/*
+	Folders/*
+	Indicator-applet/*
+	Status-Notifier/*
+	gvfs-integration/*
+	*/*
 Copyright: Fabrice Rey <fabounet@xxxxxxxxxxxx>
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
 

=== modified file 'debian/changelog'
--- debian/changelog	2010-08-10 07:10:54 +0000
+++ debian/changelog	2010-09-07 00:46:10 +0000
@@ -1,3 +1,21 @@
+cairo-dock-plug-ins (2.2.0~0rc1-0ubuntu1) maverick; urgency=low
+
+  * New Upstream Version (LP: #632054)
+  * Fixed a few bugs on LP:
+   - LP: #616176 Dust Bin Hang and Incorrect Configuration
+   - LP: #604034 Change terminal tab's name lost the color
+   - LP: #582452 GMenu does not contain any applications
+  * Fixed a few bugs on glx-dock forum:
+   - Fixed support of GMusicBrowser.
+   - AlsaMixer has no emblem.
+   - Status-Notifier doesn't be drawed into the dock.
+  * Updated translations
+  * debian/control:
+   - Added cairo-dock-core as build-depends in order to prevent
+     some builds errors.
+
+ -- Matthieu Baerts (matttbe) <matttbe@xxxxxxxxx>  Tue, 07 Sep 2010 02:38:17 +0200
+
 cairo-dock-plug-ins (2.2.0~0beta4-0ubuntu1) maverick; urgency=low
 
   * New Upstream Version (LP: #614625)

=== modified file 'debian/control'
--- debian/control	2010-08-10 07:10:54 +0000
+++ debian/control	2010-09-07 00:46:10 +0000
@@ -15,7 +15,8 @@
 		libxml2-dev,
 		libxtst-dev,
 		libglib2.0-dev (>= 2.20),
-		cairo-dock-dev (>= 2.2.0~0beta4-0ubuntu1),
+		cairo-dock-dev (>= 2.2.0~0rc1-0ubuntu1),
+		cairo-dock-core (>= 2.2.0~0rc1-0ubuntu1),
 		libasound2-dev,
 		libvte-dev,
 		x11proto-xf86vidmode-dev,

=== modified file 'debian/copyright' (properties changed: -x to +x)
--- debian/copyright	2010-08-07 01:43:25 +0000
+++ debian/copyright	2010-09-07 00:46:10 +0000
@@ -1,8 +1,7 @@
-X-Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat
+X-Source-Downloaded-From: https://launchpad.net/cairo-dock
+X-Upstream-Author: Fabrice Rey <fabounet@xxxxxxxxxxxx>
 X-Debianized-By: Matthieu Baerts (matttbe) <matttbe@xxxxxxxxx>
 X-Debianized-Date: Sat, 07 Aug 2010 03:37:36 +0200
-X-Source-Downloaded-From: https://launchpad.net/cairo-dock
-X-Upstream-Author: Fabrice Rey <fabounet@xxxxxxxxxxxx>
 
 Files: systray/src/cd-tray.c: LGPL (v2 or later)
 Copyright: 2007 Neil Jagdish Patel
@@ -158,6 +157,14 @@
 Copyright: Fabrice Rey <fabounet@xxxxxxxxxxxx>
 Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
 
+Icons inspired of the Humanity Icons theme and recolorized by Matthieu Baerts
+Copyright: Daniel Fore, Jonian Guveli and K.Vishnoo Charan Reddy.
+Licence: GPL v2  (See /usr/share/common-licenses/GPL-2 for complete licence)
+
+Pictures on slider/data/preview.jpg:
+Copyright: Matthieu Baerts
+Licence: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete licence)
+
 Files: 	debian/*
 Copyright: Copyright (C) Julien Lavergne <julien.lavergne@xxxxxxxxx>
 Licence: GPL 2+ (See /usr/share/common-licenses/GPL-2 for complete licence)

=== removed file 'desklet-rendering/data/messages'
=== modified file 'desklet-rendering/src/rendering-desklet-slide.c'
--- desklet-rendering/src/rendering-desklet-slide.c	2010-08-07 01:43:25 +0000
+++ desklet-rendering/src/rendering-desklet-slide.c	2010-09-07 00:46:10 +0000
@@ -93,14 +93,14 @@
 	}
 }
 
-static void load_data (CairoDesklet *pDesklet)
+/**static void load_data (CairoDesklet *pDesklet)
 {
 	CDSlideParameters *pSlide = (CDSlideParameters *) pDesklet->pRendererData;
 	if (pSlide == NULL)
 		return ;
 	
 	_compute_icons_grid (pDesklet, pSlide);
-}
+}*/
 
 
 static void free_data (CairoDesklet *pDesklet)
@@ -257,7 +257,6 @@
 			
 			cairo_restore (pCairoContext);
 			
-			
 			if (pIcon->pTextBuffer != NULL)
 			{
 				cairo_save (pCairoContext);
@@ -478,7 +477,7 @@
 	CairoDeskletRenderer *pRenderer = g_new0 (CairoDeskletRenderer, 1);
 	pRenderer->render 			= (CairoDeskletRenderFunc) render;
 	pRenderer->configure 		= (CairoDeskletConfigureRendererFunc) configure;
-	pRenderer->load_data 		= (CairoDeskletLoadRendererDataFunc) load_data;
+	pRenderer->load_data 		= (CairoDeskletLoadRendererDataFunc) NULL;  /// load_data;
 	pRenderer->free_data 		= (CairoDeskletFreeRendererDataFunc) free_data;
 	pRenderer->calculate_icons 	= (CairoDeskletCalculateIconsFunc) calculate_icons;
 	pRenderer->render_opengl 	= (CairoDeskletGLRenderFunc) render_opengl;

=== modified file 'desklet-rendering/src/rendering-desklet-viewport.c'
--- desklet-rendering/src/rendering-desklet-viewport.c	2010-08-07 01:43:25 +0000
+++ desklet-rendering/src/rendering-desklet-viewport.c	2010-09-07 00:46:10 +0000
@@ -23,286 +23,271 @@
 
 #include "rendering-desklet-viewport.h"
 
-#define _cairo_dock_set_path_as_current(...) _cairo_dock_set_vertex_pointer(pVertexTab)
-
-
-static gboolean on_enter_icon_viewport (gpointer pUserData, Icon *pPointedIcon, CairoContainer *pContainer, gboolean *bStartAnimation)
+static void render (cairo_t *pCairoContext, CairoDesklet *pDesklet);
+
+
+static inline void _get_gridXY_from_index (guint nRowsX, guint index, guint* gridX, guint* gridY)
+{
+	*gridX = index % nRowsX;
+	*gridY = index / nRowsX;
+}
+
+static void _compute_icons_grid (CairoDesklet *pDesklet, CDViewportParameters *pViewport)
+{
+	// nombre d'icones.
+	guint nIcones = 0;  // nb icones.
+	Icon *icon;
+	GList *ic;
+	for (ic = pDesklet->icons; ic != NULL; ic = ic->next)
+	{
+		icon = ic->data;
+		if (! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon))
+			nIcones ++;
+	}
+	
+	// taille des differents composants.
+	pViewport->iIconGapX = 50;
+	pViewport->iIconGapY = 10;
+	pViewport->fMargin = pViewport->iIconGapX / 2;
+	pViewport->fArrowGap = .05 * pDesklet->container.iHeight;
+	pViewport->fArrowHeight = 14.;
+	pViewport->fScrollbarWidth = 10.;
+	pViewport->fScrollbarArrowGap = 4.;
+	pViewport->fScrollbarIconGap = 10.;
+	
+	int iIconSize = 48;
+	double h_min = pViewport->iIconSize + myLabels.iLabelSize;  // hauteur min pour caser 1 icone.
+	double fx=1, fy=1;
+	if (h_min > pDesklet->container.iHeight)
+	{
+		fy = (double) MAX (1, pDesklet->container.iHeight - myLabels.iLabelSize) / pViewport->iIconSize;
+		pViewport->fArrowHeight *= fy;
+		iIconSize *= fy;
+	}
+	double w_min = pViewport->fMargin + iIconSize + pViewport->fMargin + pViewport->fScrollbarIconGap + pViewport->fScrollbarWidth + pViewport->fScrollbarIconGap;  // largeur min pour caser 1 icone.
+	if (w_min > pDesklet->container.iWidth)
+	{
+		fx = (double) pDesklet->container.iWidth / w_min;
+		iIconSize *= fx;
+		pViewport->iIconGapX *= fx;
+		pViewport->fMargin *= fx;
+		pViewport->fScrollbarWidth *= fx;
+		pViewport->fScrollbarArrowGap *= fx;
+		pViewport->fScrollbarIconGap *= fx;
+		w_min = pDesklet->container.iWidth;
+	}
+	pViewport->iIconSize = iIconSize;
+	
+	// taille de la grille.
+	pViewport->nRowsX = (pDesklet->container.iWidth - w_min) / (pViewport->iIconSize + pViewport->iIconGapX) + 1;
+	pViewport->nRowsY = ceil ((double)nIcones / pViewport->nRowsX);
+	pViewport->iDeltaHeight = MAX (0, (pViewport->nRowsY - 1) * (pViewport->iIconSize + myLabels.iLabelSize + pViewport->iIconGapY) + pViewport->iIconSize + myLabels.iLabelSize - pDesklet->container.iHeight);
+	pViewport->fMargin = (pDesklet->container.iWidth - (pViewport->nRowsX * (pViewport->iIconSize + pViewport->iIconGapX) - pViewport->iIconSize + pViewport->fScrollbarIconGap + pViewport->fScrollbarWidth + pViewport->fScrollbarIconGap)) / 2;  // on reajuste la marge pour centrer les icones.
+}
+
+static void _compute_icons_position (CairoDesklet *pDesklet, CDViewportParameters *pViewport)
+{
+	double fScrollOffset = - pViewport->iScrollOffset;
+	int iOffsetY = myLabels.iLabelSize +  // le texte des icones de la 1ere ligne
+		fScrollOffset;
+	
+	Icon* icon;
+	GList* ic, *pointed_ic=NULL;
+	int i, x, y;
+	for (ic = pDesklet->icons, i = 0; ic != NULL; ic = ic->next, i++)
+	{
+		icon = ic->data;
+		
+		// position sur la grille.
+		_get_gridXY_from_index (pViewport->nRowsX, i, &x, &y);
+		
+		// on en deduit la position au repos.
+		icon->fX = pViewport->fMargin + (icon->fWidth + pViewport->iIconGapX) * x;
+		icon->fY = iOffsetY + (icon->fHeight + myLabels.iLabelSize + pViewport->iIconGapY) * y;
+		
+		icon->fDrawX = icon->fX;
+		icon->fDrawY = icon->fY;
+	}
+}
+
+
+static void _set_scroll (CairoDesklet *pDesklet, int iOffsetY)
+{
+	//g_print ("%s (%d)\n", __func__, iOffsetY);
+	CDViewportParameters *pData = pDesklet->pRendererData;
+	g_return_if_fail (pData != NULL);
+	
+	pData->iScrollOffset = MAX (0, MIN (iOffsetY, pData->iDeltaHeight));
+	_compute_icons_position (pDesklet, pData);
+	gtk_widget_queue_draw (pDesklet->container.pWidget);
+}
+
+static gboolean _add_scroll (CairoDesklet *pDesklet, int iDeltaOffsetY)
+{
+	//g_print ("%s (%d)\n", __func__, iDeltaOffsetY);
+	CDViewportParameters *pData = pDesklet->pRendererData;
+	g_return_val_if_fail (pData != NULL, FALSE);
+	
+	if (iDeltaOffsetY < 0)
+	{
+		if (pData->iScrollOffset <= 0)
+			return FALSE;
+	}
+	else
+	{
+		if (pData->iScrollOffset >= pData->iDeltaHeight)
+			return FALSE;
+	}
+	_set_scroll (pDesklet, pData->iScrollOffset + iDeltaOffsetY);
+	return TRUE;
+}
+
+static gboolean _cd_slide_on_scroll (gpointer data, Icon *pClickedIcon, CairoDesklet *pDesklet, int iDirection)
+{
+	CDViewportParameters *pData = pDesklet->pRendererData;
+	g_return_val_if_fail (pData != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
+	if (pData->iDeltaHeight == 0)
+		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+	
+	gboolean bScrolled = _add_scroll (pDesklet, iDirection == 1 ? pData->iIconSize : - pData->iIconSize);
+	return (bScrolled ? CAIRO_DOCK_INTERCEPT_NOTIFICATION : CAIRO_DOCK_LET_PASS_NOTIFICATION);
+}
+
+static gboolean _cd_slide_on_press_button (GtkWidget* pWidget, GdkEventButton* pButton, CairoDesklet *pDesklet)
+{
+	CDViewportParameters *pData = pDesklet->pRendererData;
+	g_return_val_if_fail (pData != NULL, FALSE);
+	if (pData->iDeltaHeight == 0)
+		return FALSE;
+	
+	gboolean bIntercept = FALSE;
+	if (pButton->type == GDK_BUTTON_PRESS && pButton->button == 1)
+	{
+		double x_arrow = pDesklet->container.iWidth - pData->fScrollbarIconGap - pData->fScrollbarWidth;
+		if (pButton->x > x_arrow)  // on a clique dans la zone de scroll.
+		{
+			// on regarde sur quoi on clic.
+			double y_arrow_top = 2., y_arrow_bottom = pDesklet->container.iHeight - 2.;  // on laisse 2 pixels de marge.
+			
+			if (pButton->y > y_arrow_top - pData->fScrollbarArrowGap/2 && pButton->y < y_arrow_top + pData->fArrowHeight + pData->fScrollbarArrowGap/2)  // bouton haut
+			{
+				_set_scroll (pDesklet, 0);
+				bIntercept = TRUE;
+				pDesklet->retaching = FALSE;
+			}
+			else if (pButton->y < y_arrow_bottom + pData->fScrollbarArrowGap/2 && pButton->y > y_arrow_bottom - pData->fArrowHeight - pData->fScrollbarArrowGap/2)  // bouton bas
+			{
+				_set_scroll (pDesklet, pData->iDeltaHeight);
+				bIntercept = TRUE;
+				pDesklet->making_transparent = FALSE;
+			}
+			else  // scrollbar
+			{
+				pData->bDraggingScrollbar = TRUE;
+				pData->iClickY = pButton->y;
+				pData->iClickOffset = pData->iScrollOffset;
+				bIntercept = TRUE;
+				pDesklet->moving = TRUE;
+			}
+			pDesklet->bClicked = !bIntercept;  // on fait croire au desklet qu'on n'a pas clique sur lui. c'est vraiment limite, mais on peut difficilement s'enregistrer au clic avant l'applet qui possede le desklet.
+		}
+	}
+	else if (GDK_BUTTON_RELEASE)
+	{
+		//g_print ("release\n");
+		pData->bDraggingScrollbar = FALSE;
+		pDesklet->moving = FALSE;
+	}
+	return FALSE;
+}
+
+static gboolean _cd_slide_on_mouse_moved (gpointer data, CairoDesklet *pDesklet, gboolean *bStartAnimation)
+{
+	CDViewportParameters *pData = pDesklet->pRendererData;
+	g_return_val_if_fail (pData != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
+	if (pData->iDeltaHeight == 0)
+		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+	
+	if (pData->bDraggingScrollbar)
+	{
+		double y_arrow_top = 2., y_arrow_bottom = pDesklet->container.iHeight - 2.;  // on laisse 2 pixels de marge.
+		double fFrameHeight = pDesklet->container.iHeight;  // hauteur du cadre.
+		double fGripHeight = fFrameHeight / (fFrameHeight + pData->iDeltaHeight) * (y_arrow_bottom - y_arrow_top - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap));
+		double ygrip = (double) pData->iScrollOffset / pData->iDeltaHeight * (y_arrow_bottom - y_arrow_top - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap) - fGripHeight);
+		
+		int delta = pDesklet->container.iMouseY - pData->iClickY;
+		_set_scroll (pDesklet, (pData->iClickOffset + (double)delta / (y_arrow_bottom - y_arrow_top - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap) - fGripHeight) * pData->iDeltaHeight));
+		return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
+	}
+	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+}
+
+static gboolean on_enter_icon_slide (gpointer pUserData, Icon *pPointedIcon, CairoContainer *pContainer, gboolean *bStartAnimation)
 {
 	gtk_widget_queue_draw (pContainer->pWidget);  // et oui, on n'a rien d'autre a faire.
 	
 	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
 }
 
-static inline void _viewport_pan_delta(CairoDesklet *pDesklet, double fDeltaX, double fDeltaY)
-{
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	pViewportConf->fCurrentPanXSpeed = fDeltaX;
-	pViewportConf->fCurrentPanYSpeed = fDeltaY;
-	pViewportConf->iCurrentOffsetX += fDeltaX;
-	pViewportConf->iCurrentOffsetY += fDeltaY;
-	if (pViewportConf->iCurrentOffsetX < 0)
-	{
-		pViewportConf->iCurrentOffsetX = 0;
-		pViewportConf->fCurrentPanXSpeed = 0;
-	}
-	else if( pViewportConf->iCurrentOffsetX > pViewportConf->iMaxOffsetX )
-	{
-		pViewportConf->iCurrentOffsetX = pViewportConf->iMaxOffsetX;
-		pViewportConf->fCurrentPanXSpeed = 0;
-	}
-	if (pViewportConf->iCurrentOffsetY < 0)
-	{
-		pViewportConf->iCurrentOffsetY = 0;
-		pViewportConf->fCurrentPanYSpeed = 0;
-	}
-	else if( pViewportConf->iCurrentOffsetY > pViewportConf->iMaxOffsetY )
-	{
-		pViewportConf->iCurrentOffsetY = pViewportConf->iMaxOffsetY;
-		pViewportConf->fCurrentPanYSpeed = 0;
-	}
-
-	gtk_widget_queue_draw (pDesklet->container.pWidget);
-}
-
-static gboolean on_update_desklet (gpointer pUserData, CairoDesklet *pDesklet, gboolean *bContinueAnimation)
-{
-	if (pDesklet->icons != NULL)
-	{
-		CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-		if (pViewportConf == NULL)
-			return CAIRO_DOCK_LET_PASS_NOTIFICATION;
-		
-		if (! pDesklet->container.bInside)  // on est en-dehors du desklet, on ralentit.
-		{
-			_viewport_pan_delta (pDesklet, pViewportConf->fCurrentPanXSpeed*.85, pViewportConf->fCurrentPanYSpeed*.85);
-			if (fabs (pViewportConf->fCurrentPanXSpeed)+fabs (pViewportConf->fCurrentPanYSpeed) < pViewportConf->iIconSize/15)
-			// vitesse de translation epsilonesque, on quitte.
-			{
-				pViewportConf->fCurrentPanXSpeed = 0;
-				pViewportConf->fCurrentPanYSpeed = 0;
-				return CAIRO_DOCK_LET_PASS_NOTIFICATION;
-			}
-			*bContinueAnimation = TRUE;
-		}
-		else
-		{
-			double fDeltaX = 0;
-			double fDeltaY = 0;
-			// si on est dans la marge de 20% de la largeur du desklet a gauche,
-			// alors on translate a droite
-			if (pDesklet->container.iMouseX <= pDesklet->container.iWidth*0.2)
-			{
-				// La force de translation va de 0 (lorsqu'on est a 20%) jusqu'a
-				// pViewportConf->iIconSize / 2. (lorsqu'on est a 0%)
-				fDeltaX = (pViewportConf->iIconSize / 10) *
-									(pDesklet->container.iWidth*0.2 - pDesklet->container.iMouseX)/(pDesklet->container.iWidth*0.2);
-				*bContinueAnimation = TRUE;
-			}
-			// si on est dans la marge de 20% de la largeur du desklet a droite,
-			// alors on translate a gauche (-1)
-			else if( pDesklet->container.iMouseX >= pDesklet->container.iWidth*0.8 )
-			{
-				// La force de translation va de 0 (lorsqu'on est a 80%) jusqu'a
-				// pViewportConf->iIconSize / 2. (lorsqu'on est a 100%)
-				fDeltaX = -(pViewportConf->iIconSize / 10) *
-									 (pDesklet->container.iMouseX - pDesklet->container.iWidth*0.8)/(pDesklet->container.iWidth*0.2);
-				*bContinueAnimation = TRUE;
-			}
-			// si on est dans la marge de 20% de la hauteur du desklet en haut,
-			// alors on translate en bas
-			if (pDesklet->container.iMouseY <= pDesklet->container.iHeight*0.2)
-			{
-				// La force de translation va de 0 (lorsqu'on est a 20%) jusqu'a
-				// pViewportConf->iIconSize / 2. (lorsqu'on est a 0%)
-				fDeltaY = -(pViewportConf->iIconSize / 10) *
-									 (pDesklet->container.iHeight*0.2 - pDesklet->container.iMouseY)/(pDesklet->container.iHeight*0.2);
-				*bContinueAnimation = TRUE;
-			}
-			// si on est dans la marge de 20% de la hauteur du desklet en bas,
-			// alors on translate en haut (-1)
-			else if( pDesklet->container.iMouseY >= pDesklet->container.iHeight*0.8 )
-			{
-				// La force de translation va de 0 (lorsqu'on est a 80%) jusqu'a
-				// pViewportConf->iIconSize / 2. (lorsqu'on est a 100%)
-				fDeltaY = (pViewportConf->iIconSize / 10) *
-									(pDesklet->container.iMouseY - pDesklet->container.iHeight*0.8)/(pDesklet->container.iHeight*0.2);
-				*bContinueAnimation = TRUE;
-			}
-			if( *bContinueAnimation == TRUE )
-			{
-				_viewport_pan_delta( pDesklet, fDeltaX, fDeltaY );
-			}
-			else
-			{
-				pViewportConf->fCurrentPanXSpeed = 0.;
-				pViewportConf->fCurrentPanYSpeed = 0.;
-			}
-		}
-	}
-	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
-}
-
-static gboolean on_mouse_move (gpointer pUserData, CairoDesklet *pDesklet, gboolean *bStartAnimation)
-{
-	if (pDesklet->icons != NULL)
-	{
-		CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-		if (pViewportConf == NULL)
-			return CAIRO_DOCK_LET_PASS_NOTIFICATION;
-		if (pViewportConf->bInfiniteWidth && (pDesklet->container.iMouseX <= pDesklet->container.iWidth*0.2 || pDesklet->container.iMouseX >= pDesklet->container.iWidth*0.8))
-			*bStartAnimation = TRUE;
-		if (pViewportConf->bInfiniteHeight && (pDesklet->container.iMouseY <= pDesklet->container.iHeight*0.2 || pDesklet->container.iMouseY >= pDesklet->container.iHeight*0.8))
-			*bStartAnimation = TRUE;
-	}
-	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
-}
-
-static CDViewportParameters *configure (CairoDesklet *pDesklet, gpointer *pConfig)  // gboolean, int, gdouble[4]
-{
-	CDViewportParameters *pViewportConf = g_new0 (CDViewportParameters, 1);
+static CDViewportParameters *configure (CairoDesklet *pDesklet, gpointer *pConfig)
+{
+	CDViewportParameters *pViewport = g_new0 (CDViewportParameters, 1);
 	if (pConfig != NULL)
 	{
-		pViewportConf->bRoundedRadius = GPOINTER_TO_INT (pConfig[0]);
-		pViewportConf->iRadius = GPOINTER_TO_INT (pConfig[1]);
-		if (pConfig[2] != NULL)
-			memcpy (pViewportConf->fLineColor, pConfig[2], 4 * sizeof (gdouble));
-	}
-	
-	pViewportConf->iLineWidth = 2;
-	pViewportConf->iGapBetweenIcons = 10;
-	pViewportConf->iMinimumIconSize = 48;
-	pViewportConf->iCurrentOffsetX = 0;
-	pViewportConf->iCurrentOffsetY = 0;
-	pViewportConf->fCurrentPanXSpeed = 0;
-	pViewportConf->fCurrentPanYSpeed = 0;
-	pViewportConf->iMaxOffsetX = 0;
-	pViewportConf->iMaxOffsetY = 0;
-	pViewportConf->bInfiniteHeight=TRUE;
-	pViewportConf->bInfiniteWidth=FALSE;
-	
-	cairo_dock_register_notification_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_ENTER_ICON, (CairoDockNotificationFunc) on_enter_icon_viewport, CAIRO_DOCK_RUN_FIRST, NULL);
-	
-	cairo_dock_register_notification_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_UPDATE_DESKLET, (CairoDockNotificationFunc) on_update_desklet, CAIRO_DOCK_RUN_AFTER, NULL);
-	cairo_dock_register_notification_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_MOUSE_MOVED, (CairoDockNotificationFunc) on_mouse_move, CAIRO_DOCK_RUN_AFTER, NULL);
-	
-	return pViewportConf;
-}
-
-
-static inline void _compute_icons_grid (CairoDesklet *pDesklet, CDViewportParameters *pViewportConf)
-{
-	pViewportConf->fMargin = (pViewportConf->bRoundedRadius ?
-		.5 * pViewportConf->iLineWidth + (1. - sqrt (2) / 2) * pViewportConf->iRadius :
-		.5 * pViewportConf->iLineWidth + .5 * pViewportConf->iRadius);
-	
-	int iNbIcons = 0;
-	Icon *pIcon;
-	GList *ic;
-	for (ic = pDesklet->icons; ic != NULL; ic = ic->next)
-	{
-		pIcon = ic->data;
-		if (! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pIcon))
-			iNbIcons ++;
-	}
-	pViewportConf->iNbIcons = iNbIcons;
-	
-	double w = pDesklet->container.iWidth - 2 * pViewportConf->fMargin;
-	double h = pDesklet->container.iHeight - 2 * pViewportConf->fMargin;
-	int dh = myLabels.iLabelSize;  // taille verticale ajoutee a chaque icone.
-	int dw = 2 * dh;  // taille horizontale ajoutee a chaque icone.
-	int di = pViewportConf->iGapBetweenIcons;  // ecart entre 2 lignes/colonnes.
-	
-	int p, q;  // nombre de lignes et colonnes.
-	int iSize;
-	pViewportConf->iIconSize = 0, pViewportConf->iNbLines = 0, pViewportConf->iNbColumns = 0;
-	//g_print ("%d icones sur %dx%d (%d)\n", pViewportConf->iNbIcons, (int)w, (int)h, myLabels.iLabelSize);
-	for (p = 1; p <= pViewportConf->iNbIcons; p ++)
-	{
-		q = (int) ceil ((double)pViewportConf->iNbIcons / p);
-		iSize = MIN ((h - (p - 1) * di) / p - dh, (w - (q - 1) * di) / q - dw);
-		//g_print ("  %dx%d -> %d\n", p, q, iSize);
-		if (iSize > pViewportConf->iIconSize)
-		{
-			pViewportConf->iIconSize = iSize;
-			pViewportConf->iNbLines = p;
-			pViewportConf->iNbColumns = q;
-		}
-		else if(iSize > 0) // there is only one maximum
-		{
-			break;
-		}
-	}
-	// si les icones sont trop petites, et qu'on a une largeur et/ou une
-	// hauteur infinie(s), essayer d'avoir au moins une taille minimale
-	if(  pViewportConf->iIconSize < pViewportConf->iMinimumIconSize &&
-	    (pViewportConf->bInfiniteWidth || pViewportConf->bInfiniteHeight) )
-	{
-		if( pViewportConf->bInfiniteWidth && pViewportConf->bInfiniteHeight )
-		{
-			// surface infinie: on garde le meme nb de colonnes&lignes,
-			// mais on met la taille d'icone a iMinimumIconSize
-			pViewportConf->iIconSize = pViewportConf->iMinimumIconSize;
-		}
-		else if( pViewportConf->bInfiniteHeight )
-		{
-			// hauteur infinie et largeur fixe: on calcule le nombre de colonnes
-			// maxi avec pViewportConf->iIconSize = pViewportConf->iMinimumIconSize
-			pViewportConf->iIconSize = pViewportConf->iMinimumIconSize;
-			pViewportConf->iNbColumns = (w + di) / ( pViewportConf->iIconSize + dw + di );
-			if( pViewportConf->iNbColumns < 1 )
-			{
-				pViewportConf->iNbColumns = 1;
-				pViewportConf->iIconSize = w - dw; 
-			}
-			pViewportConf->iNbLines = (int) ceil ((double)pViewportConf->iNbIcons / pViewportConf->iNbColumns);
-		}
-		else if( pViewportConf->bInfiniteWidth )
-		{
-			// largeur infinie et hauteur fixe: on calcule le nombre de lignes
-			// maxi avec pViewportConf->iIconSize = pViewportConf->iMinimumIconSize
-			pViewportConf->iIconSize = pViewportConf->iMinimumIconSize;
-			pViewportConf->iNbLines = (h + di) / ( pViewportConf->iIconSize + dh + di );
-			if( pViewportConf->iNbLines < 1 )
-			{
-				pViewportConf->iNbLines = 1;
-				pViewportConf->iIconSize = h - dh; 
-			}
-			pViewportConf->iNbColumns = (int) ceil ((double)pViewportConf->iNbIcons / pViewportConf->iNbLines);
-		}
-		// on calcule l'offset maximal atteignable en X
-		pViewportConf->iMaxOffsetX = MAX(( pViewportConf->iIconSize + dw + di )*pViewportConf->iNbColumns - (w + di), 0);
-		// on calcule l'offset maximal atteignable en Y
-		pViewportConf->iMaxOffsetY = MAX(( pViewportConf->iIconSize + dh + di )*pViewportConf->iNbLines - (h + di), 0);
-	}
-}
-
-static void load_data (CairoDesklet *pDesklet)
-{
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	if (pViewportConf == NULL)
-		return ;
-	
-	_compute_icons_grid (pDesklet, pViewportConf);
+		// get parameters ...
+		// gap icon, horizontal scroll bar, icon size, icon gap
+	}
+	
+	pViewport->color_scrollbar_inside[0] = .8;
+	pViewport->color_scrollbar_inside[1] = .8;
+	pViewport->color_scrollbar_inside[2] = .8;
+	pViewport->color_scrollbar_inside[3] = .75;
+	pViewport->color_scrollbar_line[0] = 1.;
+	pViewport->color_scrollbar_line[1] = 1.;
+	pViewport->color_scrollbar_line[2] = 1.;
+	pViewport->color_scrollbar_line[3] = 1.;
+	pViewport->color_grip[0] = .9;
+	pViewport->color_grip[1] = .9;
+	pViewport->color_grip[2] = .9;
+	pViewport->color_grip[3] = 1.;
+	
+	cairo_dock_register_notification_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_SCROLL_ICON, (CairoDockNotificationFunc) _cd_slide_on_scroll, CAIRO_DOCK_RUN_AFTER, NULL);
+	cairo_dock_register_notification_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_MOUSE_MOVED, (CairoDockNotificationFunc) _cd_slide_on_mouse_moved, CAIRO_DOCK_RUN_FIRST, NULL);
+	cairo_dock_register_notification_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_ENTER_ICON, (CairoDockNotificationFunc) on_enter_icon_slide, CAIRO_DOCK_RUN_FIRST, NULL);
+	pViewport->iSidPressEvent = g_signal_connect (G_OBJECT (pDesklet->container.pWidget),
+		"button-press-event",
+		G_CALLBACK (_cd_slide_on_press_button),
+		pDesklet);  // car les notification de clic en provenance du dock sont emises lors du relachement du bouton.
+	pViewport->iSidReleaseEvent = g_signal_connect (G_OBJECT (pDesklet->container.pWidget),
+		"button-release-event",
+		G_CALLBACK (_cd_slide_on_press_button),
+		pDesklet);
+	
+	return pViewport;
 }
 
 
 static void free_data (CairoDesklet *pDesklet)
 {
-	cairo_dock_remove_notification_func_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_ENTER_ICON, (CairoDockNotificationFunc) on_enter_icon_viewport, NULL);
-	
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	if (pViewportConf == NULL)
+	CDViewportParameters *pViewport = (CDViewportParameters *) pDesklet->pRendererData;
+	if (pViewport == NULL)
 		return ;
 	
-	g_free (pViewportConf);
+	cairo_dock_remove_notification_func_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_SCROLL_ICON, (CairoDockNotificationFunc) _cd_slide_on_scroll, NULL);
+	cairo_dock_remove_notification_func_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_MOUSE_MOVED, (CairoDockNotificationFunc) _cd_slide_on_mouse_moved, NULL);
+	cairo_dock_remove_notification_func_on_container (CAIRO_CONTAINER (pDesklet), CAIRO_DOCK_ENTER_ICON, (CairoDockNotificationFunc) on_enter_icon_slide, NULL);
+	g_signal_handler_disconnect (pDesklet->container.pWidget, pViewport->iSidPressEvent);
+	g_signal_handler_disconnect (pDesklet->container.pWidget, pViewport->iSidReleaseEvent);
+	
+	g_free (pViewport);
 	pDesklet->pRendererData = NULL;
 }
 
 
 static void set_icon_size (CairoDesklet *pDesklet, Icon *pIcon)
 {
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	if (pViewportConf == NULL)
+	CDViewportParameters *pViewport = (CDViewportParameters *) pDesklet->pRendererData;
+	if (pViewport == NULL)
 		return ;
 	
 	if (pIcon == pDesklet->pIcon)
@@ -312,20 +297,22 @@
 	}
 	else
 	{
-		pIcon->fWidth = pViewportConf->iIconSize;
-		pIcon->fHeight = pViewportConf->iIconSize;
+		pIcon->fWidth = pViewport->iIconSize;
+		pIcon->fHeight = pViewport->iIconSize;
 	}
 }
 
+
 static void calculate_icons (CairoDesklet *pDesklet)
 {
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	if (pViewportConf == NULL)
+	CDViewportParameters *pViewport = (CDViewportParameters *) pDesklet->pRendererData;
+	if (pViewport == NULL)
 		return ;
 	
-	_compute_icons_grid (pDesklet, pViewportConf);
-	cd_debug ("pViewportConf->iIconSize : %d\n", pViewportConf->iIconSize);
+	//\____________________ On calcule la grille : repartition et taille des icones, scrollbar.
+	_compute_icons_grid (pDesklet, pViewport);
 	
+	//\____________________ On renseigne chaque icone apres (elles sont toutes identiques).
 	Icon *pIcon = pDesklet->pIcon;
 	if (pIcon != NULL)  // on ne veut pas charger cette icone.
 	{
@@ -344,8 +331,8 @@
 		}
 		else
 		{
-			pIcon->fWidth = pViewportConf->iIconSize;
-			pIcon->fHeight = pViewportConf->iIconSize;
+			pIcon->fWidth = pViewport->iIconSize;
+			pIcon->fHeight = pViewport->iIconSize;
 		
 			pIcon->fScale = 1.;
 			pIcon->fAlpha = 1.;
@@ -354,97 +341,88 @@
 			pIcon->fGlideScale = 1.;
 		}
 	}
+	
+	//\____________________ tant qu'on y est, on calcule leur position.
+	_compute_icons_position (pDesklet, pViewport);
 }
 
 
 static void render (cairo_t *pCairoContext, CairoDesklet *pDesklet)
 {
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	//g_print ("%s(%x)\n", __func__, pViewportConf);
-	if (pViewportConf == NULL)
+	CDViewportParameters *pData = (CDViewportParameters *) pDesklet->pRendererData;
+	//g_print ("%s(%x)\n", __func__, pViewport);
+	if (pData == NULL)
 		return ;
 	
-	double fRadius = pViewportConf->iRadius;
-	double fLineWidth = pViewportConf->iLineWidth;
-	// le cadre.
-	cairo_set_line_width (pCairoContext, pViewportConf->iLineWidth);
-	if (pViewportConf->bRoundedRadius)
-	{
-		cairo_translate (pCairoContext, 0., .5 * fLineWidth);
-		cairo_dock_draw_rounded_rectangle (pCairoContext,
-			fRadius,
-			fLineWidth,
-			pDesklet->container.iWidth - 2 * fRadius - fLineWidth,
-			pDesklet->container.iHeight - 2*fLineWidth);
-	}
-	else
-	{
-		cairo_move_to (pCairoContext, 0., 0.);
-		cairo_rel_line_to (pCairoContext,
-			0.,
-			pDesklet->container.iHeight - fRadius - fLineWidth);
-		cairo_rel_line_to (pCairoContext,
-			pViewportConf->iRadius,
-			pViewportConf->iRadius);
-		cairo_rel_line_to (pCairoContext,
-			pDesklet->container.iWidth - fRadius - fLineWidth,
-			0.);
-	}
-	cairo_set_source_rgba (pCairoContext, pViewportConf->fLineColor[0], pViewportConf->fLineColor[1], pViewportConf->fLineColor[2], pViewportConf->fLineColor[3]);
-	cairo_stroke (pCairoContext);
-	
-	// les icones.
-	double w = pDesklet->container.iWidth - 2 * pViewportConf->fMargin;
-	double h = pDesklet->container.iHeight - 2 * pViewportConf->fMargin;
-	int dh = myLabels.iLabelSize;  // taille verticale ajoutee a chaque icone.
-	int dw = 2 * dh;  // taille horizontale ajoutee a chaque icone.
-	if( pViewportConf->iMaxOffsetY == 0 )
-	{
-		dh = (h - pViewportConf->iNbLines * (pViewportConf->iIconSize + myLabels.iLabelSize)) / pViewportConf->iNbLines;  // ecart entre 2 lignes.
-	}
-	if( pViewportConf->iMaxOffsetX == 0 )
-	{
-		dw = (w - pViewportConf->iNbColumns * pViewportConf->iIconSize) / pViewportConf->iNbColumns;  // ecart entre 2 colonnes.
-	}
-	
-	// on determine la 1ere icone a tracer : l'icone suivant l'icone pointee.
-	
-	double x = pViewportConf->fMargin + dw/2, y = pViewportConf->fMargin + dh/2;
-	int q = 0;
-	Icon *pIcon;
-	GList *ic;
-	GList *pVisibleIcons = NULL;
-	for (ic = pDesklet->icons; ic != NULL; ic = ic->next)
-	{
-		pIcon = ic->data;
-		if (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pIcon))
-			continue;
-		
-		pIcon->fDrawX = x - pViewportConf->iCurrentOffsetX;
-		pIcon->fDrawY = y - pViewportConf->iCurrentOffsetY;
-		
-		x += pViewportConf->iIconSize + dw;
-		q ++;
-		if (q == pViewportConf->iNbColumns)
-		{
-			q = 0;
-			x = pViewportConf->fMargin + dw/2;
-			y += pViewportConf->iIconSize + myLabels.iLabelSize + dh;
-		}
-		// On ne dessine que les icones qui sont visibles
-		if( pIcon->fDrawX - pViewportConf->fMargin + dw/2 >= 0                &&
-		    pIcon->fDrawY - pViewportConf->fMargin + myLabels.iLabelSize >= 0 &&
-		    pIcon->fDrawX - pViewportConf->fMargin + dw/2 <= w - (pViewportConf->iIconSize + dw)          &&
-		    pIcon->fDrawY - pViewportConf->fMargin + myLabels.iLabelSize <= h - (pViewportConf->iIconSize + myLabels.iLabelSize + dh))
-		{
-			pVisibleIcons = g_list_append(pVisibleIcons, pIcon);
-		}
-	}
-	
-	GList *pFirstDrawnElement = cairo_dock_get_first_drawn_element_linear (pVisibleIcons);
+	//\____________________ On dessine les barres de defilement.
+	if (pData != NULL && pData->iDeltaHeight != 0)
+	{
+		cairo_save (pCairoContext);
+		cairo_set_line_width (pCairoContext, 2.);
+		
+		double x_arrow = pDesklet->container.iWidth - pData->fScrollbarIconGap - pData->fScrollbarWidth/2;  // pointe de la fleche.
+		double y_arrow_top, y_arrow_bottom;
+		y_arrow_top = 2.;
+		y_arrow_bottom = pDesklet->container.iHeight - 2.;
+		
+		if (pData->iScrollOffset != 0)  // fleche vers le haut.
+		{
+			cairo_move_to (pCairoContext, x_arrow, y_arrow_top);
+			cairo_rel_line_to (pCairoContext, pData->fScrollbarWidth/2, pData->fArrowHeight);
+			cairo_rel_line_to (pCairoContext, -pData->fScrollbarWidth, 0.);
+			cairo_close_path (pCairoContext);
+			
+			cairo_set_source_rgba (pCairoContext, pData->color_scrollbar_inside[0], pData->color_scrollbar_inside[1], pData->color_scrollbar_inside[2], pData->color_scrollbar_inside[3]);
+			cairo_fill_preserve (pCairoContext);
+			
+			cairo_set_source_rgba (pCairoContext, pData->color_scrollbar_line[0], pData->color_scrollbar_line[1], pData->color_scrollbar_line[2], pData->color_scrollbar_line[3]);
+			cairo_stroke (pCairoContext);
+		}
+		if (pData->iScrollOffset != pData->iDeltaHeight)  // fleche vers le bas.
+		{
+			cairo_move_to (pCairoContext, x_arrow, y_arrow_bottom);
+			cairo_rel_line_to (pCairoContext, pData->fScrollbarWidth/2, - pData->fArrowHeight);
+			cairo_rel_line_to (pCairoContext, -pData->fScrollbarWidth, 0.);
+			cairo_close_path (pCairoContext);
+			
+			cairo_set_source_rgba (pCairoContext, pData->color_scrollbar_inside[0], pData->color_scrollbar_inside[1], pData->color_scrollbar_inside[2], pData->color_scrollbar_inside[3]);
+			cairo_fill_preserve (pCairoContext);
+			
+			cairo_set_source_rgba (pCairoContext, pData->color_scrollbar_line[0], pData->color_scrollbar_line[1], pData->color_scrollbar_line[2], pData->color_scrollbar_line[3]);
+			cairo_stroke (pCairoContext);
+		}
+		// scrollbar outline
+		cairo_move_to (pCairoContext, x_arrow - pData->fScrollbarWidth/2, y_arrow_top + pData->fArrowHeight + pData->fScrollbarArrowGap);
+		cairo_rel_line_to (pCairoContext, pData->fScrollbarWidth, 0.);
+		cairo_rel_line_to (pCairoContext, 0., y_arrow_bottom - y_arrow_top - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap));
+		cairo_rel_line_to (pCairoContext, -pData->fScrollbarWidth, 0.);
+		cairo_close_path (pCairoContext);
+		
+		cairo_set_source_rgba (pCairoContext, pData->color_scrollbar_inside[0], pData->color_scrollbar_inside[1], pData->color_scrollbar_inside[2], pData->color_scrollbar_inside[3]);
+		cairo_fill_preserve (pCairoContext);
+		
+		cairo_set_source_rgba (pCairoContext, pData->color_scrollbar_line[0], pData->color_scrollbar_line[1], pData->color_scrollbar_line[2], pData->color_scrollbar_line[3]);
+		cairo_stroke (pCairoContext);
+		// grip
+		double fFrameHeight = pDesklet->container.iHeight ;  // hauteur du cadre.
+		double fGripHeight = fFrameHeight / (fFrameHeight + pData->iDeltaHeight) * (y_arrow_bottom - y_arrow_top - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap));
+		double ygrip = (double) pData->iScrollOffset / pData->iDeltaHeight * (y_arrow_bottom - y_arrow_top - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap) - fGripHeight);
+		cairo_set_source_rgba (pCairoContext, pData->color_grip[0], pData->color_grip[1], pData->color_grip[2], pData->color_grip[3]);
+		cairo_move_to (pCairoContext, x_arrow - pData->fScrollbarWidth/2 + 1, y_arrow_top + pData->fArrowHeight + pData->fScrollbarArrowGap + ygrip);
+		cairo_rel_line_to (pCairoContext, pData->fScrollbarWidth - 2, 0.);
+		cairo_rel_line_to (pCairoContext, 0., fGripHeight);
+		cairo_rel_line_to (pCairoContext, - (pData->fScrollbarWidth - 2), 0.);
+		cairo_fill (pCairoContext);
+		
+		cairo_restore (pCairoContext);
+	}
+	
+	//\____________________ On dessine les icones.
+	GList *pFirstDrawnElement = cairo_dock_get_first_drawn_element_linear (pDesklet->icons);
 	if (pFirstDrawnElement == NULL)
 		return;
-	ic = pFirstDrawnElement;
+	Icon *pIcon;
+	GList *ic = pFirstDrawnElement;
 	do
 	{
 		pIcon = ic->data;
@@ -456,7 +434,6 @@
 			
 			cairo_restore (pCairoContext);
 			
-			
 			if (pIcon->pTextBuffer != NULL)
 			{
 				cairo_save (pCairoContext);
@@ -526,91 +503,103 @@
 				cairo_restore (pCairoContext);
 			}
 		}
-		ic = cairo_dock_get_next_element (ic, pVisibleIcons);
+		ic = cairo_dock_get_next_element (ic, pDesklet->icons);
 	}
 	while (ic != pFirstDrawnElement);
+	
+	// la scrollbar
+	
 }
 
 
 static void render_opengl (CairoDesklet *pDesklet)
 {
-	CDViewportParameters *pViewportConf = (CDViewportParameters *) pDesklet->pRendererData;
-	if (pViewportConf == NULL)
+	static CairoDockGLPath *pScrollPath = NULL;
+	
+	CDViewportParameters *pData = (CDViewportParameters *) pDesklet->pRendererData;
+	//g_print ("%s(%x)\n", __func__, pViewport);
+	if (pData == NULL)
 		return ;
 	
-	// le cadre.
-	double fRadius = (pViewportConf->bRoundedRadius ? pViewportConf->iRadius : 0.);
-	double fLineWidth = pViewportConf->iLineWidth;
-	if (fLineWidth != 0 && pViewportConf->fLineColor[3] != 0)
-	{
-		cairo_dock_draw_rounded_rectangle_opengl (pDesklet->container.iWidth - 2 * fRadius,
-			pDesklet->container.iHeight,
-			fRadius,
-			fLineWidth,
-			pViewportConf->fLineColor);
-		glTranslatef (-pDesklet->container.iWidth/2, -pDesklet->container.iHeight/2, 0.);
-	}
-	
-	glTranslatef (-pDesklet->container.iWidth/2, -pDesklet->container.iHeight/2, 0.);
-	
-	// les icones.
-	double w = pDesklet->container.iWidth - 2 * pViewportConf->fMargin;
-	double h = pDesklet->container.iHeight - 2 * pViewportConf->fMargin;
-	int dh = myLabels.iLabelSize;  // taille verticale ajoutee a chaque icone.
-	int dw = 2 * dh;  // taille horizontale ajoutee a chaque icone.
-	if( pViewportConf->iMaxOffsetY == 0 )
-	{
-		// ecart entre 2 lignes si il faut repartir vertivalement les icones.
-		dh = (h - pViewportConf->iNbLines * (pViewportConf->iIconSize + myLabels.iLabelSize) - 2*pViewportConf->fMargin - myLabels.iLabelSize) / pViewportConf->iNbLines;
-	}
-	if( pViewportConf->iMaxOffsetX == 0 )
-	{
-		// ecart entre 2 colonnes si il faut repartir horizontalement les icones.
-		dw = (w - pViewportConf->iNbColumns * pViewportConf->iIconSize - 2*pViewportConf->fMargin) / pViewportConf->iNbColumns;
-	}
-	
+	glPushMatrix ();
+	glTranslatef (- pDesklet->container.iWidth/2, - pDesklet->container.iHeight / 2, 0.);
+	_cairo_dock_set_blend_alpha ();
+	_cairo_dock_disable_texture ();
+	
+	//\____________________ On dessine les barres de defilement.
+	if (pData != NULL && pData->iDeltaHeight != 0)
+	{
+		glPushMatrix ();
+		if (pScrollPath == NULL)
+			pScrollPath = cairo_dock_new_gl_path (4, 0., 0., 0, 0);  // des triangles ou des rectangles => 4 points max.
+		glLineWidth (2.);
+		
+		double x_arrow = pDesklet->container.iWidth - pData->fScrollbarIconGap - pData->fScrollbarWidth/2;  // pointe de la fleche.
+		double y_arrow_top, y_arrow_bottom;
+		y_arrow_bottom = 2.;
+		y_arrow_top = pDesklet->container.iHeight - 2.;
+		
+		if (pData->iScrollOffset != 0)  // fleche vers le haut.
+		{
+			cairo_dock_gl_path_move_to (pScrollPath, x_arrow, y_arrow_top);
+			cairo_dock_gl_path_rel_line_to (pScrollPath, pData->fScrollbarWidth/2, -pData->fArrowHeight);
+			cairo_dock_gl_path_rel_line_to (pScrollPath, -pData->fScrollbarWidth, 0.);
+			
+			glColor4f (pData->color_scrollbar_inside[0], pData->color_scrollbar_inside[1], pData->color_scrollbar_inside[2], pData->color_scrollbar_inside[3]);
+			cairo_dock_fill_gl_path (pScrollPath, 0);
+			
+			glColor4f (pData->color_scrollbar_line[0], pData->color_scrollbar_line[1], pData->color_scrollbar_line[2], pData->color_scrollbar_line[3]);
+			cairo_dock_stroke_gl_path (pScrollPath, TRUE);  // TRUE <=> close
+		}
+		if (pData->iScrollOffset != pData->iDeltaHeight)  // fleche vers le bas.
+		{
+			cairo_dock_gl_path_move_to (pScrollPath, x_arrow, y_arrow_bottom);
+			cairo_dock_gl_path_rel_line_to (pScrollPath, pData->fScrollbarWidth/2, pData->fArrowHeight);
+			cairo_dock_gl_path_rel_line_to (pScrollPath, -pData->fScrollbarWidth, 0.);
+			
+			glColor4f (pData->color_scrollbar_inside[0], pData->color_scrollbar_inside[1], pData->color_scrollbar_inside[2], pData->color_scrollbar_inside[3]);
+			cairo_dock_fill_gl_path (pScrollPath, 0);
+			
+			glColor4f (pData->color_scrollbar_line[0], pData->color_scrollbar_line[1], pData->color_scrollbar_line[2], pData->color_scrollbar_line[3]);
+			cairo_dock_stroke_gl_path (pScrollPath, TRUE);  // TRUE <=> close
+		}
+		
+		// scrollbar outline
+		cairo_dock_gl_path_move_to (pScrollPath, x_arrow - pData->fScrollbarWidth/2, y_arrow_bottom + pData->fArrowHeight + pData->fScrollbarArrowGap);
+		cairo_dock_gl_path_rel_line_to (pScrollPath, pData->fScrollbarWidth, 0.);
+		cairo_dock_gl_path_rel_line_to (pScrollPath, 0., y_arrow_top - y_arrow_bottom - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap));
+		cairo_dock_gl_path_rel_line_to (pScrollPath, -pData->fScrollbarWidth, 0.);
+		
+		glColor4f (pData->color_scrollbar_inside[0], pData->color_scrollbar_inside[1], pData->color_scrollbar_inside[2], pData->color_scrollbar_inside[3]);
+		cairo_dock_fill_gl_path (pScrollPath, 0);
+		
+		glColor4f (pData->color_scrollbar_line[0], pData->color_scrollbar_line[1], pData->color_scrollbar_line[2], pData->color_scrollbar_line[3]);
+		cairo_dock_stroke_gl_path (pScrollPath, TRUE);
+		
+		// grip
+		double fFrameHeight = pDesklet->container.iHeight;  // hauteur du cadre.
+		double fGripHeight = fFrameHeight / (fFrameHeight + pData->iDeltaHeight) * (y_arrow_top - y_arrow_bottom - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap));
+		double ygrip = (double) pData->iScrollOffset / pData->iDeltaHeight * (y_arrow_top - y_arrow_bottom - 2*(pData->fArrowHeight + pData->fScrollbarArrowGap) - fGripHeight);
+		glColor4f (pData->color_grip[0], pData->color_grip[1], pData->color_grip[2], pData->color_grip[3]);
+		cairo_dock_gl_path_move_to (pScrollPath, x_arrow - pData->fScrollbarWidth/2, y_arrow_top - (pData->fArrowHeight + pData->fScrollbarArrowGap) - ygrip);
+		cairo_dock_gl_path_rel_line_to (pScrollPath, pData->fScrollbarWidth, 0.);
+		cairo_dock_gl_path_rel_line_to (pScrollPath, 0., - fGripHeight);
+		cairo_dock_gl_path_rel_line_to (pScrollPath, -pData->fScrollbarWidth, 0.);
+		cairo_dock_fill_gl_path (pScrollPath, 0);
+		
+		glPopMatrix ();
+	}
+	
+	//\____________________ On dessine les icones.
 	_cairo_dock_enable_texture ();
 	_cairo_dock_set_blend_alpha ();
 	_cairo_dock_set_alpha (1.);
 	
-	
-	double x = pViewportConf->fMargin + dw/2, y = pViewportConf->fMargin + myLabels.iLabelSize + dh/2;
-	int q = 0;
-	Icon *pIcon;
-	GList *ic;
-	GList *pVisibleIcons = NULL;
-	for (ic = pDesklet->icons; ic != NULL; ic = ic->next)
-	{
-		pIcon = ic->data;
-		if (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pIcon))
-			continue;
-		
-		pIcon->fDrawX = x - pViewportConf->iCurrentOffsetX;
-		pIcon->fDrawY = y - pViewportConf->iCurrentOffsetY;
-		
-		x += pViewportConf->iIconSize + dw;
-		q ++;
-		if (q == pViewportConf->iNbColumns)
-		{
-			q = 0;
-			x = pViewportConf->fMargin + dw/2;
-			y += pViewportConf->iIconSize + myLabels.iLabelSize + dh;
-		}
-		// On ne dessine que les icones qui sont visibles
-		if( pIcon->fDrawX - pViewportConf->fMargin - dw/2 >= 0                &&
-		    pIcon->fDrawY - pViewportConf->fMargin - myLabels.iLabelSize - dh/2 >= 0 &&
-		    pIcon->fDrawX - pViewportConf->fMargin - dw/2 <= w - (pViewportConf->iIconSize + dw/2)          &&
-		    pIcon->fDrawY - pViewportConf->fMargin - myLabels.iLabelSize - dh/2 <= h - (pViewportConf->iIconSize + myLabels.iLabelSize + dh/2))
-		{
-			pVisibleIcons = g_list_append(pVisibleIcons, pIcon);
-		}
-	}
-	
-	
-	GList *pFirstDrawnElement = cairo_dock_get_first_drawn_element_linear (pVisibleIcons);
+	GList *pFirstDrawnElement = cairo_dock_get_first_drawn_element_linear (pDesklet->icons);
 	if (pFirstDrawnElement == NULL)
 		return;
-	ic = pFirstDrawnElement;
+	Icon *pIcon;
+	GList *ic = pFirstDrawnElement;
 	do
 	{
 		pIcon = ic->data;
@@ -626,14 +615,6 @@
 			_cairo_dock_apply_texture_at_size (pIcon->iIconTexture, pIcon->fWidth, pIcon->fHeight);
 			
 			/// generer une notification ...
-			/*if (pIcon->bHasIndicator && g_pIndicatorBuffer.iTexture != 0)
-			{
-				glPushMatrix ();
-				glTranslatef (0., - pIcon->fHeight/2 + g_pIndicatorBuffer.iHeight/2 * pIcon->fWidth / g_pIndicatorBuffer.iWidth, 0.);
-				_cairo_dock_apply_texture_at_size (g_pIndicatorBuffer.iTexture, pIcon->fWidth, g_pIndicatorBuffer.iHeight * pIcon->fWidth / g_pIndicatorBuffer.iWidth);
-				glPopMatrix ();
-			}*/
-			
 			if (pIcon->iLabelTexture != 0)
 			{
 				glPushMatrix ();
@@ -684,10 +665,11 @@
 			glPopMatrix ();
 		}
 
-		ic = cairo_dock_get_next_element (ic, pVisibleIcons);
+		ic = cairo_dock_get_next_element (ic, pDesklet->icons);
 		
 	} while (ic != pFirstDrawnElement);
 	
+	glPopMatrix ();
 	_cairo_dock_disable_texture ();
 }
 
@@ -698,7 +680,7 @@
 	CairoDeskletRenderer *pRenderer = g_new0 (CairoDeskletRenderer, 1);
 	pRenderer->render 			= (CairoDeskletRenderFunc) render;
 	pRenderer->configure 		= (CairoDeskletConfigureRendererFunc) configure;
-	pRenderer->load_data 		= (CairoDeskletLoadRendererDataFunc) load_data;
+	pRenderer->load_data 		= (CairoDeskletLoadRendererDataFunc) NULL;  // nothing to load.
 	pRenderer->free_data 		= (CairoDeskletFreeRendererDataFunc) free_data;
 	pRenderer->calculate_icons 	= (CairoDeskletCalculateIconsFunc) calculate_icons;
 	pRenderer->render_opengl 	= (CairoDeskletGLRenderFunc) render_opengl;

=== modified file 'desklet-rendering/src/rendering-desklet-viewport.h'
--- desklet-rendering/src/rendering-desklet-viewport.h	2010-08-07 01:43:25 +0000
+++ desklet-rendering/src/rendering-desklet-viewport.h	2010-09-07 00:46:10 +0000
@@ -17,7 +17,6 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-
 #ifndef __RENDERING_DESKLET_VIEWPORT__
 #define  __RENDERING_DESKLET_VIEWPORT__
 
@@ -26,31 +25,35 @@
 
 typedef struct {
 	// from config
-	gboolean bRoundedRadius;
-	gint iRadius;
-	gdouble fLineColor[4];
-	gint iLineWidth;
-	gint iGapBetweenIcons;
-	gint iMinimumIconSize;
-	gboolean bInfiniteWidth;
-	gboolean bInfiniteHeight;
+	gboolean bHorizontalScrolBar;
+	gint iIconGapX, iIconGapY;
+	gdouble color_scrollbar_line[4];
+	gdouble color_scrollbar_inside[4];
+	gdouble color_grip[4];
 	// computed data
+	gint nRowsX;
+	gint nRowsY;
+	gint iDeltaHeight;  // hauteur scrollable, en pixels
+	gint iScrollOffset;  // hauteur scrollee, en pixels, positive.
+	gboolean bDraggingScrollbar;  // si le clic est couramment enfonce sur la scrollbar.
+	guint iSidPressEvent;  // sid du clic
+	guint iSidReleaseEvent;  // sid du relachement du clic
+	gint iClickY;  // hauteur ou on a clique, en coordonnees fenetre
+	gint iClickOffset;  // hauteur scrollee au moment du clic
 	gdouble fMargin;
-	gint iNbIcons;
-	GList* iFirstIconToShow;
+	
 	gint iIconSize;
-	gint iNbLines, iNbColumns;
-	gint iMaxOffsetX;
-	gint iMaxOffsetY;
-	// current state
-	gint iCurrentOffsetX;
-	gint iCurrentOffsetY;
-	gint fCurrentPanXSpeed;
-	gint fCurrentPanYSpeed;
+	gdouble fArrowHeight;
+	gdouble fArrowGap;
+	gdouble fScrollbarArrowGap;
+	gdouble fScrollbarWidth;
+	gdouble fScrollbarIconGap;
 	} CDViewportParameters;
 
 
 void rendering_register_viewport_desklet_renderer (void);
 
+//gboolean cd_slide_on_click (gpointer data, Icon *pClickedIcon, CairoDesklet *pDesklet, guint iButtonState);
+
 
 #endif

=== modified file 'desklet-rendering/src/rendering-init.c'
--- desklet-rendering/src/rendering-init.c	2010-08-07 01:43:25 +0000
+++ desklet-rendering/src/rendering-init.c	2010-09-07 00:46:10 +0000
@@ -52,7 +52,9 @@
 	
 	//\_______________ On enregistre les decorations.
 	cd_rendering_register_desklet_decorations ();
-
+	
+	//cairo_dock_register_notification (CAIRO_DOCK_CLICK_ICON, (CairoDockNotificationFunc) cd_slide_on_click, CAIRO_DOCK_RUN_FIRST, NULL);
+	
 	CD_APPLET_SET_CONTAINER_TYPE (CAIRO_DOCK_MODULE_IS_PLUGIN);
 	CD_APPLET_ATTACH_TO_INTERNAL_MODULE ("Desklets");
 CD_APPLET_DEFINE_END

=== removed file 'dialog-rendering/data/messages'
--- dialog-rendering/data/messages	2010-08-07 01:43:25 +0000
+++ dialog-rendering/data/messages	1970-01-01 00:00:00 +0000
@@ -1,50 +0,0 @@
-_("Comics")
-
-_("Corner radius:")
-
-_("Border width:")
-
-_("Bubble's line colour:")
-
-_("Modern")
-
-_("Corner radius:")
-
-_("Border width:")
-
-_("Bubble's line colour:")
-
-_("Space between lines of the tip :")
-
-_("3D plane")
-
-_("Corner radius:")
-
-_("Border width of the plane :")
-
-_("Colour of the plane's line :")
-
-_("Colour of the plane :")
-
-_("Tooltip")
-
-_("Corner radius:")
-
-_("Border width:")
-
-_("Bubble's line colour:")
-
-_("Colour of the margin :")
-
-_("Curly")
-
-_("Corner radius:")
-
-_("Border width:")
-
-_("Bubble's line colour:")
-
-_("Curvature of the tip :")
-
-_("Curve the sides too?")
-

=== modified file 'dialog-rendering/src/applet-decorator-tooltip.c'
--- dialog-rendering/src/applet-decorator-tooltip.c	2010-08-07 01:43:25 +0000
+++ dialog-rendering/src/applet-decorator-tooltip.c	2010-09-07 00:46:10 +0000
@@ -35,7 +35,7 @@
 	int iIconOffset = myDialogs.iDialogIconSize/2;
 	pDialog->iRightMargin = iMargin;
 	pDialog->iLeftMargin = iIconOffset + iMargin;
-	pDialog->iTopMargin = MAX (iIconOffset, _CAIRO_DIALOG_TOOLTIP_MARGIN);
+	pDialog->iTopMargin = iIconOffset + _CAIRO_DIALOG_TOOLTIP_MARGIN + myConfig.iTooltipLineWidth;
 	pDialog->iBottomMargin = _CAIRO_DIALOG_TOOLTIP_MARGIN;
 	pDialog->iMinBottomGap = _CAIRO_DIALOG_TOOLTIP_MIN_GAP;
 	pDialog->iMinFrameWidth = _CAIRO_DIALOG_TOOLTIP_ARROW_WIDTH;
@@ -43,7 +43,7 @@
 	pDialog->container.fRatio = 0.;
 	pDialog->container.bUseReflect = FALSE;
 	pDialog->iIconOffsetX = iIconOffset;
-	pDialog->iIconOffsetY = iIconOffset;
+	pDialog->iIconOffsetY = pDialog->iTopMargin;
 }
 
 

=== removed file 'dnd2share/data/messages'
--- dnd2share/data/messages	2010-08-07 01:43:25 +0000
+++ dnd2share/data/messages	1970-01-01 00:00:00 +0000
@@ -1,158 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Info-bubbles")
-
-_("Enable info-bubbles?")
-
-_("in seconds.")
-
-_("Duration of the info-bubbles :")
-
-_("Behaviour")
-
-_("Number of items to keep in the history :")
-
-_("Keep a copy of each uploaded image?")
-
-_("This will override the image setting.")
-
-_("If so, display the last image on the icon?")
-
-_("Animation of the icon during upload :")
-
-_("in KB/s - 0 means unlimited")
-
-_("Maximum upload rate:")
-
-_("Sites")
-
-_("Preferred site for texts hosting :")
-
-_("Custom")
-
-_("Pastebin.ca")
-
-_("Preferred site for images hosting :")
-
-_("Custom")
-
-_("Uppix.net")
-
-_("Imagebin.ca")
-
-_("ImageShack.us")
-
-_("Preferred site for videos hosting :")
-
-_("Custom")
-
-_("VideoBin.org")
-
-_("Preferred site for files hosting :")
-
-_("Custom")
-
-_("dl.free.fr")
-
-_("DropBox")
-
-_("Custom script for text upload : ")
-
-_("Custom script for image upload : ")
-
-_("Custom script for video upload : ")
-
-_("Custom script for file upload : ")
-
-_("Leave empty to upload files into '~/Dropbox/Public'.")
-
-_("Path of the DropBox folder :")
-
-_("Post text as Anonymous ?")
-

=== modified file 'dnd2share/src/applet-notifications.c'
--- dnd2share/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ dnd2share/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -392,78 +392,92 @@
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pModuleSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
 	
-	CD_APPLET_ADD_IN_MENU (D_("Send the clipboard's content"), _send_clipboard, CD_APPLET_MY_MENU);
-	
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Send the clipboard's content"), GTK_STOCK_PASTE, _send_clipboard, CD_APPLET_MY_MENU);
+	
+	GtkWidget *pHistoryMenu = gtk_menu_new ();
+	GtkWidget *mi = gtk_image_menu_item_new_with_label (D_("History"));
+	
+	GtkWidget *im = gtk_image_new_from_stock (GTK_STOCK_INDEX, GTK_ICON_SIZE_MENU);
+	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), im);
+	
+	gtk_menu_shell_append (GTK_MENU_SHELL (CD_APPLET_MY_MENU), mi); 
+	gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), pHistoryMenu);
+	
+	//GtkWidget *pHistoryMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("History"), CD_APPLET_MY_MENU, GTK_STOCK_INDEX);
 	if (myData.pUpoadedItems != NULL)
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Clear History"), GTK_STOCK_CLEAR, _clear_history, CD_APPLET_MY_MENU);
-	
-	CDSiteBackend *pBackend;
-	CDUploadedItem *pItem;
-	GtkWidget *pItemSubMenu;
-	gchar *str;
-	gchar *cName = NULL, *cURI = NULL, *cIconName = NULL;
-	gboolean bIsDirectory;
-	int iVolumeID;
-	double fOrder;
-	int i;
-	GList *it;
-	for (it = myData.pUpoadedItems; it != NULL; it = it->next)
 	{
-		pItem = it->data;
-		
-		// on cherche une miniature a mettre dans le menu.
-		gchar *cPreview = NULL;
-		if (pItem->iFileType == CD_TYPE_IMAGE)
-		{
-			cPreview = g_strdup_printf ("%s/%s", myData.cWorkingDirPath, pItem->cItemName);
-			if (! g_file_test (cPreview, G_FILE_TEST_EXISTS))
-			{
-				g_free (cPreview);
-				cPreview = cairo_dock_search_icon_s_path ("image-x-generic");;
-			}
-		}
-		else if (pItem->iFileType == CD_TYPE_TEXT)
-		{
-			cPreview = cairo_dock_search_icon_s_path ("text-x-generic");
-		}
-		else if (pItem->iFileType == CD_TYPE_VIDEO)
-		{
-			cPreview = cairo_dock_search_icon_s_path ("video-x-generic");
-		}
-		if (cPreview == NULL)
-		{
-			cairo_dock_fm_get_file_info (pItem->cLocalPath, &cName, &cURI, &cPreview, &bIsDirectory, &iVolumeID, &fOrder, 0);
-			g_free (cName);
-			cName = NULL;
-			g_free (cURI);
-			cURI = NULL;
-		}
-		
-		// on cree un sous-menu pour ce fichier.
-		str = strchr (pItem->cFileName, '\n');
-		if (str)
-			*str = '\0';
-		pItemSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (pItem->cFileName, pModuleSubMenu, cPreview);
-		if (str)
-			*str = '\n';
-		g_free (cPreview);
-		
-		// on le peuple avec les liens.
-		pBackend = &myData.backends[pItem->iFileType][pItem->iSiteID];
-		for (i = 0; i < pBackend->iNbUrls; i ++)
-		{
-			//g_print ("%d) %s : ", i, pBackend->cUrlLabels[i]);
-			//g_print (" + %s\n", pItem->cDistantUrls[i]);
-			if (pItem->cDistantUrls[i] != NULL)  // peut etre null (par exemple la tiny url).
-				CD_APPLET_ADD_IN_MENU_WITH_DATA (pBackend->cUrlLabels[i], _copy_url_into_clipboard, pItemSubMenu, pItem->cDistantUrls[i]);
-		}
-		if (pItem->iFileType != CD_TYPE_TEXT)
-			CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Open file"), _show_local_file, pItemSubMenu, pItem);
-		else
-			CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Get text"), _show_local_file, pItemSubMenu, pItem);
-		
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Remove from history"), GTK_STOCK_REMOVE, _remove_from_history, pItemSubMenu, pItem);
+		CDSiteBackend *pBackend;
+		CDUploadedItem *pItem;
+		GtkWidget *pItemSubMenu;
+		gchar *str;
+		gchar *cName = NULL, *cURI = NULL, *cIconName = NULL;
+		gboolean bIsDirectory;
+		int iVolumeID;
+		double fOrder;
+		int i;
+		GList *it;
+		for (it = myData.pUpoadedItems; it != NULL; it = it->next)
+		{
+			pItem = it->data;
+			
+			// on cherche une miniature a mettre dans le menu.
+			gchar *cPreview = NULL;
+			if (pItem->iFileType == CD_TYPE_IMAGE)
+			{
+				cPreview = g_strdup_printf ("%s/%s", myData.cWorkingDirPath, pItem->cItemName);
+				if (! g_file_test (cPreview, G_FILE_TEST_EXISTS))
+				{
+					g_free (cPreview);
+					cPreview = cairo_dock_search_icon_s_path ("image-x-generic");;
+				}
+			}
+			else if (pItem->iFileType == CD_TYPE_TEXT)
+			{
+				cPreview = cairo_dock_search_icon_s_path ("text-x-generic");
+			}
+			else if (pItem->iFileType == CD_TYPE_VIDEO)
+			{
+				cPreview = cairo_dock_search_icon_s_path ("video-x-generic");
+			}
+			if (cPreview == NULL)
+			{
+				cairo_dock_fm_get_file_info (pItem->cLocalPath, &cName, &cURI, &cPreview, &bIsDirectory, &iVolumeID, &fOrder, 0);
+				g_free (cName);
+				cName = NULL;
+				g_free (cURI);
+				cURI = NULL;
+			}
+			
+			// on cree un sous-menu pour ce fichier.
+			str = strchr (pItem->cFileName, '\n');
+			if (str)
+				*str = '\0';
+			pItemSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (pItem->cFileName, pHistoryMenu, cPreview);
+			if (str)
+				*str = '\n';
+			g_free (cPreview);
+			
+			// on le peuple avec les liens.
+			pBackend = &myData.backends[pItem->iFileType][pItem->iSiteID];
+			for (i = 0; i < pBackend->iNbUrls; i ++)
+			{
+				//g_print ("%d) %s : ", i, pBackend->cUrlLabels[i]);
+				//g_print (" + %s\n", pItem->cDistantUrls[i]);
+				if (pItem->cDistantUrls[i] != NULL)  // peut etre null (par exemple la tiny url).
+					CD_APPLET_ADD_IN_MENU_WITH_DATA (pBackend->cUrlLabels[i], _copy_url_into_clipboard, pItemSubMenu, pItem->cDistantUrls[i]);
+			}
+			if (pItem->iFileType != CD_TYPE_TEXT)
+				CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Open file"), _show_local_file, pItemSubMenu, pItem);
+			else
+				CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Get text"), _show_local_file, pItemSubMenu, pItem);
+			
+			CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Remove from history"), GTK_STOCK_REMOVE, _remove_from_history, pItemSubMenu, pItem);
+		}
+		
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Clear History"), GTK_STOCK_CLEAR, _clear_history, pHistoryMenu);
 	}
+	else
+		gtk_widget_set_sensitive (GTK_WIDGET (mi), FALSE);
 	
-	CD_APPLET_ADD_ABOUT_IN_MENU (CD_APPLET_MY_MENU);
+	CD_APPLET_ADD_ABOUT_IN_MENU (pModuleSubMenu);
 CD_APPLET_ON_BUILD_MENU_END

=== removed file 'dock-rendering/data/messages'
--- dock-rendering/data/messages	2010-08-07 01:43:25 +0000
+++ dock-rendering/data/messages	1970-01-01 00:00:00 +0000
@@ -1,114 +0,0 @@
-_("Inclinated Plane")
-
-_("The lower the value, the lower the point of view on the plane.")
-
-_("Height of the vanishing point:")
-
-_("Curve")
-
-_("The lower the value, the flatter the curve will appear.")
-
-_("Curvature of the curve in percent:")
-
-_("in pixels.")
-
-_("Amplitude of the curve:")
-
-_("Panel")
-
-_("At 1, the icons will have the same size as in other views.")
-
-_("Ratio to apply on icons' size :")
-
-_("smaller icons")
-
-_("normal icons")
-
-_("SimpleSlide")
-
-_("Grid")
-
-_("Space between columns:")
-
-_("Space between rows:")
-
-_("Max icon size:")
-
-_("Sinusoidal wave radius:")
-
-_("Use a linear wave rather than a sinusoidal wave?")
-
-_("Pack icons horizontally rather than vertically?")
-
-_("Display text for all icons?")
-
-_("Frame")
-
-_("Draw a background?")
-
-_("First gradient colour :")
-
-_("Second gradient colour :")
-
-_("Top to bottom gradient?")
-
-_("Left to right gradient?")
-
-_("Corner radius:")
-
-_("Border line width :")
-
-_("Border line colour :")
-
-_("Arrow width :")
-
-_("Arrow height:")
-
-_("Arrow shift percentage:")
-
-_("Parabolic")
-
-_("The higher this value, the sooner the parabola will be curved.")
-
-_("Curvature:")
-
-_("The parabola will be restricted to a rectangle of this proportion.")
-
-_("Height/width ratio:")
-
-_("0 represents a flat wave, 1 represents maximum wave curvature.")
-
-_("Magnitude of the wave:")
-
-_("Curve towards the outside?")
-
-_("in pixels.")
-
-_("Space between icons and their captions:")
-
-_("This may recquire more CPU during the unfolding animation, except if you launch Cairo-Dock with OpenGL.")
-
-_("Draw captions while unfolding?")
-
-_("Rainbow")
-
-_("Space between rows:")
-
-_("Space between icons:")
-
-_("0 represents a flat wave, 1 means the wave is identical to other views.")
-
-_("Magnitude of the wave:")
-
-_("Number of icons on the first row:")
-
-_("in degrees. The lower the value, the narrower the cone. 180\302\260 represents a wide open cone.")
-
-_("Cone width:")
-
-_("Set transparency to 0 to not use it. This is quite slow with cairo.")
-
-_("Bow colour:")
-
-_("Line colour:")
-

=== modified file 'dock-rendering/src/rendering-3D-plane.c'
--- dock-rendering/src/rendering-3D-plane.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-3D-plane.c	2010-09-07 00:46:10 +0000
@@ -140,10 +140,6 @@
 
 static void cd_rendering_make_3D_separator (Icon *icon, cairo_t *pCairoContext, CairoDock *pDock, gboolean bIncludeEdges, gboolean bBackGround)
 {
-	gboolean bDirectionUp = pDock->container.bDirectionUp;
-	gboolean bIsHorizontal = pDock->container.bIsHorizontal;
-	bDirectionUp = TRUE;
-	bIsHorizontal = TRUE;
 	double hi = myIcons.fReflectSize * pDock->container.fRatio + myBackground.iFrameMargin;
 	hi = (pDock->container.bDirectionUp ? pDock->container.iHeight - (icon->fDrawY + icon->fHeight * icon->fScale) : icon->fDrawY);
 	double fLeftInclination = (icon->fDrawX - pDock->container.iWidth / 2) / iVanishingPointY;
@@ -152,7 +148,7 @@
 	double fHeight, fBigWidth, fLittleWidth;
 	if (bIncludeEdges)
 	{
-		fHeight = (bBackGround ? pDock->iDecorationsHeight - hi : hi) + myBackground.iDockLineWidth;
+		fHeight = (bBackGround ? pDock->iDecorationsHeight - hi : hi) + 2*myBackground.iDockLineWidth;
 		fBigWidth = fabs (fRightInclination - fLeftInclination) * (bBackGround ? iVanishingPointY : iVanishingPointY + fHeight);
 		fLittleWidth = fabs (fRightInclination - fLeftInclination) * (bBackGround ? iVanishingPointY - fHeight : iVanishingPointY);
 	}
@@ -166,71 +162,34 @@
 	double fDeltaXRight = fHeight * fRightInclination;
 	//g_print ("fBigWidth : %.2f ; fLittleWidth : %.2f\n", fBigWidth, fLittleWidth);
 	
-	int sens;
 	double fDockOffsetX, fDockOffsetY;
-	if (bDirectionUp)
-	{
-		sens = 1;
-		if (bIncludeEdges)
-			fDockOffsetY = pDock->container.iHeight - fHeight - (bBackGround ? myBackground.iDockLineWidth + hi : 0);
-		else
-			fDockOffsetY = pDock->container.iHeight - fHeight - myBackground.iDockLineWidth;
-	}
-	else
-	{
-		sens = -1;
-		if (bIncludeEdges)
-			fDockOffsetY = fHeight + (bBackGround ? myBackground.iDockLineWidth + hi : 0);
-		else
-			fDockOffsetY = fHeight + myBackground.iDockLineWidth;
-	}
 	if (bIncludeEdges)
+	{
 		fDockOffsetX = icon->fDrawX - (bBackGround ? fHeight * fLeftInclination : 0);
+		fDockOffsetY = pDock->container.iHeight - fHeight - (bBackGround ? myBackground.iDockLineWidth + hi : -.5*myBackground.iDockLineWidth);
+	}
 	else
+	{
 		fDockOffsetX = icon->fDrawX - (fHeight - hi) * fLeftInclination;
-	
-	if (bIsHorizontal)
-	{
-		cairo_translate (pCairoContext, fDockOffsetX, fDockOffsetY);  // coin haut gauche.
-		cairo_move_to (pCairoContext, 0, 0);  // coin haut gauche.
-		
-		cairo_rel_line_to (pCairoContext, fLittleWidth, 0);
-		cairo_rel_line_to (pCairoContext, fDeltaXRight, sens * fHeight);
-		cairo_rel_line_to (pCairoContext, - fBigWidth, 0);
-		cairo_rel_line_to (pCairoContext, - fDeltaXLeft, - sens * fHeight);
-		
-		if (my_iDrawSeparator3D == CAIRO_DOCK_FLAT_SEPARATOR)
-		{
-			if (! bDirectionUp)
-				cairo_scale (pCairoContext, 1, -1);
-			cairo_set_source_surface (pCairoContext, my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL], MIN (0, (fHeight + hi) * fLeftInclination), 0);
-		}
-	}
-	else
-	{
-		cairo_translate (pCairoContext, fDockOffsetY, fDockOffsetX);  // coin haut gauche.
-		cairo_move_to (pCairoContext, 0, 0);  // coin haut gauche.
-		
-		cairo_rel_line_to (pCairoContext, 0, fLittleWidth);
-		cairo_rel_line_to (pCairoContext, sens * fHeight, fDeltaXRight);
-		cairo_rel_line_to (pCairoContext, 0, - fBigWidth);
-		cairo_rel_line_to (pCairoContext, - sens * fHeight, - fDeltaXLeft);
-		
-		if (my_iDrawSeparator3D == CAIRO_DOCK_FLAT_SEPARATOR)
-		{
-			if (! bDirectionUp)
-				cairo_scale (pCairoContext, -1, 1);
-			cairo_set_source_surface (pCairoContext, my_pFlatSeparatorSurface[CAIRO_DOCK_VERTICAL], 0, MIN (0, (fHeight + hi) * fLeftInclination));
-		}
+		fDockOffsetY = pDock->container.iHeight - fHeight - myBackground.iDockLineWidth;
+	}	
+	
+	cairo_translate (pCairoContext, fDockOffsetX, fDockOffsetY);  // coin haut gauche.
+	cairo_move_to (pCairoContext, 0, 0);  // coin haut gauche.
+	
+	cairo_rel_line_to (pCairoContext, fLittleWidth, 0);
+	cairo_rel_line_to (pCairoContext, fDeltaXRight, fHeight);
+	cairo_rel_line_to (pCairoContext, - fBigWidth, 0);
+	cairo_rel_line_to (pCairoContext, - fDeltaXLeft, - fHeight);
+	
+	if (my_iDrawSeparator3D == CAIRO_DOCK_FLAT_SEPARATOR)
+	{
+		cairo_set_source_surface (pCairoContext, my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL], MIN (0, (fHeight + hi) * fLeftInclination), 0);
 	}
 }
 
 static void cd_rendering_draw_3D_separator_edge (Icon *icon, cairo_t *pCairoContext, CairoDock *pDock, gboolean bBackGround)
 {
-	gboolean bDirectionUp = pDock->container.bDirectionUp;
-	gboolean bIsHorizontal = pDock->container.bIsHorizontal;
-	bDirectionUp = TRUE;
-	bIsHorizontal = TRUE;
 	double hi = myIcons.fReflectSize * pDock->container.fRatio + myBackground.iFrameMargin;
 	hi = (pDock->container.bDirectionUp ? pDock->container.iHeight - (icon->fDrawY + icon->fHeight * icon->fScale) : icon->fDrawY);
 	double fLeftInclination = (icon->fDrawX - pDock->container.iWidth / 2) / iVanishingPointY;
@@ -245,41 +204,20 @@
 	double fDeltaXRight = fHeight * fRightInclination;
 	//g_print ("fBigWidth : %.2f ; fLittleWidth : %.2f\n", fBigWidth, fLittleWidth);
 	
-	int sens;
 	double fDockOffsetX, fDockOffsetY;
-	if (bDirectionUp)
-	{
-		sens = 1;
-		fDockOffsetY =  (bBackGround ? 0.5*myBackground.iDockLineWidth : - 1.*myBackground.iDockLineWidth);
-	}
-	else
-	{
-		sens = -1;
-		fDockOffsetY =  (bBackGround ? - 0.5*myBackground.iDockLineWidth : 1.*myBackground.iDockLineWidth);
-	}
+	fDockOffsetY =  (bBackGround ? 2.*myBackground.iDockLineWidth : - 1.0*myBackground.iDockLineWidth);
+	
 	fDockOffsetX = (bBackGround ? .5*myBackground.iDockLineWidth * fLeftInclination + 1.*fLeftInclination : - 0.5 * myBackground.iDockLineWidth * fLeftInclination);
 	//fDockOffsetX = -.5*myBackground.iDockLineWidth;
 	
-	if (bIsHorizontal)
-	{
-		cairo_translate (pCairoContext, fDockOffsetX, fDockOffsetY);  // coin haut droit.
-		
-		cairo_move_to (pCairoContext, fLittleWidth, 0);
-		cairo_rel_line_to (pCairoContext, fDeltaXRight, sens * fHeight);
-		
-		cairo_move_to (pCairoContext, 0, 0);
-		cairo_rel_line_to (pCairoContext, fDeltaXLeft, sens * fHeight);
-	}
-	else
-	{
-		cairo_translate (pCairoContext, fDockOffsetY, fDockOffsetX);  // coin haut droit.
-		
-		cairo_move_to (pCairoContext, 0, fLittleWidth);
-		cairo_rel_line_to (pCairoContext, sens * fHeight, fDeltaXRight);
-		
-		cairo_move_to (pCairoContext, 0, 0);
-		cairo_rel_line_to (pCairoContext, sens * fHeight, fDeltaXLeft);
-	}
+	
+	cairo_translate (pCairoContext, fDockOffsetX, fDockOffsetY);  // coin haut droit.
+	
+	cairo_move_to (pCairoContext, fLittleWidth, 0);
+	cairo_rel_line_to (pCairoContext, fDeltaXRight, fHeight);
+	
+	cairo_move_to (pCairoContext, 0, 0);
+	cairo_rel_line_to (pCairoContext, fDeltaXLeft, fHeight);
 }
 
 
@@ -295,13 +233,13 @@
 	}
 	else
 	{
+		cairo_translate (pCairoContext, pDock->container.iHeight/2, pDock->container.iWidth/2);
+		cairo_rotate (pCairoContext, G_PI/2);
+		cairo_translate (pCairoContext, -pDock->container.iWidth/2, -pDock->container.iHeight/2);
 		if (pDock->container.bDirectionUp)
 		{
-			
-		}
-		else
-		{
-			
+			cairo_translate (pCairoContext, 0., pDock->container.iHeight);
+			cairo_scale (pCairoContext, 1., -1.);
 		}
 	}
 	cd_rendering_make_3D_separator (icon, pCairoContext, pDock, (my_iDrawSeparator3D == CAIRO_DOCK_PHYSICAL_SEPARATOR), bBackGround);
@@ -927,16 +865,18 @@
 void cd_rendering_register_3D_plane_renderer (const gchar *cRendererName)
 {
 	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-3D-plane-view", MY_APPLET_SHARE_DATA_DIR);
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-3D-plane.jpg", MY_APPLET_SHARE_DATA_DIR);
+	// interface
 	pRenderer->compute_size = cd_rendering_calculate_max_dock_size_3D_plane;
 	pRenderer->calculate_icons = cd_rendering_calculate_icons_3D_plane;
 	pRenderer->render = cd_rendering_render_3D_plane;
 	pRenderer->render_optimized = cd_rendering_render_optimized_3D_plane;
 	pRenderer->render_opengl = cd_rendering_render_3D_plane_opengl;
 	pRenderer->set_subdock_position = cairo_dock_set_subdock_position_linear;
+	// parametres
 	pRenderer->bUseReflect = TRUE;
 	pRenderer->cDisplayedName = D_ (cRendererName);
+	pRenderer->cReadmeFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-3D-plane-view");
+	pRenderer->cPreviewFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-3D-plane.jpg");
 	
 	cairo_dock_register_renderer (cRendererName, pRenderer);
 }

=== modified file 'dock-rendering/src/rendering-caroussel.c'
--- dock-rendering/src/rendering-caroussel.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-caroussel.c	2010-09-07 00:46:10 +0000
@@ -325,8 +325,8 @@
 void cd_rendering_register_caroussel_renderer (const gchar *cRendererName)
 {
 	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-caroussel-view", MY_APPLET_SHARE_DATA_DIR);
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-caroussel.jpg", MY_APPLET_SHARE_DATA_DIR);
+	pRenderer->cReadmeFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-caroussel-view");
+	pRenderer->cPreviewFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-caroussel.jpg");
 	pRenderer->compute_size = cd_rendering_calculate_max_dock_size_caroussel;
 	pRenderer->calculate_icons = cd_rendering_calculate_icons_caroussel;  // cairo_dock_apply_wave_effect;
 	pRenderer->render = cd_rendering_render_caroussel;

=== modified file 'dock-rendering/src/rendering-commons.c'
--- dock-rendering/src/rendering-commons.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-commons.c	2010-09-07 00:46:10 +0000
@@ -94,7 +94,7 @@
 	cairo_surface_destroy (my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL]);
 	cairo_surface_destroy (my_pFlatSeparatorSurface[CAIRO_DOCK_VERTICAL]);
 	
-	my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL] = cd_rendering_create_flat_separator_surface (300, 150);
+	my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL] = cd_rendering_create_flat_separator_surface ((g_bUseOpenGL?10:200), (g_bUseOpenGL?50:150));  // en opengl on etire la texture, donc pas besoin de la charger en grand.
 	
 	if (g_bUseOpenGL)
 	{
@@ -107,7 +107,7 @@
 	}
 	else
 	{
-		my_pFlatSeparatorSurface[CAIRO_DOCK_VERTICAL] = cairo_dock_rotate_surface (my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL], 300, 150, -G_PI / 2);
+		my_pFlatSeparatorSurface[CAIRO_DOCK_VERTICAL] = cairo_dock_rotate_surface (my_pFlatSeparatorSurface[CAIRO_DOCK_HORIZONTAL], 200, 150, -G_PI / 2);
 	}
 }
 

=== modified file 'dock-rendering/src/rendering-curve.c'
--- dock-rendering/src/rendering-curve.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-curve.c	2010-09-07 00:46:10 +0000
@@ -1298,17 +1298,19 @@
 void cd_rendering_register_curve_renderer (const gchar *cRendererName)
 {
 	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-curve-view", MY_APPLET_SHARE_DATA_DIR);
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-curve.jpg", MY_APPLET_SHARE_DATA_DIR);
+	// interface
 	pRenderer->compute_size = cd_rendering_calculate_max_dock_size_curve;
 	pRenderer->calculate_icons = cd_rendering_calculate_icons_curve;
 	pRenderer->render = cd_rendering_render_curve;
 	pRenderer->render_optimized = cd_rendering_render_optimized_curve;
 	pRenderer->render_opengl = cd_rendering_render_curve_opengl;
 	pRenderer->set_subdock_position = cairo_dock_set_subdock_position_linear;
+	// parametres
 	pRenderer->bUseReflect = TRUE;
 	pRenderer->bUseStencil = TRUE;
 	pRenderer->cDisplayedName = D_ (cRendererName);
+	pRenderer->cReadmeFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-curve-view");
+	pRenderer->cPreviewFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-curve.jpg");
 	
 	cairo_dock_register_renderer (cRendererName, pRenderer);
 }

=== modified file 'dock-rendering/src/rendering-diapo-simple.c'
--- dock-rendering/src/rendering-diapo-simple.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-diapo-simple.c	2010-09-07 00:46:10 +0000
@@ -48,9 +48,9 @@
 extern gboolean my_diapo_simple_draw_background;
 extern gboolean my_diapo_simple_display_all_labels;
 
-extern gdouble  my_diapo_simple_color_scrollbar_line[4];
-extern gdouble  my_diapo_simple_color_scrollbar_inside[4];
-extern gdouble  my_diapo_simple_color_grip[4];
+extern gdouble my_diapo_simple_color_scrollbar_line[4];
+extern gdouble my_diapo_simple_color_scrollbar_inside[4];
+extern gdouble my_diapo_simple_color_grip[4];
 
 const gint X_BORDER_SPACE = 40;  // espace laisse de chaque cote pour eviter de sortir trop facilement (et pour laisser de la place pour les etiquettes).
 const gint ARROW_TIP = 5;  // pour gerer la pointe de la fleche.
@@ -66,7 +66,7 @@
 	gboolean bDraggingScrollbar;  // si le clic est couramment enfonce sur la scrollbar.
 	guint iSidPressEvent;  // sid du clic
 	guint iSidReleaseEvent;  // sid du relachement du clic
-	gint iClickY;  // hauteur ou on a clique, en coordonnees fenetre
+	gint iClickY;  // hauteur ou on a clique, en coordonnees container.
 	gint iClickOffset;  // hauteur scrollee au moment du clic
 	} CDSlideData;
 
@@ -86,7 +86,16 @@
 static guint _cd_rendering_diapo_simple_guess_grid (GList *pIconList, guint *nRowX, guint *nRowY)
 {
 	// Calcul du nombre de lignes (nY) / colonnes (nX) :
-	guint count = g_list_length (pIconList);
+	guint count = 0;  // g_list_length (pIconList)
+	Icon *icon;
+	GList *ic;
+	for (ic = pIconList; ic != NULL; ic = ic->next)
+	{
+		icon = ic->data;
+		if (! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon))
+			count ++;
+	}
+	
 	if (count == 0)
 	{
 		*nRowX = 0;
@@ -105,8 +114,6 @@
 	return count;
 }
 
-const double sr = .5;  // screen ratio
-
 static void _set_scroll (CairoDock *pDock, int iOffsetY)
 {
 	//g_print ("%s (%d)\n", __func__, iOffsetY);
@@ -168,9 +175,20 @@
 	if (pButton->type == GDK_BUTTON_PRESS && pButton->button == 1)
 	{
 		double x_arrow = pDock->iMaxDockWidth - X_BORDER_SPACE - fScrollbarWidth;
-		if (pButton->x > x_arrow)  // on a clique dans la zone de scroll.
-		{
-			//g_print ("click (y=%d, scroll=%d)\n", (int) pButton->y, pData->iScrollOffset);
+		int x, y;
+		if (pDock->container.bIsHorizontal)
+		{
+			x = pButton->x;
+			y = pButton->y;
+		}
+		else
+		{
+			x = pButton->y;
+			y = pButton->x;
+		}
+		if (x > x_arrow)  // on a clique dans la zone de scroll.
+		{
+			//g_print ("click (y=%d, scroll=%d)\n", (int) y, pData->iScrollOffset);
 			
 			// on regarde sur quoi on clic.
 			double y_arrow_top, y_arrow_bottom;
@@ -184,18 +202,18 @@
 				y_arrow_bottom = pDock->iMaxDockHeight - my_diapo_simple_lineWidth;
 				y_arrow_top = my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth;
 			}
-			if (pButton->y > y_arrow_top - fScrollbarArrowGap/2 && pButton->y < y_arrow_top + fArrowHeight + fScrollbarArrowGap/2)  // bouton haut
+			if (y > y_arrow_top - fScrollbarArrowGap/2 && y < y_arrow_top + fArrowHeight + fScrollbarArrowGap/2)  // bouton haut
 			{
 				_set_scroll (pDock, 0);
 			}
-			else if (pButton->y < y_arrow_bottom + fScrollbarArrowGap/2 && pButton->y > y_arrow_bottom - fArrowHeight - fScrollbarArrowGap/2)  // bouton bas
+			else if (y < y_arrow_bottom + fScrollbarArrowGap/2 && y > y_arrow_bottom - fArrowHeight - fScrollbarArrowGap/2)  // bouton bas
 			{
 				_set_scroll (pDock, pData->iDeltaHeight);
 			}
 			else  // scrollbar
 			{
 				pData->bDraggingScrollbar = TRUE;
-				pData->iClickY = pButton->y;
+				pData->iClickY = y;
 				pData->iClickOffset = pData->iScrollOffset;
 			}
 		}
@@ -235,8 +253,9 @@
 		
 		int delta = pDock->container.iMouseY - pData->iClickY;
 		_set_scroll (pDock, (pData->iClickOffset + (double)delta / (y_arrow_top - y_arrow_bottom - 2*(fArrowHeight+fScrollbarArrowGap) - fGripHeight) * pData->iDeltaHeight));
+		return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
 	}
-	return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
+	return CAIRO_DOCK_LET_PASS_NOTIFICATION;
 }
 gboolean cd_slide_on_leave (gpointer data, CairoDock *pDock, gboolean *bStartAnimation)
 {
@@ -249,6 +268,7 @@
 	
 	return (pData->bDraggingScrollbar ? CAIRO_DOCK_INTERCEPT_NOTIFICATION : CAIRO_DOCK_LET_PASS_NOTIFICATION);
 }
+const double sr = .5;  // screen ratio
 static void cd_rendering_calculate_max_dock_size_diapo_simple (CairoDock *pDock)
 {
 	// On calcule la configuration de la grille sans contrainte.
@@ -257,6 +277,9 @@
 	guint nIcones = 0;  // nb icones.
 	int iDeltaHeight = 0;  // hauteur ne pouvant rentrer dans le dock.
 	int iMaxIconWidth = 0;
+	int iDockWidth, iDockHeight;  // dimension dock.
+	int Ws = g_desktopGeometry.iXScreenWidth[CAIRO_DOCK_HORIZONTAL];  // dimensions ecran.
+	int Hs = g_desktopGeometry.iXScreenHeight[CAIRO_DOCK_HORIZONTAL];
 	nIcones = _cd_rendering_diapo_simple_guess_grid(pDock->icons, &nRowsX, &nRowsY);
 	
 	// On calcule la taille de l'affichage avec contrainte taille ecran.
@@ -264,53 +287,42 @@
 	{
 		// on calcule la largeur avec contrainte, ce qui donne aussi le nombre de lignes.
 		iMaxIconWidth = ((Icon*)pDock->icons->data)->fWidth;  // approximation un peu bof.
-		pDock->iMaxDockWidth = nRowsX * (iMaxIconWidth + my_diapo_simple_iconGapX) + 2*X_BORDER_SPACE;
-		int iMaxWidth = sr * g_desktopGeometry.iXScreenWidth[pDock->container.bIsHorizontal];
-		if (pDock->iMaxDockWidth > iMaxWidth)
+		iDockWidth = nRowsX * (iMaxIconWidth + my_diapo_simple_iconGapX) + 2*X_BORDER_SPACE;
+		int iMaxWidth = sr * Ws;
+		if (iDockWidth > iMaxWidth)
 		{
 			nRowsX = (iMaxWidth - 2*X_BORDER_SPACE) / (iMaxIconWidth + my_diapo_simple_iconGapX);
 			nRowsY = ceil((double) nIcones / nRowsX);
-			pDock->iMaxDockWidth = nRowsX * (iMaxIconWidth + my_diapo_simple_iconGapX) + 2*X_BORDER_SPACE;
-			//g_print ("%d -> %d\n", iMaxWidth, pDock->iMaxDockWidth);
+			iDockWidth = nRowsX * (iMaxIconWidth + my_diapo_simple_iconGapX) + 2*X_BORDER_SPACE;
+			//g_print ("%d -> %d\n", iMaxWidth, iDockWidth);
 		}
 		
 		// on calcule la hauteur avec contrainte, ce qui donne aussi la marge de defilement.
-		pDock->iMaxDockHeight = (nRowsY - 1) * (pDock->iMaxIconHeight * pDock->container.fRatio + my_diapo_simple_iconGapY) +  // les icones
+		iDockHeight = (nRowsY - 1) * (pDock->iMaxIconHeight * pDock->container.fRatio + my_diapo_simple_iconGapY) +  // les icones
 			pDock->iMaxIconHeight * pDock->container.fRatio * my_diapo_simple_fScaleMax +  // les icones des bords zooment
 			myLabels.iLabelSize +  // le texte des icones de la 1ere ligne
 			my_diapo_simple_lineWidth + // les demi-lignes du haut et du bas
 			my_diapo_simple_arrowHeight + ARROW_TIP;  // la fleche etendue
-		int iMaxHeight = MIN (pDock->iMaxDockWidth, sr * g_desktopGeometry.iXScreenHeight[pDock->container.bIsHorizontal]);
-		if (pDock->iMaxDockHeight > iMaxHeight)
+		int iMaxHeight = sr * Hs;
+		if (iDockHeight > iMaxHeight)
 		{
 			nRowsY = (iMaxHeight - (my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth + myLabels.iLabelSize + pDock->iMaxIconHeight * pDock->container.fRatio * my_diapo_simple_fScaleMax)) / (pDock->iMaxIconHeight * pDock->container.fRatio + my_diapo_simple_iconGapY);
-			int iMaxDockHeight0 = pDock->iMaxDockHeight;
-			pDock->iMaxDockHeight = (nRowsY - 1) * (pDock->iMaxIconHeight * pDock->container.fRatio + my_diapo_simple_iconGapY) +
+			int iMaxDockHeight0 = iDockHeight;
+			iDockHeight = (nRowsY - 1) * (pDock->iMaxIconHeight * pDock->container.fRatio + my_diapo_simple_iconGapY) +
 				pDock->iMaxIconHeight * pDock->container.fRatio * my_diapo_simple_fScaleMax +
 				myLabels.iLabelSize +
 				my_diapo_simple_lineWidth +
 				my_diapo_simple_arrowHeight + ARROW_TIP;
-			iDeltaHeight = iMaxDockHeight0 - pDock->iMaxDockHeight;
-			//g_print ("%d -> %d\n", iMaxHeight, pDock->iMaxDockHeight);
+			iDeltaHeight = iMaxDockHeight0 - iDockHeight;
+			//g_print ("%d -> %d\n", iMaxHeight, iDockHeight);
 		}
-		
-		pDock->iMinDockWidth = pDock->iMaxDockWidth - 2*X_BORDER_SPACE;
-		pDock->iMinDockHeight = pDock->iMaxDockHeight;
 	}
 	else
 	{
-		pDock->iMaxDockWidth = pDock->iMinDockWidth = X_BORDER_SPACE * 2 + 1;
-		pDock->iMaxDockHeight = pDock->iMinDockHeight = my_diapo_simple_lineWidth + my_diapo_simple_arrowHeight + ARROW_TIP + 1;
+		iDockWidth = X_BORDER_SPACE * 2 + 1;
+		iDockHeight = my_diapo_simple_lineWidth + my_diapo_simple_arrowHeight + ARROW_TIP + 1;
 	}
 	
-	// pas de decorations.
-	pDock->iDecorationsHeight = 0;
-	pDock->iDecorationsWidth  = 0;
-	
-	// On affecte ca aussi au cas ou.
-	pDock->fFlatDockWidth = pDock->iMaxDockWidth;
-	pDock->fMagnitudeMax = my_diapo_simple_fScaleMax / (1+g_fAmplitude);
-	
 	CDSlideData *pData = pDock->pRendererData;
 	if (pData == NULL)
 	{
@@ -335,9 +347,29 @@
 	{
 		int iScrollMargin = iMaxIconWidth * (my_diapo_simple_fScaleMax - 1) / 2
 			+ fScrollbarIconGap
-			+ fScrollbarWidth;  // donc a droite on a : derniere icone en taille max + demi-gapx + + gab + scrollbar + X_BORDER_SPACE
-		pDock->iMaxDockWidth += iScrollMargin;
-	}
+			+ fScrollbarWidth;  // donc a droite on a : derniere icone en taille max + demi-gapx + gap + scrollbar + X_BORDER_SPACE
+		iDockWidth += iScrollMargin;
+	}
+	
+	// taille du dock
+	//if (pDock->container.bIsHorizontal)
+	{
+		pDock->iMaxDockWidth = iDockWidth;
+		pDock->iMaxDockHeight = iDockHeight;
+	}
+	/*else  // pareil, sauf la fleche qui sera sur les cotes.
+	{
+		pDock->iMaxDockWidth = iDockHeight - (my_diapo_simple_arrowHeight + ARROW_TIP);
+		pDock->iMaxDockHeight = iDockWidth + my_diapo_simple_arrowHeight + ARROW_TIP;
+	}*/
+	pDock->iMinDockWidth = pDock->iMaxDockWidth - 2*X_BORDER_SPACE;
+	pDock->iMinDockHeight = pDock->iMaxDockHeight;
+	// pas de decorations.
+	pDock->iDecorationsHeight = 0;
+	pDock->iDecorationsWidth  = 0;
+	// On affecte ca aussi au cas ou.
+	pDock->fFlatDockWidth = pDock->iMaxDockWidth;
+	pDock->fMagnitudeMax = my_diapo_simple_fScaleMax / (1+g_fAmplitude);
 }
 
 
@@ -347,9 +379,9 @@
 static void cairo_dock_draw_frame_horizontal_for_diapo_simple (cairo_t *pCairoContext, CairoDock *pDock)
 {
 	const gdouble arrow_dec = 2;
-	gdouble fFrameWidth  = pDock->iMaxDockWidth - 2 * X_BORDER_SPACE - 0 * my_diapo_simple_radius;
+	gdouble fFrameWidth  = pDock->iMaxDockWidth - 2 * X_BORDER_SPACE;
 	gdouble fFrameHeight = pDock->iMaxDockHeight - (my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth);
-	gdouble fDockOffsetX = X_BORDER_SPACE + 0*my_diapo_simple_radius;
+	gdouble fDockOffsetX = X_BORDER_SPACE;
 	gdouble fDockOffsetY = (pDock->container.bDirectionUp ? .5*my_diapo_simple_lineWidth : my_diapo_simple_arrowHeight + ARROW_TIP);
 	
 	cairo_move_to (pCairoContext, fDockOffsetX, fDockOffsetY);
@@ -412,9 +444,9 @@
 static void cairo_dock_draw_frame_vertical_for_diapo_simple (cairo_t *pCairoContext, CairoDock *pDock)
 {
 	const gdouble arrow_dec = 2;
-	gdouble fFrameWidth  = pDock->iMaxDockWidth - 2 * X_BORDER_SPACE - 2 * my_diapo_simple_radius;
+	gdouble fFrameWidth  = pDock->iMaxDockWidth - 2 * X_BORDER_SPACE;
 	gdouble fFrameHeight = pDock->iMaxDockHeight - (my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth);
-	gdouble fDockOffsetX = X_BORDER_SPACE + my_diapo_simple_radius;
+	gdouble fDockOffsetX = X_BORDER_SPACE;
 	gdouble fDockOffsetY = (pDock->container.bDirectionUp ? .5*my_diapo_simple_lineWidth : my_diapo_simple_arrowHeight + ARROW_TIP);
 	
 	cairo_move_to (pCairoContext, fDockOffsetY, fDockOffsetX);
@@ -544,6 +576,14 @@
 		cairo_save (pCairoContext);
 		cairo_set_line_width (pCairoContext, 2.);
 		
+		if (! pDock->container.bIsHorizontal)
+		{
+			cairo_translate (pCairoContext, pDock->container.iHeight/2, pDock->container.iWidth/2);
+			cairo_rotate (pCairoContext, G_PI/2);
+			cairo_scale (pCairoContext, 1., -1.);
+			cairo_translate (pCairoContext, -pDock->container.iWidth/2, -pDock->container.iHeight/2);
+		}
+		
 		double x_arrow = pDock->iMaxDockWidth - X_BORDER_SPACE - fScrollbarWidth/2;  // pointe de la fleche.
 		double y_arrow_top, y_arrow_bottom;
 		if (pDock->container.bDirectionUp)
@@ -624,9 +664,17 @@
 				0.,
 				(pDock->container.bDirectionUp ? my_diapo_simple_lineWidth : h),  // top left corner.
 				pDock->container.iWidth,
-				pDock->container.iHeight - h);
-			cairo_clip (pCairoContext);
-		}  // sinon clip inutile.
+				pDock->container.iHeight - h - my_diapo_simple_lineWidth);
+		}
+		else
+		{
+			cairo_rectangle (pCairoContext,
+				(pDock->container.bDirectionUp ? my_diapo_simple_lineWidth : h),  // top left corner.
+				0.,
+				pDock->container.iHeight - h - my_diapo_simple_lineWidth,
+				pDock->container.iWidth);
+		}
+		cairo_clip (pCairoContext);
 	}
 	
 	// on dessine les icones, l'icone pointee en dernier.
@@ -636,15 +684,12 @@
 	{
 		icon = ic->data;
 		if (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon))
+		{
+			ic = cairo_dock_get_next_element (ic, pDock->icons);
 			continue;
-		
-		if (icon->bPointed)
-		{
-			
 		}
 		
 		cairo_save (pCairoContext);
-		/// faire un clip si scroll != 0 ...
 		cairo_dock_render_one_icon (icon, pDock, pCairoContext, 1., FALSE);
 		cairo_restore (pCairoContext);
 		
@@ -754,11 +799,16 @@
 		fScrollOffset = (pDock->container.bDirectionUp ? - pData->iScrollOffset : pData->iScrollOffset);
 	
 	// On calcule la position de base pour toutes les icones
-	int iOffsetY = .5 * pDock->iMaxIconHeight * pDock->container.fRatio * (my_diapo_simple_fScaleMax - 1) +  // les icones de la 1ere ligne zooment
-		myLabels.iLabelSize +  // le texte des icones de la 1ere ligne
-		.5 * my_diapo_simple_lineWidth +  // demi-ligne du haut;
-		fScrollOffset;
-	
+	int iOffsetY;
+	if (pDock->container.bDirectionUp)
+		iOffsetY = .5 * pDock->iMaxIconHeight * pDock->container.fRatio * (my_diapo_simple_fScaleMax - 1) +  // les icones de la 1ere ligne zooment
+			myLabels.iLabelSize +  // le texte des icones de la 1ere ligne
+			.5 * my_diapo_simple_lineWidth +  // demi-ligne du haut;
+			fScrollOffset;
+	else
+		iOffsetY = .5 * pDock->iMaxIconHeight * pDock->container.fRatio * (my_diapo_simple_fScaleMax - 1) +  // les icones de la 1ere ligne zooment
+				.5 * my_diapo_simple_lineWidth +  // demi-ligne du bas;
+				fScrollOffset;
 	double fFoldingX = (pDock->fFoldingFactor > .2 ? (pDock->fFoldingFactor - .2) / .8 : 0.);  // placement de 1 a 0.2
 	double fFoldingY = (pDock->fFoldingFactor > .5 ? (pDock->fFoldingFactor - .5) / .5 : 0.);  // placement de 1 a 0.5
 	Icon* icon;
@@ -776,7 +826,9 @@
 		if (pDock->container.bDirectionUp)
 			icon->fY = iOffsetY + (icon->fHeight + my_diapo_simple_iconGapY) * y;
 		else
-			icon->fY = pDock->container.iHeight - iOffsetY - icon->fHeight - (nRowsY - 1 - y) * (icon->fHeight + my_diapo_simple_iconGapY) + (my_diapo_simple_arrowHeight + ARROW_TIP);  // la ligne du haut quand le dock est en bas, reste en haut quand le dock est en haut.
+		{
+			icon->fY = pDock->container.iHeight - iOffsetY - icon->fHeight - (nRowsY - 1 - y) * (icon->fHeight + my_diapo_simple_iconGapY);
+		}
 		
 		// on en deduit le zoom par rapport a la position de la souris.
 		gdouble distanceE = sqrt ((icon->fX + icon->fWidth/2 - Mx) * (icon->fX + icon->fWidth/2 - Mx) + (icon->fY + icon->fHeight/2 - My) * (icon->fY + icon->fHeight/2 - My));
@@ -820,7 +872,6 @@
 		else
 		{
 			icon->bPointed = FALSE;
-			///icon->fAlpha *= 0.75;
 		}
 		
 		// On affecte tous les parametres qui n'ont pas été défini précédement
@@ -850,20 +901,12 @@
 {
 	if (pDock->icons == NULL)
 		return NULL;
-	
-	// On calcule la configuration de la grille
-	gint nRowsX = 0;
-	gint nRowsY = 0;
-	gint nIcones = 0;
-	///nIcones = _cd_rendering_diapo_simple_guess_grid (pDock->icons, &nRowsX, &nRowsY);
-	
 	CDSlideData *pData = pDock->pRendererData;
 	g_return_val_if_fail (pData != NULL, NULL);
-	nRowsX = pData->nRowsX;
-	nRowsY = pData->nRowsY;
-	/*int iMaxIconWidth = ((Icon*)pDock->icons->data)->fWidth;  // approximation un peu bof.
-	nRowsX = (pDock->iMaxDockWidth - 2*X_BORDER_SPACE) / (iMaxIconWidth + my_diapo_simple_iconGapX);
-	nRowsY = (pDock->iMaxDockHeight - (my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth + myLabels.iLabelSize + pDock->iMaxIconHeight * pDock->container.fRatio * my_diapo_simple_fScaleMax)) / (pDock->iMaxIconHeight * pDock->container.fRatio + my_diapo_simple_iconGapY);*/
+	
+	// On recupere la configuration de la grille
+	gint nRowsX = pData->nRowsX;
+	gint nRowsY = pData->nRowsY;
 	
 	// On calcule les parametres des icones
 	Icon *pPointedIcon = _cd_rendering_calculate_icons_for_diapo_simple (pDock, nRowsX, nRowsY, pDock->container.iMouseX, pDock->container.iMouseY);
@@ -1033,11 +1076,8 @@
 	double fFrameWidth  = pDock->iMaxDockWidth - 2*X_BORDER_SPACE;  // longueur du trait horizontal.
 	double fFrameHeight = pDock->iMaxDockHeight - (my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth);  // hauteur du cadre avec les rayons et sans la pointe.
 	double fDockOffsetX, fDockOffsetY;
-	
 	fDockOffsetX = X_BORDER_SPACE;
 	fDockOffsetY = my_diapo_simple_arrowHeight+ARROW_TIP;
-	///fFrameWidth  = pDock->iMaxDockWidth - 2*X_BORDER_SPACE;  // longueur du trait horizontal.
-	///fFrameHeight = pDock->iMaxDockHeight- (my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth);  // hauteur du cadre avec les rayons et sans la pointe.
 	
 	//\_____________ On genere les coordonnees du contour.
 	CairoDockGLPath *pFramePath = cd_generate_frame_path_without_arrow (fFrameWidth, fFrameHeight, fRadius);
@@ -1082,11 +1122,17 @@
 	CDSlideData *pData = pDock->pRendererData;
 	if (pData != NULL && pData->iDeltaHeight != 0)
 	{
-		glPushMatrix ();
 		if (pScrollPath == NULL)
 			pScrollPath = cairo_dock_new_gl_path (4, 0., 0., 0, 0);  // des triangles ou des rectangles => 4 points max.
 		glLineWidth (2.);
-		
+		glPushMatrix ();
+		if (!pDock->container.bIsHorizontal)
+		{
+			glTranslatef (pDock->container.iHeight/2, pDock->container.iWidth/2, 0.);
+			glRotatef (-90., 0., 0., 1.);
+			glScalef (1., -1., 1.);  // comme si bDirectionUp
+			glTranslatef (-pDock->container.iWidth/2, -pDock->container.iHeight/2, 0.);
+		}
 		double x_arrow = pDock->iMaxDockWidth - X_BORDER_SPACE - fScrollbarWidth/2;  // pointe de la fleche.
 		double y_arrow_top, y_arrow_bottom;
 		if (pDock->container.bDirectionUp)
@@ -1145,7 +1191,6 @@
 		cairo_dock_gl_path_rel_line_to (pScrollPath, 0., - fGripHeight);
 		cairo_dock_gl_path_rel_line_to (pScrollPath, -fScrollbarWidth, 0.);
 		cairo_dock_fill_gl_path (pScrollPath, 0);
-		
 		glPopMatrix ();
 	}
 	
@@ -1166,14 +1211,21 @@
 	if (pData != NULL && pData->iDeltaHeight != 0) // on fait un clip pour les icones qui debordent.
 	{
 		int h = my_diapo_simple_arrowHeight + ARROW_TIP + my_diapo_simple_lineWidth;
+		glEnable (GL_SCISSOR_TEST);
 		if (pDock->container.bIsHorizontal)
 		{
-			glEnable (GL_SCISSOR_TEST);
 			glScissor (0,
-				(pDock->container.bDirectionUp ? h : 0),  // lower left corner of the scissor box.
+				(pDock->container.bDirectionUp ? h : my_diapo_simple_lineWidth),  // lower left corner of the scissor box.
 				pDock->container.iWidth,
-				pDock->container.iHeight - h);
-		}  // sinon clip inutile.
+				pDock->container.iHeight - h - my_diapo_simple_lineWidth);
+		}
+		else
+		{
+			glScissor ((!pDock->container.bDirectionUp ? h : my_diapo_simple_lineWidth),  // lower left corner of the scissor box.
+				my_diapo_simple_lineWidth,
+				pDock->container.iHeight - h - my_diapo_simple_lineWidth,
+				pDock->container.iWidth);
+		}
 	}
 	
 	Icon *icon;
@@ -1182,7 +1234,10 @@
 	{
 		icon = ic->data;
 		if (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon))
+		{
+			ic = cairo_dock_get_next_element (ic, pDock->icons);
 			continue;
+		}
 		
 		cairo_dock_render_one_icon_opengl (icon, pDock, 1., FALSE);
 		
@@ -1282,22 +1337,20 @@
 
 void cd_rendering_register_diapo_simple_renderer (const gchar *cRendererName)
 {
-//////////////////////////////////////////////////////////////////////////////////////// On definit le renderer :
-	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);                                           //Nouvelle structure	
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-diapo-simple-view", MY_APPLET_SHARE_DATA_DIR);        //On affecte le readme
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-diapo-simple.jpg", MY_APPLET_SHARE_DATA_DIR);       // la preview
-	pRenderer->compute_size = cd_rendering_calculate_max_dock_size_diapo_simple;                        //La fonction qui défini les bornes     
-	pRenderer->calculate_icons = cd_rendering_calculate_icons_diapo_simple;                                        //qui calcule les param des icones      
-	pRenderer->render = cd_rendering_render_diapo_simple;                                                          //qui initie le calcul du rendu         
-	pRenderer->render_optimized = NULL;//cd_rendering_render_diapo_simple_optimized;                                      //pareil en mieux                       
-	pRenderer->set_subdock_position = cairo_dock_set_subdock_position_linear;                               // ?                                    
-	pRenderer->render_opengl = cd_rendering_render_diapo_simple_opengl;
-	
-	pRenderer->free_data = cd_rendering_free_slide_data;
-	
-	
-	pRenderer->bUseReflect = FALSE;                                                                         // On dit non au reflections
-	pRenderer->cDisplayedName = D_ (cRendererName);
-	
-	cairo_dock_register_renderer (cRendererName, pRenderer);                                    //Puis on signale l'existence de notre rendu
+	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
+	// interface
+	pRenderer->compute_size 	= cd_rendering_calculate_max_dock_size_diapo_simple;
+	pRenderer->calculate_icons 	= cd_rendering_calculate_icons_diapo_simple;
+	pRenderer->render 		= cd_rendering_render_diapo_simple;
+	pRenderer->render_optimized 	= NULL;
+	pRenderer->render_opengl 	= cd_rendering_render_diapo_simple_opengl;
+	pRenderer->free_data 		= cd_rendering_free_slide_data;
+	pRenderer->set_subdock_position = cairo_dock_set_subdock_position_linear;
+	// parametres
+	pRenderer->cReadmeFilePath 	= g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-diapo-simple-view");
+	pRenderer->cPreviewFilePath 	= g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-diapo-simple.jpg");
+	pRenderer->bUseReflect = FALSE;  // pas de reflections
+	pRenderer->cDisplayedName = D_(cRendererName);
+	
+	cairo_dock_register_renderer (cRendererName, pRenderer);
 }

=== modified file 'dock-rendering/src/rendering-init.c'
--- dock-rendering/src/rendering-init.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-init.c	2010-09-07 00:46:10 +0000
@@ -152,7 +152,7 @@
 	cd_rendering_register_diapo_simple_renderer 	(CD_RENDERING_DIAPO_SIMPLE_VIEW_NAME);  // By Paradoxxx_Zero
 	cairo_dock_register_notification (CAIRO_DOCK_LEAVE_DOCK,
 		(CairoDockNotificationFunc) cd_slide_on_leave,
-		CAIRO_DOCK_RUN_FIRST, NULL);
+		CAIRO_DOCK_RUN_FIRST, NULL);  // on l'enregistre ici, et non pas sur le container, pour intercepter la fermeture du dock lorsque l'on en sort en tirant la scrollbar.
 	
 	cd_rendering_register_curve_renderer 			(CD_RENDERING_CURVE_VIEW_NAME);  // By Paradoxxx_Zero and Fabounet
 	

=== modified file 'dock-rendering/src/rendering-panel.c'
--- dock-rendering/src/rendering-panel.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-panel.c	2010-09-07 00:46:10 +0000
@@ -754,16 +754,18 @@
 void cd_rendering_register_panel_renderer (const gchar *cRendererName)
 {
 	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-panel-view", MY_APPLET_SHARE_DATA_DIR);
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-panel.png", MY_APPLET_SHARE_DATA_DIR);
+	// interface
 	pRenderer->compute_size = cd_compute_size;
 	pRenderer->calculate_icons = cd_calculate_icons;
 	pRenderer->render = cd_render;
 	pRenderer->render_optimized = cd_render_optimized;
 	pRenderer->render_opengl = cd_render_opengl;
 	pRenderer->set_subdock_position = cairo_dock_set_subdock_position_linear;
+	// parametres
 	pRenderer->bUseReflect = FALSE;
 	pRenderer->cDisplayedName = D_ (cRendererName);
-
+	pRenderer->cReadmeFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-panel-view");
+	pRenderer->cPreviewFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-panel.png");
+	
 	cairo_dock_register_renderer (cRendererName, pRenderer);
 }

=== modified file 'dock-rendering/src/rendering-parabole.c'
--- dock-rendering/src/rendering-parabole.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-parabole.c	2010-09-07 00:46:10 +0000
@@ -763,15 +763,17 @@
 void cd_rendering_register_parabole_renderer (const gchar *cRendererName)
 {
 	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-parabolic-view", MY_APPLET_SHARE_DATA_DIR);
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-parabolic.jpg", MY_APPLET_SHARE_DATA_DIR);
+	// interface
 	pRenderer->compute_size = cd_rendering_calculate_max_dock_size_parabole;
 	pRenderer->calculate_icons = cd_rendering_calculate_icons_parabole;
 	pRenderer->render = cd_rendering_render_parabole;
 	pRenderer->render_optimized = NULL;
 	pRenderer->render_opengl = cd_rendering_render_parabole_opengl;
 	pRenderer->set_subdock_position = cd_rendering_set_subdock_position_parabole;
+	// parametres
 	pRenderer->cDisplayedName = D_ (cRendererName);
+	pRenderer->cReadmeFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-parabolic-view");
+	pRenderer->cPreviewFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-parabolic.jpg");
 	
 	cairo_dock_register_renderer (cRendererName, pRenderer);
 }

=== modified file 'dock-rendering/src/rendering-rainbow.c'
--- dock-rendering/src/rendering-rainbow.c	2010-08-07 01:43:25 +0000
+++ dock-rendering/src/rendering-rainbow.c	2010-09-07 00:46:10 +0000
@@ -728,15 +728,17 @@
 void cd_rendering_register_rainbow_renderer (const gchar *cRendererName)
 {
 	CairoDockRenderer *pRenderer = g_new0 (CairoDockRenderer, 1);
-	pRenderer->cReadmeFilePath = g_strdup_printf ("%s/readme-rainbow-view", MY_APPLET_SHARE_DATA_DIR);
-	pRenderer->cPreviewFilePath = g_strdup_printf ("%s/preview-rainbow.jpg", MY_APPLET_SHARE_DATA_DIR);
+	// interface
 	pRenderer->compute_size = cd_rendering_calculate_max_dock_size_rainbow;
 	pRenderer->calculate_icons = cd_rendering_calculate_icons_rainbow;
 	pRenderer->render = cd_rendering_render_rainbow;
 	pRenderer->render_optimized = NULL;
 	pRenderer->render_opengl = cd_rendering_render_rainbow_opengl;
 	pRenderer->set_subdock_position = cairo_dock_set_subdock_position_linear;
+	// parametres
 	pRenderer->cDisplayedName = D_ (cRendererName);
+	pRenderer->cReadmeFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/readme-rainbow-view");
+	pRenderer->cPreviewFilePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/preview-rainbow.jpg");
 	
 	cairo_dock_register_renderer (cRendererName, pRenderer);
 }

=== removed file 'drop-indicator/data/messages'
--- drop-indicator/data/messages	2010-08-07 01:43:25 +0000
+++ drop-indicator/data/messages	1970-01-01 00:00:00 +0000
@@ -1,20 +0,0 @@
-_("Drag and drop indicator")
-
-_("Images")
-
-_("Typically an arrow, this will be displayed when you try to drop a new launcher into the dock. Leave this empty to use the default.")
-
-_("Image for the drag & drop animation:")
-
-_("An emblem that will be displayed when you try to drop something on an icon. Leave empty to use the default one.")
-
-_("Image when hovering an icon :")
-
-_("Animation")
-
-_("Speed:")
-
-_("Number of round per second.")
-
-_("Rotation speed :")
-

=== removed file 'dustbin/data/messages'
--- dustbin/data/messages	2010-08-07 01:43:25 +0000
+++ dustbin/data/messages	1970-01-01 00:00:00 +0000
@@ -1,110 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.. Negative values are counted from the right/bottom of the screen")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Theme")
-
-_("Choose one of the available themes:")
-
-_("Name of the image to overwrite the theme's empty image :")
-
-_("Name of the image to overwrite the theme's full image :")
-
-_("Config")
-
-_("Display the following quick info :")
-
-_("None")
-
-_("Number of files")
-
-_("Total number of files")
-
-_("Total weight")
-
-_("Ask confirmation before emptying Dustbin?")
-

=== modified file 'dustbin/src/applet-config.c'
--- dustbin/src/applet-config.c	2010-08-07 01:43:25 +0000
+++ dustbin/src/applet-config.c	2010-09-07 00:46:10 +0000
@@ -38,7 +38,6 @@
 	
 	myConfig.iQuickInfoType = CD_CONFIG_GET_INTEGER_WITH_DEFAULT ("Configuration", "quick info", CD_DUSTBIN_INFO_NB_TRASHES);
 	myConfig.bAskBeforeDelete = CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Configuration", "confirm", TRUE);
-	myConfig.iActionOnMiddleClick = CD_CONFIG_GET_INTEGER ("Configuration", "middle click");
 CD_APPLET_GET_CONFIG_END
 
 

=== modified file 'dustbin/src/applet-init.c'
--- dustbin/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ dustbin/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -31,9 +31,8 @@
 	2, 2, 0,
 	CAIRO_DOCK_CATEGORY_APPLET_FILES,
 	N_("This applet manages the dustbin\n"
-	"You can threw files and unmount disks by drag andn droping them on the icon.\n"
-	"The applet can warn you if you use too much space\n"
-	"Middle-click to display usefull info about the dustbin."),
+	"You can threw files and unmount disks by drag-and-dropping them on the icon.\n"
+	"Middle-click on the icon will empty the dustbin."),
 	"Fabounet (Fabrice Rey)")
 
 static void _get_theme (void)
@@ -139,6 +138,7 @@
 		
 		//\_______________ On stoppe la surveillance.
 		cd_dustbin_stop (myApplet);
+		CD_APPLET_SET_QUICK_INFO_ON_MY_ICON (NULL);
 		
 		//\_______________ On la redemarre.
 		_get_theme ();

=== modified file 'dustbin/src/applet-notifications.c'
--- dustbin/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ dustbin/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -41,40 +41,85 @@
 	cairo_dock_fm_launch_uri ("trash:/"/**myData.cDustbinPath*/);  // on force l'utilisation de trash:/ ici, car on sait que tous les backends sauront l'ouvrir.
 }
 
+
+static void _free_info_dialog (CairoDockModuleInstance *myApplet)
+{
+	myData.pInfoDialog = NULL;
+	if (myData.pInfoTask != NULL)
+	{
+		cairo_dock_discard_task (myData.pInfoTask);
+		myData.pInfoTask = NULL;
+	}
+}
+static void _measure_trash (CairoDockModuleInstance *myApplet)
+{
+	myData._iInfoMeasure = cairo_dock_fm_measure_diretory (myData.cDustbinPath, (myConfig.iQuickInfoType == CD_DUSTBIN_INFO_WEIGHT ? 0 : 1), TRUE, &myData.pInfoTask->bDiscard);
+}
+static gboolean _display_result (CairoDockModuleInstance *myApplet)
+{
+	if (myData.pInfoDialog != NULL)
+	{
+		int iSize=-1, iNbFiles=-1, iTrashes=-1;
+		if (myConfig.iQuickInfoType == CD_DUSTBIN_INFO_WEIGHT)
+		{
+			iSize = myData.iMeasure;
+			iNbFiles = myData._iInfoMeasure;
+		}
+		else
+		{
+			iSize = myData._iInfoMeasure;
+			if (myConfig.iQuickInfoType == CD_DUSTBIN_INFO_NB_FILES)
+				iNbFiles = myData.iMeasure;
+			else
+			{
+				gint iCancel = 0;
+				iTrashes = cairo_dock_fm_measure_diretory (myData.cDustbinPath, 0, FALSE, &iCancel);  // ca c'est rapide.
+			}
+		}
+		
+		cairo_dock_set_dialog_message_printf (myData.pInfoDialog, "%s :\n %d %s\n %.2f %s", D_("The trash contains"),
+		iNbFiles > -1 ? iNbFiles : iTrashes,
+		iNbFiles > -1 ? D_("files") : D_("elements"),
+		(iSize > 1e6 ? (iSize >> 10) / 1024. : iSize / 1024.),
+		(iSize > 1e6 ? D_("Mo") : D_("Ko")));
+	}
+}
 static void _cd_dustbin_show_info (GtkMenuItem *menu_item, CairoDockModuleInstance *myApplet)
 {
 	gsize iSize, iNbFiles;
 	gint iCancel = 0;
-	if (myConfig.iQuickInfoType == CD_DUSTBIN_INFO_WEIGHT)
-	{
-		iSize = myData.iMeasure;
-	}
-	else
-	{
-		iSize = cairo_dock_fm_measure_diretory (myData.cDustbinPath, 0, TRUE, &iCancel);
-	}
-	iNbFiles = cairo_dock_fm_measure_diretory (myData.cDustbinPath, 0, FALSE, &iCancel);
-	
-	cairo_dock_remove_dialog_if_any (myIcon);
-	cairo_dock_show_temporary_dialog_with_icon_printf ("%s :\n %d %s\n %.2f %s",
-		myIcon, myContainer,
-		5000,
-		"same icon",
-		D_("The trash contains"),
-		iNbFiles,
-		D_("files"),
-		(iSize > 1e6 ? (iSize >> 10) / 1024. : iSize / 1024.),
-		(iSize > 1e6 ? D_("Mo") : D_("Ko")));
+	
+	if (myData.pInfoDialog != NULL)
+		cairo_dock_dialog_unreference (myData.pInfoDialog);
+	if (myData.pInfoTask != NULL)
+		cairo_dock_discard_task (myData.pInfoTask);
+	
+	CairoDialogAttribute attr;
+	memset (&attr, 0, sizeof (CairoDialogAttribute));
+	attr.cImageFilePath = "same icon";
+	attr.cText = g_strdup_printf ("%s ...\n\n", D_("Counting total size and files number..."));
+	attr.pFreeDataFunc = (GFreeFunc)_free_info_dialog;
+	attr.pUserData = myApplet;
+	myData.pInfoDialog = cairo_dock_build_dialog (&attr, myIcon, myContainer);
+	
+	// launch the task and update the dialog when finished.
+	myData.pInfoTask = cairo_dock_new_task (0,
+		(CairoDockGetDataAsyncFunc) _measure_trash,
+		(CairoDockUpdateSyncFunc) _display_result,
+		myApplet);
+	cairo_dock_launch_task (myData.pInfoTask);
 }
 
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pModuleSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
 	
-	CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Show Trash (click)"), _cd_dustbin_show_trash, CD_APPLET_MY_MENU, NULL);
-	CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("Empty Trash (middle-click)"), _cd_dustbin_delete_trash, CD_APPLET_MY_MENU, NULL);
-	
-	CD_APPLET_ADD_IN_MENU (D_("Display dustbins information"), _cd_dustbin_show_info, CD_APPLET_MY_MENU);
-	
+	// Main Menu
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Show Trash (click)"), GTK_STOCK_OPEN, _cd_dustbin_show_trash, CD_APPLET_MY_MENU, NULL);
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Empty Trash (middle-click)"), GTK_STOCK_DELETE, _cd_dustbin_delete_trash, CD_APPLET_MY_MENU, NULL);
+	
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Display dustbins information"), GTK_STOCK_INFO, _cd_dustbin_show_info, CD_APPLET_MY_MENU);
+	
+	// Sub-Menu
 	CD_APPLET_ADD_ABOUT_IN_MENU (pModuleSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 

=== modified file 'dustbin/src/applet-struct.h'
--- dustbin/src/applet-struct.h	2010-08-07 01:43:25 +0000
+++ dustbin/src/applet-struct.h	2010-09-07 00:46:10 +0000
@@ -36,7 +36,6 @@
 	gchar *cFullUserImage;
 	CdDustbinInfotype iQuickInfoType;
 	gboolean bAskBeforeDelete;
-	gint iActionOnMiddleClick;
 	} ;
 
 struct _AppletData {
@@ -48,6 +47,11 @@
 	gchar *cDustbinPath;  // donnee constante.
 	gboolean bMonitoringOK;
 	gboolean bDisplayFullIcon;
+	CairoDockTask *pInfoTask;  // tache de la mesure de l'info.
+	// shared memory
+	gsize _iInfoMeasure;
+	// end of shared memory
+	CairoDialog *pInfoDialog;
 	} ;
 
 #define CD_DUSTBIN_DIALOG_DURATION 4000

=== modified file 'dustbin/src/applet-trashes-manager.c'
--- dustbin/src/applet-trashes-manager.c	2010-08-07 01:43:25 +0000
+++ dustbin/src/applet-trashes-manager.c	2010-09-07 00:46:10 +0000
@@ -35,7 +35,7 @@
 static gboolean cd_dustbin_display_result (CairoDockModuleInstance *myApplet)
 {
 	myData.iMeasure = myData._iMeasure;
-	g_print ("trash measure : %d\n", myData.iMeasure);
+	//g_print ("trash measure : %d\n", myData.iMeasure);
 	
 	if (myData.iMeasure == 0)
 	{
@@ -66,6 +66,10 @@
 		{
 			CD_APPLET_SET_SIZE_AS_QUICK_INFO (myData.iMeasure);
 		}
+		else  // on vire les "..."
+		{
+			CD_APPLET_SET_QUICK_INFO_ON_MY_ICON (NULL);
+		}
 	}
 	
 	CD_APPLET_REDRAW_MY_ICON;
@@ -75,7 +79,7 @@
 static void cd_dustbin_on_file_event (CairoDockFMEventType iEventType, const gchar *cURI, CairoDockModuleInstance *myApplet)
 {
 	g_return_if_fail (cURI != NULL);
-	g_print ("%s (%s, %d)\n", __func__, cURI, myData.iMeasure);
+	//g_print ("%s (%s, %d)\n", __func__, cURI, myData.iMeasure);
 	gchar *cQuickInfo = NULL;
 	switch (iEventType)
 	{
@@ -83,14 +87,14 @@
 		case CAIRO_DOCK_FILE_CREATED :
 			if (cairo_dock_task_is_running (myData.pTask) || cairo_dock_task_is_active (myData.pTask))
 			{
-				g_print ("cancel measure\n");
+				//g_print ("cancel measure\n");
 				cairo_dock_discard_task (myData.pTask);
 				myData.pTask = cairo_dock_new_task (0,
 					(CairoDockGetDataAsyncFunc) cd_dustbin_measure_trash,
 					(CairoDockUpdateSyncFunc) cd_dustbin_display_result,
 					myApplet);
 			}
-			else
+			else if (myConfig.iQuickInfoType == CD_DUSTBIN_INFO_WEIGHT || myConfig.iQuickInfoType == CD_DUSTBIN_INFO_NB_FILES)
 				CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("%s...", (myDesklet ? D_("calculating") : ""));
 			cairo_dock_launch_task_delayed (myData.pTask, 500);
 		break ;
@@ -139,4 +143,9 @@
 	{
 		cairo_dock_fm_remove_monitor_full (myData.cDustbinPath, TRUE, NULL);
 	}
+	
+	cairo_dock_dialog_unreference (myData.pInfoDialog);
+	
+	cairo_dock_free_task (myData.pInfoTask);
+	myData.pInfoTask = NULL;
 }

=== modified file 'gvfs-integration/cairo-dock-gio-vfs.c'
--- gvfs-integration/cairo-dock-gio-vfs.c	2010-08-07 01:43:25 +0000
+++ gvfs-integration/cairo-dock-gio-vfs.c	2010-09-07 00:46:10 +0000
@@ -867,7 +867,7 @@
 static gsize cairo_dock_gio_vfs_measure_directory (const gchar *cBaseURI, gint iCountType, gboolean bRecursive, gint *pCancel)
 {
 	g_return_val_if_fail (cBaseURI != NULL, 0);
-	g_print ("%s (%s)\n", __func__, cBaseURI);
+	//cd_debug ("%s (%s)", __func__, cBaseURI);
 	
 	gchar *cURI = (*cBaseURI == '/' ? g_strconcat ("file://", cBaseURI, NULL) : (gchar*)cBaseURI);  // on le libere a la fin si necessaire.
 	
@@ -911,7 +911,7 @@
 		g_string_printf (sFilePath, "%s/%s", cURI, cFileName);
 		GFile *file = g_file_new_for_uri (sFilePath->str);
 		const gchar *cTargetURI = g_file_get_uri (file);
-		g_print ("+ %s [%s]\n", cFileName, cTargetURI);
+		//g_print ("+ %s [%s]\n", cFileName, cTargetURI);
 		GFileType iFileType = g_file_info_get_file_type (pFileInfo);
 		
 		if (iFileType == G_FILE_TYPE_DIRECTORY && bRecursive)
@@ -933,7 +933,7 @@
 		g_object_unref (pFileInfo);
 	} while (! g_atomic_int_get (pCancel));
 	if (*pCancel)
-		g_print ("mesure annulee\n");
+		cd_debug ("mesure annulee");
 	
 	g_object_unref (pFileEnum);
 	g_object_unref (pFile);
@@ -1383,9 +1383,11 @@
 	
 	GError *erreur = NULL;
 	gboolean bSuccess = TRUE;
+	#if (GLIB_MAJOR_VERSION > 2) || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 18)
 	if (bDirectory)
 		g_file_make_directory_with_parents (pFile, NULL, &erreur);
 	else
+	#endif
 		g_file_create (pFile, G_FILE_CREATE_PRIVATE, NULL, &erreur);
 	if (erreur != NULL)
 	{
@@ -1680,7 +1682,11 @@
 		#endif
 		pData[1] = g_strdup (g_app_info_get_executable (pAppInfo));
 		if (pIcon)
+		#if (GLIB_MAJOR_VERSION > 2) || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 20)
 			pData[2] = g_icon_to_string (pIcon);
+		#else
+			pData[2] = _cd_get_icon_path (pIcon, NULL);
+		#endif
 		pList = g_list_prepend (pList, pData);
 	}
 	

=== removed file 'icon-effect/data/messages'
--- icon-effect/data/messages	2010-08-07 01:43:25 +0000
+++ icon-effect/data/messages	1970-01-01 00:00:00 +0000
@@ -1,218 +0,0 @@
-_("Global")
-
-_("when hovering over an icon")
-
-_("Effects used:")
-
-_("Fire")
-
-_("Stars")
-
-_("Rain")
-
-_("Snow")
-
-_("Storm")
-
-_("Firework")
-
-_("when clicking on an launcher")
-
-_("Effects used on launcher:")
-
-_("Fire")
-
-_("Stars")
-
-_("Rain")
-
-_("Snow")
-
-_("Storm")
-
-_("Firework")
-
-_("when clicking on an application")
-
-_("Effects used on applications:")
-
-_("Fire")
-
-_("Stars")
-
-_("Rain")
-
-_("Snow")
-
-_("Storm")
-
-_("Firework")
-
-_("when clicking on an applet")
-
-_("Effects used on applets:")
-
-_("Fire")
-
-_("Stars")
-
-_("Rain")
-
-_("Snow")
-
-_("Storm")
-
-_("Firework")
-
-_("Draw in background?")
-
-_("Rotate effects with dock?")
-
-_("Fire")
-
-_("In ms. Set 0 to not use this effect.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Colours")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Random colours?")
-
-_("This will slightly alter your colours, so you may have to modify them.")
-
-_("Add luminance?")
-
-_("Particles")
-
-_("Number of particles:")
-
-_("Particle size:")
-
-_("Particle speed:")
-
-_("Stars")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Colours")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Random colours?")
-
-_("Particles")
-
-_("Number of particles:")
-
-_("Particle size:")
-
-_("Snow")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Colours")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Particles")
-
-_("Number of particles:")
-
-_("Particle size:")
-
-_("Particle speed:")
-
-_("Rain")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Colours")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Particles")
-
-_("Number of particles:")
-
-_("Particle size:")
-
-_("Particle speed:")
-
-_("Storm")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Colours")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Particles")
-
-_("Number of particles:")
-
-_("Particle size:")
-
-_("Firework")
-
-_("In ms.")
-
-_("Duration of the animation:")
-
-_("Repeat while icon is pointed to?")
-
-_("Colours")
-
-_("Default colour:")
-
-_("Random colours?")
-
-_("It particularily fits a dark wallpaper or a dark theme.")
-
-_("Add luminance?")
-
-_("Particles")
-
-_("Number of sources:")
-
-_("Number of particles per source:")
-
-_("In percentage of the icon's size.")
-
-_("Radius of the explosion:")
-
-_("Particle size:")
-
-_("Show the launching?")
-
-_("Particle friction:")
-

=== removed file 'illusion/data/messages'
--- illusion/data/messages	2010-08-07 01:43:25 +0000
+++ illusion/data/messages	1970-01-01 00:00:00 +0000
@@ -1,84 +0,0 @@
-_("Global")
-
-_("Animation on disappearance:")
-
-_("Evaporate")
-
-_("Fade out")
-
-_("Explode")
-
-_("Break")
-
-_("Black Hole")
-
-_("Random")
-
-_("Animation on appearance:")
-
-_("Evaporate")
-
-_("Fade out")
-
-_("Explode")
-
-_("Break")
-
-_("Black Hole")
-
-_("Random")
-
-_("Evaporate")
-
-_("Duration of the animation:")
-
-_("Colours")
-
-_("st color of gradation :")
-
-_("nd color of gradation :")
-
-_("Random colours?")
-
-_("Particles")
-
-_("Number of particles:")
-
-_("Particle size:")
-
-_("Particle speed:")
-
-_("Evaporate upwards?")
-
-_("Fade out")
-
-_("Duration of the animation:")
-
-_("Explode")
-
-_("Duration of the animation:")
-
-_("Number of pieces:")
-
-_("Explosion radius:")
-
-_("Break the icon into cubes?")
-
-_("Break")
-
-_("Duration of the animation:")
-
-_("Number of pieces:")
-
-_("Black Hole")
-
-_("Duration of the animation:")
-
-_("in round per second.")
-
-_("Rotation speed :")
-
-_("The greater, the faster the icon will collapse to the center.")
-
-_("Attraction of the Black Hole:")
-

=== removed file 'keyboard-indicator/data/messages'
--- keyboard-indicator/data/messages	2010-08-07 01:43:25 +0000
+++ keyboard-indicator/data/messages	1970-01-01 00:00:00 +0000
@@ -1,114 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("caps lock, num lock, etc.")
-
-_("Display keyboard locks as quick-info?")
-
-_("in ms. Set to 0 if you don't want an animation when the keyboard layout changes.")
-
-_("Duration of the transition animation:")
-
-_("Display")
-
-_("Font:")
-
-_("Text colour")
-
-_("Outline text?")
-
-_("the smaller is the text in the icon. 1 means the text fills all the icon.")
-
-_("Relative size of the text :")
-
-_("smaller")
-
-_("normal")
-
-_("Background image:")
-

=== modified file 'keyboard-indicator/src/applet-notifications.c'
--- keyboard-indicator/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ keyboard-indicator/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -42,15 +42,20 @@
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-		CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
-		
-		XklEngine *pEngine = xkl_engine_get_instance (cairo_dock_get_Xdisplay ());  // singleton.
-		const gchar **pGroupNames = xkl_engine_get_groups_names (pEngine);
-		int i;
-		for (i = 0; pGroupNames[i] != NULL && *pGroupNames[i] != '-'; i ++)
-		{
-			CD_APPLET_ADD_IN_MENU_WITH_DATA (pGroupNames[i], _select_group, pSubMenu, GINT_TO_POINTER (i));
-		}
+	
+	// Main Menu
+	XklEngine *pEngine = xkl_engine_get_instance (cairo_dock_get_Xdisplay ());  // singleton.
+	const gchar **pGroupNames = xkl_engine_get_groups_names (pEngine);
+	int i;
+	for (i = 0; pGroupNames[i] != NULL && *pGroupNames[i] != '-'; i ++)
+	{
+		CD_APPLET_ADD_IN_MENU_WITH_DATA (pGroupNames[i], _select_group, CD_APPLET_MY_MENU, GINT_TO_POINTER (i));
+	}
+	
+	// Sub-Menu
+	if (pSubMenu == CD_APPLET_MY_MENU)
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
+	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 
 

=== removed file 'logout/data/messages'
--- logout/data/messages	2010-08-07 01:43:25 +0000
+++ logout/data/messages	1970-01-01 00:00:00 +0000
@@ -1,102 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Leave empty to use the default one.")
-
-_("Image filename:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Leave empty to execute the default command.")
-
-_("User-defined command to execute for logout:")
-
-_("This will be available when middle-clicking. Leave empty to execute the default command, which depends on your distribution. In some cases the command to shutdown is the same as the one to log out.")
-
-_("User-defined command to execute for shutdown:")
-
-_("Invert buttons?")
-

=== modified file 'logout/src/applet-notifications.c'
--- logout/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ logout/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -17,7 +17,6 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-
 #include <stdlib.h>
 #include <string.h>
 #include <signal.h>
@@ -123,8 +122,10 @@
 {
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
 	if (g_iDesktopEnv == CAIRO_DOCK_GNOME)
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Lock screen"), MY_APPLET_SHARE_DATA_DIR"/icon-lock.png", _cd_logout_lock_screen, pSubMenu);
-	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Program an automatic shut-down"), MY_APPLET_SHARE_DATA_DIR"/icon-scheduling.png", _cd_logout_program_shutdown, pSubMenu);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Lock screen"), MY_APPLET_SHARE_DATA_DIR"/icon-lock.png", _cd_logout_lock_screen, CD_APPLET_MY_MENU);
+	
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Program an automatic shut-down"), MY_APPLET_SHARE_DATA_DIR"/icon-scheduling.png", _cd_logout_program_shutdown, CD_APPLET_MY_MENU);  // pas beaucoup d'entrees => on le met dans le menu global.
+	
 	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 }
 CD_APPLET_ON_BUILD_MENU_END
@@ -142,7 +143,8 @@
 		if (g_iDesktopEnv == CAIRO_DOCK_KDE)
 			cairo_dock_launch_command ("dbus-send --session --type=method_call --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:0 int32:2 int32:2");
 		else
-			cairo_dock_launch_command ("dbus-send --session --type=method_call --dest=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Shutdown");  // --print-reply --reply-timeout=2000
+			///cairo_dock_launch_command ("dbus-send --session --type=method_call --dest=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Shutdown");  // --print-reply --reply-timeout=2000
+			cairo_dock_launch_command ("dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop");  // Suspend est aussi possible
 		
 		myData.iSidTimer = 0;
 		CD_APPLET_LEAVE (FALSE);  // inutile de faire quoique ce soit d'autre, puisque l'ordi s'eteint.

=== modified file 'mail/data/mail.conf.in'
--- mail/data/mail.conf.in	2010-08-07 01:43:25 +0000
+++ mail/data/mail.conf.in	2010-09-07 00:46:10 +0000
@@ -124,7 +124,7 @@
 #X[Behaviour] 
 frame_config_mail =
 
-#B Show new messages' content?
+#B[2] Show new messages' content?
 show content = true
 
 #i[1;30] Maximum of new messages shown?
@@ -132,14 +132,14 @@
 max shown mails = 0
 
 #i[3;30] Duration of the dialogue
-#{in seconds}
+#{in seconds.}
 time_dialog = 5
 
 #b Check mail account on startup?
 #{If you have any problem with the applet, uncheck this option during the maintenance mode, then after the dock has relaunched, remove/modify the mail accounts you want.}
 check = true
 
-#b Total number of files
+#b Show '0' if there is no mail?
 #{If checked, the number of mails will be shown even if there is no mail.}
 show zero mail = true
 

=== removed file 'mail/data/messages'
--- mail/data/messages	2010-08-07 01:43:25 +0000
+++ mail/data/messages	1970-01-01 00:00:00 +0000
@@ -1,136 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Sub-Dock view")
-
-_("Leave empty to use default sub-dock view.")
-
-_("Sub-dock view name:")
-
-_("Theme")
-
-_("Choose one of the available themes:")
-
-_("Name of the file for the \"no mail\" image :")
-
-_("Name of the file for the \"has mail\" image :")
-
-_("Play sound when a new e-mail is received?")
-
-_("Name of the file for the \"new mail\" sound :")
-
-_("Behaviour")
-
-_("Show new messages' content?")
-
-_("Maximum number of mails that will be previewed.")
-
-_("Maximum of new messages shown?")
-
-_("in seconds")
-
-_("Duration of the dialogue")
-
-_("If you have any problem with the applet, uncheck this option during the maintenance mode, then after the dock has relaunched, remove/modify the mail accounts you want.")
-
-_("Check mail account on startup?")
-
-_("If checked, the number of mails will be shown even if there is no mail.")
-
-_("Total number of files")
-
-_("Mail application")
-
-_("Preferred mail application to launch on left-click :")
-
-_("Add a mail account (you've to launch the applet)")
-
-_("The new account will be created with the specified type and name.")
-
-_("Add an account with specified type and name:")
-

=== modified file 'mail/src/cd-mail-applet-accounts.c'
--- mail/src/cd-mail-applet-accounts.c	2010-08-07 01:43:25 +0000
+++ mail/src/cd-mail-applet-accounts.c	2010-09-07 00:46:10 +0000
@@ -36,7 +36,7 @@
 	pMailAccount->icon = pIcon;
 
 // Translation Hack:
-const char *strings_to_translate[16] = {N_("Server address:"), N_("myHost"), N_("Username:"), N_("Password:"), N_("The password will be crypted."), N_("Port:"), N_("Enter 0 to use the default port. Default ports are 110 for POP3 or APOP and 995 for POP3S."), N_("Use a secure connection (SSL)"), N_("Timeout"), N_("In minutes."), N_("Specific mail application"), N_("Leave empty to use the default mail application."), N_("Directory on server:"), N_("Path of mbox file:"), N_("Path to Mail directory:"), N_("Address of feed:")};
+const char *strings_to_translate[16] = {N_("Server address:"), N_("myHost"), N_("Username:"), N_("Password:"), N_("The password will be crypted."), N_("Port:"), N_("Enter 0 to use the default port. Default ports are 110 for POP3 or APOP and 995 for POP3S."), N_("Use a secure connection (SSL)"), N_("Refresh time:"), N_("In minutes."), N_("Specific mail application"), N_("Leave empty to use the default mail application."), N_("Directory on server:"), N_("Path of mbox file:"), N_("Path to Mail directory:"), N_("Address of feed:")};
 
 void cd_mail_create_pop3_params( GKeyFile *pKeyFile, const gchar *pMailAccountName )
 {
@@ -59,7 +59,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "use secure connection", "b0 Use a secure connection (SSL)", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);
@@ -125,7 +125,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "server_directory", "s0 Directory on server:", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);
@@ -184,7 +184,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "filename", "s0 Path of mbox file:", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);
@@ -220,7 +220,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "type", ">0 ", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);
@@ -251,7 +251,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "path", "s0 Path to Mail directory:", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);
@@ -293,7 +293,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "password", "p0 Password:", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);
@@ -393,7 +393,7 @@
   g_key_file_set_comment (pKeyFile, pMailAccountName, "path", "s0 Address of feed:", NULL);
 
   g_key_file_set_integer (pKeyFile, pMailAccountName, "timeout mn", 10);
-  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Timeout:\n{In minutes.}", NULL);
+  g_key_file_set_comment (pKeyFile, pMailAccountName, "timeout mn", "I0[1;30] Refresh time:\n{In minutes.}", NULL);
 
   g_key_file_set_string (pKeyFile, pMailAccountName, "mail application", "");
   g_key_file_set_comment (pKeyFile, pMailAccountName, "mail application", "s0 Specific mail application\n{Leave empty to use the default mail application.}", NULL);

=== modified file 'mail/src/cd-mail-applet-notifications.c'
--- mail/src/cd-mail-applet-notifications.c	2010-08-07 01:43:25 +0000
+++ mail/src/cd-mail-applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -289,7 +289,7 @@
 
 CD_APPLET_ON_SCROLL_BEGIN
 	if (myData.pMailAccounts == NULL)
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 
 	CDMailAccount *pMailAccount = NULL;
 	guint i;
@@ -301,12 +301,12 @@
 			break ;
 	}
 	if (i == myData.pMailAccounts->len || pMailAccount == NULL)
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 	
 	if (cairo_dock_task_is_running (pMailAccount->pAccountMailTimer))
 	{
 		cd_debug ("account is being checked, wait a second\n");
-		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 	}
 	
 	/* Ensure the connection is alive */

=== removed file 'motion-blur/data/messages'
--- motion-blur/data/messages	2010-08-07 01:43:25 +0000
+++ motion-blur/data/messages	1970-01-01 00:00:00 +0000
@@ -1,6 +0,0 @@
-_("Configuration")
-
-_("Also blur on mouse movement?")
-
-_("Blur amount:")
-

=== removed file 'musicPlayer/data/messages'
--- musicPlayer/data/messages	2010-08-07 01:43:25 +0000
+++ musicPlayer/data/messages	1970-01-01 00:00:00 +0000
@@ -1,190 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Leave it empty to display the name of the player currently controlled.")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Audio Player")
-
-_("Player to control:")
-
-_("Amarok 2")
-
-_("Audacious")
-
-_("Banshee")
-
-_("Clementine")
-
-_("Exaile")
-
-_("Exaile 0.3")
-
-_("Guayadeque")
-
-_("Listen")
-
-_("Qmmp")
-
-_("QuodLibet")
-
-_("Rhythmbox")
-
-_("Songbird")
-
-_("XMMS 2")
-
-_("XMMS")
-
-_("This will prevent the player icon appearing in the taskbar. The applet's icon will then behave as a launcher, an application and an applet.")
-
-_("Steal the player's icon from the taskbar?")
-
-_("Actions on click and middle-click :")
-
-_("Play/Pause on click, Next on middle-click")
-
-_("Show/Hide player on click, Play/Pause on middle-click")
-
-_("Action on music change")
-
-_("Show tooltips?")
-
-_("in seconds")
-
-_("Time length of tooltips:")
-
-_("Animation when music changes:")
-
-_("Display")
-
-_("Information to display on the icon :")
-
-_("Nothing")
-
-_("Time Elapsed")
-
-_("Time Remaining")
-
-_("Track number")
-
-_("Display album's cover?")
-
-_("You need to be connected to the Internet.")
-
-_("Allow Cairo-Dock to download missing covers?")
-
-_("requires OpenGL.")
-
-_("Use 3D themes?")
-
-_("requires OpenGL.")
-
-_("List of available 3D themes for covers :")
-
-_("Customisation")
-
-_("Leave empty to use the default icon.")
-
-_("'Default' icon image name:")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'play' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'stop' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("Name of the image for the 'pause' icon :")
-
-_("Leave empty to use the default icon.")
-
-_("'Broken' icon image name:")
-

=== modified file 'musicPlayer/data/musicPlayer.conf.in'
--- musicPlayer/data/musicPlayer.conf.in	2010-08-07 01:43:25 +0000
+++ musicPlayer/data/musicPlayer.conf.in	2010-09-07 00:46:10 +0000
@@ -97,7 +97,7 @@
 
 #F[Audio Player;gtk-cdrom]
 frame_player =
-#L[Amarok 2;Audacious;Banshee;Clementine;Exaile;Exaile 0.3;Guayadeque;Listen;Qmmp;QuodLibet;Rhythmbox;Songbird;XMMS 2;XMMS] Player to control:
+#L[Amarok 2;Audacious;Banshee;Clementine;Exaile;Exaile 0.3;GMusicBrowser;Guayadeque;Listen;Qmmp;QuodLibet;Rhythmbox;Songbird;XMMS 2;XMMS] Player to control:
 current-player=Rhythmbox
 
 #b Steal the player's icon from the taskbar?
@@ -115,7 +115,7 @@
 enable_dialogs=true
 
 #i[1;30] Time length of tooltips:
-#{in seconds}
+#{in seconds.}
 time_dialog = 4
 
 #a+ Animation when music changes:

=== modified file 'musicPlayer/src/CMakeLists.txt'
--- musicPlayer/src/CMakeLists.txt	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/CMakeLists.txt	2010-09-07 00:46:10 +0000
@@ -33,6 +33,8 @@
 	applet-exaile.h
 	applet-exaile3.c
 	applet-exaile3.h
+	applet-gmusicbrowser.c
+	applet-gmusicbrowser.h
 	applet-guayadeque.c
 	applet-guayadeque.h
 	applet-listen.c

=== modified file 'musicPlayer/src/applet-config.c'
--- musicPlayer/src/applet-config.c	2010-02-14 00:51:22 +0000
+++ musicPlayer/src/applet-config.c	2010-09-07 00:46:10 +0000
@@ -29,7 +29,7 @@
 CD_APPLET_GET_CONFIG_BEGIN
 	myConfig.iQuickInfoType 		= CD_CONFIG_GET_INTEGER_WITH_DEFAULT ("Configuration", "quick-info_type", MY_APPLET_TIME_ELAPSED);
 	
-	myConfig.cMusicPlayer 			= CD_CONFIG_GET_STRING_WITH_DEFAULT ("Configuration", "current-player", "XMMS");
+	myConfig.cMusicPlayer 			= CD_CONFIG_GET_STRING_WITH_DEFAULT ("Configuration", "current-player", "Rhythmbox");
 	myConfig.cDefaultTitle			= CD_CONFIG_GET_STRING ("Icon", "name");
 	if (myConfig.cDefaultTitle == NULL || *myConfig.cDefaultTitle == '\0')
 	{

=== modified file 'musicPlayer/src/applet-cover.c'
--- musicPlayer/src/applet-cover.c	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/applet-cover.c	2010-09-07 00:46:10 +0000
@@ -81,6 +81,7 @@
 	if (myData.cArtist == NULL || myData.cAlbum == NULL)
 	{
 		myData.cover_exist = FALSE;
+		cd_debug ("MP : no artist and/or album, skip");
 		return ;
 	}
 	if (cGivenCoverPath != NULL)  // le lecteur nous donne une adresse, eventuellement distante.

=== modified file 'musicPlayer/src/applet-draw.c'
--- musicPlayer/src/applet-draw.c	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/applet-draw.c	2010-09-07 00:46:10 +0000
@@ -244,11 +244,11 @@
 				cd_musicplayer_popup_info ();
 			}
 		}
-		else
+		/**else
 		{
 			cd_musicplayer_set_surface (PLAYER_STOPPED);
 			CD_APPLET_SET_NAME_FOR_MY_ICON (myData.cTitle ? myData.cTitle : myData.pCurrentHandeler ? myData.pCurrentHandeler->name : myConfig.cDefaultTitle);
-		}
+		}*/
 		
 		//Affichage de la couverture de l'album.
 		if (myData.iSidCheckCover != 0)  // on stoppe la precedente boucle de verification de la couverture.
@@ -328,17 +328,17 @@
 			str);
 	}
 	else if (myData.iPlayingStatus == PLAYER_PLAYING || myData.iPlayingStatus == PLAYER_PAUSED)
-		cairo_dock_show_temporary_dialog_with_icon_printf ("%s : %s\n%s : %s\n%s : %s\n%s : %d:%02d\n%s %d, %s %d/%d",
+		cairo_dock_show_temporary_dialog_with_icon_printf ("%s: %s\n%s: %s\n%s: %s\n%s: %d:%02d\n%s %d, %s %d/%d",
 			myIcon,
 			myContainer,
 			myConfig.iDialogDuration,
 			MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE,
 			D_("Artist"),
 			myData.cArtist != NULL ? myData.cArtist : D_("Unknown"),
+			D_("Title"),
+			myData.cTitle != NULL ? myData.cTitle : D_("Unknown"),
 			D_("Album"),
 			myData.cAlbum != NULL ? myData.cAlbum : D_("Unknown"),
-			D_("Title"),
-			myData.cTitle != NULL ? myData.cTitle : D_("Unknown"),
 			D_("Length"),
 			myData.iSongLength/60, myData.iSongLength%60,  // les chansons de plus d'1h, c'est rare !
 			D_("Track n°"), myData.iTrackNumber,

=== added file 'musicPlayer/src/applet-gmusicbrowser.c'
--- musicPlayer/src/applet-gmusicbrowser.c	1970-01-01 00:00:00 +0000
+++ musicPlayer/src/applet-gmusicbrowser.c	2010-09-07 00:46:10 +0000
@@ -0,0 +1,43 @@
+/**
+* This file is a part of the Cairo-Dock project
+*
+* Copyright : (C) see the 'copyright' file.
+* E-mail    : see the 'copyright' file.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 3
+* 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 General Public License for more details.
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <glib/gi18n.h>
+#include <cairo-dock.h>
+
+#include "applet-struct.h"
+#include "applet-musicplayer.h"
+#include "applet-mpris.h"
+#include "applet-gmusicbrowser.h"
+
+/* On enregistre notre lecteur.
+ * Par matttbe => pour déresponsabiliser fab ça ^^
+ */
+void cd_musicplayer_register_gmusicbrowser_handler (void)
+{
+	MusicPlayerHandeler *pGmusicbrowser = cd_mpris_new_handler ();
+	pGmusicbrowser->cMprisService = "org.mpris.gmusicbrowser";
+	pGmusicbrowser->appclass = "gmusicbrowser";
+	pGmusicbrowser->launch = "gmusicbrowser";
+	pGmusicbrowser->name = "GMusicBrowser";
+	pGmusicbrowser->iPlayer = MP_GMUSICBROWSER;
+	cd_musicplayer_register_my_handler (pGmusicbrowser, "GMusicBrowser");
+}

=== added file 'musicPlayer/src/applet-gmusicbrowser.h'
--- musicPlayer/src/applet-gmusicbrowser.h	1970-01-01 00:00:00 +0000
+++ musicPlayer/src/applet-gmusicbrowser.h	2010-09-07 00:46:10 +0000
@@ -0,0 +1,32 @@
+/**
+* This file is a part of the Cairo-Dock project
+*
+* Copyright : (C) see the 'copyright' file.
+* E-mail    : see the 'copyright' file.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 3
+* 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 General Public License for more details.
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __APPLET_GMUSICBROWSER__
+#define  __APPLET_GMUSICBROWSER__
+
+
+#include <cairo-dock.h>
+
+
+void cd_musicplayer_register_gmusicbrowser_handler (void);
+
+
+#endif
+
+

=== modified file 'musicPlayer/src/applet-init.c'
--- musicPlayer/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -37,6 +37,7 @@
 #include "applet-banshee.h" //Support Banshee
 #include "applet-rhythmbox.h" //Support Rhythmbox
 #include "applet-qmmp.h" //Support Qmmp
+#include "applet-gmusicbrowser.h" //Support GMusicBrowser
 #include "applet-guayadeque.h" //Support Guayadeque
 #include "applet-quodlibet.h" //Support QuodLibet
 #include "applet-listen.h" //Support Listen
@@ -76,6 +77,7 @@
 	cd_musicplayer_register_audacious_handler();
 	cd_musicplayer_register_guayadeque_handler();
 	cd_musicplayer_register_clementine_handler();
+	cd_musicplayer_register_gmusicbrowser_handler();
 	
 	gchar *cCoverPath = g_strdup_printf ("%s/musicplayer", g_cCairoDockDataDir);
 	if (! g_file_test (cCoverPath, G_FILE_TEST_EXISTS))

=== modified file 'musicPlayer/src/applet-mpris.c'
--- musicPlayer/src/applet-mpris.c	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/applet-mpris.c	2010-09-07 00:46:10 +0000
@@ -441,7 +441,7 @@
 	{
 		_extract_metadata (metadata);
 		myData.bIsRunning = TRUE;
-		myData.iPlayingStatus = PLAYER_PLAYING;  // pour les lecteurs bugues comem Exaile qui envoit un statut "stop" au changement de musique sans envoyer de status "play" par la suite. On cnosidere donc que si le lecteur joue une nouvelle musique, c'est qu'il est en "play".
+		myData.iPlayingStatus = PLAYER_PLAYING;  // pour les lecteurs bugues comem Exaile qui envoit un statut "stop" au changement de musique sans envoyer de status "play" par la suite. On considere donc que si le lecteur joue une nouvelle musique, c'est qu'il est en "play".
 	}
 	else
 	{

=== modified file 'musicPlayer/src/applet-notifications.c'
--- musicPlayer/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -60,6 +60,10 @@
 {
 	cd_musicplayer_popup_info ();
 }
+static void _cd_musicplayer_launch (GtkMenuItem *menu_item, gpointer *data)
+{
+	cairo_dock_launch_command (myData.pCurrentHandeler->launch);
+}
 
 static void _cd_musicplayer_find_player (GtkMenuItem *menu_item, gpointer *data)
 {
@@ -84,6 +88,10 @@
 		cd_musicplayer_launch_handler ();
 		if (myConfig.bStealTaskBarIcon)
 			CD_APPLET_MANAGE_APPLICATION (myData.pCurrentHandeler->appclass);
+		
+		cairo_dock_update_conf_file (CD_APPLET_MY_CONF_FILE,
+			G_TYPE_STRING, "Configuration", "current-player", pHandler->name,
+			G_TYPE_INVALID);
 	}
 	CD_APPLET_LEAVE ();
 }
@@ -140,13 +148,15 @@
 			{
 				_cd_musicplayer_pp (NULL, NULL);
 			}
-			else
+			else if (myIcon->Xid != 0)
 			{
 				if (myIcon->Xid == cairo_dock_get_current_active_window ())  // la fenetre du lecteur a le focus. en mode desklet ca ne marche pas car il aura pris le focus au moment du clic.
 					cairo_dock_minimize_xwindow (myIcon->Xid);
 				else
 					cairo_dock_show_xwindow (myIcon->Xid);
 			}
+			else if (myData.pCurrentHandeler->launch != NULL)
+                                cairo_dock_launch_command (myData.pCurrentHandeler->launch);
 		}
 		else if (myData.pCurrentHandeler->launch != NULL)
 			cairo_dock_launch_command (myData.pCurrentHandeler->launch);
@@ -160,8 +170,8 @@
 	if (! myData.bIsRunning)
 	{
 		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Find opened player"), GTK_STOCK_FIND, _cd_musicplayer_find_player, CD_APPLET_MY_MENU);
-		if (myData.pCurrentHandeler->iPlayerControls & PLAYER_PLAY_PAUSE)
-		CD_APPLET_ADD_IN_MENU_WITH_STOCK (myData.pCurrentHandeler->name, (myData.iPlayingStatus != PLAYER_PLAYING ? GTK_STOCK_MEDIA_PLAY : GTK_STOCK_MEDIA_PAUSE), _cd_musicplayer_pp, CD_APPLET_MY_MENU);
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (myData.pCurrentHandeler->name, GTK_STOCK_MEDIA_PLAY, _cd_musicplayer_launch, CD_APPLET_MY_MENU);
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 	}
 	else
 	{
@@ -173,18 +183,28 @@
 			CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Next (middle-click)"), GTK_STOCK_MEDIA_NEXT, _cd_musicplayer_next, CD_APPLET_MY_MENU);
 		if (myData.pCurrentHandeler->iPlayerControls & PLAYER_STOP)
 			CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Stop"), GTK_STOCK_MEDIA_STOP, _cd_musicplayer_stop, CD_APPLET_MY_MENU);
+		
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);  // on n'a jamais aucune action, don con met toujours un separateur.
+		
+		CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Information"), GTK_STOCK_INFO, _cd_musicplayer_info, CD_APPLET_MY_MENU);
+
 		if (myIcon->Xid == 0)  // lecteur dans le systray.
 			CD_APPLET_ADD_IN_MENU (D_("Show the Window"), _cd_musicplayer_show_from_systray, CD_APPLET_MY_MENU);
+		
+		if (pSubMenu == CD_APPLET_MY_MENU)
+			CD_APPLET_ADD_SEPARATOR_IN_MENU (CD_APPLET_MY_MENU);
+		
 		if (myData.pCurrentHandeler->iPlayerControls & PLAYER_JUMPBOX)
-			CD_APPLET_ADD_IN_MENU (D_("Show JumpBox"), _cd_musicplayer_jumpbox, CD_APPLET_MY_MENU);
+			CD_APPLET_ADD_IN_MENU (D_("Show JumpBox"), _cd_musicplayer_jumpbox, pSubMenu);
 		if (myData.pCurrentHandeler->iPlayerControls & PLAYER_SHUFFLE)
-			CD_APPLET_ADD_IN_MENU (D_("Toggle Shuffle"), _cd_musicplayer_shuffle, CD_APPLET_MY_MENU);
+			CD_APPLET_ADD_IN_MENU (D_("Toggle Shuffle"), _cd_musicplayer_shuffle, pSubMenu);
 		if (myData.pCurrentHandeler->iPlayerControls & PLAYER_REPEAT)
-			CD_APPLET_ADD_IN_MENU (D_("Toggle Repeat"), _cd_musicplayer_repeat, CD_APPLET_MY_MENU);
+			CD_APPLET_ADD_IN_MENU (D_("Toggle Repeat"), _cd_musicplayer_repeat, pSubMenu);
 		if (myData.pCurrentHandeler->iPlayerControls & PLAYER_RATE)
-			CD_APPLET_ADD_IN_MENU (D_("Rate this song"), _cd_musicplayer_rate, CD_APPLET_MY_MENU);
+			CD_APPLET_ADD_IN_MENU (D_("Rate this song"), _cd_musicplayer_rate, pSubMenu);
+		if (myData.pCurrentHandeler->iPlayerControls & (PLAYER_REPEAT | PLAYER_SHUFFLE | PLAYER_RATE | PLAYER_JUMPBOX))
+			CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 	}
-	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Information"), GTK_STOCK_INFO, _cd_musicplayer_info, CD_APPLET_MY_MENU);
 	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 CD_APPLET_ON_BUILD_MENU_END
 
@@ -263,7 +283,7 @@
   		_cd_musicplayer_prev (NULL, NULL);
 	}
 	else
-  		return CAIRO_DOCK_LET_PASS_NOTIFICATION;
+  		CD_APPLET_LEAVE (CAIRO_DOCK_LET_PASS_NOTIFICATION);
 CD_APPLET_ON_SCROLL_END
 
 

=== modified file 'musicPlayer/src/applet-struct.h'
--- musicPlayer/src/applet-struct.h	2010-08-07 01:43:25 +0000
+++ musicPlayer/src/applet-struct.h	2010-09-07 00:46:10 +0000
@@ -35,6 +35,7 @@
 	MP_LISTEN,
 	MP_SONGBIRD,
 	MP_QMMP,
+	MP_GMUSICBROWSER,
 	MP_GUAYADEQUE,
 	MP_CLEMENTINE,
 	MP_QUODLIBET,

=== removed file 'netspeed/data/messages'
--- netspeed/data/messages	2010-08-07 01:43:25 +0000
+++ netspeed/data/messages	1970-01-01 00:00:00 +0000
@@ -1,150 +0,0 @@
-_("Icon")
-
-_("Set to 0 to use the default applet size")
-
-_("Desired icon size for this applet")
-
-_("Name of the icon as it will appear in its caption in the dock:")
-
-_("Name of the dock it belongs to:")
-
-_("Applet's Handbook")
-
-_("Desklet")
-
-_("Position")
-
-_("If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.")
-
-_("Lock position?")
-
-_("Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.")
-
-_("Desklet dimensions (width x height):")
-
-_("Depending on your WindowManager, you may be able to move this with ALT + left-click.. Negative values are counted from the right/bottom of the screen")
-
-_("Desklet position (x, y):")
-
-_("You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.")
-
-_("Rotation:")
-
-_("Visibility")
-
-_("Is detached from the dock")
-
-_("for CompizFusion's \"widget layer\", set behaviour in Compiz to: (class=Cairo-dock & type=utility)")
-
-_("Visibility:")
-
-_("Normal")
-
-_("Keep above")
-
-_("Keep below")
-
-_("Keep on widget layer")
-
-_("Reserve space")
-
-_("Should be visible on all desktops?")
-
-_("Decorations")
-
-_("Choose 'Custom decorations' to define your own decorations below.")
-
-_("Choose a decoration theme for this desklet:")
-
-_("Image to be displayed below drawings, e.g. a frame. Leave empty for no image.")
-
-_("Background image:")
-
-_("Background transparency:")
-
-_("in pixels. Use this to adjust the left position of drawings.")
-
-_("Left offset:")
-
-_("in pixels. Use this to adjust the top position of drawings.")
-
-_("Top offset:")
-
-_("in pixels. Use this to adjust the right position of drawings.")
-
-_("Right offset:")
-
-_("in pixels. Use this to adjust the bottom position of drawings.")
-
-_("Bottom offset:")
-
-_("Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.")
-
-_("Foreground image:")
-
-_("Foreground tansparency:")
-
-_("Configuration")
-
-_("Choose the style of the display: ")
-
-_("Gauge")
-
-_("Graph")
-
-_("Gauge")
-
-_("Choose one of the available themes:")
-
-_("Graph")
-
-_("Type of graphic :")
-
-_("Line")
-
-_("Plain")
-
-_("Bar")
-
-_("Circle")
-
-_("Plain Circle")
-
-_("It's the colour of the graphic for high rate values.")
-
-_("High value's colour :")
-
-_("Graph colour for low rate vaues:")
-
-_("Low value's colour :")
-
-_("Background colour of the graphic :")
-
-_("Show all values on same graph?")
-
-_("Parameters")
-
-_("By default this will be 'eth0'.")
-
-_("interface:")
-
-_("in seconds.")
-
-_("Delay between measurements:")
-
-_("You need OpenGL for this option. Set it to 0 to disable it, 1 means the transition is continue.")
-
-_("Fluidity of the transition between 2 values :")
-
-_("Display rate values :")
-
-_("No")
-
-_("On icon")
-
-_("On label")
-
-_("Leave empty to use the default.")
-
-_("User command to display a system monitor:")
-

=== modified file 'netspeed/data/netspeed.conf.in'
--- netspeed/data/netspeed.conf.in	2010-08-07 01:43:25 +0000
+++ netspeed/data/netspeed.conf.in	2010-09-07 00:46:10 +0000
@@ -100,7 +100,7 @@
 #X[Gauge;gtk-dialog-info]
 frame_gauge=
 
-#h+[@gaugesdir@;gauges;gauges] Choose one of the available themes:/
+#h+[@gaugesdir@;gauges;gauges2] Choose one of the available themes:/
 theme = Turbo-night-fuel
 
 
@@ -131,7 +131,7 @@
 #{By default this will be 'eth0'.}
 interface = 
 
-#i[1;30] Delay between measurements:
+#i[1;30] Refresh time:
 #{in seconds.}
 delay = 3
 

=== modified file 'netspeed/src/applet-init.c'
--- netspeed/src/applet-init.c	2010-08-07 01:43:25 +0000
+++ netspeed/src/applet-init.c	2010-09-07 00:46:10 +0000
@@ -34,10 +34,9 @@
 	"Middle-click to (de)activate the network (needs NetworManager)"),
 	"parAdOxxx_ZeRo");
 
-
 static void _set_data_renderer (CairoDockModuleInstance *myApplet, gboolean bReload)
 {
-	CairoDataRendererAttribute *pRenderAttr = NULL;  // les attributs du data-renderer global.
+	CairoDataRendererAttribute *pRenderAttr = NULL;  // les attributs generiques du data-renderer.
 	if (myConfig.iDisplayType == CD_NETSPEED_GAUGE)
 	{
 		CairoGaugeAttribute attr;  // les attributs de la jauge.
@@ -72,12 +71,19 @@
 	{
 		/// A FAIRE...
 	}
-	if (pRenderAttr != NULL)
+	if (pRenderAttr != NULL)  // attributs generiques.
 	{
 		pRenderAttr->iLatencyTime = myConfig.iCheckInterval * 1000 * myConfig.fSmoothFactor;
 		pRenderAttr->iNbValues = 2;
 		pRenderAttr->bUpdateMinMax = TRUE;
-		//pRenderAttr->bWriteValues = TRUE;
+		if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
+		{
+			pRenderAttr->bWriteValues = TRUE;
+			pRenderAttr->format_value = (CairoDataRendererFormatValueFunc)cd_netspeed_format_value;
+			pRenderAttr->pFormatData = myApplet;
+		}
+		const gchar *labels[2] = {"UP", "DOWN"};
+		pRenderAttr->cLabels = (gchar **)labels;
 		if (! bReload)
 			CD_APPLET_ADD_DATA_RENDERER_ON_MY_ICON (pRenderAttr);
 		else

=== modified file 'netspeed/src/applet-netspeed.c'
--- netspeed/src/applet-netspeed.c	2010-08-07 01:43:25 +0000
+++ netspeed/src/applet-netspeed.c	2010-09-07 00:46:10 +0000
@@ -33,59 +33,72 @@
 
 
 // Prend un debit en octet par seconde et le transforme en une chaine de la forme : xxx yB/s
-static void cd_netspeed_formatRate (CairoDockModuleInstance *myApplet, unsigned long long rate, gchar* debit) {
+static void cd_netspeed_formatRate (unsigned long long rate, gchar* debit, int iBufferSize, gboolean bLong)
+{
 	int smallRate;
-	
 	if (rate <= 0)
 	{
-		if (myDesklet)
-			g_sprintf(debit, "0 %s/s", D_("B"));
+		if (bLong)
+			snprintf (debit, iBufferSize, "0 %s/s", D_("B"));
 		else
-			g_sprintf(debit, "0");
+			snprintf (debit, iBufferSize, "0");
 	}
 	else if (rate < 1024)
 	{
 		smallRate = rate;
-		if (myDesklet)
-			g_sprintf(debit, "%i %s/s", smallRate, D_("B"));
+		if (bLong)
+			snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("B"));
 		else
-			g_sprintf(debit, "%iB", smallRate);
+			snprintf (debit, iBufferSize, "%iB", smallRate);
 	}
 	else if (rate < (1<<20))
 	{
 		smallRate = rate >> 10;
-		if (myDesklet)
-			g_sprintf(debit, "%i %s/s", smallRate, D_("KB"));
+		if (bLong)
+			snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("KB"));
 		else
-			g_sprintf(debit, "%iK", smallRate);
+			snprintf (debit, iBufferSize, "%iK", smallRate);
 	}
 	else if (rate < (1<<30))
 	{
 		smallRate = rate >> 20;
-		if (myDesklet)
-			g_sprintf(debit, "%i %s/s", smallRate, D_("MB"));
+		if (bLong)
+			snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("MB"));
 		else
-			g_sprintf(debit, "%iM", smallRate);
+			snprintf (debit, iBufferSize, "%iM", smallRate);
 	}
 	else if (rate < ((unsigned long long)1<<40))
 	{
 		smallRate = rate >> 30;
-		if (myDesklet)
-			g_sprintf(debit, "%i %s/s", smallRate, D_("GB"));
+		if (bLong)
+			snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("GB"));
 		else
-			g_sprintf(debit, "%iG", smallRate);
+			snprintf (debit, iBufferSize, "%iG", smallRate);
 	}
 	else  // c'est vraiment pour dire qu'on est exhaustif :-)
 	{
 		smallRate = rate >> 40;
-		if (myDesklet)
-			g_sprintf(debit, "%i %s/s", smallRate, D_("TB"));
+		if (bLong)
+			snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("TB"));
 		else
-			g_sprintf(debit, "%iT", smallRate);
+			snprintf (debit, iBufferSize, "%iT", smallRate);
 	}
 }
 
 
+void cd_netspeed_format_value (CairoDataRenderer *pRenderer, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet)
+{
+	static gchar s_upRateFormatted[11];
+	double fValue = cairo_data_renderer_get_normalized_current_value_with_latency (pRenderer, iNumValue);
+	
+	fValue *= (iNumValue == 0 ? myData.iMaxUpRate : myData.iMaxDownRate);
+	cd_netspeed_formatRate (fValue, s_upRateFormatted, 11, FALSE);
+	snprintf (cFormatBuffer, iBufferLength,
+		"%s%s",
+		cairo_data_renderer_can_write_values (pRenderer) ? (iNumValue == 0 ?"↓" : "↑") : "",
+		s_upRateFormatted);
+}
+
 void cd_netspeed_get_data (CairoDockModuleInstance *myApplet)
 {
 	g_timer_stop (myData.pClock);
@@ -188,11 +201,14 @@
 		{
 			if (myConfig.iInfoDisplay != CAIRO_DOCK_INFO_NONE)
 			{
-				cd_netspeed_formatRate (myApplet, myData.iUploadSpeed, s_upRateFormatted);
-				cd_netspeed_formatRate (myApplet, myData.iDownloadSpeed, s_downRateFormatted);
+				cd_netspeed_formatRate (myData.iUploadSpeed, s_upRateFormatted, 11, myDesklet != NULL);
+				cd_netspeed_formatRate (myData.iDownloadSpeed, s_downRateFormatted, 11, myDesklet != NULL);
+				
 				if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
 				{
-					CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("↓%s\n↑%s", s_downRateFormatted, s_upRateFormatted);
+					CairoDataRenderer *pRenderer = cairo_dock_get_icon_data_renderer (myIcon);
+					if (!pRenderer || ! cairo_data_renderer_can_write_values (pRenderer))
+						CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("↓%s\n↑%s", s_downRateFormatted, s_upRateFormatted);
 				}
 				else
 				{

=== modified file 'netspeed/src/applet-netspeed.h'
--- netspeed/src/applet-netspeed.h	2009-10-05 19:27:17 +0000
+++ netspeed/src/applet-netspeed.h	2010-09-07 00:46:10 +0000
@@ -22,6 +22,8 @@
 
 #include <cairo-dock.h>
 
+void cd_netspeed_format_value (CairoDataRenderer *pRenderer, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet);
+
 void cd_netspeed_get_data (CairoDockModuleInstance *myApplet);
 
 gboolean cd_netspeed_update_from_data (CairoDockModuleInstance *myApplet);

=== modified file 'netspeed/src/applet-notifications.c'
--- netspeed/src/applet-notifications.c	2010-08-07 01:43:25 +0000
+++ netspeed/src/applet-notifications.c	2010-09-07 00:46:10 +0000
@@ -67,11 +67,17 @@
 }
 CD_APPLET_ON_BUILD_MENU_BEGIN
 	GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
-	CD_APPLET_ADD_IN_MENU (D_("Monitor System"), _show_monitor_system, pSubMenu);
+	
+	// Main Menu
+	CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("System Monitor"), GTK_STOCK_MEDIA_PLAY, _show_monitor_system, CD_APPLET_MY_MENU);
+	
+	// Sub-Menu
 	if (! myData.bAcquisitionOK) {
 		CD_APPLET_ADD_IN_MENU (D_("Re-check interface"), _netspeed_recheck, pSubMenu);
+		CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 	}
 	CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
+
 CD_APPLET_ON_BUILD_MENU_END
 
 

=== modified file 'po/ar.po'
--- po/ar.po	2010-08-07 01:43:25 +0000
+++ po/ar.po	2010-09-07 00:46:10 +0000
@@ -7,13 +7,14 @@
 msgstr ""
 "Project-Id-Version: cairo-dock-plug-ins\n"
 "Report-Msgid-Bugs-To: fabounet@xxxxxxxxxxxx\n"
-"PO-Revision-Date: 2010-03-25 02:17+0000\n"
-"Last-Translator: EL7R <the-ghost@xxxxxxxx>\n"
+"POT-Creation-Date: 2010-08-11 00:19+0000\n"
+"PO-Revision-Date: 2010-08-16 19:46+0000\n"
+"Last-Translator: eslam basha <Unknown>\n"
 "Language-Team: Arabic <ar@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-26 04:52+0000\n"
+"X-Launchpad-Export-Date: 2010-08-17 07:07+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
 #: ../Animated-icons/src/applet-init.c:32
@@ -58,7 +59,7 @@
 #: ../Animated-icons/data/messages:37 ../Animated-icons/data/messages:55
 #: ../Animated-icons/data/messages:73 ../Animated-icons/data/messages:147
 msgid "Wave"
-msgstr "موجة"
+msgstr "تموج"
 
 #: ../Animated-icons/src/applet-init.c:62 ../Animated-icons/data/messages:21
 #: ../Animated-icons/data/messages:95 ../Animated-icons/data/messages:103
@@ -73,10 +74,13 @@
 "Tux images are taken from Pingus, some other characters are available or can "
 "be added easily."
 msgstr ""
+"اضف بطريق حي الى الشريط الخاص بك!\n"
+"انقر بالزر الايسر للماوس لتغيير الحركة\n"
+"نقره بزر الماوس الاوسط لإزعاجه ^_^"
 
 #: ../Cairo-Penguin/src/applet-init.c:39
 msgid "Cairo-Penguin"
-msgstr ""
+msgstr "بطريق-كايرو"
 
 #: ../Cairo-Penguin/src/applet-notifications.c:29
 msgid "Hey, I'm here!"
@@ -89,15 +93,16 @@
 #: ../Cairo-Penguin/src/applet-notifications.c:31
 msgid ""
 "I don't have time to play with you, I have to dig and mine all these icons."
-msgstr "ليس لدي مايكفي من الوقت للعب معك, علي أن احفر وألغم كل هذه الأيقونات."
+msgstr ""
+"ليس لدي مايكفي من الوقت للعب معك, علي أن احفر وألغم كل هذه الأيقونات."
 
 #: ../Cairo-Penguin/src/applet-notifications.c:32
 msgid "Your dock is so messy! Let me clean it."
-msgstr ""
+msgstr "الشريط الخاص بك غير مرتب! دعني ارتبه لك."
 
 #: ../Cairo-Penguin/src/applet-notifications.c:33
 msgid "Admit my superiority on you as a penguin!"
-msgstr ""
+msgstr "إعترف بسيطرتي عليك كالبطريق!"
 
 #: ../Cairo-Penguin/src/applet-notifications.c:34
 msgid "Wait, do you want to kill me?!"
@@ -109,7 +114,7 @@
 
 #: ../Cairo-Penguin/src/applet-notifications.c:36
 msgid "It's my dock now, mwahahaha!"
-msgstr ""
+msgstr "إنه شريطي الان، هاهاهاهاها!"
 
 #: ../Cairo-Penguin/src/applet-notifications.c:37
 msgid "I want to be a pirate!"
@@ -148,11 +153,11 @@
 #: ../Cairo-Penguin/src/applet-notifications.c:134
 #: ../Scooby-Do/data/messages:101
 msgid "Start XPenguins"
-msgstr ""
+msgstr "شغٍل XPenguins"
 
 #: ../Cairo-Penguin/src/applet-notifications.c:135
 msgid "Stop XPenguins"
-msgstr ""
+msgstr "أوقف XPenguins"
 
 #: ../Cairo-Penguin/src/applet-notifications.c:158
 #: ../Cairo-Penguin/src/applet-notifications.c:160
@@ -163,10 +168,6 @@
 msgid "No items yet."
 msgstr "لا توجد عناصر بعد."
 
-#: ../Clipper/src/applet-init.c:29
-msgid "Clipper"
-msgstr ""
-
 #: ../Clipper/src/applet-init.c:32
 msgid ""
 "This applet keeps a trace of the clipboard and mouse selection,\n"
@@ -178,17 +179,25 @@
 "them."
 msgstr ""
 
+#: ../Clipper/src/applet-init.c:39
+msgid "Clipboard history"
+msgstr "تاريخ ذاكرة النصوص"
+
 #: ../Clipper/src/applet-notifications.c:99
 msgid ""
 "No persistent items.\n"
 "You can add some by drag and dropping some text on the icon."
 msgstr ""
+"لا توجد عناصر دائمة.\n"
+"يمكنك اضافه بعضها عن طريق سحب النصوص والقائها على الايقونة."
 
 #: ../Dbus/src/applet-init.c:32
 msgid ""
 "This plug-in lets extern applications interact on the dock.\n"
 "The communication between both sides is based on Dbus"
 msgstr ""
+"هذه الاضافه تسمح للبرامج الخارجية بالتفاعل مع الشريط.\n"
+"الاتصال بين الطرفين يتم بواسطه Dbus"
 
 #: ../Dbus/src/interface-applet-signals.c:385
 msgid "About this applet"
@@ -205,7 +214,8 @@
 
 #: ../Dbus/src/interface-applet-signals.c:486
 #, c-format
-msgid "The applet '%s' has been succefully updated and automatically reloaded"
+msgid ""
+"The applet '%s' has been succefully updated and automatically reloaded"
 msgstr "البريمج '%s' تم تحديثه وإعادة تشغيله تلقائياً بنجاح"
 
 #: ../Dbus/src/interface-applet-signals.c:486
@@ -227,6 +237,11 @@
 "  - NEED TO BE DETACHED FROM THE DOCK TO WORK !\n"
 "  - Middle-clic to reload values"
 msgstr ""
+"هذه الاضافه تمكنك من كتابة النصوص ومتابعة حاله نظامك\n"
+"بواسطه \"برنامج نصي صغير لسطح المكتب\"\n"
+"الاستخدام:\n"
+" يجب ان يتم فصلها عن الشريط لكي تعمل!\n"
+" ضغطة بزر الماوس الاوسط لاعادة بناء القيم"
 
 #: ../Doncky/src/applet-top.c:287
 #: ../System-Monitor/src/applet-notifications.c:49
@@ -236,9 +251,8 @@
 msgstr "م.ب."
 
 #: ../Folders/src/applet-init.c:29
-#, fuzzy
 msgid "Folders"
-msgstr "الملفات"
+msgstr "المجلدات"
 
 #: ../Folders/src/applet-init.c:32
 msgid ""
@@ -250,14 +264,22 @@
 " - or just drop a folder into the dock\n"
 "Middle-click on the main icon opens the folder.\n"
 msgstr ""
+"هذه الاضافة تقوم باستيراد المجلدات الى الشريط\n"
+"يمكنك الحصول على اي عدد من هذه الاضافة وكل اضافه تحتوي على مجلد مختلف عن "
+"الاخري.\n"
+"لإضافة مجلد الى الشريط:\n"
+" فَعِل الاضافة ، افتح نافذه الإعدادات ثم اختر مجلد\n"
+" او يمكنك سحب المجلد ووضعه بداخل الشريط\n"
+"الضغط بزر الماوس الاوسط على الايقونة الرئيسية سيفتح المجلد.\n"
 
 #: ../Folders/src/applet-notifications.c:37
 msgid "Open the configuration of the applet to choose a folder to import."
 msgstr ""
+"افتح نافذه اعدادات البريمج لتتمكن من اختيار المجلد الذي ترغب بإستيراده."
 
 #: ../Folders/src/applet-notifications.c:47
 msgid "Empty or unreadable folder."
-msgstr ""
+msgstr "مجلد فارغ او غير قابل للقرأة."
 
 #: ../Folders/src/applet-notifications.c:193
 #, c-format
@@ -266,12 +288,17 @@
 "  (%s)\n"
 "from your hard-disk. Sure ?"
 msgstr ""
+"انت بصدد حذف هذا الملف\n"
+"  (%s)\n"
+"من قرصك الصلب. هل انت متأكد من رغبتك في ذلك؟"
 
 #: ../Folders/src/applet-notifications.c:203
 msgid ""
 "Warning: could not delete this file.\n"
 "Please check file permissions."
 msgstr ""
+"تحذير: ﻻيمكن حذف هذا الملف .\n"
+"راجع اذونات الملف ."
 
 #: ../Folders/src/applet-notifications.c:216
 msgid "Rename to:"
@@ -287,7 +314,7 @@
 
 #: ../Folders/src/applet-notifications.c:262
 msgid "Enter a file name:"
-msgstr ""
+msgstr "ضع اسم الملف:"
 
 #: ../Folders/src/applet-notifications.c:270
 #, c-format
@@ -296,37 +323,37 @@
 "Check file permissions \n"
 "and that the new name does not already exist."
 msgstr ""
+"تحذير: تعذر انشاء %s .\n"
+" من فضلك راجع التصاريح\n"
+"وأن الاسم الجديد غير موجود مسبقاً."
 
 #: ../Folders/src/applet-notifications.c:319
-#, fuzzy
 msgid "Open with"
-msgstr "افتح ملفًا"
+msgstr ""
 
 #: ../Folders/src/applet-notifications.c:352
 msgid "Delete this file"
-msgstr ""
+msgstr "إحذف هذا الملف"
 
 #: ../Folders/src/applet-notifications.c:354
-#, fuzzy
 msgid "Rename this file"
-msgstr "آخر الملفات"
+msgstr "أعد تسمية هذا الملف"
 
 #: ../Folders/src/applet-notifications.c:356
-#, fuzzy
 msgid "Move this file"
-msgstr "ملف البريد"
+msgstr "إنقل هذا الملف"
 
 #: ../Folders/src/applet-notifications.c:358
 msgid "Properties"
-msgstr ""
+msgstr "الخصائص"
 
 #: ../Folders/src/applet-notifications.c:360
 msgid "Create a new file"
-msgstr ""
+msgstr "أنشئ ملفًا جديدًا"
 
 #: ../Folders/src/applet-notifications.c:364
 msgid "Open the folder (middle-click)"
-msgstr ""
+msgstr "إفتح المجلد (ضغطة بزر الماوس الاوسط)"
 
 #: ../GMenu/src/applet-init.c:33
 msgid ""
@@ -336,10 +363,15 @@
 "a shortkey for it, like ALT+F2)\n"
 "You can also set up a shortkey to pop up the menu (like ALT+F1)"
 msgstr ""
+"تعرض قائمه البرامج الشائعة والملفات التي تم استخدامها مؤخراً.\n"
+"وهي مدعومة من خلال اي قائمة من توابع XDG (Gnome, XFCE,KDE, ....)\n"
+"الضغط بزر الماوس الاوسط يفتح نافذه تمكنك من استدعاء اي امر (يمكنك عمل اختصار "
+"للنافذه، مثل alt+f2)\n"
+"يمكنك ايضا عمل زر اختصار بالكيبورد لاستدعاء القائمة (مثل ALT+F1)"
 
 #: ../GMenu/src/applet-init.c:39
 msgid "Applications Menu"
-msgstr ""
+msgstr "قائمة البرامج"
 
 #: ../GMenu/src/applet-notifications.c:147
 msgid "Quick launch"
@@ -347,7 +379,7 @@
 
 #: ../GMenu/src/applet-notifications.c:148
 msgid "Configure menu"
-msgstr ""
+msgstr "قائمة الاعدادات"
 
 #: ../GMenu/src/applet-notifications.c:149
 msgid "Clear recent"
@@ -355,11 +387,11 @@
 
 #: ../GMenu/src/applet-recent.c:56
 msgid "Recent Documents"
-msgstr "المسندات الأخيرة"
+msgstr "المستندات المستعملة مؤخراً"
 
 #: ../GMenu/src/applet-recent.c:108
 msgid "Clear the list of the recently used documents?"
-msgstr ""
+msgstr "مسح قائمة الملفات المسخدمة مؤخراً؟"
 
 #: ../GMenu/src/applet-run-dialog.c:349 ../Scooby-Do/data/messages:113
 msgid "Enter a command to launch:"
@@ -367,7 +399,7 @@
 
 #: ../MeMenu/src/applet-init.c:31
 msgid "Me Menu"
-msgstr ""
+msgstr "قائمة ME"
 
 #: ../MeMenu/src/applet-init.c:34
 msgid ""
@@ -377,45 +409,47 @@
 
 #: ../MeMenu/src/applet-notifications.c:31
 msgid "It seems that the Me-Menu is not installed on your system"
-msgstr ""
+msgstr "يبدو ان قائمة-ME غير مثبتة بنظامك"
 
 #: ../Messaging-Menu/src/applet-init.c:31
 msgid "Messaging Menu"
-msgstr ""
+msgstr "قائمة المراسلات"
 
 #: ../Messaging-Menu/src/applet-init.c:34
 msgid ""
 "A menu that notices you about new messages from Mail or Chat applications.\n"
 "It handles Evolution, Pidgin, Empathy, etc"
 msgstr ""
+"هي قائمة تعلمك بالرسائل الجديدة من بريدك الالكتروني او برامج الدردشة.\n"
+"وهي تدعم Evolution, Pidgin, Empathy, etc"
 
 #: ../Messaging-Menu/src/applet-notifications.c:31
 msgid "It seems that the Messaging-Menu is not installed on your system"
-msgstr ""
+msgstr "يبدو ان قائمة المراسلات غير مثبتة بجهازك"
 
 #: ../Network-Monitor/src/applet-dbus-callbacks.c:69
 msgid "Network connection state changed to inactive."
-msgstr ""
+msgstr "حالة اتصال الشبكة قد تم تغييرها الى غير فعال."
 
 #: ../Network-Monitor/src/applet-dbus-callbacks.c:75
 msgid "Connecting..."
-msgstr "يتصل..."
+msgstr "جاري الاتصال..."
 
 #: ../Network-Monitor/src/applet-dbus-callbacks.c:82
 msgid "Network connection is established."
-msgstr ""
+msgstr "تم انشاء اتصال بالشبكة."
 
 #: ../Network-Monitor/src/applet-dbus-callbacks.c:88
 msgid "Network connection state changed to disconnected."
-msgstr ""
+msgstr "حالة الاتصال بالشبكة قد تغيرت الى غير متصل."
 
 #: ../Network-Monitor/src/applet-dbus-callbacks.c:150
 msgid "A cable has been plugged"
-msgstr ""
+msgstr "تم توصيل كابل"
 
 #: ../Network-Monitor/src/applet-dbus-callbacks.c:150
 msgid "A cable has been unplugged"
-msgstr ""
+msgstr "تم فصل كابل"
 
 #: ../Network-Monitor/src/applet-draw.c:30
 #: ../powermanager/src/powermanager-draw.c:136 ../wifi/src/applet-draw.c:31
@@ -498,7 +532,7 @@
 
 #: ../Network-Monitor/src/applet-draw.c:149 ../wifi/src/applet-draw.c:161
 msgid "Signal Quality"
-msgstr ""
+msgstr "درجة جودة الاشارة"
 
 #: ../Network-Monitor/src/applet-init.c:31
 msgid "Network-Monitor"
@@ -513,6 +547,11 @@
 "Left-click to pop-up some info,Scroll on the icon to switch the display "
 "between net speed and wifi."
 msgstr ""
+"هذا البريمج يمكنك من متابعة حالة اتصالك بالشبكة/الشبكات.\n"
+"ويقوم بعرض سرعات الرفع/التنزيل وجودة اشارة الواي فاي.\n"
+"اذا كان لديك مدير-الشبكة يعمل ، يمكنك البريمج ايا من اختيار شبكة الواي فاي.\n"
+"ضغطة بزر الماوس الايسر تظهر لك نافذه فرعية تحتوي على بعض البيانات، مرر "
+"الماوس على الايقونة لتغير نافذه البيانات بين السرعات و الواي فاي."
 
 #: ../Network-Monitor/src/applet-netspeed.c:42
 #: ../Network-Monitor/src/applet-netspeed.c:50
@@ -535,12 +574,12 @@
 #: ../Network-Monitor/src/applet-netspeed.c:74
 #: ../netspeed/src/applet-netspeed.c:74
 msgid "GB"
-msgstr "ج.ب."
+msgstr "جيجا بايت"
 
 #: ../Network-Monitor/src/applet-netspeed.c:82
 #: ../netspeed/src/applet-netspeed.c:82
 msgid "TB"
-msgstr "ت.ب."
+msgstr "تيرا بايت"
 
 #: ../Network-Monitor/src/applet-netspeed.c:200
 #: ../System-Monitor/src/applet-monitor.c:82
@@ -551,7 +590,7 @@
 #: ../Network-Monitor/src/applet-notifications.c:100
 #: ../wifi/src/applet-notifications.c:75
 msgid "Check for Wireless Extension"
-msgstr ""
+msgstr "تحقق من مسار الوايرليس"
 
 #: ../Network-Monitor/src/applet-notifications.c:101
 #: ../wifi/src/applet-notifications.c:76
@@ -1096,9 +1135,8 @@
 msgstr ""
 
 #: ../clock/src/applet-config.c:35
-#, fuzzy
 msgid "Command to launch:"
-msgstr "ادخل أمراً لتشغيله:"
+msgstr ""
 
 #: ../clock/src/applet-config.c:35
 msgid "E.g.:"
@@ -1151,8 +1189,8 @@
 "2 view are available : <b>numeric</b> and <b>analogic</b>.\n"
 " Analogic view is compatible with the Cairo-Clock's themes, and you can "
 "detach the applet to be a perfect clone of Cairo-Clock.\n"
-"It displays a <b>calendar</b> on left-click, which lets you <b>manage tasks</"
-"b>.\n"
+"It displays a <b>calendar</b> on left-click, which lets you <b>manage "
+"tasks</b>.\n"
 "It also supports alarms, and allows you to setup time and date.\n"
 "Left-click to show/hide the calendar, Middle-click to stop a notification,\n"
 "Double-click on a day to edit the tasks for this day."
@@ -1207,9 +1245,8 @@
 msgstr ""
 
 #: ../clock/src/applet-task-editor.c:350
-#, fuzzy
 msgid "each month"
-msgstr "ابحث في الويب"
+msgstr ""
 
 #: ../clock/src/applet-task-editor.c:353
 msgid "each year"
@@ -1231,9 +1268,8 @@
 msgstr ""
 
 #: ../clock/src/applet-task-editor.c:411
-#, fuzzy
 msgid "Time"
-msgstr "زمن التشغيل"
+msgstr ""
 
 #: ../clock/src/applet-task-editor.c:425
 msgid "Freq."
@@ -1381,7 +1417,8 @@
 msgstr ""
 
 #: ../dnd2share/src/applet-dnd2share.c:158
-msgid "Couldn't upload the file, check that your internet connexion is active."
+msgid ""
+"Couldn't upload the file, check that your internet connexion is active."
 msgstr ""
 
 #: ../dnd2share/src/applet-dnd2share.c:273
@@ -1391,13 +1428,13 @@
 msgstr ""
 
 #: ../dnd2share/src/applet-dnd2share.c:318
-msgid "Please wait for the current upload to finish before starting a new one."
+msgid ""
+"Please wait for the current upload to finish before starting a new one."
 msgstr ""
 
 #: ../dnd2share/src/applet-dnd2share.c:537
-#, fuzzy
 msgid "Tiny URL"
-msgstr "نسخ الرابط"
+msgstr ""
 
 #: ../dnd2share/src/applet-init.c:41
 msgid ""
@@ -1557,10 +1594,9 @@
 #: ../dustbin/src/applet-init.c:33
 msgid ""
 "This applet manages the dustbin\n"
-"You can threw files and unmount disks by drag andn droping them on the "
+"You can threw files and unmount disks by drag-and-dropping them on the "
 "icon.\n"
-"The applet can warn you if you use too much space\n"
-"Middle-click to display usefull info about the dustbin."
+"Middle-click on the icon will empty the dustbin."
 msgstr ""
 
 #: ../dustbin/src/applet-notifications.c:32
@@ -1572,9 +1608,8 @@
 msgstr ""
 
 #: ../dustbin/src/applet-notifications.c:65
-#, fuzzy
 msgid "files"
-msgstr "الملفات"
+msgstr ""
 
 #: ../dustbin/src/applet-notifications.c:67
 msgid "Mo"
@@ -1763,11 +1798,14 @@
 msgid "Use a secure connection (SSL)"
 msgstr ""
 
-#: ../mail/src/cd-mail-applet-accounts.c:39
-msgid "Timeout"
+#: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:109
+#: ../netspeed/data/messages:133 ../powermanager/data/messages:147
+#: ../weather/data/messages:107
+msgid "Refresh time:"
 msgstr ""
 
 #: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:107
+#: ../weather/data/messages:105
 msgid "In minutes."
 msgstr ""
 
@@ -1788,9 +1826,8 @@
 msgstr ""
 
 #: ../mail/src/cd-mail-applet-accounts.c:39
-#, fuzzy
 msgid "Path to Mail directory:"
-msgstr "اختر مجلد"
+msgstr ""
 
 #: ../mail/src/cd-mail-applet-accounts.c:39
 msgid "Address of feed:"
@@ -2003,9 +2040,8 @@
 msgstr ""
 
 #: ../netspeed/src/applet-init.c:29
-#, fuzzy
 msgid "netspeed"
-msgstr "السرعة"
+msgstr ""
 
 #: ../netspeed/src/applet-init.c:32
 msgid ""
@@ -2047,7 +2083,6 @@
 
 #: ../powermanager/src/powermanager-draw.c:167
 #: ../powermanager/src/powermanager-draw.c:199
-#: ../powermanager/src/powermanager-draw.c:213
 msgid "Estimated time with charge:"
 msgstr ""
 
@@ -2198,9 +2233,8 @@
 msgstr ""
 
 #: ../shortcuts/src/applet-notifications.c:257
-#, fuzzy
 msgid "Eject"
-msgstr "تنفيذ"
+msgstr ""
 
 #: ../shortcuts/src/applet-notifications.c:262
 msgid "Unmount (middle-click)"
@@ -2224,8 +2258,8 @@
 
 #: ../show-mouse/src/applet-init.c:31
 msgid ""
-"This plugin draws some animations around the cursor when it's inside a dock/"
-"desklet."
+"This plugin draws some animations around the cursor when it's inside a "
+"dock/desklet."
 msgstr ""
 
 #: ../showDesktop/src/applet-init.c:28
@@ -2301,7 +2335,7 @@
 msgid "stack"
 msgstr ""
 
-#: ../stack/src/applet-init.c:34 ../stacks/src/applet-init.c:33
+#: ../stack/src/applet-init.c:34
 msgid ""
 "This applet allows you to build a stack of files, just like the Stacks "
 "applet of MacOS X.\n"
@@ -2358,18 +2392,6 @@
 msgid "Clear the stack"
 msgstr ""
 
-#: ../stacks/src/applet-init.c:30
-msgid "stacks"
-msgstr ""
-
-#: ../stacks/src/applet-notifications.c:44
-msgid "Reload Stacks"
-msgstr ""
-
-#: ../stacks/src/applet-notifications.c:45
-msgid "Clean local directory"
-msgstr ""
-
 #: ../switcher/src/applet-draw.c:612 ../switcher/src/applet-draw.c:619
 #: ../switcher/src/applet-load-icons.c:43
 #: ../switcher/src/applet-notifications.c:393
@@ -2474,7 +2496,7 @@
 msgstr ""
 
 #: ../terminal/src/terminal-callbacks.c:82
-#: ../terminal/src/terminal-widget.c:352
+#: ../terminal/src/terminal-widget.c:358
 msgid "Copy"
 msgstr ""
 
@@ -2495,7 +2517,7 @@
 msgstr ""
 
 #: ../terminal/src/terminal-menu-functions.c:78
-#: ../terminal/src/terminal-widget.c:368
+#: ../terminal/src/terminal-widget.c:374
 msgid "New Tab"
 msgstr ""
 
@@ -2511,32 +2533,32 @@
 msgid "Terminal"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:149
+#: ../terminal/src/terminal-widget.c:154
 msgid "Set title for this tab:"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:203
+#: ../terminal/src/terminal-widget.c:209
 msgid "Select a color"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:312
+#: ../terminal/src/terminal-widget.c:318
 #, c-format
 msgid "You can recall the Terminal desklet by typing %s"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:358
+#: ../terminal/src/terminal-widget.c:364
 msgid "Paste"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:374
+#: ../terminal/src/terminal-widget.c:380
 msgid "Rename this Tab"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:380
+#: ../terminal/src/terminal-widget.c:386
 msgid "Change this Tab's colour"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:386
+#: ../terminal/src/terminal-widget.c:392
 msgid "Close this Tab"
 msgstr ""
 
@@ -2878,11 +2900,11 @@
 #: ../netspeed/data/messages:41 ../powermanager/data/messages:43
 #: ../quick-browser/data/messages:47 ../shortcuts/data/messages:45
 #: ../showDesktop/data/messages:49 ../slider/data/messages:43
-#: ../stack/data/messages:47 ../stacks/data/messages:43
-#: ../switcher/data/messages:37 ../systray/data/messages:37
-#: ../template/data/messages:45 ../terminal/data/messages:45
-#: ../tomboy/data/messages:55 ../weather/data/messages:43
-#: ../weblets/data/messages:45 ../wifi/data/messages:43
+#: ../stack/data/messages:47 ../switcher/data/messages:37
+#: ../systray/data/messages:37 ../template/data/messages:45
+#: ../terminal/data/messages:45 ../tomboy/data/messages:55
+#: ../weather/data/messages:43 ../weblets/data/messages:45
+#: ../wifi/data/messages:43
 msgid "Normal"
 msgstr ""
 
@@ -2909,10 +2931,9 @@
 #: ../dnd2share/data/messages:9 ../logout/data/messages:9
 #: ../quick-browser/data/messages:11 ../shortcuts/data/messages:9
 #: ../showDesktop/data/messages:9 ../stack/data/messages:11
-#: ../stacks/data/messages:9 ../switcher/data/messages:9
-#: ../switcher/data/messages:141 ../systray/data/messages:9
-#: ../template/data/messages:9 ../terminal/data/messages:9
-#: ../weblets/data/messages:9
+#: ../switcher/data/messages:9 ../switcher/data/messages:141
+#: ../systray/data/messages:9 ../template/data/messages:9
+#: ../terminal/data/messages:9 ../weblets/data/messages:9
 msgid "Leave empty to use the default one."
 msgstr ""
 
@@ -2940,14 +2961,14 @@
 #: ../icon-effect/data/messages:109 ../icon-effect/data/messages:131
 #: ../icon-effect/data/messages:153 ../icon-effect/data/messages:175
 #: ../illusion/data/messages:37 ../show-mouse/data/messages:27
-msgid "st color of gradation :"
+msgid "1st color of gradation :"
 msgstr ""
 
 #: ../Animated-icons/data/messages:121 ../icon-effect/data/messages:83
 #: ../icon-effect/data/messages:111 ../icon-effect/data/messages:133
 #: ../icon-effect/data/messages:155 ../icon-effect/data/messages:177
 #: ../illusion/data/messages:39 ../show-mouse/data/messages:29
-msgid "nd color of gradation :"
+msgid "2nd color of gradation :"
 msgstr ""
 
 #: ../Animated-icons/data/messages:123 ../icon-effect/data/messages:85
@@ -3050,11 +3071,11 @@
 #: ../netspeed/data/messages:1 ../powermanager/data/messages:1
 #: ../quick-browser/data/messages:1 ../shortcuts/data/messages:1
 #: ../showDesktop/data/messages:1 ../slider/data/messages:1
-#: ../stack/data/messages:1 ../stacks/data/messages:1
-#: ../switcher/data/messages:1 ../systray/data/messages:1
-#: ../template/data/messages:1 ../terminal/data/messages:1
-#: ../tomboy/data/messages:1 ../weather/data/messages:1
-#: ../weblets/data/messages:1 ../wifi/data/messages:1
+#: ../stack/data/messages:1 ../switcher/data/messages:1
+#: ../systray/data/messages:1 ../template/data/messages:1
+#: ../terminal/data/messages:1 ../tomboy/data/messages:1
+#: ../weather/data/messages:1 ../weblets/data/messages:1
+#: ../wifi/data/messages:1
 msgid "Icon"
 msgstr ""
 
@@ -3072,11 +3093,11 @@
 #: ../netspeed/data/messages:3 ../powermanager/data/messages:3
 #: ../quick-browser/data/messages:3 ../shortcuts/data/messages:3
 #: ../showDesktop/data/messages:3 ../slider/data/messages:3
-#: ../stack/data/messages:3 ../stacks/data/messages:3
-#: ../switcher/data/messages:3 ../systray/data/messages:3
-#: ../template/data/messages:3 ../terminal/data/messages:3
-#: ../tomboy/data/messages:3 ../weather/data/messages:3
-#: ../weblets/data/messages:3 ../wifi/data/messages:3
+#: ../stack/data/messages:3 ../switcher/data/messages:3
+#: ../systray/data/messages:3 ../template/data/messages:3
+#: ../terminal/data/messages:3 ../tomboy/data/messages:3
+#: ../weather/data/messages:3 ../weblets/data/messages:3
+#: ../wifi/data/messages:3
 msgid "Set to 0 to use the default applet size"
 msgstr ""
 
@@ -3102,11 +3123,11 @@
 #: ../netspeed/data/messages:9 ../powermanager/data/messages:9
 #: ../quick-browser/data/messages:15 ../shortcuts/data/messages:13
 #: ../showDesktop/data/messages:17 ../slider/data/messages:9
-#: ../stack/data/messages:15 ../stacks/data/messages:13
-#: ../switcher/data/messages:13 ../systray/data/messages:13
-#: ../template/data/messages:13 ../terminal/data/messages:13
-#: ../tomboy/data/messages:9 ../weather/data/messages:11
-#: ../weblets/data/messages:13 ../wifi/data/messages:9
+#: ../stack/data/messages:15 ../switcher/data/messages:13
+#: ../systray/data/messages:13 ../template/data/messages:13
+#: ../terminal/data/messages:13 ../tomboy/data/messages:9
+#: ../weather/data/messages:11 ../weblets/data/messages:13
+#: ../wifi/data/messages:9
 msgid "Name of the dock it belongs to:"
 msgstr ""
 
@@ -3148,12 +3169,12 @@
 #: ../powermanager/data/messages:89 ../quick-browser/data/messages:93
 #: ../shortcuts/data/messages:91 ../show-mouse/data/messages:1
 #: ../showDesktop/data/messages:95 ../slider/data/messages:89
-#: ../stack/data/messages:93 ../stacks/data/messages:89
-#: ../switcher/data/messages:83 ../switcher/data/messages:85
-#: ../systray/data/messages:83 ../template/data/messages:91
-#: ../terminal/data/messages:91 ../tomboy/data/messages:101
-#: ../weather/data/messages:89 ../weather/data/messages:91
-#: ../weblets/data/messages:91 ../wifi/data/messages:89
+#: ../stack/data/messages:93 ../switcher/data/messages:83
+#: ../switcher/data/messages:85 ../systray/data/messages:83
+#: ../template/data/messages:91 ../terminal/data/messages:91
+#: ../tomboy/data/messages:101 ../weather/data/messages:89
+#: ../weather/data/messages:91 ../weblets/data/messages:91
+#: ../wifi/data/messages:89
 msgid "Configuration"
 msgstr ""
 
@@ -3169,8 +3190,10 @@
 #: ../Cairo-Penguin/data/messages:17 ../Clipper/data/messages:139
 #: ../Network-Monitor/data/messages:167 ../System-Monitor/data/messages:149
 #: ../System-Monitor/data/messages:185 ../Toons/data/messages:93
-#: ../dnd2share/data/messages:93 ../netspeed/data/messages:131
-#: ../powermanager/data/messages:145 ../slider/data/messages:107
+#: ../dnd2share/data/messages:93 ../mail/data/messages:115
+#: ../musicPlayer/data/messages:137 ../netspeed/data/messages:131
+#: ../powermanager/data/messages:145 ../shortcuts/data/messages:129
+#: ../slider/data/messages:107 ../tomboy/data/messages:115
 #: ../wifi/data/messages:165
 msgid "in seconds."
 msgstr ""
@@ -3188,7 +3211,7 @@
 msgstr ""
 
 #: ../Cairo-Penguin/data/messages:25 ../dock-rendering/data/messages:13
-#: ../dock-rendering/data/messages:95
+#: ../dock-rendering/data/messages:95 ../show-mouse/data/messages:23
 msgid "in pixels."
 msgstr ""
 
@@ -3210,11 +3233,10 @@
 #: ../powermanager/data/messages:5 ../quick-browser/data/messages:5
 #: ../shortcuts/data/messages:5 ../showDesktop/data/messages:5
 #: ../slider/data/messages:5 ../stack/data/messages:5
-#: ../stacks/data/messages:5 ../switcher/data/messages:5
-#: ../systray/data/messages:5 ../template/data/messages:5
-#: ../terminal/data/messages:5 ../tomboy/data/messages:5
-#: ../weather/data/messages:5 ../weblets/data/messages:5
-#: ../wifi/data/messages:5
+#: ../switcher/data/messages:5 ../systray/data/messages:5
+#: ../template/data/messages:5 ../terminal/data/messages:5
+#: ../tomboy/data/messages:5 ../weather/data/messages:5
+#: ../weblets/data/messages:5 ../wifi/data/messages:5
 msgid "Desired icon size for this applet"
 msgstr ""
 
@@ -3230,10 +3252,9 @@
 #: ../musicPlayer/data/messages:9 ../netspeed/data/messages:7
 #: ../quick-browser/data/messages:9 ../shortcuts/data/messages:7
 #: ../showDesktop/data/messages:7 ../slider/data/messages:7
-#: ../stack/data/messages:9 ../stacks/data/messages:7
-#: ../switcher/data/messages:7 ../template/data/messages:7
-#: ../weather/data/messages:9 ../weblets/data/messages:7
-#: ../wifi/data/messages:7
+#: ../stack/data/messages:9 ../switcher/data/messages:7
+#: ../template/data/messages:7 ../weather/data/messages:9
+#: ../weblets/data/messages:7 ../wifi/data/messages:7
 msgid "Name of the icon as it will appear in its caption in the dock:"
 msgstr ""
 
@@ -3243,9 +3264,9 @@
 #: ../dnd2share/data/messages:11 ../logout/data/messages:11
 #: ../quick-browser/data/messages:13 ../shortcuts/data/messages:11
 #: ../showDesktop/data/messages:11 ../stack/data/messages:13
-#: ../stacks/data/messages:11 ../switcher/data/messages:11
-#: ../systray/data/messages:11 ../template/data/messages:11
-#: ../terminal/data/messages:11 ../weblets/data/messages:11
+#: ../switcher/data/messages:11 ../systray/data/messages:11
+#: ../template/data/messages:11 ../terminal/data/messages:11
+#: ../weblets/data/messages:11
 msgid "Image filename:"
 msgstr ""
 
@@ -3263,11 +3284,10 @@
 #: ../powermanager/data/messages:15 ../quick-browser/data/messages:19
 #: ../shortcuts/data/messages:17 ../showDesktop/data/messages:21
 #: ../slider/data/messages:15 ../stack/data/messages:19
-#: ../stacks/data/messages:15 ../switcher/data/messages:17
-#: ../systray/data/messages:17 ../template/data/messages:17
-#: ../terminal/data/messages:17 ../tomboy/data/messages:27
-#: ../weather/data/messages:15 ../weblets/data/messages:17
-#: ../wifi/data/messages:15
+#: ../switcher/data/messages:17 ../systray/data/messages:17
+#: ../template/data/messages:17 ../terminal/data/messages:17
+#: ../tomboy/data/messages:27 ../weather/data/messages:15
+#: ../weblets/data/messages:17 ../wifi/data/messages:15
 msgid "Desklet"
 msgstr ""
 
@@ -3285,11 +3305,10 @@
 #: ../powermanager/data/messages:17 ../quick-browser/data/messages:21
 #: ../shortcuts/data/messages:19 ../showDesktop/data/messages:23
 #: ../slider/data/messages:17 ../stack/data/messages:21
-#: ../stacks/data/messages:17 ../switcher/data/messages:19
-#: ../systray/data/messages:19 ../template/data/messages:19
-#: ../terminal/data/messages:19 ../tomboy/data/messages:29
-#: ../weather/data/messages:17 ../weblets/data/messages:19
-#: ../wifi/data/messages:17
+#: ../switcher/data/messages:19 ../systray/data/messages:19
+#: ../template/data/messages:19 ../terminal/data/messages:19
+#: ../tomboy/data/messages:29 ../weather/data/messages:17
+#: ../weblets/data/messages:19 ../wifi/data/messages:17
 msgid "Position"
 msgstr ""
 
@@ -3297,16 +3316,16 @@
 #: ../Folders/data/messages:33 ../GMenu/data/messages:21
 #: ../MeMenu/data/messages:15 ../Messaging-Menu/data/messages:17
 #: ../Network-Monitor/data/messages:21 ../RSSreader/data/messages:23
-#: ../System-Monitor/data/messages:19 ../Toons/data/messages:19
-#: ../Xgamma/data/messages:21 ../alsaMixer/data/messages:19
-#: ../clock/data/messages:21 ../compiz-icon/data/messages:17
-#: ../dnd2share/data/messages:21 ../dustbin/data/messages:17
-#: ../keyboard-indicator/data/messages:17 ../logout/data/messages:21
-#: ../mail/data/messages:17 ../musicPlayer/data/messages:19
-#: ../netspeed/data/messages:17 ../powermanager/data/messages:19
-#: ../quick-browser/data/messages:23 ../shortcuts/data/messages:21
-#: ../showDesktop/data/messages:25 ../slider/data/messages:19
-#: ../stack/data/messages:23 ../stacks/data/messages:19
+#: ../Status-Notifier/data/messages:21 ../System-Monitor/data/messages:19
+#: ../Toons/data/messages:19 ../Xgamma/data/messages:21
+#: ../alsaMixer/data/messages:19 ../clock/data/messages:21
+#: ../compiz-icon/data/messages:17 ../dnd2share/data/messages:21
+#: ../dustbin/data/messages:17 ../keyboard-indicator/data/messages:17
+#: ../logout/data/messages:21 ../mail/data/messages:17
+#: ../musicPlayer/data/messages:19 ../netspeed/data/messages:17
+#: ../powermanager/data/messages:19 ../quick-browser/data/messages:23
+#: ../shortcuts/data/messages:21 ../showDesktop/data/messages:25
+#: ../slider/data/messages:19 ../stack/data/messages:23
 #: ../switcher/data/messages:21 ../systray/data/messages:21
 #: ../template/data/messages:21 ../terminal/data/messages:21
 #: ../tomboy/data/messages:31 ../weather/data/messages:19
@@ -3320,16 +3339,16 @@
 #: ../Folders/data/messages:35 ../GMenu/data/messages:23
 #: ../MeMenu/data/messages:17 ../Messaging-Menu/data/messages:19
 #: ../Network-Monitor/data/messages:23 ../RSSreader/data/messages:25
-#: ../System-Monitor/data/messages:21 ../Toons/data/messages:21
-#: ../Xgamma/data/messages:23 ../alsaMixer/data/messages:21
-#: ../clock/data/messages:23 ../compiz-icon/data/messages:19
-#: ../dnd2share/data/messages:23 ../dustbin/data/messages:19
-#: ../keyboard-indicator/data/messages:19 ../logout/data/messages:23
-#: ../mail/data/messages:19 ../musicPlayer/data/messages:21
-#: ../netspeed/data/messages:19 ../powermanager/data/messages:21
-#: ../quick-browser/data/messages:25 ../shortcuts/data/messages:23
-#: ../showDesktop/data/messages:27 ../slider/data/messages:21
-#: ../stack/data/messages:25 ../stacks/data/messages:21
+#: ../Status-Notifier/data/messages:23 ../System-Monitor/data/messages:21
+#: ../Toons/data/messages:21 ../Xgamma/data/messages:23
+#: ../alsaMixer/data/messages:21 ../clock/data/messages:23
+#: ../compiz-icon/data/messages:19 ../dnd2share/data/messages:23
+#: ../dustbin/data/messages:19 ../keyboard-indicator/data/messages:19
+#: ../logout/data/messages:23 ../mail/data/messages:19
+#: ../musicPlayer/data/messages:21 ../netspeed/data/messages:19
+#: ../powermanager/data/messages:21 ../quick-browser/data/messages:25
+#: ../shortcuts/data/messages:23 ../showDesktop/data/messages:27
+#: ../slider/data/messages:21 ../stack/data/messages:25
 #: ../switcher/data/messages:23 ../systray/data/messages:23
 #: ../template/data/messages:23 ../terminal/data/messages:23
 #: ../tomboy/data/messages:33 ../weather/data/messages:21
@@ -3341,16 +3360,16 @@
 #: ../Folders/data/messages:37 ../GMenu/data/messages:25
 #: ../MeMenu/data/messages:19 ../Messaging-Menu/data/messages:21
 #: ../Network-Monitor/data/messages:25 ../RSSreader/data/messages:27
-#: ../System-Monitor/data/messages:23 ../Toons/data/messages:23
-#: ../Xgamma/data/messages:25 ../alsaMixer/data/messages:23
-#: ../clock/data/messages:25 ../compiz-icon/data/messages:21
-#: ../dnd2share/data/messages:25 ../dustbin/data/messages:21
-#: ../keyboard-indicator/data/messages:21 ../logout/data/messages:25
-#: ../mail/data/messages:21 ../musicPlayer/data/messages:23
-#: ../netspeed/data/messages:21 ../powermanager/data/messages:23
-#: ../quick-browser/data/messages:27 ../shortcuts/data/messages:25
-#: ../showDesktop/data/messages:29 ../slider/data/messages:23
-#: ../stack/data/messages:27 ../stacks/data/messages:23
+#: ../Status-Notifier/data/messages:25 ../System-Monitor/data/messages:23
+#: ../Toons/data/messages:23 ../Xgamma/data/messages:25
+#: ../alsaMixer/data/messages:23 ../clock/data/messages:25
+#: ../compiz-icon/data/messages:21 ../dnd2share/data/messages:25
+#: ../dustbin/data/messages:21 ../keyboard-indicator/data/messages:21
+#: ../logout/data/messages:25 ../mail/data/messages:21
+#: ../musicPlayer/data/messages:23 ../netspeed/data/messages:21
+#: ../powermanager/data/messages:23 ../quick-browser/data/messages:27
+#: ../shortcuts/data/messages:25 ../showDesktop/data/messages:29
+#: ../slider/data/messages:23 ../stack/data/messages:27
 #: ../switcher/data/messages:25 ../template/data/messages:25
 #: ../terminal/data/messages:25 ../tomboy/data/messages:35
 #: ../weather/data/messages:23 ../weblets/data/messages:25
@@ -3364,16 +3383,16 @@
 #: ../Folders/data/messages:39 ../GMenu/data/messages:27
 #: ../MeMenu/data/messages:21 ../Messaging-Menu/data/messages:23
 #: ../Network-Monitor/data/messages:27 ../RSSreader/data/messages:29
-#: ../System-Monitor/data/messages:25 ../Toons/data/messages:25
-#: ../Xgamma/data/messages:27 ../alsaMixer/data/messages:25
-#: ../clock/data/messages:27 ../compiz-icon/data/messages:23
-#: ../dnd2share/data/messages:27 ../dustbin/data/messages:23
-#: ../keyboard-indicator/data/messages:23 ../logout/data/messages:27
-#: ../mail/data/messages:23 ../musicPlayer/data/messages:25
-#: ../netspeed/data/messages:23 ../powermanager/data/messages:25
-#: ../quick-browser/data/messages:29 ../shortcuts/data/messages:27
-#: ../showDesktop/data/messages:31 ../slider/data/messages:25
-#: ../stack/data/messages:29 ../stacks/data/messages:25
+#: ../Status-Notifier/data/messages:27 ../System-Monitor/data/messages:25
+#: ../Toons/data/messages:25 ../Xgamma/data/messages:27
+#: ../alsaMixer/data/messages:25 ../clock/data/messages:27
+#: ../compiz-icon/data/messages:23 ../dnd2share/data/messages:27
+#: ../dustbin/data/messages:23 ../keyboard-indicator/data/messages:23
+#: ../logout/data/messages:27 ../mail/data/messages:23
+#: ../musicPlayer/data/messages:25 ../netspeed/data/messages:23
+#: ../powermanager/data/messages:25 ../quick-browser/data/messages:29
+#: ../shortcuts/data/messages:27 ../showDesktop/data/messages:31
+#: ../slider/data/messages:25 ../stack/data/messages:29
 #: ../switcher/data/messages:27 ../template/data/messages:27
 #: ../terminal/data/messages:27 ../tomboy/data/messages:37
 #: ../weather/data/messages:25 ../weblets/data/messages:27
@@ -3392,8 +3411,7 @@
 #: ../musicPlayer/data/messages:27 ../powermanager/data/messages:27
 #: ../quick-browser/data/messages:31 ../shortcuts/data/messages:29
 #: ../showDesktop/data/messages:33 ../slider/data/messages:27
-#: ../stack/data/messages:31 ../stacks/data/messages:27
-#: ../template/data/messages:29 ../terminal/data/messages:29
+#: ../stack/data/messages:31 ../terminal/data/messages:29
 #: ../weather/data/messages:27 ../weblets/data/messages:29
 #: ../wifi/data/messages:27
 msgid ""
@@ -3405,16 +3423,16 @@
 #: ../Folders/data/messages:43 ../GMenu/data/messages:31
 #: ../MeMenu/data/messages:25 ../Messaging-Menu/data/messages:27
 #: ../Network-Monitor/data/messages:31 ../RSSreader/data/messages:33
-#: ../System-Monitor/data/messages:29 ../Toons/data/messages:29
-#: ../Xgamma/data/messages:31 ../alsaMixer/data/messages:29
-#: ../clock/data/messages:31 ../compiz-icon/data/messages:27
-#: ../dnd2share/data/messages:31 ../dustbin/data/messages:27
-#: ../keyboard-indicator/data/messages:27 ../logout/data/messages:31
-#: ../mail/data/messages:27 ../musicPlayer/data/messages:29
-#: ../netspeed/data/messages:27 ../powermanager/data/messages:29
-#: ../quick-browser/data/messages:33 ../shortcuts/data/messages:31
-#: ../showDesktop/data/messages:35 ../slider/data/messages:29
-#: ../stack/data/messages:33 ../stacks/data/messages:29
+#: ../Status-Notifier/data/messages:31 ../System-Monitor/data/messages:29
+#: ../Toons/data/messages:29 ../Xgamma/data/messages:31
+#: ../alsaMixer/data/messages:29 ../clock/data/messages:31
+#: ../compiz-icon/data/messages:27 ../dnd2share/data/messages:31
+#: ../dustbin/data/messages:27 ../keyboard-indicator/data/messages:27
+#: ../logout/data/messages:31 ../mail/data/messages:27
+#: ../musicPlayer/data/messages:29 ../netspeed/data/messages:27
+#: ../powermanager/data/messages:29 ../quick-browser/data/messages:33
+#: ../shortcuts/data/messages:31 ../showDesktop/data/messages:35
+#: ../slider/data/messages:29 ../stack/data/messages:33
 #: ../switcher/data/messages:29 ../systray/data/messages:27
 #: ../template/data/messages:31 ../terminal/data/messages:31
 #: ../tomboy/data/messages:41 ../weather/data/messages:29
@@ -3435,10 +3453,10 @@
 #: ../netspeed/data/messages:29 ../powermanager/data/messages:31
 #: ../quick-browser/data/messages:35 ../shortcuts/data/messages:33
 #: ../showDesktop/data/messages:37 ../slider/data/messages:31
-#: ../stack/data/messages:35 ../stacks/data/messages:31
-#: ../template/data/messages:33 ../terminal/data/messages:33
-#: ../tomboy/data/messages:43 ../weather/data/messages:31
-#: ../weblets/data/messages:33 ../wifi/data/messages:31
+#: ../stack/data/messages:35 ../template/data/messages:33
+#: ../terminal/data/messages:33 ../tomboy/data/messages:43
+#: ../weather/data/messages:31 ../weblets/data/messages:33
+#: ../wifi/data/messages:31
 msgid ""
 "You can quickly rotate the desklet with the mouse, by dragging the little "
 "buttons on its left and top sides."
@@ -3448,16 +3466,16 @@
 #: ../Folders/data/messages:47 ../GMenu/data/messages:35
 #: ../MeMenu/data/messages:29 ../Messaging-Menu/data/messages:31
 #: ../Network-Monitor/data/messages:35 ../RSSreader/data/messages:37
-#: ../System-Monitor/data/messages:33 ../Toons/data/messages:33
-#: ../Xgamma/data/messages:35 ../alsaMixer/data/messages:33
-#: ../clock/data/messages:35 ../compiz-icon/data/messages:31
-#: ../dustbin/data/messages:31 ../keyboard-indicator/data/messages:31
-#: ../logout/data/messages:35 ../mail/data/messages:31
-#: ../musicPlayer/data/messages:33 ../netspeed/data/messages:31
-#: ../powermanager/data/messages:33 ../quick-browser/data/messages:37
-#: ../shortcuts/data/messages:35 ../showDesktop/data/messages:39
-#: ../slider/data/messages:33 ../stack/data/messages:37
-#: ../stacks/data/messages:33 ../template/data/messages:35
+#: ../Status-Notifier/data/messages:35 ../System-Monitor/data/messages:33
+#: ../Toons/data/messages:33 ../Xgamma/data/messages:35
+#: ../alsaMixer/data/messages:33 ../clock/data/messages:35
+#: ../compiz-icon/data/messages:31 ../dustbin/data/messages:31
+#: ../keyboard-indicator/data/messages:31 ../logout/data/messages:35
+#: ../mail/data/messages:31 ../musicPlayer/data/messages:33
+#: ../netspeed/data/messages:31 ../powermanager/data/messages:33
+#: ../quick-browser/data/messages:37 ../shortcuts/data/messages:35
+#: ../showDesktop/data/messages:39 ../slider/data/messages:33
+#: ../stack/data/messages:37 ../template/data/messages:35
 #: ../terminal/data/messages:35 ../tomboy/data/messages:45
 #: ../weather/data/messages:33 ../weblets/data/messages:35
 #: ../wifi/data/messages:33
@@ -3478,11 +3496,10 @@
 #: ../powermanager/data/messages:35 ../quick-browser/data/messages:39
 #: ../shortcuts/data/messages:37 ../showDesktop/data/messages:41
 #: ../slider/data/messages:35 ../stack/data/messages:39
-#: ../stacks/data/messages:35 ../switcher/data/messages:31
-#: ../systray/data/messages:29 ../template/data/messages:37
-#: ../terminal/data/messages:37 ../tomboy/data/messages:47
-#: ../weather/data/messages:35 ../weblets/data/messages:37
-#: ../wifi/data/messages:35
+#: ../switcher/data/messages:31 ../systray/data/messages:29
+#: ../template/data/messages:37 ../terminal/data/messages:37
+#: ../tomboy/data/messages:47 ../weather/data/messages:35
+#: ../weblets/data/messages:37 ../wifi/data/messages:35
 msgid "Visibility"
 msgstr ""
 
@@ -3490,17 +3507,17 @@
 #: ../Folders/data/messages:51 ../GMenu/data/messages:39
 #: ../MeMenu/data/messages:33 ../Messaging-Menu/data/messages:35
 #: ../Network-Monitor/data/messages:39 ../RSSreader/data/messages:41
-#: ../Scooby-Do/data/messages:27 ../System-Monitor/data/messages:37
-#: ../Toons/data/messages:37 ../Xgamma/data/messages:39
-#: ../alsaMixer/data/messages:37 ../clock/data/messages:39
-#: ../compiz-icon/data/messages:35 ../dnd2share/data/messages:35
-#: ../dustbin/data/messages:35 ../keyboard-indicator/data/messages:35
-#: ../logout/data/messages:39 ../mail/data/messages:35
-#: ../musicPlayer/data/messages:37 ../netspeed/data/messages:35
-#: ../powermanager/data/messages:37 ../quick-browser/data/messages:41
-#: ../shortcuts/data/messages:39 ../showDesktop/data/messages:43
-#: ../slider/data/messages:37 ../stack/data/messages:41
-#: ../stacks/data/messages:37 ../switcher/data/messages:33
+#: ../Scooby-Do/data/messages:27 ../Status-Notifier/data/messages:39
+#: ../System-Monitor/data/messages:37 ../Toons/data/messages:37
+#: ../Xgamma/data/messages:39 ../alsaMixer/data/messages:37
+#: ../clock/data/messages:39 ../compiz-icon/data/messages:35
+#: ../dnd2share/data/messages:35 ../dustbin/data/messages:35
+#: ../keyboard-indicator/data/messages:35 ../logout/data/messages:39
+#: ../mail/data/messages:35 ../musicPlayer/data/messages:37
+#: ../netspeed/data/messages:35 ../powermanager/data/messages:37
+#: ../quick-browser/data/messages:41 ../shortcuts/data/messages:39
+#: ../showDesktop/data/messages:43 ../slider/data/messages:37
+#: ../stack/data/messages:41 ../switcher/data/messages:33
 #: ../systray/data/messages:31 ../template/data/messages:39
 #: ../terminal/data/messages:39 ../tomboy/data/messages:49
 #: ../weather/data/messages:37 ../weblets/data/messages:39
@@ -3522,10 +3539,10 @@
 #: ../powermanager/data/messages:39 ../quick-browser/data/messages:43
 #: ../shortcuts/data/messages:41 ../showDesktop/data/messages:45
 #: ../slider/data/messages:39 ../stack/data/messages:43
-#: ../stacks/data/messages:39 ../systray/data/messages:33
-#: ../template/data/messages:41 ../terminal/data/messages:41
-#: ../tomboy/data/messages:51 ../weather/data/messages:39
-#: ../weblets/data/messages:41 ../wifi/data/messages:39
+#: ../systray/data/messages:33 ../template/data/messages:41
+#: ../terminal/data/messages:41 ../tomboy/data/messages:51
+#: ../weather/data/messages:39 ../weblets/data/messages:41
+#: ../wifi/data/messages:39
 msgid ""
 "for CompizFusion's \"widget layer\", set behaviour in Compiz to: "
 "(class=Cairo-dock & type=utility)"
@@ -3535,16 +3552,16 @@
 #: ../Folders/data/messages:55 ../GMenu/data/messages:43
 #: ../MeMenu/data/messages:37 ../Messaging-Menu/data/messages:39
 #: ../Network-Monitor/data/messages:43 ../RSSreader/data/messages:45
-#: ../System-Monitor/data/messages:41 ../Toons/data/messages:41
-#: ../Xgamma/data/messages:43 ../alsaMixer/data/messages:41
-#: ../clock/data/messages:43 ../compiz-icon/data/messages:39
-#: ../dnd2share/data/messages:39 ../dustbin/data/messages:39
-#: ../keyboard-indicator/data/messages:39 ../logout/data/messages:43
-#: ../mail/data/messages:39 ../musicPlayer/data/messages:41
-#: ../netspeed/data/messages:39 ../powermanager/data/messages:41
-#: ../quick-browser/data/messages:45 ../shortcuts/data/messages:43
-#: ../showDesktop/data/messages:47 ../slider/data/messages:41
-#: ../stack/data/messages:45 ../stacks/data/messages:41
+#: ../Status-Notifier/data/messages:43 ../System-Monitor/data/messages:41
+#: ../Toons/data/messages:41 ../Xgamma/data/messages:43
+#: ../alsaMixer/data/messages:41 ../clock/data/messages:43
+#: ../compiz-icon/data/messages:39 ../dnd2share/data/messages:39
+#: ../dustbin/data/messages:39 ../keyboard-indicator/data/messages:39
+#: ../logout/data/messages:43 ../mail/data/messages:39
+#: ../musicPlayer/data/messages:41 ../netspeed/data/messages:39
+#: ../powermanager/data/messages:41 ../quick-browser/data/messages:45
+#: ../shortcuts/data/messages:43 ../showDesktop/data/messages:47
+#: ../slider/data/messages:41 ../stack/data/messages:45
 #: ../switcher/data/messages:35 ../systray/data/messages:35
 #: ../template/data/messages:43 ../terminal/data/messages:43
 #: ../tomboy/data/messages:53 ../weather/data/messages:41
@@ -3566,11 +3583,10 @@
 #: ../powermanager/data/messages:45 ../quick-browser/data/messages:49
 #: ../shortcuts/data/messages:47 ../showDesktop/data/messages:51
 #: ../slider/data/messages:45 ../stack/data/messages:49
-#: ../stacks/data/messages:45 ../switcher/data/messages:39
-#: ../systray/data/messages:39 ../template/data/messages:47
-#: ../terminal/data/messages:47 ../tomboy/data/messages:57
-#: ../weather/data/messages:45 ../weblets/data/messages:47
-#: ../wifi/data/messages:45
+#: ../switcher/data/messages:39 ../systray/data/messages:39
+#: ../template/data/messages:47 ../terminal/data/messages:47
+#: ../tomboy/data/messages:57 ../weather/data/messages:45
+#: ../weblets/data/messages:47 ../wifi/data/messages:45
 msgid "Keep above"
 msgstr ""
 
@@ -3588,11 +3604,10 @@
 #: ../powermanager/data/messages:47 ../quick-browser/data/messages:51
 #: ../shortcuts/data/messages:49 ../showDesktop/data/messages:53
 #: ../slider/data/messages:47 ../stack/data/messages:51
-#: ../stacks/data/messages:47 ../switcher/data/messages:41
-#: ../systray/data/messages:41 ../template/data/messages:49
-#: ../terminal/data/messages:49 ../tomboy/data/messages:59
-#: ../weather/data/messages:47 ../weblets/data/messages:49
-#: ../wifi/data/messages:47
+#: ../switcher/data/messages:41 ../systray/data/messages:41
+#: ../template/data/messages:49 ../terminal/data/messages:49
+#: ../tomboy/data/messages:59 ../weather/data/messages:47
+#: ../weblets/data/messages:49 ../wifi/data/messages:47
 msgid "Keep below"
 msgstr ""
 
@@ -3600,16 +3615,16 @@
 #: ../Folders/data/messages:63 ../GMenu/data/messages:51
 #: ../MeMenu/data/messages:45 ../Messaging-Menu/data/messages:47
 #: ../Network-Monitor/data/messages:51 ../RSSreader/data/messages:53
-#: ../System-Monitor/data/messages:49 ../Toons/data/messages:49
-#: ../Xgamma/data/messages:51 ../alsaMixer/data/messages:49
-#: ../clock/data/messages:51 ../compiz-icon/data/messages:47
-#: ../dnd2share/data/messages:47 ../dustbin/data/messages:47
-#: ../keyboard-indicator/data/messages:47 ../logout/data/messages:51
-#: ../mail/data/messages:47 ../musicPlayer/data/messages:49
-#: ../netspeed/data/messages:47 ../powermanager/data/messages:49
-#: ../quick-browser/data/messages:53 ../shortcuts/data/messages:51
-#: ../showDesktop/data/messages:55 ../slider/data/messages:49
-#: ../stack/data/messages:53 ../stacks/data/messages:49
+#: ../Status-Notifier/data/messages:51 ../System-Monitor/data/messages:49
+#: ../Toons/data/messages:49 ../Xgamma/data/messages:51
+#: ../alsaMixer/data/messages:49 ../clock/data/messages:51
+#: ../compiz-icon/data/messages:47 ../dnd2share/data/messages:47
+#: ../dustbin/data/messages:47 ../keyboard-indicator/data/messages:47
+#: ../logout/data/messages:51 ../mail/data/messages:47
+#: ../musicPlayer/data/messages:49 ../netspeed/data/messages:47
+#: ../powermanager/data/messages:49 ../quick-browser/data/messages:53
+#: ../shortcuts/data/messages:51 ../showDesktop/data/messages:55
+#: ../slider/data/messages:49 ../stack/data/messages:53
 #: ../switcher/data/messages:43 ../systray/data/messages:43
 #: ../template/data/messages:51 ../terminal/data/messages:51
 #: ../tomboy/data/messages:61 ../weather/data/messages:49
@@ -3631,11 +3646,10 @@
 #: ../powermanager/data/messages:51 ../quick-browser/data/messages:55
 #: ../shortcuts/data/messages:53 ../showDesktop/data/messages:57
 #: ../slider/data/messages:51 ../stack/data/messages:55
-#: ../stacks/data/messages:51 ../switcher/data/messages:45
-#: ../systray/data/messages:45 ../template/data/messages:53
-#: ../terminal/data/messages:53 ../tomboy/data/messages:63
-#: ../weather/data/messages:51 ../weblets/data/messages:53
-#: ../wifi/data/messages:51
+#: ../switcher/data/messages:45 ../systray/data/messages:45
+#: ../template/data/messages:53 ../terminal/data/messages:53
+#: ../tomboy/data/messages:63 ../weather/data/messages:51
+#: ../weblets/data/messages:53 ../wifi/data/messages:51
 msgid "Reserve space"
 msgstr ""
 
@@ -3643,16 +3657,16 @@
 #: ../Folders/data/messages:67 ../GMenu/data/messages:55
 #: ../MeMenu/data/messages:49 ../Messaging-Menu/data/messages:51
 #: ../Network-Monitor/data/messages:55 ../RSSreader/data/messages:57
-#: ../System-Monitor/data/messages:53 ../Toons/data/messages:53
-#: ../Xgamma/data/messages:55 ../alsaMixer/data/messages:53
-#: ../clock/data/messages:55 ../compiz-icon/data/messages:51
-#: ../dnd2share/data/messages:51 ../dustbin/data/messages:51
-#: ../keyboard-indicator/data/messages:51 ../logout/data/messages:55
-#: ../mail/data/messages:51 ../musicPlayer/data/messages:53
-#: ../netspeed/data/messages:51 ../powermanager/data/messages:53
-#: ../quick-browser/data/messages:57 ../shortcuts/data/messages:55
-#: ../showDesktop/data/messages:59 ../slider/data/messages:53
-#: ../stack/data/messages:57 ../stacks/data/messages:53
+#: ../Status-Notifier/data/messages:55 ../System-Monitor/data/messages:53
+#: ../Toons/data/messages:53 ../Xgamma/data/messages:55
+#: ../alsaMixer/data/messages:53 ../clock/data/messages:55
+#: ../compiz-icon/data/messages:51 ../dnd2share/data/messages:51
+#: ../dustbin/data/messages:51 ../keyboard-indicator/data/messages:51
+#: ../logout/data/messages:55 ../mail/data/messages:51
+#: ../musicPlayer/data/messages:53 ../netspeed/data/messages:51
+#: ../powermanager/data/messages:53 ../quick-browser/data/messages:57
+#: ../shortcuts/data/messages:55 ../showDesktop/data/messages:59
+#: ../slider/data/messages:53 ../stack/data/messages:57
 #: ../switcher/data/messages:47 ../systray/data/messages:47
 #: ../template/data/messages:55 ../terminal/data/messages:55
 #: ../tomboy/data/messages:65 ../weather/data/messages:53
@@ -3674,11 +3688,10 @@
 #: ../powermanager/data/messages:55 ../quick-browser/data/messages:59
 #: ../shortcuts/data/messages:57 ../showDesktop/data/messages:61
 #: ../slider/data/messages:55 ../stack/data/messages:59
-#: ../stacks/data/messages:55 ../switcher/data/messages:49
-#: ../systray/data/messages:49 ../template/data/messages:57
-#: ../terminal/data/messages:57 ../tomboy/data/messages:67
-#: ../weather/data/messages:55 ../weblets/data/messages:57
-#: ../wifi/data/messages:55
+#: ../switcher/data/messages:49 ../systray/data/messages:49
+#: ../template/data/messages:57 ../terminal/data/messages:57
+#: ../tomboy/data/messages:67 ../weather/data/messages:55
+#: ../weblets/data/messages:57 ../wifi/data/messages:55
 msgid "Decorations"
 msgstr ""
 
@@ -3696,11 +3709,10 @@
 #: ../powermanager/data/messages:57 ../quick-browser/data/messages:61
 #: ../shortcuts/data/messages:59 ../showDesktop/data/messages:63
 #: ../slider/data/messages:57 ../stack/data/messages:61
-#: ../stacks/data/messages:57 ../switcher/data/messages:51
-#: ../systray/data/messages:51 ../template/data/messages:59
-#: ../terminal/data/messages:59 ../tomboy/data/messages:69
-#: ../weather/data/messages:57 ../weblets/data/messages:59
-#: ../wifi/data/messages:57
+#: ../switcher/data/messages:51 ../systray/data/messages:51
+#: ../template/data/messages:59 ../terminal/data/messages:59
+#: ../tomboy/data/messages:69 ../weather/data/messages:57
+#: ../weblets/data/messages:59 ../wifi/data/messages:57
 msgid "Choose 'Custom decorations' to define your own decorations below."
 msgstr ""
 
@@ -3708,16 +3720,16 @@
 #: ../Folders/data/messages:73 ../GMenu/data/messages:61
 #: ../MeMenu/data/messages:55 ../Messaging-Menu/data/messages:57
 #: ../Network-Monitor/data/messages:61 ../RSSreader/data/messages:63
-#: ../System-Monitor/data/messages:59 ../Toons/data/messages:59
-#: ../Xgamma/data/messages:61 ../alsaMixer/data/messages:59
-#: ../clock/data/messages:61 ../compiz-icon/data/messages:57
-#: ../dnd2share/data/messages:57 ../dustbin/data/messages:57
-#: ../keyboard-indicator/data/messages:57 ../logout/data/messages:61
-#: ../mail/data/messages:57 ../musicPlayer/data/messages:59
-#: ../netspeed/data/messages:57 ../powermanager/data/messages:59
-#: ../quick-browser/data/messages:63 ../shortcuts/data/messages:61
-#: ../showDesktop/data/messages:65 ../slider/data/messages:59
-#: ../stack/data/messages:63 ../stacks/data/messages:59
+#: ../Status-Notifier/data/messages:61 ../System-Monitor/data/messages:59
+#: ../Toons/data/messages:59 ../Xgamma/data/messages:61
+#: ../alsaMixer/data/messages:59 ../clock/data/messages:61
+#: ../compiz-icon/data/messages:57 ../dnd2share/data/messages:57
+#: ../dustbin/data/messages:57 ../keyboard-indicator/data/messages:57
+#: ../logout/data/messages:61 ../mail/data/messages:57
+#: ../musicPlayer/data/messages:59 ../netspeed/data/messages:57
+#: ../powermanager/data/messages:59 ../quick-browser/data/messages:63
+#: ../shortcuts/data/messages:61 ../showDesktop/data/messages:65
+#: ../slider/data/messages:59 ../stack/data/messages:63
 #: ../switcher/data/messages:53 ../systray/data/messages:53
 #: ../template/data/messages:61 ../terminal/data/messages:61
 #: ../tomboy/data/messages:71 ../weather/data/messages:59
@@ -3729,16 +3741,16 @@
 #: ../Folders/data/messages:75 ../GMenu/data/messages:63
 #: ../MeMenu/data/messages:57 ../Messaging-Menu/data/messages:59
 #: ../Network-Monitor/data/messages:63 ../RSSreader/data/messages:65
-#: ../System-Monitor/data/messages:61 ../Toons/data/messages:61
-#: ../Xgamma/data/messages:63 ../alsaMixer/data/messages:61
-#: ../clock/data/messages:63 ../compiz-icon/data/messages:59
-#: ../dnd2share/data/messages:59 ../dustbin/data/messages:59
-#: ../keyboard-indicator/data/messages:59 ../logout/data/messages:63
-#: ../mail/data/messages:59 ../musicPlayer/data/messages:61
-#: ../netspeed/data/messages:59 ../powermanager/data/messages:61
-#: ../quick-browser/data/messages:65 ../shortcuts/data/messages:63
-#: ../showDesktop/data/messages:67 ../slider/data/messages:61
-#: ../stack/data/messages:65 ../stacks/data/messages:61
+#: ../Status-Notifier/data/messages:63 ../System-Monitor/data/messages:61
+#: ../Toons/data/messages:61 ../Xgamma/data/messages:63
+#: ../alsaMixer/data/messages:61 ../clock/data/messages:63
+#: ../compiz-icon/data/messages:59 ../dnd2share/data/messages:59
+#: ../dustbin/data/messages:59 ../keyboard-indicator/data/messages:59
+#: ../logout/data/messages:63 ../mail/data/messages:59
+#: ../musicPlayer/data/messages:61 ../netspeed/data/messages:59
+#: ../powermanager/data/messages:61 ../quick-browser/data/messages:65
+#: ../shortcuts/data/messages:63 ../showDesktop/data/messages:67
+#: ../slider/data/messages:61 ../stack/data/messages:65
 #: ../switcher/data/messages:55 ../systray/data/messages:55
 #: ../template/data/messages:63 ../terminal/data/messages:63
 #: ../tomboy/data/messages:73 ../weather/data/messages:61
@@ -3751,21 +3763,22 @@
 #: ../Folders/data/messages:77 ../GMenu/data/messages:65
 #: ../MeMenu/data/messages:59 ../Messaging-Menu/data/messages:61
 #: ../Network-Monitor/data/messages:65 ../RSSreader/data/messages:67
-#: ../System-Monitor/data/messages:63 ../Toons/data/messages:63
-#: ../Xgamma/data/messages:65 ../alsaMixer/data/messages:63
-#: ../clock/data/messages:65 ../clock/data/messages:149
-#: ../compiz-icon/data/messages:61 ../dnd2share/data/messages:61
-#: ../dustbin/data/messages:61 ../keyboard-indicator/data/messages:61
+#: ../Status-Notifier/data/messages:65 ../System-Monitor/data/messages:63
+#: ../Toons/data/messages:63 ../Xgamma/data/messages:65
+#: ../alsaMixer/data/messages:63 ../clock/data/messages:65
+#: ../clock/data/messages:149 ../compiz-icon/data/messages:61
+#: ../dnd2share/data/messages:61 ../dustbin/data/messages:61
+#: ../keyboard-indicator/data/messages:61
 #: ../keyboard-indicator/data/messages:113 ../logout/data/messages:65
 #: ../mail/data/messages:61 ../musicPlayer/data/messages:63
 #: ../netspeed/data/messages:61 ../powermanager/data/messages:63
 #: ../quick-browser/data/messages:67 ../shortcuts/data/messages:65
 #: ../showDesktop/data/messages:69 ../slider/data/messages:63
-#: ../stack/data/messages:67 ../stacks/data/messages:63
-#: ../switcher/data/messages:57 ../systray/data/messages:57
-#: ../template/data/messages:65 ../terminal/data/messages:65
-#: ../tomboy/data/messages:75 ../weather/data/messages:63
-#: ../weblets/data/messages:65 ../wifi/data/messages:63
+#: ../stack/data/messages:67 ../switcher/data/messages:57
+#: ../systray/data/messages:57 ../template/data/messages:65
+#: ../terminal/data/messages:65 ../tomboy/data/messages:75
+#: ../weather/data/messages:63 ../weblets/data/messages:65
+#: ../wifi/data/messages:63
 msgid "Background image:"
 msgstr ""
 
@@ -3773,16 +3786,16 @@
 #: ../Folders/data/messages:79 ../GMenu/data/messages:67
 #: ../MeMenu/data/messages:61 ../Messaging-Menu/data/messages:63
 #: ../Network-Monitor/data/messages:67 ../RSSreader/data/messages:69
-#: ../System-Monitor/data/messages:65 ../Toons/data/messages:65
-#: ../Xgamma/data/messages:67 ../alsaMixer/data/messages:65
-#: ../clock/data/messages:67 ../compiz-icon/data/messages:63
-#: ../dnd2share/data/messages:63 ../dustbin/data/messages:63
-#: ../keyboard-indicator/data/messages:63 ../logout/data/messages:67
-#: ../mail/data/messages:63 ../musicPlayer/data/messages:65
-#: ../netspeed/data/messages:63 ../powermanager/data/messages:65
-#: ../quick-browser/data/messages:69 ../shortcuts/data/messages:67
-#: ../showDesktop/data/messages:71 ../slider/data/messages:65
-#: ../stack/data/messages:69 ../stacks/data/messages:65
+#: ../Status-Notifier/data/messages:67 ../System-Monitor/data/messages:65
+#: ../Toons/data/messages:65 ../Xgamma/data/messages:67
+#: ../alsaMixer/data/messages:65 ../clock/data/messages:67
+#: ../compiz-icon/data/messages:63 ../dnd2share/data/messages:63
+#: ../dustbin/data/messages:63 ../keyboard-indicator/data/messages:63
+#: ../logout/data/messages:67 ../mail/data/messages:63
+#: ../musicPlayer/data/messages:65 ../netspeed/data/messages:63
+#: ../powermanager/data/messages:65 ../quick-browser/data/messages:69
+#: ../shortcuts/data/messages:67 ../showDesktop/data/messages:71
+#: ../slider/data/messages:65 ../stack/data/messages:69
 #: ../switcher/data/messages:59 ../systray/data/messages:59
 #: ../template/data/messages:67 ../terminal/data/messages:67
 #: ../tomboy/data/messages:77 ../weather/data/messages:65
@@ -3794,16 +3807,16 @@
 #: ../Folders/data/messages:81 ../GMenu/data/messages:69
 #: ../MeMenu/data/messages:63 ../Messaging-Menu/data/messages:65
 #: ../Network-Monitor/data/messages:69 ../RSSreader/data/messages:71
-#: ../System-Monitor/data/messages:67 ../Toons/data/messages:67
-#: ../Xgamma/data/messages:69 ../alsaMixer/data/messages:67
-#: ../clock/data/messages:69 ../compiz-icon/data/messages:65
-#: ../dnd2share/data/messages:65 ../dustbin/data/messages:65
-#: ../keyboard-indicator/data/messages:65 ../logout/data/messages:69
-#: ../mail/data/messages:65 ../musicPlayer/data/messages:67
-#: ../netspeed/data/messages:65 ../powermanager/data/messages:67
-#: ../quick-browser/data/messages:71 ../shortcuts/data/messages:69
-#: ../showDesktop/data/messages:73 ../slider/data/messages:67
-#: ../stack/data/messages:71 ../stacks/data/messages:67
+#: ../Status-Notifier/data/messages:69 ../System-Monitor/data/messages:67
+#: ../Toons/data/messages:67 ../Xgamma/data/messages:69
+#: ../alsaMixer/data/messages:67 ../clock/data/messages:69
+#: ../compiz-icon/data/messages:65 ../dnd2share/data/messages:65
+#: ../dustbin/data/messages:65 ../keyboard-indicator/data/messages:65
+#: ../logout/data/messages:69 ../mail/data/messages:65
+#: ../musicPlayer/data/messages:67 ../netspeed/data/messages:65
+#: ../powermanager/data/messages:67 ../quick-browser/data/messages:71
+#: ../shortcuts/data/messages:69 ../showDesktop/data/messages:73
+#: ../slider/data/messages:67 ../stack/data/messages:71
 #: ../switcher/data/messages:61 ../systray/data/messages:61
 #: ../template/data/messages:69 ../terminal/data/messages:69
 #: ../tomboy/data/messages:79 ../weather/data/messages:67
@@ -3815,16 +3828,16 @@
 #: ../Folders/data/messages:83 ../GMenu/data/messages:71
 #: ../MeMenu/data/messages:65 ../Messaging-Menu/data/messages:67
 #: ../Network-Monitor/data/messages:71 ../RSSreader/data/messages:73
-#: ../System-Monitor/data/messages:69 ../Toons/data/messages:69
-#: ../Xgamma/data/messages:71 ../alsaMixer/data/messages:69
-#: ../clock/data/messages:71 ../compiz-icon/data/messages:67
-#: ../dnd2share/data/messages:67 ../dustbin/data/messages:67
-#: ../keyboard-indicator/data/messages:67 ../logout/data/messages:71
-#: ../mail/data/messages:67 ../musicPlayer/data/messages:69
-#: ../netspeed/data/messages:67 ../powermanager/data/messages:69
-#: ../quick-browser/data/messages:73 ../shortcuts/data/messages:71
-#: ../showDesktop/data/messages:75 ../slider/data/messages:69
-#: ../stack/data/messages:73 ../stacks/data/messages:69
+#: ../Status-Notifier/data/messages:71 ../System-Monitor/data/messages:69
+#: ../Toons/data/messages:69 ../Xgamma/data/messages:71
+#: ../alsaMixer/data/messages:69 ../clock/data/messages:71
+#: ../compiz-icon/data/messages:67 ../dnd2share/data/messages:67
+#: ../dustbin/data/messages:67 ../keyboard-indicator/data/messages:67
+#: ../logout/data/messages:71 ../mail/data/messages:67
+#: ../musicPlayer/data/messages:69 ../netspeed/data/messages:67
+#: ../powermanager/data/messages:69 ../quick-browser/data/messages:73
+#: ../shortcuts/data/messages:71 ../showDesktop/data/messages:75
+#: ../slider/data/messages:69 ../stack/data/messages:73
 #: ../switcher/data/messages:63 ../systray/data/messages:63
 #: ../template/data/messages:71 ../terminal/data/messages:71
 #: ../tomboy/data/messages:81 ../weather/data/messages:69
@@ -3836,16 +3849,16 @@
 #: ../Folders/data/messages:85 ../GMenu/data/messages:73
 #: ../MeMenu/data/messages:67 ../Messaging-Menu/data/messages:69
 #: ../Network-Monitor/data/messages:73 ../RSSreader/data/messages:75
-#: ../System-Monitor/data/messages:71 ../Toons/data/messages:71
-#: ../Xgamma/data/messages:73 ../alsaMixer/data/messages:71
-#: ../clock/data/messages:73 ../compiz-icon/data/messages:69
-#: ../dnd2share/data/messages:69 ../dustbin/data/messages:69
-#: ../keyboard-indicator/data/messages:69 ../logout/data/messages:73
-#: ../mail/data/messages:69 ../musicPlayer/data/messages:71
-#: ../netspeed/data/messages:69 ../powermanager/data/messages:71
-#: ../quick-browser/data/messages:75 ../shortcuts/data/messages:73
-#: ../showDesktop/data/messages:77 ../slider/data/messages:71
-#: ../stack/data/messages:75 ../stacks/data/messages:71
+#: ../Status-Notifier/data/messages:73 ../System-Monitor/data/messages:71
+#: ../Toons/data/messages:71 ../Xgamma/data/messages:73
+#: ../alsaMixer/data/messages:71 ../clock/data/messages:73
+#: ../compiz-icon/data/messages:69 ../dnd2share/data/messages:69
+#: ../dustbin/data/messages:69 ../keyboard-indicator/data/messages:69
+#: ../logout/data/messages:73 ../mail/data/messages:69
+#: ../musicPlayer/data/messages:71 ../netspeed/data/messages:69
+#: ../powermanager/data/messages:71 ../quick-browser/data/messages:75
+#: ../shortcuts/data/messages:73 ../showDesktop/data/messages:77
+#: ../slider/data/messages:71 ../stack/data/messages:75
 #: ../switcher/data/messages:65 ../systray/data/messages:65
 #: ../template/data/messages:73 ../terminal/data/messages:73
 #: ../tomboy/data/messages:83 ../weather/data/messages:71
@@ -3857,16 +3870,16 @@
 #: ../Folders/data/messages:87 ../GMenu/data/messages:75
 #: ../MeMenu/data/messages:69 ../Messaging-Menu/data/messages:71
 #: ../Network-Monitor/data/messages:75 ../RSSreader/data/messages:77
-#: ../System-Monitor/data/messages:73 ../Toons/data/messages:73
-#: ../Xgamma/data/messages:75 ../alsaMixer/data/messages:73
-#: ../clock/data/messages:75 ../compiz-icon/data/messages:71
-#: ../dnd2share/data/messages:71 ../dustbin/data/messages:71
-#: ../keyboard-indicator/data/messages:71 ../logout/data/messages:75
-#: ../mail/data/messages:71 ../musicPlayer/data/messages:73
-#: ../netspeed/data/messages:71 ../powermanager/data/messages:73
-#: ../quick-browser/data/messages:77 ../shortcuts/data/messages:75
-#: ../showDesktop/data/messages:79 ../slider/data/messages:73
-#: ../stack/data/messages:77 ../stacks/data/messages:73
+#: ../Status-Notifier/data/messages:75 ../System-Monitor/data/messages:73
+#: ../Toons/data/messages:73 ../Xgamma/data/messages:75
+#: ../alsaMixer/data/messages:73 ../clock/data/messages:75
+#: ../compiz-icon/data/messages:71 ../dnd2share/data/messages:71
+#: ../dustbin/data/messages:71 ../keyboard-indicator/data/messages:71
+#: ../logout/data/messages:75 ../mail/data/messages:71
+#: ../musicPlayer/data/messages:73 ../netspeed/data/messages:71
+#: ../powermanager/data/messages:73 ../quick-browser/data/messages:77
+#: ../shortcuts/data/messages:75 ../showDesktop/data/messages:79
+#: ../slider/data/messages:73 ../stack/data/messages:77
 #: ../switcher/data/messages:67 ../systray/data/messages:67
 #: ../template/data/messages:75 ../terminal/data/messages:75
 #: ../tomboy/data/messages:85 ../weather/data/messages:73
@@ -3878,16 +3891,16 @@
 #: ../Folders/data/messages:89 ../GMenu/data/messages:77
 #: ../MeMenu/data/messages:71 ../Messaging-Menu/data/messages:73
 #: ../Network-Monitor/data/messages:77 ../RSSreader/data/messages:79
-#: ../System-Monitor/data/messages:75 ../Toons/data/messages:75
-#: ../Xgamma/data/messages:77 ../alsaMixer/data/messages:75
-#: ../clock/data/messages:77 ../compiz-icon/data/messages:73
-#: ../dnd2share/data/messages:73 ../dustbin/data/messages:73
-#: ../keyboard-indicator/data/messages:73 ../logout/data/messages:77
-#: ../mail/data/messages:73 ../musicPlayer/data/messages:75
-#: ../netspeed/data/messages:73 ../powermanager/data/messages:75
-#: ../quick-browser/data/messages:79 ../shortcuts/data/messages:77
-#: ../showDesktop/data/messages:81 ../slider/data/messages:75
-#: ../stack/data/messages:79 ../stacks/data/messages:75
+#: ../Status-Notifier/data/messages:77 ../System-Monitor/data/messages:75
+#: ../Toons/data/messages:75 ../Xgamma/data/messages:77
+#: ../alsaMixer/data/messages:75 ../clock/data/messages:77
+#: ../compiz-icon/data/messages:73 ../dnd2share/data/messages:73
+#: ../dustbin/data/messages:73 ../keyboard-indicator/data/messages:73
+#: ../logout/data/messages:77 ../mail/data/messages:73
+#: ../musicPlayer/data/messages:75 ../netspeed/data/messages:73
+#: ../powermanager/data/messages:75 ../quick-browser/data/messages:79
+#: ../shortcuts/data/messages:77 ../showDesktop/data/messages:81
+#: ../slider/data/messages:75 ../stack/data/messages:79
 #: ../switcher/data/messages:69 ../systray/data/messages:69
 #: ../template/data/messages:77 ../terminal/data/messages:77
 #: ../tomboy/data/messages:87 ../weather/data/messages:75
@@ -3899,16 +3912,16 @@
 #: ../Folders/data/messages:91 ../GMenu/data/messages:79
 #: ../MeMenu/data/messages:73 ../Messaging-Menu/data/messages:75
 #: ../Network-Monitor/data/messages:79 ../RSSreader/data/messages:81
-#: ../System-Monitor/data/messages:77 ../Toons/data/messages:77
-#: ../Xgamma/data/messages:79 ../alsaMixer/data/messages:77
-#: ../clock/data/messages:79 ../compiz-icon/data/messages:75
-#: ../dnd2share/data/messages:75 ../dustbin/data/messages:75
-#: ../keyboard-indicator/data/messages:75 ../logout/data/messages:79
-#: ../mail/data/messages:75 ../musicPlayer/data/messages:77
-#: ../netspeed/data/messages:75 ../powermanager/data/messages:77
-#: ../quick-browser/data/messages:81 ../shortcuts/data/messages:79
-#: ../showDesktop/data/messages:83 ../slider/data/messages:77
-#: ../stack/data/messages:81 ../stacks/data/messages:77
+#: ../Status-Notifier/data/messages:79 ../System-Monitor/data/messages:77
+#: ../Toons/data/messages:77 ../Xgamma/data/messages:79
+#: ../alsaMixer/data/messages:77 ../clock/data/messages:79
+#: ../compiz-icon/data/messages:75 ../dnd2share/data/messages:75
+#: ../dustbin/data/messages:75 ../keyboard-indicator/data/messages:75
+#: ../logout/data/messages:79 ../mail/data/messages:75
+#: ../musicPlayer/data/messages:77 ../netspeed/data/messages:75
+#: ../powermanager/data/messages:77 ../quick-browser/data/messages:81
+#: ../shortcuts/data/messages:79 ../showDesktop/data/messages:83
+#: ../slider/data/messages:77 ../stack/data/messages:81
 #: ../switcher/data/messages:71 ../systray/data/messages:71
 #: ../template/data/messages:79 ../terminal/data/messages:79
 #: ../tomboy/data/messages:89 ../weather/data/messages:77
@@ -3920,16 +3933,16 @@
 #: ../Folders/data/messages:93 ../GMenu/data/messages:81
 #: ../MeMenu/data/messages:75 ../Messaging-Menu/data/messages:77
 #: ../Network-Monitor/data/messages:81 ../RSSreader/data/messages:83
-#: ../System-Monitor/data/messages:79 ../Toons/data/messages:79
-#: ../Xgamma/data/messages:81 ../alsaMixer/data/messages:79
-#: ../clock/data/messages:81 ../compiz-icon/data/messages:77
-#: ../dnd2share/data/messages:77 ../dustbin/data/messages:77
-#: ../keyboard-indicator/data/messages:77 ../logout/data/messages:81
-#: ../mail/data/messages:77 ../musicPlayer/data/messages:79
-#: ../netspeed/data/messages:77 ../powermanager/data/messages:79
-#: ../quick-browser/data/messages:83 ../shortcuts/data/messages:81
-#: ../showDesktop/data/messages:85 ../slider/data/messages:79
-#: ../stack/data/messages:83 ../stacks/data/messages:79
+#: ../Status-Notifier/data/messages:81 ../System-Monitor/data/messages:79
+#: ../Toons/data/messages:79 ../Xgamma/data/messages:81
+#: ../alsaMixer/data/messages:79 ../clock/data/messages:81
+#: ../compiz-icon/data/messages:77 ../dnd2share/data/messages:77
+#: ../dustbin/data/messages:77 ../keyboard-indicator/data/messages:77
+#: ../logout/data/messages:81 ../mail/data/messages:77
+#: ../musicPlayer/data/messages:79 ../netspeed/data/messages:77
+#: ../powermanager/data/messages:79 ../quick-browser/data/messages:83
+#: ../shortcuts/data/messages:81 ../showDesktop/data/messages:85
+#: ../slider/data/messages:79 ../stack/data/messages:83
 #: ../switcher/data/messages:73 ../systray/data/messages:73
 #: ../template/data/messages:81 ../terminal/data/messages:81
 #: ../tomboy/data/messages:91 ../weather/data/messages:79
@@ -3941,16 +3954,16 @@
 #: ../Folders/data/messages:95 ../GMenu/data/messages:83
 #: ../MeMenu/data/messages:77 ../Messaging-Menu/data/messages:79
 #: ../Network-Monitor/data/messages:83 ../RSSreader/data/messages:85
-#: ../System-Monitor/data/messages:81 ../Toons/data/messages:81
-#: ../Xgamma/data/messages:83 ../alsaMixer/data/messages:81
-#: ../clock/data/messages:83 ../compiz-icon/data/messages:79
-#: ../dnd2share/data/messages:79 ../dustbin/data/messages:79
-#: ../keyboard-indicator/data/messages:79 ../logout/data/messages:83
-#: ../mail/data/messages:79 ../musicPlayer/data/messages:81
-#: ../netspeed/data/messages:79 ../powermanager/data/messages:81
-#: ../quick-browser/data/messages:85 ../shortcuts/data/messages:83
-#: ../showDesktop/data/messages:87 ../slider/data/messages:81
-#: ../stack/data/messages:85 ../stacks/data/messages:81
+#: ../Status-Notifier/data/messages:83 ../System-Monitor/data/messages:81
+#: ../Toons/data/messages:81 ../Xgamma/data/messages:83
+#: ../alsaMixer/data/messages:81 ../clock/data/messages:83
+#: ../compiz-icon/data/messages:79 ../dnd2share/data/messages:79
+#: ../dustbin/data/messages:79 ../keyboard-indicator/data/messages:79
+#: ../logout/data/messages:83 ../mail/data/messages:79
+#: ../musicPlayer/data/messages:81 ../netspeed/data/messages:79
+#: ../powermanager/data/messages:81 ../quick-browser/data/messages:85
+#: ../shortcuts/data/messages:83 ../showDesktop/data/messages:87
+#: ../slider/data/messages:81 ../stack/data/messages:85
 #: ../switcher/data/messages:75 ../systray/data/messages:75
 #: ../template/data/messages:83 ../terminal/data/messages:83
 #: ../tomboy/data/messages:93 ../weather/data/messages:81
@@ -3962,16 +3975,16 @@
 #: ../Folders/data/messages:97 ../GMenu/data/messages:85
 #: ../MeMenu/data/messages:79 ../Messaging-Menu/data/messages:81
 #: ../Network-Monitor/data/messages:85 ../RSSreader/data/messages:87
-#: ../System-Monitor/data/messages:83 ../Toons/data/messages:83
-#: ../Xgamma/data/messages:85 ../alsaMixer/data/messages:83
-#: ../clock/data/messages:85 ../compiz-icon/data/messages:81
-#: ../dnd2share/data/messages:81 ../dustbin/data/messages:81
-#: ../keyboard-indicator/data/messages:81 ../logout/data/messages:85
-#: ../mail/data/messages:81 ../musicPlayer/data/messages:83
-#: ../netspeed/data/messages:81 ../powermanager/data/messages:83
-#: ../quick-browser/data/messages:87 ../shortcuts/data/messages:85
-#: ../showDesktop/data/messages:89 ../slider/data/messages:83
-#: ../stack/data/messages:87 ../stacks/data/messages:83
+#: ../Status-Notifier/data/messages:85 ../System-Monitor/data/messages:83
+#: ../Toons/data/messages:83 ../Xgamma/data/messages:85
+#: ../alsaMixer/data/messages:83 ../clock/data/messages:85
+#: ../compiz-icon/data/messages:81 ../dnd2share/data/messages:81
+#: ../dustbin/data/messages:81 ../keyboard-indicator/data/messages:81
+#: ../logout/data/messages:85 ../mail/data/messages:81
+#: ../musicPlayer/data/messages:83 ../netspeed/data/messages:81
+#: ../powermanager/data/messages:83 ../quick-browser/data/messages:87
+#: ../shortcuts/data/messages:85 ../showDesktop/data/messages:89
+#: ../slider/data/messages:83 ../stack/data/messages:87
 #: ../switcher/data/messages:77 ../systray/data/messages:77
 #: ../template/data/messages:85 ../terminal/data/messages:85
 #: ../tomboy/data/messages:95 ../weather/data/messages:83
@@ -3985,16 +3998,16 @@
 #: ../Folders/data/messages:99 ../GMenu/data/messages:87
 #: ../MeMenu/data/messages:81 ../Messaging-Menu/data/messages:83
 #: ../Network-Monitor/data/messages:87 ../RSSreader/data/messages:89
-#: ../System-Monitor/data/messages:85 ../Toons/data/messages:85
-#: ../Xgamma/data/messages:87 ../alsaMixer/data/messages:85
-#: ../clock/data/messages:87 ../compiz-icon/data/messages:83
-#: ../dnd2share/data/messages:83 ../dustbin/data/messages:83
-#: ../keyboard-indicator/data/messages:83 ../logout/data/messages:87
-#: ../mail/data/messages:83 ../musicPlayer/data/messages:85
-#: ../netspeed/data/messages:83 ../powermanager/data/messages:85
-#: ../quick-browser/data/messages:89 ../shortcuts/data/messages:87
-#: ../showDesktop/data/messages:91 ../slider/data/messages:85
-#: ../stack/data/messages:89 ../stacks/data/messages:85
+#: ../Status-Notifier/data/messages:87 ../System-Monitor/data/messages:85
+#: ../Toons/data/messages:85 ../Xgamma/data/messages:87
+#: ../alsaMixer/data/messages:85 ../clock/data/messages:87
+#: ../compiz-icon/data/messages:83 ../dnd2share/data/messages:83
+#: ../dustbin/data/messages:83 ../keyboard-indicator/data/messages:83
+#: ../logout/data/messages:87 ../mail/data/messages:83
+#: ../musicPlayer/data/messages:85 ../netspeed/data/messages:83
+#: ../powermanager/data/messages:85 ../quick-browser/data/messages:89
+#: ../shortcuts/data/messages:87 ../showDesktop/data/messages:91
+#: ../slider/data/messages:85 ../stack/data/messages:89
 #: ../switcher/data/messages:79 ../systray/data/messages:79
 #: ../template/data/messages:87 ../terminal/data/messages:87
 #: ../tomboy/data/messages:97 ../weather/data/messages:85
@@ -4006,16 +4019,16 @@
 #: ../Folders/data/messages:101 ../GMenu/data/messages:89
 #: ../MeMenu/data/messages:83 ../Messaging-Menu/data/messages:85
 #: ../Network-Monitor/data/messages:89 ../RSSreader/data/messages:91
-#: ../System-Monitor/data/messages:87 ../Toons/data/messages:87
-#: ../Xgamma/data/messages:89 ../alsaMixer/data/messages:87
-#: ../clock/data/messages:89 ../compiz-icon/data/messages:85
-#: ../dnd2share/data/messages:85 ../dustbin/data/messages:85
-#: ../keyboard-indicator/data/messages:85 ../logout/data/messages:89
-#: ../mail/data/messages:85 ../musicPlayer/data/messages:87
-#: ../netspeed/data/messages:85 ../powermanager/data/messages:87
-#: ../quick-browser/data/messages:91 ../shortcuts/data/messages:89
-#: ../showDesktop/data/messages:93 ../slider/data/messages:87
-#: ../stack/data/messages:91 ../stacks/data/messages:87
+#: ../Status-Notifier/data/messages:89 ../System-Monitor/data/messages:87
+#: ../Toons/data/messages:87 ../Xgamma/data/messages:89
+#: ../alsaMixer/data/messages:87 ../clock/data/messages:89
+#: ../compiz-icon/data/messages:85 ../dnd2share/data/messages:85
+#: ../dustbin/data/messages:85 ../keyboard-indicator/data/messages:85
+#: ../logout/data/messages:89 ../mail/data/messages:85
+#: ../musicPlayer/data/messages:87 ../netspeed/data/messages:85
+#: ../powermanager/data/messages:87 ../quick-browser/data/messages:91
+#: ../shortcuts/data/messages:89 ../showDesktop/data/messages:93
+#: ../slider/data/messages:87 ../stack/data/messages:91
 #: ../switcher/data/messages:81 ../systray/data/messages:81
 #: ../template/data/messages:89 ../terminal/data/messages:89
 #: ../tomboy/data/messages:99 ../weather/data/messages:87
@@ -4225,7 +4238,8 @@
 msgstr ""
 
 #: ../Doncky/data/messages:117 ../RSSreader/data/messages:181
-msgid "You can have more attractive backgrounds using the Desklet decorations"
+msgid ""
+"You can have more attractive backgrounds using the Desklet decorations"
 msgstr ""
 
 #: ../Doncky/data/messages:119 ../RSSreader/data/messages:183
@@ -4687,10 +4701,6 @@
 msgid "Behaviour"
 msgstr ""
 
-#: ../RSSreader/data/messages:109
-msgid "Refresh time:"
-msgstr ""
-
 #: ../RSSreader/data/messages:111
 msgid "Notify about feed updates:"
 msgstr ""
@@ -4712,9 +4722,8 @@
 msgstr ""
 
 #: ../RSSreader/data/messages:123 ../powermanager/data/messages:193
-#, fuzzy
 msgid "Animation of the icon:"
-msgstr "أيقونات متحركة"
+msgstr ""
 
 #: ../RSSreader/data/messages:125 ../powermanager/data/messages:195
 msgid ""
@@ -5022,133 +5031,17 @@
 msgid "Image's filename :"
 msgstr ""
 
-#: ../Status-Notifier/data/messages:21
-msgid ""
-"If locked, the desklet can't be moved by simply dragging it with the left "
-"mouse button. Of course you can still move it with ALT + left_click."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:23
-msgid "Lock position ?"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:25
-msgid ""
-"Depending on your WindowManager, you can resize it with ALT + middle_click "
-"or ALT + left_click for exemple."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:27
-msgid "Desklet's dimension (width x height) :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:29
-msgid "Depending on your WindowManager, you can move it with ALT + left_click"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:31
-msgid "Desklet's position (x ; y) :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:35
-#, fuzzy
-msgid "Rotation :"
-msgstr "تدوير"
-
-#: ../Status-Notifier/data/messages:39
-msgid "Is detached from the dock ?"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:43
-msgid "Visibility :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:51
-msgid "On Widget Layer"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:55
-msgid "Should be visible on all desktops ?"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:61
-msgid "Choose a decoration theme for this desklet :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:63
-msgid ""
-"It's an image that will be displayed below the drawings, like a frame for "
-"exemple. Let empty to not use any."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:65
-msgid "Background image :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:67
-msgid "Background tansparency :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:69
-msgid "in pixels. Use this to adjust the left position of the drawings."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:71
-msgid "Left offset :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:73
-msgid "in pixels. Use this to adjust the top position of the drawings."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:75
-msgid "Top offset :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:77
-msgid "in pixels. Use this to adjust the right position of the drawings."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:79
-msgid "Right offset :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:81
-msgid "in pixels. Use this to adjust the bottom position of the drawings."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:83
-msgid "Bottom offset :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:85
-msgid ""
-"It's an image that will be displayed above the drawings, like a reflect for "
-"exemple. Let empty to not use any."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:87
-msgid "Foreground image :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:89
-msgid "Foreground tansparency :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:93 ../template/data/messages:93
-msgid "This is a tooltip for this parameter."
-msgstr ""
-
-#: ../Status-Notifier/data/messages:95 ../template/data/messages:95
-msgid "This is a boolean parameter. Y/N ?"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:97 ../template/data/messages:97
-msgid "This integer can go from 0 to 10 :"
-msgstr ""
-
-#: ../Status-Notifier/data/messages:99 ../template/data/messages:99
-msgid "Enter some text here :"
+#: ../Status-Notifier/data/messages:29 ../alsaMixer/data/messages:27
+#: ../clock/data/messages:29 ../dustbin/data/messages:25
+#: ../netspeed/data/messages:25 ../systray/data/messages:25
+#: ../template/data/messages:29 ../tomboy/data/messages:39
+msgid ""
+"Depending on your WindowManager, you may be able to move this with ALT + "
+"left-click.. Negative values are counted from the right/bottom of the screen"
+msgstr ""
+
+#: ../Status-Notifier/data/messages:93
+msgid "Display items in compact mode?"
 msgstr ""
 
 #: ../System-Monitor/data/messages:115 ../powermanager/data/messages:117
@@ -5329,14 +5222,6 @@
 msgid "Leave empty to use the default sound card."
 msgstr ""
 
-#: ../alsaMixer/data/messages:27 ../clock/data/messages:29
-#: ../dustbin/data/messages:25 ../netspeed/data/messages:25
-#: ../systray/data/messages:25 ../tomboy/data/messages:39
-msgid ""
-"Depending on your WindowManager, you may be able to move this with ALT + "
-"left-click.. Negative values are counted from the right/bottom of the screen"
-msgstr ""
-
 #: ../alsaMixer/data/messages:91
 msgid "Alsa"
 msgstr ""
@@ -5456,9 +5341,8 @@
 msgstr ""
 
 #: ../clock/data/messages:121
-#, fuzzy
 msgid "Default"
-msgstr "نتيجة"
+msgstr ""
 
 #: ../clock/data/messages:123
 msgid "iCal"
@@ -5537,8 +5421,8 @@
 "Compiz along with the plugin corresponding to the desired action."
 msgstr ""
 
-#: ../compiz-icon/data/messages:93
-msgid "Choose an action for middle click on the icon:"
+#: ../compiz-icon/data/messages:93 ../switcher/data/messages:101
+msgid "Action on middle click :"
 msgstr ""
 
 #: ../compiz-icon/data/messages:97
@@ -5679,8 +5563,8 @@
 
 #: ../compiz-icon/data/messages:159 ../mail/data/messages:91
 #: ../shortcuts/data/messages:105 ../stack/data/messages:97
-#: ../stacks/data/messages:115 ../switcher/data/messages:145
-#: ../tomboy/data/messages:119 ../weather/data/messages:123
+#: ../switcher/data/messages:145 ../tomboy/data/messages:119
+#: ../weather/data/messages:123
 msgid "Leave empty to use default sub-dock view."
 msgstr ""
 
@@ -5970,14 +5854,12 @@
 msgstr ""
 
 #: ../dock-rendering/data/messages:23
-#, fuzzy
 msgid "smaller icons"
-msgstr "أيقونات متحركة"
+msgstr ""
 
 #: ../dock-rendering/data/messages:25
-#, fuzzy
 msgid "normal icons"
-msgstr "أيقونات متحركة"
+msgstr ""
 
 #: ../dock-rendering/data/messages:27
 msgid "SimpleSlide"
@@ -6118,7 +6000,8 @@
 msgstr ""
 
 #: ../dock-rendering/data/messages:109
-msgid "0 represents a flat wave, 1 means the wave is identical to other views."
+msgid ""
+"0 represents a flat wave, 1 means the wave is identical to other views."
 msgstr ""
 
 #: ../dock-rendering/data/messages:113
@@ -6212,7 +6095,7 @@
 msgid "Number of files"
 msgstr ""
 
-#: ../dustbin/data/messages:105 ../mail/data/messages:125
+#: ../dustbin/data/messages:105
 msgid "Total number of files"
 msgstr ""
 
@@ -6244,7 +6127,8 @@
 msgstr ""
 
 #: ../icon-effect/data/messages:87
-msgid "This will slightly alter your colours, so you may have to modify them."
+msgid ""
+"This will slightly alter your colours, so you may have to modify them."
 msgstr ""
 
 #: ../icon-effect/data/messages:89 ../icon-effect/data/messages:201
@@ -6459,11 +6343,6 @@
 msgid "Maximum of new messages shown?"
 msgstr ""
 
-#: ../mail/data/messages:115 ../musicPlayer/data/messages:137
-#: ../tomboy/data/messages:115
-msgid "in seconds"
-msgstr ""
-
 #: ../mail/data/messages:117
 msgid "Duration of the dialogue"
 msgstr ""
@@ -6480,7 +6359,12 @@
 msgstr ""
 
 #: ../mail/data/messages:123
-msgid "If checked, the number of mails will be shown even if there is no mail."
+msgid ""
+"If checked, the number of mails will be shown even if there is no mail."
+msgstr ""
+
+#: ../mail/data/messages:125
+msgid "Show '0' if there is no mail?"
 msgstr ""
 
 #: ../mail/data/messages:127
@@ -6512,7 +6396,8 @@
 msgstr ""
 
 #: ../musicPlayer/data/messages:7
-msgid "Leave it empty to display the name of the player currently controlled."
+msgid ""
+"Leave it empty to display the name of the player currently controlled."
 msgstr ""
 
 #: ../musicPlayer/data/messages:91
@@ -6693,10 +6578,6 @@
 msgid "interface:"
 msgstr ""
 
-#: ../netspeed/data/messages:133
-msgid "Delay between measurements:"
-msgstr ""
-
 #: ../netspeed/data/messages:135
 msgid ""
 "You need OpenGL for this option. Set it to 0 to disable it, 1 means the "
@@ -6743,10 +6624,6 @@
 msgid "draw bar"
 msgstr ""
 
-#: ../powermanager/data/messages:147 ../weather/data/messages:107
-msgid "Interval of time between 2 checks :"
-msgstr ""
-
 #: ../powermanager/data/messages:149
 msgid "Information to be displayed on the icon :"
 msgstr ""
@@ -6798,9 +6675,8 @@
 msgstr ""
 
 #: ../powermanager/data/messages:183
-#, fuzzy
 msgid "Notification type:"
-msgstr "لا تعديل"
+msgstr ""
 
 #: ../quick-browser/data/messages:7
 msgid "Leave empty to use the folder's name."
@@ -6904,10 +6780,6 @@
 msgid "Used space (in percent)"
 msgstr ""
 
-#: ../shortcuts/data/messages:129
-msgid "In seconds."
-msgstr ""
-
 #: ../shortcuts/data/messages:131
 msgid "Delay between disk usage refresh :"
 msgstr ""
@@ -6940,10 +6812,6 @@
 msgid "Particle life time:"
 msgstr ""
 
-#: ../show-mouse/data/messages:23
-msgid "In pixels."
-msgstr ""
-
 #: ../show-mouse/data/messages:33
 msgid ""
 "The higher the value, the more particles will scatter from their source."
@@ -7135,13 +7003,13 @@
 msgid "Options"
 msgstr ""
 
-#: ../stack/data/messages:117 ../stacks/data/messages:107
+#: ../stack/data/messages:117
 msgid ""
 "These options allow you to prevent some files from displaying in stacks "
 "based on their type (video, image, etc.)"
 msgstr ""
 
-#: ../stack/data/messages:119 ../stacks/data/messages:109
+#: ../stack/data/messages:119
 msgid "Filter files on MIME type?"
 msgstr ""
 
@@ -7149,7 +7017,7 @@
 msgid "E.g. image, text, video, audio, application..."
 msgstr ""
 
-#: ../stack/data/messages:123 ../stacks/data/messages:113
+#: ../stack/data/messages:123
 msgid "Here you can specify a list of MIME types to ignore:"
 msgstr ""
 
@@ -7175,51 +7043,6 @@
 msgid "When copying/pasting/cutting, use the selection clipboard?"
 msgstr ""
 
-#: ../stacks/data/messages:91
-msgid "Directory & Options"
-msgstr ""
-
-#: ../stacks/data/messages:93
-msgid ""
-"Stacks will act as a the shortcut applet's but with files. To add a file, "
-"just drag and drop it on the Stacks icon"
-msgstr ""
-
-#: ../stacks/data/messages:95
-msgid "Use only Stacks local directory ?"
-msgstr ""
-
-#: ../stacks/data/messages:97
-msgid ""
-"You can use '_LocalDirectory_' tag to have both stack local and all "
-"monitored directories. Ensure 'Use only Stacks local directory' is unticked."
-msgstr ""
-
-#: ../stacks/data/messages:99
-msgid "Monitored Directories :"
-msgstr ""
-
-#: ../stacks/data/messages:101
-msgid ""
-"This option with large files lists can slow down the dock, use it properly."
-msgstr ""
-
-#: ../stacks/data/messages:103
-msgid "List hidden files ?"
-msgstr ""
-
-#: ../stacks/data/messages:105
-msgid "Separate different directories with separators ?"
-msgstr ""
-
-#: ../stacks/data/messages:111
-msgid "Eg: image, text, video, audio, application..."
-msgstr ""
-
-#: ../stacks/data/messages:117
-msgid "Name of the view used for the sub-dock :"
-msgstr ""
-
 #: ../switcher/data/messages:87
 msgid ""
 "All desktops will be drawn on the main icon. Otherwise a sub-dock will "
@@ -7250,10 +7073,6 @@
 msgid "Draw hidden windows?"
 msgstr ""
 
-#: ../switcher/data/messages:101
-msgid "Action on middle click :"
-msgstr ""
-
 #: ../switcher/data/messages:103
 msgid "Show windows' list"
 msgstr ""
@@ -7343,6 +7162,22 @@
 msgid "vertical"
 msgstr ""
 
+#: ../template/data/messages:93
+msgid "This is a tooltip for this parameter."
+msgstr ""
+
+#: ../template/data/messages:95
+msgid "This is a boolean parameter. Y/N ?"
+msgstr ""
+
+#: ../template/data/messages:97
+msgid "This integer can go from 0 to 10 :"
+msgstr ""
+
+#: ../template/data/messages:99
+msgid "Enter some text here :"
+msgstr ""
+
 #: ../terminal/data/messages:95
 msgid "needs to restart the applet."
 msgstr ""
@@ -7484,10 +7319,6 @@
 msgid "Dialog duration:"
 msgstr ""
 
-#: ../weather/data/messages:105
-msgid "in minutes."
-msgstr ""
-
 #: ../weather/data/messages:109 ../wifi/data/messages:177
 msgid "Info"
 msgstr ""
@@ -7537,7 +7368,8 @@
 msgstr ""
 
 #: ../weblets/data/messages:105
-msgid "This lets you right-click on the desklet to pop up the Cairo-Dock menu."
+msgid ""
+"This lets you right-click on the desklet to pop up the Cairo-Dock menu."
 msgstr ""
 
 #: ../weblets/data/messages:107

=== modified file 'po/cairo-dock.pot'
--- po/cairo-dock.pot	2010-08-07 01:43:25 +0000
+++ po/cairo-dock.pot	2010-09-07 00:46:10 +0000
@@ -160,10 +160,6 @@
 msgid "No items yet."
 msgstr ""
 
-#: ../Clipper/src/applet-init.c:29
-msgid "Clipper"
-msgstr ""
-
 #: ../Clipper/src/applet-init.c:32
 msgid ""
 "This applet keeps a trace of the clipboard and mouse selection,\n"
@@ -173,6 +169,10 @@
 "Drop text on the icon to create persistent items, and middle-clck to recall them."
 msgstr ""
 
+#: ../Clipper/src/applet-init.c:39
+msgid "Clipboard history"
+msgstr ""
+
 #: ../Clipper/src/applet-notifications.c:99
 msgid ""
 "No persistent items.\n"
@@ -526,7 +526,7 @@
 
 #: ../Network-Monitor/src/applet-netspeed.c:200
 #: ../System-Monitor/src/applet-monitor.c:82
-#: ../netspeed/src/applet-netspeed.c:183
+#: ../netspeed/src/applet-netspeed.c:196
 msgid "Loading"
 msgstr ""
 
@@ -971,6 +971,14 @@
 msgid "Adjust channels"
 msgstr ""
 
+#: ../alsaMixer/src/applet-notifications.c:59
+msgid "Unmute"
+msgstr ""
+
+#: ../alsaMixer/src/applet-notifications.c:61
+msgid "Mute"
+msgstr ""
+
 #: ../clock/src/applet-calendar.c:190 ../clock/src/applet-calendar.c:271
 #: ../clock/src/applet-calendar.c:437 ../clock/src/applet-calendar.c:442
 #: ../clock/src/applet-draw.c:83 ../clock/src/applet-draw.c:339
@@ -1181,7 +1189,7 @@
 msgid "Right-click to add a new task."
 msgstr ""
 
-#: ../clock/src/applet-task-editor.c:397 ../musicPlayer/src/applet-draw.c:340
+#: ../clock/src/applet-task-editor.c:397 ../musicPlayer/src/applet-draw.c:338
 #: ../RSSreader/data/messages:135
 msgid "Title"
 msgstr ""
@@ -1489,8 +1497,8 @@
 msgid "This plug-in displays an animated indicator when you drop something into the dock."
 msgstr ""
 
-#: ../dustbin/src/applet-draw.c:155 ../dustbin/src/applet-trashes-manager.c:94
-#: ../dustbin/src/applet-trashes-manager.c:123
+#: ../dustbin/src/applet-draw.c:155 ../dustbin/src/applet-trashes-manager.c:98
+#: ../dustbin/src/applet-trashes-manager.c:127
 msgid "calculating"
 msgstr ""
 
@@ -1509,54 +1517,61 @@
 #: ../dustbin/src/applet-init.c:33
 msgid ""
 "This applet manages the dustbin\n"
-"You can threw files and unmount disks by drag andn droping them on the icon.\n"
-"The applet can warn you if you use too much space\n"
-"Middle-click to display usefull info about the dustbin."
+"You can threw files and unmount disks by drag-and-dropping them on the icon.\n"
+"Middle-click on the icon will empty the dustbin."
 msgstr ""
 
 #: ../dustbin/src/applet-notifications.c:32
 msgid "You're about to delete all files in all dustbins. Sure ?"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:63
+#: ../dustbin/src/applet-notifications.c:80
 msgid "The trash contains"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:65
+#: ../dustbin/src/applet-notifications.c:82
 msgid "files"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:67
+#: ../dustbin/src/applet-notifications.c:82
+msgid "elements"
+msgstr ""
+
+#: ../dustbin/src/applet-notifications.c:84
 msgid "Mo"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:67
+#: ../dustbin/src/applet-notifications.c:84
 msgid "Ko"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:73
+#: ../dustbin/src/applet-notifications.c:100
+msgid "Counting total size and files number..."
+msgstr ""
+
+#: ../dustbin/src/applet-notifications.c:136
 msgid "Show Trash (click)"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:74
+#: ../dustbin/src/applet-notifications.c:137
 msgid "Empty Trash (middle-click)"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:76
+#: ../dustbin/src/applet-notifications.c:139
 msgid "Display dustbins information"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:88
+#: ../dustbin/src/applet-notifications.c:151
 #, c-format
 msgid "%s successfully unmounted"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:92
+#: ../dustbin/src/applet-notifications.c:155
 #, c-format
 msgid "failed to unmount %s"
 msgstr ""
 
-#: ../dustbin/src/applet-notifications.c:116
+#: ../dustbin/src/applet-notifications.c:179
 #: ../shortcuts/src/applet-notifications.c:167
 msgid "Unmouting this volume ..."
 msgstr ""
@@ -1670,7 +1685,7 @@
 msgid "Program an automatic shut-down"
 msgstr ""
 
-#: ../logout/src/applet-notifications.c:157
+#: ../logout/src/applet-notifications.c:158
 msgid "Your computer will shut-down in 1 minute."
 msgstr ""
 
@@ -1706,11 +1721,14 @@
 msgid "Use a secure connection (SSL)"
 msgstr ""
 
-#: ../mail/src/cd-mail-applet-accounts.c:39
-msgid "Timeout"
+#: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:109
+#: ../netspeed/data/messages:133 ../powermanager/data/messages:147
+#: ../weather/data/messages:107
+msgid "Refresh time:"
 msgstr ""
 
 #: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:107
+#: ../weather/data/messages:105
 msgid "In minutes."
 msgstr ""
 
@@ -1856,7 +1874,7 @@
 msgid "Artist"
 msgstr ""
 
-#: ../musicPlayer/src/applet-draw.c:338
+#: ../musicPlayer/src/applet-draw.c:340
 msgid "Album"
 msgstr ""
 
@@ -1876,11 +1894,11 @@
 msgid "There is no media playing."
 msgstr ""
 
-#: ../musicPlayer/src/applet-init.c:47
+#: ../musicPlayer/src/applet-init.c:48
 msgid "musicPlayer"
 msgstr ""
 
-#: ../musicPlayer/src/applet-init.c:50
+#: ../musicPlayer/src/applet-init.c:51
 msgid ""
 "This applet lets you control any music player.\n"
 "Left click to Play/Pause, middle-click to play Next song.\n"
@@ -1985,7 +2003,6 @@
 
 #: ../powermanager/src/powermanager-draw.c:167
 #: ../powermanager/src/powermanager-draw.c:199
-#: ../powermanager/src/powermanager-draw.c:213
 msgid "Estimated time with charge:"
 msgstr ""
 
@@ -2396,7 +2413,7 @@
 msgstr ""
 
 #: ../terminal/src/terminal-callbacks.c:82
-#: ../terminal/src/terminal-widget.c:352
+#: ../terminal/src/terminal-widget.c:358
 msgid "Copy"
 msgstr ""
 
@@ -2415,7 +2432,7 @@
 msgstr ""
 
 #: ../terminal/src/terminal-menu-functions.c:78
-#: ../terminal/src/terminal-widget.c:368
+#: ../terminal/src/terminal-widget.c:374
 msgid "New Tab"
 msgstr ""
 
@@ -2431,32 +2448,32 @@
 msgid "Terminal"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:149
+#: ../terminal/src/terminal-widget.c:154
 msgid "Set title for this tab:"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:203
+#: ../terminal/src/terminal-widget.c:209
 msgid "Select a color"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:312
+#: ../terminal/src/terminal-widget.c:318
 #, c-format
 msgid "You can recall the Terminal desklet by typing %s"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:358
+#: ../terminal/src/terminal-widget.c:364
 msgid "Paste"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:374
+#: ../terminal/src/terminal-widget.c:380
 msgid "Rename this Tab"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:380
+#: ../terminal/src/terminal-widget.c:386
 msgid "Change this Tab's colour"
 msgstr ""
 
-#: ../terminal/src/terminal-widget.c:386
+#: ../terminal/src/terminal-widget.c:392
 msgid "Close this Tab"
 msgstr ""
 
@@ -2814,7 +2831,7 @@
 
 #: ../Animated-icons/data/messages:105 ../Animated-icons/data/messages:109
 #: ../Clipper/data/messages:9 ../Doncky/data/messages:9
-#: ../Doncky/data/messages:91 ../Folders/data/messages:21
+#: ../Doncky/data/messages:91 ../Folders/data/messages:23
 #: ../GMenu/data/messages:9 ../GMenu/data/messages:99
 #: ../RSSreader/data/messages:11 ../RSSreader/data/messages:129
 #: ../System-Monitor/data/messages:157 ../System-Monitor/data/messages:165
@@ -2854,14 +2871,14 @@
 #: ../icon-effect/data/messages:109 ../icon-effect/data/messages:131
 #: ../icon-effect/data/messages:153 ../icon-effect/data/messages:175
 #: ../illusion/data/messages:37 ../show-mouse/data/messages:27
-msgid "st color of gradation :"
+msgid "1st color of gradation :"
 msgstr ""
 
 #: ../Animated-icons/data/messages:121 ../icon-effect/data/messages:83
 #: ../icon-effect/data/messages:111 ../icon-effect/data/messages:133
 #: ../icon-effect/data/messages:155 ../icon-effect/data/messages:177
 #: ../illusion/data/messages:39 ../show-mouse/data/messages:29
-msgid "nd color of gradation :"
+msgid "2nd color of gradation :"
 msgstr ""
 
 #: ../Animated-icons/data/messages:123 ../icon-effect/data/messages:85
@@ -3003,7 +3020,7 @@
 msgstr ""
 
 #: ../Cairo-Penguin/data/messages:9 ../Clipper/data/messages:13
-#: ../Doncky/data/messages:13 ../Folders/data/messages:25
+#: ../Doncky/data/messages:13 ../Folders/data/messages:11
 #: ../GMenu/data/messages:13 ../MeMenu/data/messages:7
 #: ../Messaging-Menu/data/messages:9 ../Network-Monitor/data/messages:11
 #: ../RSSreader/data/messages:15 ../Status-Notifier/data/messages:13
@@ -3083,8 +3100,10 @@
 #: ../Cairo-Penguin/data/messages:17 ../Clipper/data/messages:139
 #: ../Network-Monitor/data/messages:167 ../System-Monitor/data/messages:149
 #: ../System-Monitor/data/messages:185 ../Toons/data/messages:93
-#: ../dnd2share/data/messages:93 ../netspeed/data/messages:131
-#: ../powermanager/data/messages:145 ../slider/data/messages:107
+#: ../dnd2share/data/messages:93 ../mail/data/messages:115
+#: ../musicPlayer/data/messages:139 ../netspeed/data/messages:131
+#: ../powermanager/data/messages:145 ../shortcuts/data/messages:129
+#: ../slider/data/messages:107 ../tomboy/data/messages:115
 #: ../wifi/data/messages:165
 msgid "in seconds."
 msgstr ""
@@ -3102,7 +3121,7 @@
 msgstr ""
 
 #: ../Cairo-Penguin/data/messages:25 ../dock-rendering/data/messages:13
-#: ../dock-rendering/data/messages:95
+#: ../dock-rendering/data/messages:95 ../show-mouse/data/messages:23
 msgid "in pixels."
 msgstr ""
 
@@ -3152,7 +3171,7 @@
 msgstr ""
 
 #: ../Clipper/data/messages:11 ../Doncky/data/messages:11
-#: ../Folders/data/messages:23 ../GMenu/data/messages:11
+#: ../Folders/data/messages:25 ../GMenu/data/messages:11
 #: ../RSSreader/data/messages:13 ../Xgamma/data/messages:11
 #: ../dnd2share/data/messages:11 ../logout/data/messages:11
 #: ../quick-browser/data/messages:13 ../shortcuts/data/messages:11
@@ -3211,20 +3230,21 @@
 #: ../Folders/data/messages:33 ../GMenu/data/messages:21
 #: ../MeMenu/data/messages:15 ../Messaging-Menu/data/messages:17
 #: ../Network-Monitor/data/messages:21 ../RSSreader/data/messages:23
-#: ../System-Monitor/data/messages:19 ../Toons/data/messages:19
-#: ../Xgamma/data/messages:21 ../alsaMixer/data/messages:19
-#: ../clock/data/messages:21 ../compiz-icon/data/messages:17
-#: ../dnd2share/data/messages:21 ../dustbin/data/messages:17
-#: ../keyboard-indicator/data/messages:17 ../logout/data/messages:21
-#: ../mail/data/messages:17 ../musicPlayer/data/messages:19
-#: ../netspeed/data/messages:17 ../powermanager/data/messages:19
-#: ../quick-browser/data/messages:23 ../shortcuts/data/messages:21
-#: ../showDesktop/data/messages:25 ../slider/data/messages:19
-#: ../stack/data/messages:23 ../stacks/data/messages:19
-#: ../switcher/data/messages:21 ../systray/data/messages:21
-#: ../template/data/messages:21 ../terminal/data/messages:21
-#: ../tomboy/data/messages:31 ../weather/data/messages:19
-#: ../weblets/data/messages:21 ../wifi/data/messages:19
+#: ../Status-Notifier/data/messages:21 ../System-Monitor/data/messages:19
+#: ../Toons/data/messages:19 ../Xgamma/data/messages:21
+#: ../alsaMixer/data/messages:19 ../clock/data/messages:21
+#: ../compiz-icon/data/messages:17 ../dnd2share/data/messages:21
+#: ../dustbin/data/messages:17 ../keyboard-indicator/data/messages:17
+#: ../logout/data/messages:21 ../mail/data/messages:17
+#: ../musicPlayer/data/messages:19 ../netspeed/data/messages:17
+#: ../powermanager/data/messages:19 ../quick-browser/data/messages:23
+#: ../shortcuts/data/messages:21 ../showDesktop/data/messages:25
+#: ../slider/data/messages:19 ../stack/data/messages:23
+#: ../stacks/data/messages:19 ../switcher/data/messages:21
+#: ../systray/data/messages:21 ../template/data/messages:21
+#: ../terminal/data/messages:21 ../tomboy/data/messages:31
+#: ../weather/data/messages:19 ../weblets/data/messages:21
+#: ../wifi/data/messages:19
 msgid "If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click."
 msgstr ""
 
@@ -3232,20 +3252,21 @@
 #: ../Folders/data/messages:35 ../GMenu/data/messages:23
 #: ../MeMenu/data/messages:17 ../Messaging-Menu/data/messages:19
 #: ../Network-Monitor/data/messages:23 ../RSSreader/data/messages:25
-#: ../System-Monitor/data/messages:21 ../Toons/data/messages:21
-#: ../Xgamma/data/messages:23 ../alsaMixer/data/messages:21
-#: ../clock/data/messages:23 ../compiz-icon/data/messages:19
-#: ../dnd2share/data/messages:23 ../dustbin/data/messages:19
-#: ../keyboard-indicator/data/messages:19 ../logout/data/messages:23
-#: ../mail/data/messages:19 ../musicPlayer/data/messages:21
-#: ../netspeed/data/messages:19 ../powermanager/data/messages:21
-#: ../quick-browser/data/messages:25 ../shortcuts/data/messages:23
-#: ../showDesktop/data/messages:27 ../slider/data/messages:21
-#: ../stack/data/messages:25 ../stacks/data/messages:21
-#: ../switcher/data/messages:23 ../systray/data/messages:23
-#: ../template/data/messages:23 ../terminal/data/messages:23
-#: ../tomboy/data/messages:33 ../weather/data/messages:21
-#: ../weblets/data/messages:23 ../wifi/data/messages:21
+#: ../Status-Notifier/data/messages:23 ../System-Monitor/data/messages:21
+#: ../Toons/data/messages:21 ../Xgamma/data/messages:23
+#: ../alsaMixer/data/messages:21 ../clock/data/messages:23
+#: ../compiz-icon/data/messages:19 ../dnd2share/data/messages:23
+#: ../dustbin/data/messages:19 ../keyboard-indicator/data/messages:19
+#: ../logout/data/messages:23 ../mail/data/messages:19
+#: ../musicPlayer/data/messages:21 ../netspeed/data/messages:19
+#: ../powermanager/data/messages:21 ../quick-browser/data/messages:25
+#: ../shortcuts/data/messages:23 ../showDesktop/data/messages:27
+#: ../slider/data/messages:21 ../stack/data/messages:25
+#: ../stacks/data/messages:21 ../switcher/data/messages:23
+#: ../systray/data/messages:23 ../template/data/messages:23
+#: ../terminal/data/messages:23 ../tomboy/data/messages:33
+#: ../weather/data/messages:21 ../weblets/data/messages:23
+#: ../wifi/data/messages:21
 msgid "Lock position?"
 msgstr ""
 
@@ -3253,20 +3274,20 @@
 #: ../Folders/data/messages:37 ../GMenu/data/messages:25
 #: ../MeMenu/data/messages:19 ../Messaging-Menu/data/messages:21
 #: ../Network-Monitor/data/messages:25 ../RSSreader/data/messages:27
-#: ../System-Monitor/data/messages:23 ../Toons/data/messages:23
-#: ../Xgamma/data/messages:25 ../alsaMixer/data/messages:23
-#: ../clock/data/messages:25 ../compiz-icon/data/messages:21
-#: ../dnd2share/data/messages:25 ../dustbin/data/messages:21
-#: ../keyboard-indicator/data/messages:21 ../logout/data/messages:25
-#: ../mail/data/messages:21 ../musicPlayer/data/messages:23
-#: ../netspeed/data/messages:21 ../powermanager/data/messages:23
-#: ../quick-browser/data/messages:27 ../shortcuts/data/messages:25
-#: ../showDesktop/data/messages:29 ../slider/data/messages:23
-#: ../stack/data/messages:27 ../stacks/data/messages:23
-#: ../switcher/data/messages:25 ../template/data/messages:25
-#: ../terminal/data/messages:25 ../tomboy/data/messages:35
-#: ../weather/data/messages:23 ../weblets/data/messages:25
-#: ../wifi/data/messages:23
+#: ../Status-Notifier/data/messages:25 ../System-Monitor/data/messages:23
+#: ../Toons/data/messages:23 ../Xgamma/data/messages:25
+#: ../alsaMixer/data/messages:23 ../clock/data/messages:25
+#: ../compiz-icon/data/messages:21 ../dnd2share/data/messages:25
+#: ../dustbin/data/messages:21 ../keyboard-indicator/data/messages:21
+#: ../logout/data/messages:25 ../mail/data/messages:21
+#: ../musicPlayer/data/messages:23 ../netspeed/data/messages:21
+#: ../powermanager/data/messages:23 ../quick-browser/data/messages:27
+#: ../shortcuts/data/messages:25 ../showDesktop/data/messages:29
+#: ../slider/data/messages:23 ../stack/data/messages:27
+#: ../stacks/data/messages:23 ../switcher/data/messages:25
+#: ../template/data/messages:25 ../terminal/data/messages:25
+#: ../tomboy/data/messages:35 ../weather/data/messages:23
+#: ../weblets/data/messages:25 ../wifi/data/messages:23
 msgid "Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click."
 msgstr ""
 
@@ -3274,20 +3295,20 @@
 #: ../Folders/data/messages:39 ../GMenu/data/messages:27
 #: ../MeMenu/data/messages:21 ../Messaging-Menu/data/messages:23
 #: ../Network-Monitor/data/messages:27 ../RSSreader/data/messages:29
-#: ../System-Monitor/data/messages:25 ../Toons/data/messages:25
-#: ../Xgamma/data/messages:27 ../alsaMixer/data/messages:25
-#: ../clock/data/messages:27 ../compiz-icon/data/messages:23
-#: ../dnd2share/data/messages:27 ../dustbin/data/messages:23
-#: ../keyboard-indicator/data/messages:23 ../logout/data/messages:27
-#: ../mail/data/messages:23 ../musicPlayer/data/messages:25
-#: ../netspeed/data/messages:23 ../powermanager/data/messages:25
-#: ../quick-browser/data/messages:29 ../shortcuts/data/messages:27
-#: ../showDesktop/data/messages:31 ../slider/data/messages:25
-#: ../stack/data/messages:29 ../stacks/data/messages:25
-#: ../switcher/data/messages:27 ../template/data/messages:27
-#: ../terminal/data/messages:27 ../tomboy/data/messages:37
-#: ../weather/data/messages:25 ../weblets/data/messages:27
-#: ../wifi/data/messages:25
+#: ../Status-Notifier/data/messages:27 ../System-Monitor/data/messages:25
+#: ../Toons/data/messages:25 ../Xgamma/data/messages:27
+#: ../alsaMixer/data/messages:25 ../clock/data/messages:27
+#: ../compiz-icon/data/messages:23 ../dnd2share/data/messages:27
+#: ../dustbin/data/messages:23 ../keyboard-indicator/data/messages:23
+#: ../logout/data/messages:27 ../mail/data/messages:23
+#: ../musicPlayer/data/messages:25 ../netspeed/data/messages:23
+#: ../powermanager/data/messages:25 ../quick-browser/data/messages:29
+#: ../shortcuts/data/messages:27 ../showDesktop/data/messages:31
+#: ../slider/data/messages:25 ../stack/data/messages:29
+#: ../stacks/data/messages:25 ../switcher/data/messages:27
+#: ../template/data/messages:27 ../terminal/data/messages:27
+#: ../tomboy/data/messages:37 ../weather/data/messages:25
+#: ../weblets/data/messages:27 ../wifi/data/messages:25
 msgid "Desklet dimensions (width x height):"
 msgstr ""
 
@@ -3303,9 +3324,8 @@
 #: ../quick-browser/data/messages:31 ../shortcuts/data/messages:29
 #: ../showDesktop/data/messages:33 ../slider/data/messages:27
 #: ../stack/data/messages:31 ../stacks/data/messages:27
-#: ../template/data/messages:29 ../terminal/data/messages:29
-#: ../weather/data/messages:27 ../weblets/data/messages:29
-#: ../wifi/data/messages:27
+#: ../terminal/data/messages:29 ../weather/data/messages:27
+#: ../weblets/data/messages:29 ../wifi/data/messages:27
 msgid "Depending on your WindowManager, you may be able to move this with ALT + left-click."
 msgstr ""
 
@@ -3313,20 +3333,21 @@
 #: ../Folders/data/messages:43 ../GMenu/data/messages:31
 #: ../MeMenu/data/messages:25 ../Messaging-Menu/data/messages:27
 #: ../Network-Monitor/data/messages:31 ../RSSreader/data/messages:33
-#: ../System-Monitor/data/messages:29 ../Toons/data/messages:29
-#: ../Xgamma/data/messages:31 ../alsaMixer/data/messages:29
-#: ../clock/data/messages:31 ../compiz-icon/data/messages:27
-#: ../dnd2share/data/messages:31 ../dustbin/data/messages:27
-#: ../keyboard-indicator/data/messages:27 ../logout/data/messages:31
-#: ../mail/data/messages:27 ../musicPlayer/data/messages:29
-#: ../netspeed/data/messages:27 ../powermanager/data/messages:29
-#: ../quick-browser/data/messages:33 ../shortcuts/data/messages:31
-#: ../showDesktop/data/messages:35 ../slider/data/messages:29
-#: ../stack/data/messages:33 ../stacks/data/messages:29
-#: ../switcher/data/messages:29 ../systray/data/messages:27
-#: ../template/data/messages:31 ../terminal/data/messages:31
-#: ../tomboy/data/messages:41 ../weather/data/messages:29
-#: ../weblets/data/messages:31 ../wifi/data/messages:29
+#: ../Status-Notifier/data/messages:31 ../System-Monitor/data/messages:29
+#: ../Toons/data/messages:29 ../Xgamma/data/messages:31
+#: ../alsaMixer/data/messages:29 ../clock/data/messages:31
+#: ../compiz-icon/data/messages:27 ../dnd2share/data/messages:31
+#: ../dustbin/data/messages:27 ../keyboard-indicator/data/messages:27
+#: ../logout/data/messages:31 ../mail/data/messages:27
+#: ../musicPlayer/data/messages:29 ../netspeed/data/messages:27
+#: ../powermanager/data/messages:29 ../quick-browser/data/messages:33
+#: ../shortcuts/data/messages:31 ../showDesktop/data/messages:35
+#: ../slider/data/messages:29 ../stack/data/messages:33
+#: ../stacks/data/messages:29 ../switcher/data/messages:29
+#: ../systray/data/messages:27 ../template/data/messages:31
+#: ../terminal/data/messages:31 ../tomboy/data/messages:41
+#: ../weather/data/messages:29 ../weblets/data/messages:31
+#: ../wifi/data/messages:29
 msgid "Desklet position (x, y):"
 msgstr ""
 
@@ -3354,19 +3375,19 @@
 #: ../Folders/data/messages:47 ../GMenu/data/messages:35
 #: ../MeMenu/data/messages:29 ../Messaging-Menu/data/messages:31
 #: ../Network-Monitor/data/messages:35 ../RSSreader/data/messages:37
-#: ../System-Monitor/data/messages:33 ../Toons/data/messages:33
-#: ../Xgamma/data/messages:35 ../alsaMixer/data/messages:33
-#: ../clock/data/messages:35 ../compiz-icon/data/messages:31
-#: ../dustbin/data/messages:31 ../keyboard-indicator/data/messages:31
-#: ../logout/data/messages:35 ../mail/data/messages:31
-#: ../musicPlayer/data/messages:33 ../netspeed/data/messages:31
-#: ../powermanager/data/messages:33 ../quick-browser/data/messages:37
-#: ../shortcuts/data/messages:35 ../showDesktop/data/messages:39
-#: ../slider/data/messages:33 ../stack/data/messages:37
-#: ../stacks/data/messages:33 ../template/data/messages:35
-#: ../terminal/data/messages:35 ../tomboy/data/messages:45
-#: ../weather/data/messages:33 ../weblets/data/messages:35
-#: ../wifi/data/messages:33
+#: ../Status-Notifier/data/messages:35 ../System-Monitor/data/messages:33
+#: ../Toons/data/messages:33 ../Xgamma/data/messages:35
+#: ../alsaMixer/data/messages:33 ../clock/data/messages:35
+#: ../compiz-icon/data/messages:31 ../dustbin/data/messages:31
+#: ../keyboard-indicator/data/messages:31 ../logout/data/messages:35
+#: ../mail/data/messages:31 ../musicPlayer/data/messages:33
+#: ../netspeed/data/messages:31 ../powermanager/data/messages:33
+#: ../quick-browser/data/messages:37 ../shortcuts/data/messages:35
+#: ../showDesktop/data/messages:39 ../slider/data/messages:33
+#: ../stack/data/messages:37 ../stacks/data/messages:33
+#: ../template/data/messages:35 ../terminal/data/messages:35
+#: ../tomboy/data/messages:45 ../weather/data/messages:33
+#: ../weblets/data/messages:35 ../wifi/data/messages:33
 msgid "Rotation:"
 msgstr ""
 
@@ -3396,21 +3417,21 @@
 #: ../Folders/data/messages:51 ../GMenu/data/messages:39
 #: ../MeMenu/data/messages:33 ../Messaging-Menu/data/messages:35
 #: ../Network-Monitor/data/messages:39 ../RSSreader/data/messages:41
-#: ../Scooby-Do/data/messages:27 ../System-Monitor/data/messages:37
-#: ../Toons/data/messages:37 ../Xgamma/data/messages:39
-#: ../alsaMixer/data/messages:37 ../clock/data/messages:39
-#: ../compiz-icon/data/messages:35 ../dnd2share/data/messages:35
-#: ../dustbin/data/messages:35 ../keyboard-indicator/data/messages:35
-#: ../logout/data/messages:39 ../mail/data/messages:35
-#: ../musicPlayer/data/messages:37 ../netspeed/data/messages:35
-#: ../powermanager/data/messages:37 ../quick-browser/data/messages:41
-#: ../shortcuts/data/messages:39 ../showDesktop/data/messages:43
-#: ../slider/data/messages:37 ../stack/data/messages:41
-#: ../stacks/data/messages:37 ../switcher/data/messages:33
-#: ../systray/data/messages:31 ../template/data/messages:39
-#: ../terminal/data/messages:39 ../tomboy/data/messages:49
-#: ../weather/data/messages:37 ../weblets/data/messages:39
-#: ../wifi/data/messages:37
+#: ../Scooby-Do/data/messages:27 ../Status-Notifier/data/messages:39
+#: ../System-Monitor/data/messages:37 ../Toons/data/messages:37
+#: ../Xgamma/data/messages:39 ../alsaMixer/data/messages:37
+#: ../clock/data/messages:39 ../compiz-icon/data/messages:35
+#: ../dnd2share/data/messages:35 ../dustbin/data/messages:35
+#: ../keyboard-indicator/data/messages:35 ../logout/data/messages:39
+#: ../mail/data/messages:35 ../musicPlayer/data/messages:37
+#: ../netspeed/data/messages:35 ../powermanager/data/messages:37
+#: ../quick-browser/data/messages:41 ../shortcuts/data/messages:39
+#: ../showDesktop/data/messages:43 ../slider/data/messages:37
+#: ../stack/data/messages:41 ../stacks/data/messages:37
+#: ../switcher/data/messages:33 ../systray/data/messages:31
+#: ../template/data/messages:39 ../terminal/data/messages:39
+#: ../tomboy/data/messages:49 ../weather/data/messages:37
+#: ../weblets/data/messages:39 ../wifi/data/messages:37
 msgid "Is detached from the dock"
 msgstr ""
 
@@ -3439,20 +3460,21 @@
 #: ../Folders/data/messages:55 ../GMenu/data/messages:43
 #: ../MeMenu/data/messages:37 ../Messaging-Menu/data/messages:39
 #: ../Network-Monitor/data/messages:43 ../RSSreader/data/messages:45
-#: ../System-Monitor/data/messages:41 ../Toons/data/messages:41
-#: ../Xgamma/data/messages:43 ../alsaMixer/data/messages:41
-#: ../clock/data/messages:43 ../compiz-icon/data/messages:39
-#: ../dnd2share/data/messages:39 ../dustbin/data/messages:39
-#: ../keyboard-indicator/data/messages:39 ../logout/data/messages:43
-#: ../mail/data/messages:39 ../musicPlayer/data/messages:41
-#: ../netspeed/data/messages:39 ../powermanager/data/messages:41
-#: ../quick-browser/data/messages:45 ../shortcuts/data/messages:43
-#: ../showDesktop/data/messages:47 ../slider/data/messages:41
-#: ../stack/data/messages:45 ../stacks/data/messages:41
-#: ../switcher/data/messages:35 ../systray/data/messages:35
-#: ../template/data/messages:43 ../terminal/data/messages:43
-#: ../tomboy/data/messages:53 ../weather/data/messages:41
-#: ../weblets/data/messages:43 ../wifi/data/messages:41
+#: ../Status-Notifier/data/messages:43 ../System-Monitor/data/messages:41
+#: ../Toons/data/messages:41 ../Xgamma/data/messages:43
+#: ../alsaMixer/data/messages:41 ../clock/data/messages:43
+#: ../compiz-icon/data/messages:39 ../dnd2share/data/messages:39
+#: ../dustbin/data/messages:39 ../keyboard-indicator/data/messages:39
+#: ../logout/data/messages:43 ../mail/data/messages:39
+#: ../musicPlayer/data/messages:41 ../netspeed/data/messages:39
+#: ../powermanager/data/messages:41 ../quick-browser/data/messages:45
+#: ../shortcuts/data/messages:43 ../showDesktop/data/messages:47
+#: ../slider/data/messages:41 ../stack/data/messages:45
+#: ../stacks/data/messages:41 ../switcher/data/messages:35
+#: ../systray/data/messages:35 ../template/data/messages:43
+#: ../terminal/data/messages:43 ../tomboy/data/messages:53
+#: ../weather/data/messages:41 ../weblets/data/messages:43
+#: ../wifi/data/messages:41
 msgid "Visibility:"
 msgstr ""
 
@@ -3504,20 +3526,21 @@
 #: ../Folders/data/messages:63 ../GMenu/data/messages:51
 #: ../MeMenu/data/messages:45 ../Messaging-Menu/data/messages:47
 #: ../Network-Monitor/data/messages:51 ../RSSreader/data/messages:53
-#: ../System-Monitor/data/messages:49 ../Toons/data/messages:49
-#: ../Xgamma/data/messages:51 ../alsaMixer/data/messages:49
-#: ../clock/data/messages:51 ../compiz-icon/data/messages:47
-#: ../dnd2share/data/messages:47 ../dustbin/data/messages:47
-#: ../keyboard-indicator/data/messages:47 ../logout/data/messages:51
-#: ../mail/data/messages:47 ../musicPlayer/data/messages:49
-#: ../netspeed/data/messages:47 ../powermanager/data/messages:49
-#: ../quick-browser/data/messages:53 ../shortcuts/data/messages:51
-#: ../showDesktop/data/messages:55 ../slider/data/messages:49
-#: ../stack/data/messages:53 ../stacks/data/messages:49
-#: ../switcher/data/messages:43 ../systray/data/messages:43
-#: ../template/data/messages:51 ../terminal/data/messages:51
-#: ../tomboy/data/messages:61 ../weather/data/messages:49
-#: ../weblets/data/messages:51 ../wifi/data/messages:49
+#: ../Status-Notifier/data/messages:51 ../System-Monitor/data/messages:49
+#: ../Toons/data/messages:49 ../Xgamma/data/messages:51
+#: ../alsaMixer/data/messages:49 ../clock/data/messages:51
+#: ../compiz-icon/data/messages:47 ../dnd2share/data/messages:47
+#: ../dustbin/data/messages:47 ../keyboard-indicator/data/messages:47
+#: ../logout/data/messages:51 ../mail/data/messages:47
+#: ../musicPlayer/data/messages:49 ../netspeed/data/messages:47
+#: ../powermanager/data/messages:49 ../quick-browser/data/messages:53
+#: ../shortcuts/data/messages:51 ../showDesktop/data/messages:55
+#: ../slider/data/messages:49 ../stack/data/messages:53
+#: ../stacks/data/messages:49 ../switcher/data/messages:43
+#: ../systray/data/messages:43 ../template/data/messages:51
+#: ../terminal/data/messages:51 ../tomboy/data/messages:61
+#: ../weather/data/messages:49 ../weblets/data/messages:51
+#: ../wifi/data/messages:49
 msgid "Keep on widget layer"
 msgstr ""
 
@@ -3547,20 +3570,21 @@
 #: ../Folders/data/messages:67 ../GMenu/data/messages:55
 #: ../MeMenu/data/messages:49 ../Messaging-Menu/data/messages:51
 #: ../Network-Monitor/data/messages:55 ../RSSreader/data/messages:57
-#: ../System-Monitor/data/messages:53 ../Toons/data/messages:53
-#: ../Xgamma/data/messages:55 ../alsaMixer/data/messages:53
-#: ../clock/data/messages:55 ../compiz-icon/data/messages:51
-#: ../dnd2share/data/messages:51 ../dustbin/data/messages:51
-#: ../keyboard-indicator/data/messages:51 ../logout/data/messages:55
-#: ../mail/data/messages:51 ../musicPlayer/data/messages:53
-#: ../netspeed/data/messages:51 ../powermanager/data/messages:53
-#: ../quick-browser/data/messages:57 ../shortcuts/data/messages:55
-#: ../showDesktop/data/messages:59 ../slider/data/messages:53
-#: ../stack/data/messages:57 ../stacks/data/messages:53
-#: ../switcher/data/messages:47 ../systray/data/messages:47
-#: ../template/data/messages:55 ../terminal/data/messages:55
-#: ../tomboy/data/messages:65 ../weather/data/messages:53
-#: ../weblets/data/messages:55 ../wifi/data/messages:53
+#: ../Status-Notifier/data/messages:55 ../System-Monitor/data/messages:53
+#: ../Toons/data/messages:53 ../Xgamma/data/messages:55
+#: ../alsaMixer/data/messages:53 ../clock/data/messages:55
+#: ../compiz-icon/data/messages:51 ../dnd2share/data/messages:51
+#: ../dustbin/data/messages:51 ../keyboard-indicator/data/messages:51
+#: ../logout/data/messages:55 ../mail/data/messages:51
+#: ../musicPlayer/data/messages:53 ../netspeed/data/messages:51
+#: ../powermanager/data/messages:53 ../quick-browser/data/messages:57
+#: ../shortcuts/data/messages:55 ../showDesktop/data/messages:59
+#: ../slider/data/messages:53 ../stack/data/messages:57
+#: ../stacks/data/messages:53 ../switcher/data/messages:47
+#: ../systray/data/messages:47 ../template/data/messages:55
+#: ../terminal/data/messages:55 ../tomboy/data/messages:65
+#: ../weather/data/messages:53 ../weblets/data/messages:55
+#: ../wifi/data/messages:53
 msgid "Should be visible on all desktops?"
 msgstr ""
 
@@ -3612,20 +3636,21 @@
 #: ../Folders/data/messages:73 ../GMenu/data/messages:61
 #: ../MeMenu/data/messages:55 ../Messaging-Menu/data/messages:57
 #: ../Network-Monitor/data/messages:61 ../RSSreader/data/messages:63
-#: ../System-Monitor/data/messages:59 ../Toons/data/messages:59
-#: ../Xgamma/data/messages:61 ../alsaMixer/data/messages:59
-#: ../clock/data/messages:61 ../compiz-icon/data/messages:57
-#: ../dnd2share/data/messages:57 ../dustbin/data/messages:57
-#: ../keyboard-indicator/data/messages:57 ../logout/data/messages:61
-#: ../mail/data/messages:57 ../musicPlayer/data/messages:59
-#: ../netspeed/data/messages:57 ../powermanager/data/messages:59
-#: ../quick-browser/data/messages:63 ../shortcuts/data/messages:61
-#: ../showDesktop/data/messages:65 ../slider/data/messages:59
-#: ../stack/data/messages:63 ../stacks/data/messages:59
-#: ../switcher/data/messages:53 ../systray/data/messages:53
-#: ../template/data/messages:61 ../terminal/data/messages:61
-#: ../tomboy/data/messages:71 ../weather/data/messages:59
-#: ../weblets/data/messages:61 ../wifi/data/messages:59
+#: ../Status-Notifier/data/messages:61 ../System-Monitor/data/messages:59
+#: ../Toons/data/messages:59 ../Xgamma/data/messages:61
+#: ../alsaMixer/data/messages:59 ../clock/data/messages:61
+#: ../compiz-icon/data/messages:57 ../dnd2share/data/messages:57
+#: ../dustbin/data/messages:57 ../keyboard-indicator/data/messages:57
+#: ../logout/data/messages:61 ../mail/data/messages:57
+#: ../musicPlayer/data/messages:59 ../netspeed/data/messages:57
+#: ../powermanager/data/messages:59 ../quick-browser/data/messages:63
+#: ../shortcuts/data/messages:61 ../showDesktop/data/messages:65
+#: ../slider/data/messages:59 ../stack/data/messages:63
+#: ../stacks/data/messages:59 ../switcher/data/messages:53
+#: ../systray/data/messages:53 ../template/data/messages:61
+#: ../terminal/data/messages:61 ../tomboy/data/messages:71
+#: ../weather/data/messages:59 ../weblets/data/messages:61
+#: ../wifi/data/messages:59
 msgid "Choose a decoration theme for this desklet:"
 msgstr ""
 
@@ -3633,20 +3658,21 @@
 #: ../Folders/data/messages:75 ../GMenu/data/messages:63
 #: ../MeMenu/data/messages:57 ../Messaging-Menu/data/messages:59
 #: ../Network-Monitor/data/messages:63 ../RSSreader/data/messages:65
-#: ../System-Monitor/data/messages:61 ../Toons/data/messages:61
-#: ../Xgamma/data/messages:63 ../alsaMixer/data/messages:61
-#: ../clock/data/messages:63 ../compiz-icon/data/messages:59
-#: ../dnd2share/data/messages:59 ../dustbin/data/messages:59
-#: ../keyboard-indicator/data/messages:59 ../logout/data/messages:63
-#: ../mail/data/messages:59 ../musicPlayer/data/messages:61
-#: ../netspeed/data/messages:59 ../powermanager/data/messages:61
-#: ../quick-browser/data/messages:65 ../shortcuts/data/messages:63
-#: ../showDesktop/data/messages:67 ../slider/data/messages:61
-#: ../stack/data/messages:65 ../stacks/data/messages:61
-#: ../switcher/data/messages:55 ../systray/data/messages:55
-#: ../template/data/messages:63 ../terminal/data/messages:63
-#: ../tomboy/data/messages:73 ../weather/data/messages:61
-#: ../weblets/data/messages:63 ../wifi/data/messages:61
+#: ../Status-Notifier/data/messages:63 ../System-Monitor/data/messages:61
+#: ../Toons/data/messages:61 ../Xgamma/data/messages:63
+#: ../alsaMixer/data/messages:61 ../clock/data/messages:63
+#: ../compiz-icon/data/messages:59 ../dnd2share/data/messages:59
+#: ../dustbin/data/messages:59 ../keyboard-indicator/data/messages:59
+#: ../logout/data/messages:63 ../mail/data/messages:59
+#: ../musicPlayer/data/messages:61 ../netspeed/data/messages:59
+#: ../powermanager/data/messages:61 ../quick-browser/data/messages:65
+#: ../shortcuts/data/messages:63 ../showDesktop/data/messages:67
+#: ../slider/data/messages:61 ../stack/data/messages:65
+#: ../stacks/data/messages:61 ../switcher/data/messages:55
+#: ../systray/data/messages:55 ../template/data/messages:63
+#: ../terminal/data/messages:63 ../tomboy/data/messages:73
+#: ../weather/data/messages:61 ../weblets/data/messages:63
+#: ../wifi/data/messages:61
 msgid "Image to be displayed below drawings, e.g. a frame. Leave empty for no image."
 msgstr ""
 
@@ -3654,11 +3680,12 @@
 #: ../Folders/data/messages:77 ../GMenu/data/messages:65
 #: ../MeMenu/data/messages:59 ../Messaging-Menu/data/messages:61
 #: ../Network-Monitor/data/messages:65 ../RSSreader/data/messages:67
-#: ../System-Monitor/data/messages:63 ../Toons/data/messages:63
-#: ../Xgamma/data/messages:65 ../alsaMixer/data/messages:63
-#: ../clock/data/messages:65 ../clock/data/messages:149
-#: ../compiz-icon/data/messages:61 ../dnd2share/data/messages:61
-#: ../dustbin/data/messages:61 ../keyboard-indicator/data/messages:61
+#: ../Status-Notifier/data/messages:65 ../System-Monitor/data/messages:63
+#: ../Toons/data/messages:63 ../Xgamma/data/messages:65
+#: ../alsaMixer/data/messages:63 ../clock/data/messages:65
+#: ../clock/data/messages:149 ../compiz-icon/data/messages:61
+#: ../dnd2share/data/messages:61 ../dustbin/data/messages:61
+#: ../keyboard-indicator/data/messages:61
 #: ../keyboard-indicator/data/messages:113 ../logout/data/messages:65
 #: ../mail/data/messages:61 ../musicPlayer/data/messages:63
 #: ../netspeed/data/messages:61 ../powermanager/data/messages:63
@@ -3676,20 +3703,21 @@
 #: ../Folders/data/messages:79 ../GMenu/data/messages:67
 #: ../MeMenu/data/messages:61 ../Messaging-Menu/data/messages:63
 #: ../Network-Monitor/data/messages:67 ../RSSreader/data/messages:69
-#: ../System-Monitor/data/messages:65 ../Toons/data/messages:65
-#: ../Xgamma/data/messages:67 ../alsaMixer/data/messages:65
-#: ../clock/data/messages:67 ../compiz-icon/data/messages:63
-#: ../dnd2share/data/messages:63 ../dustbin/data/messages:63
-#: ../keyboard-indicator/data/messages:63 ../logout/data/messages:67
-#: ../mail/data/messages:63 ../musicPlayer/data/messages:65
-#: ../netspeed/data/messages:63 ../powermanager/data/messages:65
-#: ../quick-browser/data/messages:69 ../shortcuts/data/messages:67
-#: ../showDesktop/data/messages:71 ../slider/data/messages:65
-#: ../stack/data/messages:69 ../stacks/data/messages:65
-#: ../switcher/data/messages:59 ../systray/data/messages:59
-#: ../template/data/messages:67 ../terminal/data/messages:67
-#: ../tomboy/data/messages:77 ../weather/data/messages:65
-#: ../weblets/data/messages:67 ../wifi/data/messages:65
+#: ../Status-Notifier/data/messages:67 ../System-Monitor/data/messages:65
+#: ../Toons/data/messages:65 ../Xgamma/data/messages:67
+#: ../alsaMixer/data/messages:65 ../clock/data/messages:67
+#: ../compiz-icon/data/messages:63 ../dnd2share/data/messages:63
+#: ../dustbin/data/messages:63 ../keyboard-indicator/data/messages:63
+#: ../logout/data/messages:67 ../mail/data/messages:63
+#: ../musicPlayer/data/messages:65 ../netspeed/data/messages:63
+#: ../powermanager/data/messages:65 ../quick-browser/data/messages:69
+#: ../shortcuts/data/messages:67 ../showDesktop/data/messages:71
+#: ../slider/data/messages:65 ../stack/data/messages:69
+#: ../stacks/data/messages:65 ../switcher/data/messages:59
+#: ../systray/data/messages:59 ../template/data/messages:67
+#: ../terminal/data/messages:67 ../tomboy/data/messages:77
+#: ../weather/data/messages:65 ../weblets/data/messages:67
+#: ../wifi/data/messages:65
 msgid "Background transparency:"
 msgstr ""
 
@@ -3697,20 +3725,21 @@
 #: ../Folders/data/messages:81 ../GMenu/data/messages:69
 #: ../MeMenu/data/messages:63 ../Messaging-Menu/data/messages:65
 #: ../Network-Monitor/data/messages:69 ../RSSreader/data/messages:71
-#: ../System-Monitor/data/messages:67 ../Toons/data/messages:67
-#: ../Xgamma/data/messages:69 ../alsaMixer/data/messages:67
-#: ../clock/data/messages:69 ../compiz-icon/data/messages:65
-#: ../dnd2share/data/messages:65 ../dustbin/data/messages:65
-#: ../keyboard-indicator/data/messages:65 ../logout/data/messages:69
-#: ../mail/data/messages:65 ../musicPlayer/data/messages:67
-#: ../netspeed/data/messages:65 ../powermanager/data/messages:67
-#: ../quick-browser/data/messages:71 ../shortcuts/data/messages:69
-#: ../showDesktop/data/messages:73 ../slider/data/messages:67
-#: ../stack/data/messages:71 ../stacks/data/messages:67
-#: ../switcher/data/messages:61 ../systray/data/messages:61
-#: ../template/data/messages:69 ../terminal/data/messages:69
-#: ../tomboy/data/messages:79 ../weather/data/messages:67
-#: ../weblets/data/messages:69 ../wifi/data/messages:67
+#: ../Status-Notifier/data/messages:69 ../System-Monitor/data/messages:67
+#: ../Toons/data/messages:67 ../Xgamma/data/messages:69
+#: ../alsaMixer/data/messages:67 ../clock/data/messages:69
+#: ../compiz-icon/data/messages:65 ../dnd2share/data/messages:65
+#: ../dustbin/data/messages:65 ../keyboard-indicator/data/messages:65
+#: ../logout/data/messages:69 ../mail/data/messages:65
+#: ../musicPlayer/data/messages:67 ../netspeed/data/messages:65
+#: ../powermanager/data/messages:67 ../quick-browser/data/messages:71
+#: ../shortcuts/data/messages:69 ../showDesktop/data/messages:73
+#: ../slider/data/messages:67 ../stack/data/messages:71
+#: ../stacks/data/messages:67 ../switcher/data/messages:61
+#: ../systray/data/messages:61 ../template/data/messages:69
+#: ../terminal/data/messages:69 ../tomboy/data/messages:79
+#: ../weather/data/messages:67 ../weblets/data/messages:69
+#: ../wifi/data/messages:67
 msgid "in pixels. Use this to adjust the left position of drawings."
 msgstr ""
 
@@ -3718,20 +3747,21 @@
 #: ../Folders/data/messages:83 ../GMenu/data/messages:71
 #: ../MeMenu/data/messages:65 ../Messaging-Menu/data/messages:67
 #: ../Network-Monitor/data/messages:71 ../RSSreader/data/messages:73
-#: ../System-Monitor/data/messages:69 ../Toons/data/messages:69
-#: ../Xgamma/data/messages:71 ../alsaMixer/data/messages:69
-#: ../clock/data/messages:71 ../compiz-icon/data/messages:67
-#: ../dnd2share/data/messages:67 ../dustbin/data/messages:67
-#: ../keyboard-indicator/data/messages:67 ../logout/data/messages:71
-#: ../mail/data/messages:67 ../musicPlayer/data/messages:69
-#: ../netspeed/data/messages:67 ../powermanager/data/messages:69
-#: ../quick-browser/data/messages:73 ../shortcuts/data/messages:71
-#: ../showDesktop/data/messages:75 ../slider/data/messages:69
-#: ../stack/data/messages:73 ../stacks/data/messages:69
-#: ../switcher/data/messages:63 ../systray/data/messages:63
-#: ../template/data/messages:71 ../terminal/data/messages:71
-#: ../tomboy/data/messages:81 ../weather/data/messages:69
-#: ../weblets/data/messages:71 ../wifi/data/messages:69
+#: ../Status-Notifier/data/messages:71 ../System-Monitor/data/messages:69
+#: ../Toons/data/messages:69 ../Xgamma/data/messages:71
+#: ../alsaMixer/data/messages:69 ../clock/data/messages:71
+#: ../compiz-icon/data/messages:67 ../dnd2share/data/messages:67
+#: ../dustbin/data/messages:67 ../keyboard-indicator/data/messages:67
+#: ../logout/data/messages:71 ../mail/data/messages:67
+#: ../musicPlayer/data/messages:69 ../netspeed/data/messages:67
+#: ../powermanager/data/messages:69 ../quick-browser/data/messages:73
+#: ../shortcuts/data/messages:71 ../showDesktop/data/messages:75
+#: ../slider/data/messages:69 ../stack/data/messages:73
+#: ../stacks/data/messages:69 ../switcher/data/messages:63
+#: ../systray/data/messages:63 ../template/data/messages:71
+#: ../terminal/data/messages:71 ../tomboy/data/messages:81
+#: ../weather/data/messages:69 ../weblets/data/messages:71
+#: ../wifi/data/messages:69
 msgid "Left offset:"
 msgstr ""
 
@@ -3739,20 +3769,21 @@
 #: ../Folders/data/messages:85 ../GMenu/data/messages:73
 #: ../MeMenu/data/messages:67 ../Messaging-Menu/data/messages:69
 #: ../Network-Monitor/data/messages:73 ../RSSreader/data/messages:75
-#: ../System-Monitor/data/messages:71 ../Toons/data/messages:71
-#: ../Xgamma/data/messages:73 ../alsaMixer/data/messages:71
-#: ../clock/data/messages:73 ../compiz-icon/data/messages:69
-#: ../dnd2share/data/messages:69 ../dustbin/data/messages:69
-#: ../keyboard-indicator/data/messages:69 ../logout/data/messages:73
-#: ../mail/data/messages:69 ../musicPlayer/data/messages:71
-#: ../netspeed/data/messages:69 ../powermanager/data/messages:71
-#: ../quick-browser/data/messages:75 ../shortcuts/data/messages:73
-#: ../showDesktop/data/messages:77 ../slider/data/messages:71
-#: ../stack/data/messages:75 ../stacks/data/messages:71
-#: ../switcher/data/messages:65 ../systray/data/messages:65
-#: ../template/data/messages:73 ../terminal/data/messages:73
-#: ../tomboy/data/messages:83 ../weather/data/messages:71
-#: ../weblets/data/messages:73 ../wifi/data/messages:71
+#: ../Status-Notifier/data/messages:73 ../System-Monitor/data/messages:71
+#: ../Toons/data/messages:71 ../Xgamma/data/messages:73
+#: ../alsaMixer/data/messages:71 ../clock/data/messages:73
+#: ../compiz-icon/data/messages:69 ../dnd2share/data/messages:69
+#: ../dustbin/data/messages:69 ../keyboard-indicator/data/messages:69
+#: ../logout/data/messages:73 ../mail/data/messages:69
+#: ../musicPlayer/data/messages:71 ../netspeed/data/messages:69
+#: ../powermanager/data/messages:71 ../quick-browser/data/messages:75
+#: ../shortcuts/data/messages:73 ../showDesktop/data/messages:77
+#: ../slider/data/messages:71 ../stack/data/messages:75
+#: ../stacks/data/messages:71 ../switcher/data/messages:65
+#: ../systray/data/messages:65 ../template/data/messages:73
+#: ../terminal/data/messages:73 ../tomboy/data/messages:83
+#: ../weather/data/messages:71 ../weblets/data/messages:73
+#: ../wifi/data/messages:71
 msgid "in pixels. Use this to adjust the top position of drawings."
 msgstr ""
 
@@ -3760,20 +3791,21 @@
 #: ../Folders/data/messages:87 ../GMenu/data/messages:75
 #: ../MeMenu/data/messages:69 ../Messaging-Menu/data/messages:71
 #: ../Network-Monitor/data/messages:75 ../RSSreader/data/messages:77
-#: ../System-Monitor/data/messages:73 ../Toons/data/messages:73
-#: ../Xgamma

Follow ups