deskbar-applet r1858 - in branches/button-ui: data deskbar/core deskbar/ui deskbar/ui/cuemiac deskbar/ui/preferences



Author: sebp
Date: Mon Jan 21 14:21:25 2008
New Revision: 1858
URL: http://svn.gnome.org/viewvc/deskbar-applet?rev=1858&view=rev

Log:
Committed first patch by Andreas KÃhntopf

Added:
   branches/button-ui/deskbar/ui/CuemiacAlignedView.py
   branches/button-ui/deskbar/ui/cuemiac/CuemiacAlignedWindow.py
Modified:
   branches/button-ui/data/prefs-dialog.glade
   branches/button-ui/deskbar/core/CoreImpl.py
   branches/button-ui/deskbar/core/GconfStore.py
   branches/button-ui/deskbar/ui/CuemiacWindowController.py
   branches/button-ui/deskbar/ui/CuemiacWindowView.py
   branches/button-ui/deskbar/ui/DeskbarTray.py
   branches/button-ui/deskbar/ui/Makefile.am
   branches/button-ui/deskbar/ui/cuemiac/Makefile.am
   branches/button-ui/deskbar/ui/preferences/DeskbarPreferences.py

Modified: branches/button-ui/data/prefs-dialog.glade
==============================================================================
--- branches/button-ui/data/prefs-dialog.glade	(original)
+++ branches/button-ui/data/prefs-dialog.glade	Mon Jan 21 14:21:25 2008
@@ -1,1200 +1,770 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
 <glade-interface>
