--- /opt/extras.ubuntu.com/drawers/drawers/Drawer.py 2012-08-12 00:47:03.655519352 -0400 +++ drawers/drawers/Drawer.py 2012-08-12 23:24:15.281499670 -0400 @@ -86,9 +86,11 @@ CHAR_ROW=int(17.6-0.73*FONTSIZE) UI_INFO = """ - - + + + + @@ -126,7 +128,7 @@ #Determine position of launcher --> How will this work with non-Launcher Panel items!? #write functions to get these values from system! LF_ICONSIZE=get_icon_size() - LF_ICONPADDING=8 + LF_ICONPADDING=10 PANEL_HEIGHT=24 #Get position (top to bottom) of the opened drawer @@ -175,11 +177,13 @@ self.connect("key-release-event", self.handle_keyrelease) self.connect("enter-notify-event", self.on_mouse_enter) #Set up dragNdrop to add URIs to open draw - self.connect("drag-motion", self.motion_cb) + #self.connect("drag-motion", self.motion_cb) self.connect("drag-drop", self.drop_cb) self.connect("drag-data-received", self.got_data_cb) - self.drag_dest_set(0, [], 0) - + self.drag_dest_set(Gtk.DestDefaults.ALL, [], Gdk.DragAction.COPY) + self.drag_dest_set_target_list(None) + self.drag_dest_add_uri_targets() + #self.drag_dest_add_text_targets() #Format the drawer - not ideal would like to implement more unity #like style that changes with theme @@ -201,7 +205,8 @@ self.iconview.get_style_context().add_class('iconview') self.title.get_style_context().add_class('title') - self.toolbar.get_style_context().add_class('title') + self.toolbarL.get_style_context().add_class('title') + self.toolbarR.get_style_context().add_class('title') # self.get_style_context().add_class('background2') self.connect("draw", self.draw_window_cb) self.show_all() @@ -236,9 +241,7 @@ self.headerbox=Gtk.Box() self.outerbox.pack_start(self.headerbox,False,True,1) - #Setup a TitleBar - self.title=Gtk.Label(self.df.get('Name', 'Desktop Entry')) - self.headerbox.pack_start(self.title,False,False,5) + #Setup a Toolbar using UI #Create action group for UI @@ -274,10 +277,25 @@ self.uimanager = Gtk.UIManager() self.uimanager.insert_action_group(action_group) self.uimanager.add_ui_from_string(UI_INFO) - self.toolbar = self.uimanager.get_widget("/ToolBar") - self.toolbar.set_app_paintable(True) - self.headerbox.pack_start(self.toolbar,True,True,0) + self.toolbarL = self.uimanager.get_widget("/ToolBarL") + self.toolbarL.set_app_paintable(True) + + + #Setup a TitleBar + self.title=Gtk.Label(self.df.get('Name', 'Desktop Entry')) + + self.toolbarR = self.uimanager.get_widget("/ToolBarR") + self.toolbarR.set_app_paintable(True) + self.minw=self.title.size_request().width + self.toolbarR.size_request().width+self.toolbarL.size_request().width+96 + self.headerbox.pack_start(self.toolbarL,True,True,0) + self.headerbox.pack_start(self.title,True,False,0) + self.headerbox.pack_start(self.toolbarR,True,True,0) + self.toolbarR.set_halign(Gtk.Align.END) + self.toolbarR.set_show_arrow(False) + self.toolbarL.set_show_arrow(False) + + self.popup = self.uimanager.get_widget("/PopupMenu") #Set up a inner container to place iconview and/or buttons if necessary @@ -354,9 +372,10 @@ ivrequest=self.iconview.size_request() hb=self.headerbox.size_request() - w=ivrequest.width+10 + ivw=ivrequest.width+10 maxh=Gdk.Screen.height()*4/5 h=min(ivrequest.height+hb.height+5,maxh) + w=max(ivw,self.minw) self.set_size_request(w,h) if self.pin==False: self.set_gravity(Gdk.Gravity.WEST)