-
-<widget class="GtkDialog" id="preferences">
-  <property name="border_width">5</property>
-  <property name="title" translatable="yes">Deskbar Preferences</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="default_height">450</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">True</property>
-  <property name="icon_name"></property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-  <signal name="response" handler="prefs_dialog_response_cb" last_modification_time="Sat, 10 May 2003 09:37:44 GMT"/>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox2">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">2</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area2">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="close">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-close</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-7</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkNotebook" id="notebook1">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="show_tabs">True</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">True</property>
-	  <property name="enable_popup">False</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="big_box">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="loaded_extensions_box">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label1310">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Loaded Extensions&lt;/b&gt;</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment16">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox156">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox198">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkScrolledWindow" id="handlers">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="has_focus">True</property>
-				  <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-				  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-				  <property name="shadow_type">GTK_SHADOW_IN</property>
-				  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-				  <child>
-				    <placeholder/>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkVButtonBox" id="vbuttonbox1">
-				  <property name="visible">True</property>
-				  <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkButton" id="button_top">
-				      <property name="visible">True</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label">gtk-goto-top</property>
-				      <property name="use_stock">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="button_up">
-				      <property name="visible">True</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label">gtk-go-up</property>
-				      <property name="use_stock">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="button_down">
-				      <property name="visible">True</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label">gtk-go-down</property>
-				      <property name="use_stock">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="button_bottom">
-				      <property name="visible">True</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label">gtk-goto-bottom</property>
-				      <property name="use_stock">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox188">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkButton" id="reload">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment30">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox199">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image8">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-refresh</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label1332">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_Reload</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="more">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment27">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox196">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image6">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-preferences</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label1328">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_More...</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="update">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment21">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox189">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image1">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-refresh</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label1320">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_Update</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="check">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment22">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox190">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image2">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-network</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label1321">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_Check For Updates</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="info_area">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label1315">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Searches</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox163">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox164">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label1331">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Extensions with Errors&lt;/b&gt;</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment29">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="disabledhandlers_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkScrolledWindow" id="disabledhandlers">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="has_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <placeholder/>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label1330">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Extensions with Errors</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="extensions_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox159">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label1323">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Available Extensions&lt;/b&gt;</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_CENTER</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment23">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox160">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkScrolledWindow" id="newhandlers">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="has_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox191">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkButton" id="install">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment26">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox195">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image5">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-save</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label1327">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_Install</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="check_new_extensions">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment28">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox197">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image7">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-network</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label1329">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_Check for new extensions</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label1322">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">New Extensions</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="view_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="frame3">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label1319">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Focus&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment20">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox161">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="keybinding_entry_container">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label1315">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">_Keyboard shortcut to focus:</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				  <property name="width_chars">-1</property>
-				  <property name="single_line_mode">False</property>
-				  <property name="angle">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="use_selection">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Search selection when triggering the shortcut</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label1316">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">General</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
+  <widget class="GtkDialog" id="preferences">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Deskbar Preferences</property>
+    <property name="window_position">GTK_WIN_POS_CENTER</property>
+    <property name="default_height">450</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <signal name="response" handler="prefs_dialog_response_cb"/>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox2">
+        <property name="visible">True</property>
+        <property name="spacing">2</property>
+        <child>
+          <widget class="GtkNotebook" id="notebook1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="border_width">5</property>
+            <property name="scrollable">True</property>
+            <child>
+              <widget class="GtkVBox" id="big_box">
+                <property name="visible">True</property>
+                <property name="border_width">12</property>
+                <property name="spacing">18</property>
+                <child>
+                  <widget class="GtkVBox" id="loaded_extensions_box">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkLabel" id="label1310">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Loaded Extensions&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="justify">GTK_JUSTIFY_CENTER</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment16">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkVBox" id="vbox156">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkHBox" id="hbox198">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <widget class="GtkScrolledWindow" id="handlers">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="has_focus">True</property>
+                                    <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </widget>
+                                </child>
+                                <child>
+                                  <widget class="GtkVButtonBox" id="vbuttonbox1">
+                                    <property name="visible">True</property>
+                                    <child>
+                                      <widget class="GtkButton" id="button_top">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="can_default">True</property>
+                                        <property name="label">gtk-goto-top</property>
+                                        <property name="use_stock">True</property>
+                                        <property name="response_id">0</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkButton" id="button_up">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="can_default">True</property>
+                                        <property name="label">gtk-go-up</property>
+                                        <property name="use_stock">True</property>
+                                        <property name="response_id">0</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkButton" id="button_down">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="can_default">True</property>
+                                        <property name="label">gtk-go-down</property>
+                                        <property name="use_stock">True</property>
+                                        <property name="response_id">0</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="position">2</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkButton" id="button_bottom">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="can_default">True</property>
+                                        <property name="label">gtk-goto-bottom</property>
+                                        <property name="use_stock">True</property>
+                                        <property name="response_id">0</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="position">3</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="hbox188">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <widget class="GtkButton" id="reload">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="response_id">0</property>
+                                    <child>
+                                      <widget class="GtkAlignment" id="alignment30">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="hbox199">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <widget class="GtkImage" id="image8">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-refresh</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label1332">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">_Reload</property>
+                                                <property name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkButton" id="check">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="response_id">0</property>
+                                    <child>
+                                      <widget class="GtkAlignment" id="alignment22">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="hbox190">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <widget class="GtkImage" id="image2">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-network</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label1321">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">_Check For Updates</property>
+                                                <property name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="pack_type">GTK_PACK_END</property>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkButton" id="update">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="response_id">0</property>
+                                    <child>
+                                      <widget class="GtkAlignment" id="alignment21">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="hbox189">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <widget class="GtkImage" id="image1">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-refresh</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label1320">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">_Update</property>
+                                                <property name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="pack_type">GTK_PACK_END</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkButton" id="more">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="response_id">0</property>
+                                    <child>
+                                      <widget class="GtkAlignment" id="alignment27">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="hbox196">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <widget class="GtkImage" id="image6">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-preferences</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label1328">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">_More...</property>
+                                                <property name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="pack_type">GTK_PACK_END</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="info_area">
+                                <property name="visible">True</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label1315">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Searches</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="vbox163">
+                <property name="visible">True</property>
+                <property name="border_width">12</property>
+                <property name="spacing">18</property>
+                <child>
+                  <widget class="GtkVBox" id="vbox164">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkLabel" id="label1331">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Extensions with Errors&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="justify">GTK_JUSTIFY_CENTER</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment29">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkVBox" id="disabledhandlers_box">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkScrolledWindow" id="disabledhandlers">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="has_focus">True</property>
+                                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="shadow_type">GTK_SHADOW_IN</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label1330">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Extensions with Errors</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="extensions_vbox">
+                <property name="visible">True</property>
+                <property name="border_width">12</property>
+                <property name="spacing">18</property>
+                <child>
+                  <widget class="GtkVBox" id="vbox159">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkLabel" id="label1323">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Available Extensions&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="justify">GTK_JUSTIFY_CENTER</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment23">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkVBox" id="vbox160">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkScrolledWindow" id="newhandlers">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="has_focus">True</property>
+                                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="shadow_type">GTK_SHADOW_IN</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="hbox191">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <widget class="GtkButton" id="check_new_extensions">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="response_id">0</property>
+                                    <child>
+                                      <widget class="GtkAlignment" id="alignment28">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="hbox197">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <widget class="GtkImage" id="image7">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-network</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label1329">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">_Check for new extensions</property>
+                                                <property name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkButton" id="install">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="response_id">0</property>
+                                    <child>
+                                      <widget class="GtkAlignment" id="alignment26">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="hbox195">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <widget class="GtkImage" id="image5">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-save</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label1327">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">_Install</property>
+                                                <property name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="pack_type">GTK_PACK_END</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label1322">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">New Extensions</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="view_vbox">
+                <property name="visible">True</property>
+                <property name="border_width">12</property>
+                <property name="spacing">18</property>
+                <child>
+                  <widget class="GtkVBox" id="frame3">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkLabel" id="label1319">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Focus&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment20">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkVBox" id="vbox161">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkHBox" id="keybinding_entry_container">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <widget class="GtkLabel" id="label1315">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Keyboard shortcut to focus:</property>
+                                    <property name="use_underline">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="use_selection">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Search selection when triggering the shortcut</property>
+                                <property name="use_underline">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label2">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment2">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkVBox" id="vbox2">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkCheckButton" id="cb_newstyleui">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">_New style user interface</property>
+                                <property name="use_underline">True</property>
+                                <property name="response_id">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">3</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label1316">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">General</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">3</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area2">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="close">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-7</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>

Modified: branches/button-ui/deskbar/core/CoreImpl.py
==============================================================================
--- branches/button-ui/deskbar/core/CoreImpl.py	(original)
+++ branches/button-ui/deskbar/core/CoreImpl.py	Mon Jan 21 14:21:25 2008
@@ -123,6 +123,9 @@
     
     def get_use_selection(self):
         return self._gconf.get_use_selection()
+
+    def get_use_newstyleui(self):
+        return self._gconf.get_use_newstyleui()
     
     def get_clear_entry(self):
         return self._gconf.get_clear_entry()
@@ -175,6 +178,9 @@
     
     def set_use_selection(self, val):
         self._gconf.set_use_selection(val)
+
+    def set_use_newstyleui(self, val):
+        self._gconf.set_use_newstyleui(val)
     
     def set_clear_entry(self, val):
         self._gconf.set_clear_entry(val)

Modified: branches/button-ui/deskbar/core/GconfStore.py
==============================================================================
--- branches/button-ui/deskbar/core/GconfStore.py	(original)
+++ branches/button-ui/deskbar/core/GconfStore.py	Mon Jan 21 14:21:25 2008
@@ -15,6 +15,8 @@
     GCONF_TYPINGDELAY = GCONF_DIR + "/typingdelay"
     # GConf key to the setting whether to use selection clipboard when activating hotkey
     GCONF_USE_SELECTION = GCONF_DIR + "/use_selection"
+    # GConf key for the setting if the new UI should be used
+    GCONF_USE_NEWSTYLEUI = GCONF_DIR + "/use_newstyleui"
     # GConf key for global keybinding
     GCONF_KEYBINDING = GCONF_DIR + "/keybinding"
     # GConf key clear the entry after a search result has been selected
@@ -48,6 +50,7 @@
         "min-chars-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_INT]),
         "type-delay-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_INT]),
         "use-selection-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_BOOLEAN]),
+        "use-newstyleui-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_BOOLEAN]),
         "clear-entry-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_BOOLEAN]),
         "use-http-proxy-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_BOOLEAN]),
         "proxy-host-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gobject.TYPE_STRING]),
@@ -81,6 +84,7 @@
         self._client.notify_add(self.GCONF_MINCHARS, lambda x, y, z, a: self.emit("min-chars-changed", z.value.get_int()))
         self._client.notify_add(self.GCONF_TYPINGDELAY, lambda x, y, z, a: self.emit("type-delay-changed", z.value.get_int()))
         self._client.notify_add(self.GCONF_USE_SELECTION, lambda x, y, z, a: self.emit("use-selection-changed", z.value.get_bool()))
+        self._client.notify_add(self.GCONF_USE_NEWSTYLEUI, lambda x, y, z, a: self.emit("use-newstyleui-changed", z.value.get_bool()))
         self._client.notify_add(self.GCONF_CLEAR_ENTRY, lambda x, y, z, a: self.emit("clear-entry-changed", z.value.get_bool()))
         self._client.notify_add(self.GCONF_PROXY_USE_HTTP_PROXY, lambda x, y, z, a: self.emit("use-http-proxy-changed", z.value.get_bool()))
         self._client.notify_add(self.GCONF_PROXY_HOST_KEY, lambda x, y, z, a: self.emit("proxy-host-changed", z.value.get_string()))
@@ -114,6 +118,12 @@
         if select == None:
             select = True
         return select
+
+    def get_use_newstyleui(self):
+        select = self._client.get_bool(self.GCONF_USE_NEWSTYLEUI)
+        if select == None:
+            select = True
+        return select
     
     def get_clear_entry(self):
         clear = self._client.get_bool(self.GCONF_CLEAR_ENTRY)
@@ -171,6 +181,9 @@
     
     def set_use_selection(self, val):
         self._client.set_bool(self.GCONF_USE_SELECTION, val)
+
+    def set_use_newstyleui(self, val):
+        self._client.set_bool(self.GCONF_USE_NEWSTYLEUI, val)
     
     def set_clear_entry(self, val):
         self._client.set_bool(self.GCONF_CLEAR_ENTRY)

Added: branches/button-ui/deskbar/ui/CuemiacAlignedView.py
==============================================================================
--- (empty file)
+++ branches/button-ui/deskbar/ui/CuemiacAlignedView.py	Mon Jan 21 14:21:25 2008
@@ -0,0 +1,292 @@
+import gtk
+import gtk.gdk
+import gobject
+from gettext import gettext as _
+import deskbar.interfaces.View
+import deskbar.core.Utils
+from deskbar.ui.cuemiac.CuemiacEntry import CuemiacEntry
+from deskbar.ui.cuemiac.CuemiacHeader import CuemiacHeader
+from deskbar.ui.cuemiac.CuemiacModel import CuemiacModel
+from deskbar.ui.cuemiac.CuemiacTreeView import CuemiacTreeView
+from deskbar.ui.cuemiac.CuemiacItems import CuemiacCategory
+from deskbar.ui.cuemiac.CuemiacHistory import CuemiacHistoryView
+from deskbar.ui.cuemiac.CuemiacActionsTreeView import CuemiacActionsTreeView, CuemiacActionsModel
+from deskbar.ui.cuemiac.LingeringSelectionWindow import LingeringSelectionWindow
+from deskbar.ui.cuemiac.CuemiacAlignedWindow import CuemiacAlignedWindow
+
+class CuemiacAlignedView(deskbar.interfaces.View, CuemiacAlignedWindow):
+    """
+    This class is responsible for setting up the GUI.
+    It displays the older version of deskbar's GUI, where the
+    results window is aligned to the gnome panel.
+    """
+    
+    def __init__(self, controller, model, widget, applet):
+        deskbar.interfaces.View.__init__(self, controller, model)
+        CuemiacAlignedWindow.__init__(self, widget, applet, gtk.WINDOW_POPUP)
+        self._controller.register_view(self)
+        self.__small_window_height = None
+        self._do_clear = True
+        
+        self.connect("configure-event", self.__save_window_size)
+        self.connect("delete-event", self._controller.on_quit)
+        self.connect("destroy-event", self._controller.on_quit)
+        self.connect("key-press-event", self.__on_window_key_press_event)
+       
+        self.set_title("Deskbar Applet")
+        self.set_default_size( self._model.get_window_width(), -1 )
+        self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_MENU)
+
+        self.set_role("deskbar-search-window")
+        self.set_property("skip-taskbar-hint", True)
+
+        self._model.connect("query-ready", lambda s,m: gobject.idle_add(self.append_matches, s, m))
+        
+        # VBox 
+        self.vbox_main = gtk.VBox(spacing=12)
+        self.vbox_main.set_border_width(6)
+        self.add(self.vbox_main)
+        self.vbox_main.show()
+        
+#        self.completion = gtk.EntryCompletion()
+#        self.completion.set_model(self._model.get_history())
+#        self.completion.set_inline_completion(True)
+#        self.completion.set_popup_completion(False)
+#        self.completion.set_text_column(1)
+        
+        self.default_entry_pixbuf = deskbar.core.Utils.load_icon("deskbar-applet-panel-h.png", width=23, height=14)
+        self.entry = CuemiacEntry (self.default_entry_pixbuf)
+        self.entry.connect("changed", self._controller.on_query_entry_changed)
+        # Connect this before "go-next/previous" to parse history
+        self.entry.connect("key-press-event", self._controller.on_query_entry_key_press_event)
+        self.entry.connect("activate", self._controller.on_query_entry_activate)
+        self.entry.connect("go-next", lambda e: self.__focus_matches_if_visible("top"))
+        self.entry.connect("go-previous", lambda e: self.__focus_matches_if_visible("bottom"))
+#        self.entry.get_entry().set_completion(self.completion)
+        self.entry.show()
+        
+        header = CuemiacHeader ( self.entry )
+        header.show()   
+       
+        # Search entry
+        self.vbox_main.pack_start(header, False)
+        
+        # History TreeView
+        hhbox = gtk.HBox(spacing=6)
+        hhbox.show()
+        self.vbox_main.pack_start(hhbox, False)
+        
+        hlabel = gtk.Label()
+        # translators: _H is a mnemonic, i.e. pressing Alt+h will focus the widget
+        hlabel.set_markup_with_mnemonic("<b>%s:</b>" % _("_History"))
+        hlabel.show()
+        hhbox.pack_start(hlabel, False)
+        
+        self.hview = CuemiacHistoryView(self._model.get_history())
+        self.hview.connect("match-selected", self._controller.on_history_match_selected)
+        self.hview.show()
+        hhbox.pack_start(self.hview)
+        hlabel.set_mnemonic_widget(self.hview)
+        
+        empty_button = gtk.Button()
+        empty_button.set_image( gtk.image_new_from_stock(gtk.STOCK_CLEAR, gtk.ICON_SIZE_MENU) )
+        empty_button.connect("clicked", self._controller.on_clear_history)
+        empty_button.show()
+        hhbox.pack_start(empty_button, False)
+        
+        # Results TreeView
+        self.treeview_model = CuemiacModel ()
+        self.treeview_model.connect("category-added", self._controller.on_category_added)
+        
+        self.cview = CuemiacTreeView (self.treeview_model)
+        #self.cview.connect ("key-press-event", self._on_cview_key_press)
+        self.cview.connect ("match-selected", self._controller.on_match_selected)
+        self.cview.connect ("do-default-action", self._controller.on_do_default_action)
+        self.cview.connect ("pressed-up-at-top", lambda s: self.entry.grab_focus())
+        self.cview.connect ("pressed-down-at-bottom", lambda s: self.entry.grab_focus())
+        self.cview.connect_after ("cursor-changed", self._controller.on_treeview_cursor_changed)
+        self.cview.connect ("row-expanded", self._controller.on_category_expanded, self.treeview_model)
+        self.cview.connect ("row-collapsed", self._controller.on_category_collapsed, self.treeview_model)
+        self.cview.show()
+        
+        LingeringSelectionWindow (self.cview)
+        
+        self.scrolled_results = gtk.ScrolledWindow ()
+        self.scrolled_results.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        self.scrolled_results.set_shadow_type(gtk.SHADOW_IN)
+        self.scrolled_results.add(self.cview)
+        self.scrolled_results.show()
+        
+        # Actions TreeView
+        self.actions_box = gtk.VBox(spacing=3)
+        
+        self.actions_model = CuemiacActionsModel()
+        self.aview = CuemiacActionsTreeView(self.actions_model)
+        self.aview.connect ("action-selected", self._controller.on_action_selected)
+        self.aview.connect ("go-back", self.__on_go_back)
+        self.aview.show()
+        
+        LingeringSelectionWindow (self.aview)
+        
+        self.scrolled_actions = gtk.ScrolledWindow()
+        self.scrolled_actions.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        self.scrolled_actions.set_shadow_type(gtk.SHADOW_IN)
+        self.scrolled_actions.add(self.aview)
+        self.scrolled_actions.show()
+        self.actions_box.pack_start(self.scrolled_actions)
+        
+        buttonbox = gtk.HButtonBox()
+        buttonbox.set_layout(gtk.BUTTONBOX_START)
+        buttonbox.show()
+        self.actions_box.pack_start(buttonbox, False)
+        
+        back_button = gtk.Button(_("Back to Matches"))
+        back_button.set_image( gtk.image_new_from_stock(gtk.STOCK_GO_BACK, gtk.ICON_SIZE_MENU) )
+        back_button.set_relief(gtk.RELIEF_NONE)
+        back_button.connect("clicked", self.__on_go_back)
+        back_button.show()
+        buttonbox.pack_start(back_button, False, False, 0)
+       
+        # Results
+        self.results_box = gtk.HBox()
+        self.results_box.connect("unmap", self.__save_window_height)
+        self.results_box.pack_start(self.scrolled_results)
+        self.results_box.pack_start(self.actions_box)
+        self.vbox_main.pack_start(self.results_box)
+   
+    def __on_row_act(self, view, path, column):
+        print "======================"
+    
+    def clear_all(self):
+        deskbar.interfaces.View.clear_all(self)
+        width, height = self.get_size()
+        
+        if self.__small_window_height != None:
+            self.resize( width, self.__small_window_height )
+        self.results_box.hide()
+    
+    def clear_results(self):
+        self.treeview_model.clear()
+        
+    def clear_actions(self):
+        self.actions_model.clear()
+        
+    def clear_query(self):
+        self.entry.set_text("")
+        self.entry.set_icon( self.default_entry_pixbuf )
+    
+    def get_toplevel(self):
+        return self
+    
+    def get_entry(self):
+        return self.entry
+    
+    def set_clear(self):
+        """
+        Set a flag to clear the list of matches and actions
+        as soon as the first result arrives
+        """
+        self._do_clear = True
+    
+    def receive_focus(self, time):
+        self.entry.grab_focus()
+        self.realize()
+        self.window.set_user_time(time)
+        self.present()
+        self.update_position()
+    
+    def __show_matches(self):
+        self.scrolled_results.show()
+        self.actions_box.hide()
+        
+    def __show_actions(self):
+        self.scrolled_results.hide()
+        self.actions_box.show()
+    
+    def show_results(self):
+        width, height = self.get_size()
+        self.results_box.show()
+        self.__show_matches()
+        self.resize( width, self._model.get_window_height() )
+    
+    def display_actions(self, actions, qstring):
+        self.actions_model.clear()
+        self.__show_actions()
+        self.actions_model.add_actions(actions, qstring)
+        self.aview.grab_focus()
+
+    def append_matches (self, sender, matches):
+        """
+        We suppose that the results belong to the text
+        that is currently in the entry
+        """
+        if self._do_clear:
+            self._do_clear = False
+            self.clear_results()
+            self.clear_actions()
+            # Display default icon in entry
+            self.update_entry_icon()
+        self.treeview_model.append (matches, self.entry.get_text())
+        
+    def set_sensitive (self, active):
+        """
+        Called when the UI should be in/active because modules are loading
+        """
+        self.vbox_main.set_sensitive(active)
+        if active:
+            self.entry.grab_focus()
+   
+    def update_entry_icon (self, icon=None):
+        if icon == None:
+            icon = self.default_entry_pixbuf
+            if not (self.cview.get_toplevel().flags() & gtk.MAPPED):
+                # The view is hidden, just show default icon
+                self.entry.set_icon (icon)
+                return
+                
+            path, column = self.cview.get_cursor ()
+        
+            if path != None and self.entry.get_text() != "":
+                match = self.treeview_model[self.treeview_model.get_iter(path)][self.treeview_model.MATCHES]
+                if not isinstance(match, CuemiacCategory):
+                    icon = match.get_icon()
+                
+        self.entry.set_icon (icon)
+        
+    def __on_go_back(self, widget):
+        self.__show_matches()
+        self.cview.grab_focus()
+        return False
+    
+    def __on_window_key_press_event(self, window, event):
+        if event.keyval == gtk.keysyms.Escape:
+            self.emit("destroy-event", event)
+                
+        return False
+    
+    def __focus_matches_if_visible(self, mode):
+        if (self.results_box.get_property("visible")):
+            if mode == "top":
+                self.cview.select_first_item()
+            elif mode == "bottom":
+                self.cview.select_last_item()
+            self.cview.grab_focus()
+            return True
+        else:
+            return False
+        
+    def __save_window_size(self, window, event):
+        """
+        Save window width and height of the window when
+        results_box is not visible
+        """
+        self._model.set_window_width( event.width )
+        if self.__small_window_height == None:
+            self.__small_window_height = event.height
+            
+    def __save_window_height(self, resultsbox):
+        """
+        Save window height before results_box disappears
+        """
+        self._model.set_window_height( self.get_size()[1] )
+        

Modified: branches/button-ui/deskbar/ui/CuemiacWindowController.py
==============================================================================
--- branches/button-ui/deskbar/ui/CuemiacWindowController.py	(original)
+++ branches/button-ui/deskbar/ui/CuemiacWindowController.py	Mon Jan 21 14:21:25 2008
@@ -24,6 +24,8 @@
         """
         Toggle view if keybinding has been activated
         """
+
+        print self._view
         if self._view.get_toplevel().get_property("visible"):
             self.on_quit()
         else:
@@ -167,4 +169,4 @@
         
     def on_category_added (self, widget, cat, path):
         if cat.get_id() not in self._model.get_collapsed_cat():
-            self._view.cview.expand_row (path, False)
\ No newline at end of file
+            self._view.cview.expand_row (path, False)

Modified: branches/button-ui/deskbar/ui/CuemiacWindowView.py
==============================================================================
--- branches/button-ui/deskbar/ui/CuemiacWindowView.py	(original)
+++ branches/button-ui/deskbar/ui/CuemiacWindowView.py	Mon Jan 21 14:21:25 2008
@@ -284,4 +284,4 @@
         """
         Save window height before results_box disappears
         """
-        self._model.set_window_height( self.get_size()[1] )
\ No newline at end of file
+        self._model.set_window_height( self.get_size()[1] )

Modified: branches/button-ui/deskbar/ui/DeskbarTray.py
==============================================================================
--- branches/button-ui/deskbar/ui/DeskbarTray.py	(original)
+++ branches/button-ui/deskbar/ui/DeskbarTray.py	Mon Jan 21 14:21:25 2008
@@ -6,6 +6,7 @@
 from os.path import join
 from deskbar.core.CoreImpl import CoreImpl
 from deskbar.ui.CuemiacWindowView import CuemiacWindowView
+from deskbar.ui.CuemiacAlignedView import CuemiacAlignedView
 from deskbar.ui.CuemiacWindowController import CuemiacWindowController
         
 class DeskbarTray (gtk.EventBox):
@@ -67,7 +68,18 @@
         self.__core.connect("loaded", self.__on_loaded)
         
         self.__controller = CuemiacWindowController(self.__core)
-        self.__view = CuemiacWindowView(self.__controller, self.__core)
+
+        # Select the view based on user choice. CuemiacWindowView is
+        # the new style UI,
+        # CuemiacAlignedView is the older UI as seen in the
+        # Deskbar gnome-2-18 branch.
+        if self.__core.get_use_newstyleui():
+            self.__view = CuemiacWindowView(self.__controller, self.__core)
+        else:
+            # We need to use an AlignedWindow, which needs a Widget (self.image
+            # in this case) and the applet (self.applet)
+            self.__view = CuemiacAlignedView(self.__controller, self.__core, self.image, self.applet)
+
         self.__view.set_sensitive(False)
         
         self.__core.run()
@@ -129,4 +141,4 @@
         self.set_size_request( size, size )
             
 if gtk.pygtk_version < (2,8,0):            
-    gobject.type_register(DeskbarApplet)
\ No newline at end of file
+    gobject.type_register(DeskbarApplet)

Modified: branches/button-ui/deskbar/ui/Makefile.am
==============================================================================
--- branches/button-ui/deskbar/ui/Makefile.am	(original)
+++ branches/button-ui/deskbar/ui/Makefile.am	Mon Jan 21 14:21:25 2008
@@ -6,4 +6,5 @@
 	About.py \
 	CuemiacWindowController.py \
 	CuemiacWindowView.py \
-	DeskbarTray.py
\ No newline at end of file
+	CuemiacAlignedView.py \
+	DeskbarTray.py

Added: branches/button-ui/deskbar/ui/cuemiac/CuemiacAlignedWindow.py
==============================================================================
--- (empty file)
+++ branches/button-ui/deskbar/ui/cuemiac/CuemiacAlignedWindow.py	Mon Jan 21 14:21:25 2008
@@ -0,0 +1,131 @@
+import gtk, gnomeapplet, gobject
+
+class CuemiacAlignedWindow (gtk.Window):
+	"""
+	Borderless window aligning itself to a given widget.
+	Use CuemiacWindow.update_position() to align it.
+	"""
+	def __init__(self, widgetToAlignWith, applet, window_type=gtk.WINDOW_TOPLEVEL):
+		"""
+		alignment should be one of
+			gnomeapplet.ORIENT_{DOWN,UP,LEFT,RIGHT}
+		
+		Call CuemiacWindow.update_position () to position the window.
+		"""
+		gtk.Window.__init__(self, window_type)
+		self.set_decorated (False)
+
+		# Skip the taskbar, and the pager, stick and stay on top
+		self.stick()
+		self.set_keep_above(True)
+		self.set_skip_pager_hint(True)
+		self.set_skip_taskbar_hint(True)
+		self.set_border_width (1)
+				
+		self.widgetToAlignWith = widgetToAlignWith
+		self.applet = applet
+		self.alignment = applet.get_orient ()
+
+		self.realize_status = None
+		self.connect ("realize", lambda win : self.__register_realize ())
+		self.connect ("delete-event", self.on_delete_event)
+		self.connect ("size-allocate", self.__resize_event)
+	
+	def on_delete_event(self, window, event):
+		# Since all users of this class expect it to remain open and alive
+		# We must catch deletion events (for example alt-f4) and just hide the window
+		self.hide()
+		return True
+		
+	def __resize_event (self, widget, allocation):
+		# Update position, cause the size might have changed for the window
+		self.update_position ()
+	
+	def update_position (self):
+		"""
+		Calculates the position and moves the window to it.
+		IMPORATNT: widgetToAlignWith should be realized!
+		"""
+		if self.realize_status == None:
+			self.realize_status = False
+			self.realize ()
+			return
+		
+		if self.realize_status == False:
+			return
+		
+		if not (self.widgetToAlignWith.flags() & gtk.REALIZED):
+                        print "WARNING: CuemiacAlignedWindow.update_position() widgetToAlignWith is not realized."
+                        return
+			
+		# Get our own dimensions & position
+		(wx, wy) = self.window.get_origin ()
+		(ax, ay) = self.widgetToAlignWith.window.get_origin ()
+
+		(ww, wh) = self.window.get_size ()
+		(aw, ah) = self.widgetToAlignWith.window.get_size ()
+
+		screen = self.get_screen()
+		monitor = screen.get_monitor_geometry (screen.get_monitor_at_window (self.applet.window))
+		
+		if self.alignment == gnomeapplet.ORIENT_LEFT:
+				x = ax - ww
+				y = ay
+
+				if (y + wh > monitor.y + monitor.height):
+					y = monitor.y + monitor.height - wh
+
+				if (y < 0):
+					y = 0
+				
+				if (y + wh > monitor.height / 2):
+					gravity = gtk.gdk.GRAVITY_SOUTH_WEST	
+				else:
+					gravity = gtk.gdk.GRAVITY_NORTH_WEST
+					
+		elif self.alignment == gnomeapplet.ORIENT_RIGHT:
+				x = ax + aw
+				y = ay
+
+				if (y + wh > monitor.y + monitor.height):
+					y = monitor.y + monitor.height - wh
+				
+				if (y < 0):
+					y = 0
+				
+				if (y + wh > monitor.height / 2):
+					gravity = gtk.gdk.GRAVITY_SOUTH_EAST
+				else:
+					gravity = gtk.gdk.GRAVITY_NORTH_EAST
+
+		elif self.alignment == gnomeapplet.ORIENT_DOWN:
+				x = ax
+				y = ay + ah
+
+				if (x + ww > monitor.x + monitor.width):
+					x = monitor.x + monitor.width - ww
+
+				if (x < 0):
+					x = 0
+
+				gravity = gtk.gdk.GRAVITY_NORTH_WEST
+		elif self.alignment == gnomeapplet.ORIENT_UP:
+				x = ax
+				y = ay - wh
+
+				if (x + ww > monitor.x + monitor.width):
+					x = monitor.x + monitor.width - ww
+
+				if (x < 0):
+					x = 0
+
+				gravity = gtk.gdk.GRAVITY_SOUTH_WEST
+		
+		self.move(x, y)
+		self.set_gravity(gravity)
+	
+	def __register_realize (self):
+		self.realize_status = True
+		self.update_position()
+		
+gobject.type_register (CuemiacAlignedWindow)

Modified: branches/button-ui/deskbar/ui/cuemiac/Makefile.am
==============================================================================
--- branches/button-ui/deskbar/ui/cuemiac/Makefile.am	(original)
+++ branches/button-ui/deskbar/ui/cuemiac/Makefile.am	Mon Jan 21 14:21:25 2008
@@ -7,5 +7,6 @@
 	CuemiacHistory.py \
 	CuemiacItems.py \
 	CuemiacModel.py \
+	CuemiacAlignedWindow.py \
 	CuemiacTreeView.py \
-	LingeringSelectionWindow.py
\ No newline at end of file
+	LingeringSelectionWindow.py

Modified: branches/button-ui/deskbar/ui/preferences/DeskbarPreferences.py
==============================================================================
--- branches/button-ui/deskbar/ui/preferences/DeskbarPreferences.py	(original)
+++ branches/button-ui/deskbar/ui/preferences/DeskbarPreferences.py	Mon Jan 21 14:21:25 2008
@@ -106,6 +106,10 @@
         self.use_selection_box.connect('toggled', self.on_use_selection_toggled)
         #self.use_selection_id = deskbar.GCONF_CLIENT.notify_add(applet.prefs.GCONF_USE_SELECTION, lambda x, y, z, a: self.on_config_use_selection(z.value))
 
+        self.use_newstyle_ui = self._model.get_use_newstyleui()
+        self.use_newstyle_ui_box = self.glade.get_widget("cb_newstyleui")
+        self.use_newstyle_ui_box.connect('toggled', self.on_use_newstyleui_toggled)
+
     def __setup_drag_and_drop(self):
         big_box = self.glade.get_widget("big_box")
         self.TARGET_URI_LIST, self.TARGET_NS_URL = range(2)
@@ -202,6 +206,7 @@
             self.keyboard_shortcut_entry.set_accelerator_name("<Alt>F3")
         
         self.use_selection_box.set_active(self.use_selection)
+        self.use_newstyle_ui_box.set_active(self.use_newstyle_ui)
    
     def on_hide_after_action_toggled(self, toggle):
         self._model.set_hide_after_action(toggle.get_active())
@@ -219,6 +224,9 @@
 
     def on_use_selection_toggled(self, toggle):
         self._model.set_use_selection(toggle.get_active())
+
+    def on_use_newstyleui_toggled(self, toggle):
+        self._model.set_use_newstyleui(toggle.get_active())
         
     def on_more_button_clicked(self, button):
         if self.more_button_callback != None:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]