Merge lp:~cszikszoy/docky/mmv2 into lp:docky

Proposed by Chris S.
Status: Rejected
Rejected by: Robert Dyer
Proposed branch: lp:~cszikszoy/docky/mmv2
Merge into: lp:docky
Diff against target: 509 lines
7 files modified
Docky/Docky/ConfigurationWindow.cs (+18/-27)
Docky/Docky/DockController.cs (+63/-5)
Docky/Docky/Interface/DockPreferences.cs (+33/-10)
Docky/Docky/Interface/DockWindow.cs (+1/-1)
Docky/Docky/Interface/IDockPreferences.cs (+2/-0)
Docky/gtk-gui/Docky.ConfigurationWindow.cs (+12/-72)
Docky/gtk-gui/gui.stetic (+3/-33)
To merge this branch: bzr merge lp:~cszikszoy/docky/mmv2
Reviewer Review Type Date Requested Status
Robert Dyer (community) Needs Fixing
Review via email: mp+14273@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Chris S. (cszikszoy) wrote :

This round, MultiMonitor V2 adds support for MultiMonitors again. Also, DanRabbit's awesome UI idea is fully implemented in this branch. There's no more "add dock" or "delete dock". Upon opening the preferences widget, all docks slide in (for me this is 6 docks, 3 on each screen, for others with 1 screen that would be 4 docks) allowing you to add addins to any dock. Upon closing the preferences, empty docks are removed.

Revision history for this message
Robert Dyer (psybers) wrote :

One problem I already see is that 'on closing prefs all empty docks are removed'. Good idea... *except* what if I want a dock with only launchers (and no plugins)??? I would have to add a plugin, close it and add a launcher, then reopen and remove the plugin! Tisk Tisk. :-)

review: Needs Fixing

Unmerged revisions

375. By Chris S.

another multi-monitor implementation. Also, fully implement DanRabbit's awesome preferences UI idea.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Docky/Docky/ConfigurationWindow.cs'
--- Docky/Docky/ConfigurationWindow.cs 2009-10-31 06:57:19 +0000
+++ Docky/Docky/ConfigurationWindow.cs 2009-11-01 01:20:25 +0000
@@ -68,7 +68,7 @@
68 theme_combo.Active = i;68 theme_combo.Active = i;
69 }69 }
70 i++;70 i++;
71 }71 }
72 72
73 SetupConfigAlignment ();73 SetupConfigAlignment ();
74 74
@@ -108,16 +108,19 @@
108108
109 protected override void OnShown ()109 protected override void OnShown ()
110 {110 {
111 for (int mon = 0; mon < Screen.Default.NMonitors; mon++) {
112 Dock dock;
113 while ((dock = Docky.Controller.CreateDock (mon)) != null) {
114 dock.ConfigurationClick += HandleDockConfigurationClick;
115 dock.EnterConfigurationMode ();
116 }
117 }
118
111 foreach (Dock dock in Docky.Controller.Docks) {119 foreach (Dock dock in Docky.Controller.Docks) {
112 dock.EnterConfigurationMode ();120 dock.EnterConfigurationMode ();
113 dock.ConfigurationClick += HandleDockConfigurationClick;121 dock.ConfigurationClick += HandleDockConfigurationClick;
114 }122 }
115 123
116 if (Docky.Controller.Docks.Count () == 1) {
117 ActiveDock = Docky.Controller.Docks.First ();
118 SetupConfigAlignment ();
119 }
120
121 KeepAbove = true;124 KeepAbove = true;
122 Stick ();125 Stick ();
123 126
@@ -136,11 +139,20 @@
136139
137 protected override void OnHidden ()140 protected override void OnHidden ()
138 {141 {
142 // first delete the empty docks
143 Docky.Controller.Docks.ToList ().ForEach (dock =>
144 {
145 if (!dock.Preferences.ItemProviders.Any (provider => provider.Items.Count () > 0))
146 Docky.Controller.DeleteDock (dock);
147 });
148
149 // for any remaining docks, exit configuration mode
139 foreach (Dock dock in Docky.Controller.Docks) {150 foreach (Dock dock in Docky.Controller.Docks) {
140 dock.ConfigurationClick -= HandleDockConfigurationClick;151 dock.ConfigurationClick -= HandleDockConfigurationClick;
141 dock.LeaveConfigurationMode ();152 dock.LeaveConfigurationMode ();
142 dock.UnsetActiveGlow ();153 dock.UnsetActiveGlow ();
143 }154 }
155
144 base.OnHidden ();156 base.OnHidden ();
145 }157 }
146158
@@ -148,27 +160,6 @@
148 {160 {
149 Docky.Controller.DockTheme = theme_combo.ActiveText;161 Docky.Controller.DockTheme = theme_combo.ActiveText;
150 }162 }
151
152 protected virtual void OnDeleteDockButtonClicked (object sender, System.EventArgs e)
153 {
154 if (ActiveDock != null) {
155 Docky.Controller.DeleteDock (ActiveDock);
156 ActiveDock = null;
157 SetupConfigAlignment ();
158 }
159 }
160
161 protected virtual void OnNewDockButtonClicked (object sender, System.EventArgs e)
162 {
163 Dock newDock = Docky.Controller.CreateDock ();
164
165 if (newDock != null) {
166 newDock.ConfigurationClick += HandleDockConfigurationClick;
167 newDock.EnterConfigurationMode ();
168 ActiveDock = newDock;
169 SetupConfigAlignment ();
170 }
171 }
172163
173 string AutoStartDir {164 string AutoStartDir {
174 get { return System.IO.Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "autostart"); }165 get { return System.IO.Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "autostart"); }
175166
=== modified file 'Docky/Docky/DockController.cs'
--- Docky/Docky/DockController.cs 2009-10-31 16:05:10 +0000
+++ Docky/Docky/DockController.cs 2009-11-01 01:20:25 +0000
@@ -32,7 +32,13 @@
32namespace Docky32namespace Docky
33{33{
3434
3535 class DockMonitor
36 {
37 public Rectangle Geo { get; set; }
38 public int MonitorNumber { get; set; }
39 public IEnumerable<DockPosition> PossiblePositions { get; set; }
40 }
41
36 internal class DockController : IDisposable42 internal class DockController : IDisposable
37 {43 {
38 const string DefaultTheme = "Classic";44 const string DefaultTheme = "Classic";
@@ -50,6 +56,23 @@
50 get { return DockNames.Count (); }56 get { return DockNames.Count (); }
51 }57 }
52 58
59 List<DockMonitor> DockMonitors { get; set; }
60
61 // this represents the possible PHYSICALLY availabe positions
62 // it doesn't take into account whether or not a doc is already at a given position
63 public IEnumerable<DockPosition> PositionsAvailableForDock (int monitorNum)
64 {
65 foreach (DockPosition position in DockMonitors.Where (d => d.MonitorNumber == monitorNum).First ().PossiblePositions) {
66 if (!DocksForMonitor (monitorNum).Any (dock => dock.Preferences.Position == position))
67 yield return position;
68 }
69 }
70
71 public IEnumerable<Dock> DocksForMonitor (int monitorNumber)
72 {
73 return docks.Where (d => d.Preferences.MonitorNumber == monitorNumber);
74 }
75
53 IEnumerable<string> ThemeContainerFolders {76 IEnumerable<string> ThemeContainerFolders {
54 get {77 get {
55 yield return Path.Combine (DockServices.System.SystemDataFolder, "themes");78 yield return Path.Combine (DockServices.System.SystemDataFolder, "themes");
@@ -111,6 +134,7 @@
111 {134 {
112 docks = new List<Dock> ();135 docks = new List<Dock> ();
113 prefs = DockServices.Preferences.Get<DockController> ();136 prefs = DockServices.Preferences.Get<DockController> ();
137 DetectMonitors ();
114 CreateDocks ();138 CreateDocks ();
115 139
116 GLib.Timeout.Add (500, delegate {140 GLib.Timeout.Add (500, delegate {
@@ -119,6 +143,41 @@
119 });143 });
120 }144 }
121 145
146 void DetectMonitors ()
147 {
148 DockMonitors = new List<DockMonitor> ();
149
150 // first add all of the screens and their geometries
151 for (int i = 0; i < Screen.Default.NMonitors; i++) {
152 DockMonitor mon = new DockMonitor ();
153 mon.MonitorNumber = i;
154 mon.Geo = Screen.Default.GetMonitorGeometry (i);
155 DockMonitors.Add (mon);
156 }
157
158 int topDockVal = DockMonitors.OrderBy (d => d.Geo.Top).First ().Geo.Top;
159 int bottomDockVal = DockMonitors.OrderByDescending (d => d.Geo.Bottom).First ().Geo.Bottom;
160 int leftDockVal = DockMonitors.OrderBy (d => d.Geo.Left).First ().Geo.Left;
161 int rightDockVal = DockMonitors.OrderByDescending (d => d.Geo.Right).First ().Geo.Right;
162
163 // now build the list of available positions for a given screen.
164 for (int i = 0; i < DockMonitors.Count (); i++) {
165 List<DockPosition> positions = new List<DockPosition> ();
166 DockMonitor mon = DockMonitors.Where (d => d.MonitorNumber == i).First ();
167
168 if (mon.Geo.Left == leftDockVal)
169 positions.Add (DockPosition.Left);
170 if (mon.Geo.Right == rightDockVal)
171 positions.Add (DockPosition.Right);
172 if (mon.Geo.Top == topDockVal)
173 positions.Add (DockPosition.Top);
174 if (mon.Geo.Bottom == bottomDockVal)
175 positions.Add (DockPosition.Bottom);
176
177 mon.PossiblePositions = positions;
178 }
179 }
180
122 string FolderForTheme (string theme)181 string FolderForTheme (string theme)
123 {182 {
124 foreach (string dir in ThemeContainerFolders) {183 foreach (string dir in ThemeContainerFolders) {
@@ -144,9 +203,9 @@
144 return def + "@" + System.Reflection.Assembly.GetExecutingAssembly ().FullName;203 return def + "@" + System.Reflection.Assembly.GetExecutingAssembly ().FullName;
145 }204 }
146 205
147 public Dock CreateDock ()206 public Dock CreateDock (int monitorNum)
148 {207 {
149 if (docks.Count >= 4)208 if (!PositionsAvailableForDock (monitorNum).Any ())
150 return null;209 return null;
151 210
152 string name = "Dock" + 1;211 string name = "Dock" + 1;
@@ -155,7 +214,7 @@
155 214
156 DockNames = DockNames.Concat (new [] { name });215 DockNames = DockNames.Concat (new [] { name });
157 216
158 DockPreferences dockPrefs = new DockPreferences (name);217 DockPreferences dockPrefs = new DockPreferences (name, monitorNum);
159 Dock dock = new Dock (dockPrefs);218 Dock dock = new Dock (dockPrefs);
160 docks.Add (dock);219 docks.Add (dock);
161 220
@@ -172,7 +231,6 @@
172 dock.Dispose ();231 dock.Dispose ();
173 DockNames = DockNames.Where (s => s != dock.Preferences.GetName ());232 DockNames = DockNames.Where (s => s != dock.Preferences.GetName ());
174 233
175 EnsurePluginState ();
176 return true;234 return true;
177 }235 }
178 236
179237
=== modified file 'Docky/Docky/Interface/DockPreferences.cs'
--- Docky/Docky/Interface/DockPreferences.cs 2009-10-31 16:05:10 +0000
+++ Docky/Docky/Interface/DockPreferences.cs 2009-11-01 01:20:25 +0000
@@ -126,15 +126,17 @@
126 public DockPosition Position {126 public DockPosition Position {
127 get { return position; }127 get { return position; }
128 set {128 set {
129 int monitor = 0;
130 if (monitor_number.HasValue)
131 monitor = MonitorNumber;
132
129 if (position == value)133 if (position == value)
130 return;134 return;
131 Dock other_dock = null;
132 if (Docky.Controller.Docks.Any (d => d.Preferences.Position == value))
133 other_dock = Docky.Controller.Docks.Where (d => d.Preferences.Position == value).First();
134 DockPosition old_position = position;
135 position = value;135 position = value;
136 if (other_dock != null)136
137 other_dock.Preferences.Position = old_position;137 if (!Docky.Controller.PositionsAvailableForDock (monitor).Contains (value))
138 position = Docky.Controller.PositionsAvailableForDock (monitor).First ();
139
138 SetOption<string> ("Position", position.ToString ());140 SetOption<string> ("Position", position.ToString ());
139 OnPositionChanged ();141 OnPositionChanged ();
140 }142 }
@@ -195,7 +197,7 @@
195 get {197 get {
196 if (!zoom_percent.HasValue)198 if (!zoom_percent.HasValue)
197 zoom_percent = GetOption<double?> ("ZoomPercent", 2.0);199 zoom_percent = GetOption<double?> ("ZoomPercent", 2.0);
198 return zoom_percent.Value; 200 return zoom_percent.Value;
199 }201 }
200 set {202 set {
201 value = Clamp (value, 4, 1);203 value = Clamp (value, 4, 1);
@@ -207,6 +209,22 @@
207 OnZoomPercentChanged ();209 OnZoomPercentChanged ();
208 }210 }
209 }211 }
212
213 int? monitor_number;
214 public int MonitorNumber {
215 get {
216 if (!monitor_number.HasValue)
217 monitor_number = GetOption<int?> ("MonitorNumber", 0);
218 return monitor_number.Value;
219 }
220 set {
221 if (monitor_number == value)
222 return;
223 monitor_number = value;
224 SetOption<int?> ("MonitorNumber", monitor_number.Value);
225 //OnIndicatorSettingChanged ();
226 }
227 }
210 #endregion228 #endregion
211 229
212 bool? window_manager;230 bool? window_manager;
@@ -248,6 +266,11 @@
248 set { prefs.Set<bool> ("FirstRun", value); }266 set { prefs.Set<bool> ("FirstRun", value); }
249 }267 }
250 268
269 public DockPreferences (string dockName, int monitorNumber) : this(dockName)
270 {
271 MonitorNumber = monitorNumber;
272 }
273
251 public DockPreferences (string dockName)274 public DockPreferences (string dockName)
252 {275 {
253 // ensures position actually gets set276 // ensures position actually gets set
@@ -435,7 +458,7 @@
435 DockPosition position = (DockPosition) Enum.Parse (typeof(DockPosition), 458 DockPosition position = (DockPosition) Enum.Parse (typeof(DockPosition),
436 GetOption ("Position", DockPosition.Bottom.ToString ()));459 GetOption ("Position", DockPosition.Bottom.ToString ()));
437 460
438 while (Docky.Controller.Docks.Any ((Dock d) => d.Preferences.Position == position)) {461 while (Docky.Controller.DocksForMonitor (MonitorNumber).Any ((Dock d) => d.Preferences.Position == position)) {
439 Log<DockPreferences>.Error ("Dock position already in use: " + position.ToString ());462 Log<DockPreferences>.Error ("Dock position already in use: " + position.ToString ());
440 position = (DockPosition) ((((int) position) + 1) % 4);463 position = (DockPosition) ((((int) position) + 1) % 4);
441 }464 }
@@ -712,9 +735,9 @@
712 {735 {
713 OnItemProvidersChanged (null, item_providers);736 OnItemProvidersChanged (null, item_providers);
714 737
715 foreach (AbstractDockItemProvider adip in item_providers.Where (adip => adip != DefaultProvider)) {738 foreach (AbstractDockItemProvider adip in item_providers.Where (adip => adip != DefaultProvider))
716 PluginManager.Disable (adip);739 PluginManager.Disable (adip);
717 }740
718 item_providers = new List<AbstractDockItemProvider> ();741 item_providers = new List<AbstractDockItemProvider> ();
719 742
720 SyncPlugins ();743 SyncPlugins ();
721744
=== modified file 'Docky/Docky/Interface/DockWindow.cs'
--- Docky/Docky/Interface/DockWindow.cs 2009-10-31 09:39:54 +0000
+++ Docky/Docky/Interface/DockWindow.cs 2009-11-01 01:20:25 +0000
@@ -343,7 +343,7 @@
343 343
344 //fixme344 //fixme
345 int Monitor {345 int Monitor {
346 get { return 0; }346 get { return Preferences.MonitorNumber; }
347 }347 }
348 348
349 internal DockPosition Position {349 internal DockPosition Position {
350350
=== modified file 'Docky/Docky/Interface/IDockPreferences.cs'
--- Docky/Docky/Interface/IDockPreferences.cs 2009-10-31 03:57:40 +0000
+++ Docky/Docky/Interface/IDockPreferences.cs 2009-11-01 01:20:25 +0000
@@ -62,6 +62,8 @@
62 62
63 double ZoomPercent { get; set; }63 double ZoomPercent { get; set; }
64 64
65 int MonitorNumber { get; set; }
66
65 bool SetName (string name);67 bool SetName (string name);
66 68
67 string GetName ();69 string GetName ();
6870
=== modified file 'Docky/gtk-gui/Docky.ConfigurationWindow.cs'
--- Docky/gtk-gui/Docky.ConfigurationWindow.cs 2009-10-31 06:37:25 +0000
+++ Docky/gtk-gui/Docky.ConfigurationWindow.cs 2009-11-01 01:20:25 +0000
@@ -42,10 +42,6 @@
42 42
43 private Gtk.HBox hbox3;43 private Gtk.HBox hbox3;
44 44
45 private Gtk.Button new_dock_button;
46
47 private Gtk.Button delete_dock_button;
48
49 private Gtk.VBox vbox4;45 private Gtk.VBox vbox4;
50 46
51 private Gtk.Button close_button;47 private Gtk.Button close_button;
@@ -159,69 +155,15 @@
159 this.hbox3.Name = "hbox3";155 this.hbox3.Name = "hbox3";
160 this.hbox3.Spacing = 6;156 this.hbox3.Spacing = 6;
161 // Container child hbox3.Gtk.Box+BoxChild157 // Container child hbox3.Gtk.Box+BoxChild
162 this.new_dock_button = new Gtk.Button();
163 this.new_dock_button.CanFocus = true;
164 this.new_dock_button.Name = "new_dock_button";
165 this.new_dock_button.UseUnderline = true;
166 this.new_dock_button.BorderWidth = ((uint)(5));
167 // Container child new_dock_button.Gtk.Container+ContainerChild
168 Gtk.Alignment w11 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
169 // Container child GtkAlignment.Gtk.Container+ContainerChild
170 Gtk.HBox w12 = new Gtk.HBox();
171 w12.Spacing = 2;
172 // Container child GtkHBox.Gtk.Container+ContainerChild
173 Gtk.Image w13 = new Gtk.Image();
174 w13.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-add", Gtk.IconSize.Menu, 16);
175 w12.Add(w13);
176 // Container child GtkHBox.Gtk.Container+ContainerChild
177 Gtk.Label w15 = new Gtk.Label();
178 w15.LabelProp = Mono.Unix.Catalog.GetString("New Dock");
179 w15.UseUnderline = true;
180 w12.Add(w15);
181 w11.Add(w12);
182 this.new_dock_button.Add(w11);
183 this.hbox3.Add(this.new_dock_button);
184 Gtk.Box.BoxChild w19 = ((Gtk.Box.BoxChild)(this.hbox3[this.new_dock_button]));
185 w19.Position = 0;
186 w19.Expand = false;
187 w19.Fill = false;
188 // Container child hbox3.Gtk.Box+BoxChild
189 this.delete_dock_button = new Gtk.Button();
190 this.delete_dock_button.CanFocus = true;
191 this.delete_dock_button.Name = "delete_dock_button";
192 this.delete_dock_button.UseUnderline = true;
193 this.delete_dock_button.BorderWidth = ((uint)(5));
194 // Container child delete_dock_button.Gtk.Container+ContainerChild
195 Gtk.Alignment w20 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
196 // Container child GtkAlignment.Gtk.Container+ContainerChild
197 Gtk.HBox w21 = new Gtk.HBox();
198 w21.Spacing = 2;
199 // Container child GtkHBox.Gtk.Container+ContainerChild
200 Gtk.Image w22 = new Gtk.Image();
201 w22.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-delete", Gtk.IconSize.Menu, 16);
202 w21.Add(w22);
203 // Container child GtkHBox.Gtk.Container+ContainerChild
204 Gtk.Label w24 = new Gtk.Label();
205 w24.LabelProp = Mono.Unix.Catalog.GetString("Delete Dock");
206 w24.UseUnderline = true;
207 w21.Add(w24);
208 w20.Add(w21);
209 this.delete_dock_button.Add(w20);
210 this.hbox3.Add(this.delete_dock_button);
211 Gtk.Box.BoxChild w28 = ((Gtk.Box.BoxChild)(this.hbox3[this.delete_dock_button]));
212 w28.Position = 1;
213 w28.Expand = false;
214 w28.Fill = false;
215 // Container child hbox3.Gtk.Box+BoxChild
216 this.vbox4 = new Gtk.VBox();158 this.vbox4 = new Gtk.VBox();
217 this.vbox4.Name = "vbox4";159 this.vbox4.Name = "vbox4";
218 this.vbox4.Spacing = 6;160 this.vbox4.Spacing = 6;
219 this.hbox3.Add(this.vbox4);161 this.hbox3.Add(this.vbox4);
220 Gtk.Box.BoxChild w29 = ((Gtk.Box.BoxChild)(this.hbox3[this.vbox4]));162 Gtk.Box.BoxChild w11 = ((Gtk.Box.BoxChild)(this.hbox3[this.vbox4]));
221 w29.Position = 2;163 w11.Position = 2;
222 this.hbox2.Add(this.hbox3);164 this.hbox2.Add(this.hbox3);
223 Gtk.Box.BoxChild w30 = ((Gtk.Box.BoxChild)(this.hbox2[this.hbox3]));165 Gtk.Box.BoxChild w12 = ((Gtk.Box.BoxChild)(this.hbox2[this.hbox3]));
224 w30.Position = 0;166 w12.Position = 0;
225 // Container child hbox2.Gtk.Box+BoxChild167 // Container child hbox2.Gtk.Box+BoxChild
226 this.close_button = new Gtk.Button();168 this.close_button = new Gtk.Button();
227 this.close_button.CanFocus = true;169 this.close_button.CanFocus = true;
@@ -231,15 +173,15 @@
231 this.close_button.BorderWidth = ((uint)(5));173 this.close_button.BorderWidth = ((uint)(5));
232 this.close_button.Label = "gtk-close";174 this.close_button.Label = "gtk-close";
233 this.hbox2.Add(this.close_button);175 this.hbox2.Add(this.close_button);
234 Gtk.Box.BoxChild w31 = ((Gtk.Box.BoxChild)(this.hbox2[this.close_button]));176 Gtk.Box.BoxChild w13 = ((Gtk.Box.BoxChild)(this.hbox2[this.close_button]));
235 w31.Position = 1;177 w13.Position = 1;
236 w31.Expand = false;178 w13.Expand = false;
237 w31.Fill = false;179 w13.Fill = false;
238 this.vbox1.Add(this.hbox2);180 this.vbox1.Add(this.hbox2);
239 Gtk.Box.BoxChild w32 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox2]));181 Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox2]));
240 w32.Position = 1;182 w14.Position = 1;
241 w32.Expand = false;183 w14.Expand = false;
242 w32.Fill = false;184 w14.Fill = false;
243 this.Add(this.vbox1);185 this.Add(this.vbox1);
244 if ((this.Child != null)) {186 if ((this.Child != null)) {
245 this.Child.ShowAll();187 this.Child.ShowAll();
@@ -249,8 +191,6 @@
249 this.Show();191 this.Show();
250 this.start_with_computer_checkbutton.Toggled += new System.EventHandler(this.OnStartWithComputerCheckbuttonToggled);192 this.start_with_computer_checkbutton.Toggled += new System.EventHandler(this.OnStartWithComputerCheckbuttonToggled);
251 this.theme_combo.Changed += new System.EventHandler(this.OnThemeComboChanged);193 this.theme_combo.Changed += new System.EventHandler(this.OnThemeComboChanged);
252 this.new_dock_button.Clicked += new System.EventHandler(this.OnNewDockButtonClicked);
253 this.delete_dock_button.Clicked += new System.EventHandler(this.OnDeleteDockButtonClicked);
254 this.close_button.Clicked += new System.EventHandler(this.OnCloseButtonClicked);194 this.close_button.Clicked += new System.EventHandler(this.OnCloseButtonClicked);
255 }195 }
256 }196 }
257197
=== modified file 'Docky/gtk-gui/gui.stetic'
--- Docky/gtk-gui/gui.stetic 2009-10-31 06:37:25 +0000
+++ Docky/gtk-gui/gui.stetic 2009-11-01 01:20:25 +0000
@@ -7,11 +7,11 @@
7 <import>7 <import>
8 <widget-library name="Mono.Addins.Gui, Version=0.4.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />8 <widget-library name="Mono.Addins.Gui, Version=0.4.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
9 <widget-library name="wnck-sharp, Version=2.20.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />9 <widget-library name="wnck-sharp, Version=2.20.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
10 <widget-library name="gnomedesktop-sharp, Version=2.20.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
10 <widget-library name="../../Docky.Services/bin/Debug/Docky.Services.dll" />11 <widget-library name="../../Docky.Services/bin/Debug/Docky.Services.dll" />
11 <widget-library name="../../Docky.Items/bin/Debug/Docky.Items.dll" />12 <widget-library name="../../Docky.Items/bin/Debug/Docky.Items.dll" />
12 <widget-library name="../../Docky.Windowing/bin/Debug/Docky.Windowing.dll" />13 <widget-library name="../../Docky.Windowing/bin/Debug/Docky.Windowing.dll" />
13 <widget-library name="../bin/Debug/Docky.exe" internal="true" />14 <widget-library name="../bin/Debug/Docky.exe" internal="true" />
14 <widget-library name="gnomedesktop-sharp, Version=2.20.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
15 </import>15 </import>
16 <widget class="Gtk.Bin" id="Docky.Interface.DockPreferences" design-size="368 331">16 <widget class="Gtk.Bin" id="Docky.Interface.DockPreferences" design-size="368 331">
17 <property name="MemberName" />17 <property name="MemberName" />
@@ -632,40 +632,10 @@
632 <property name="MemberName" />632 <property name="MemberName" />
633 <property name="Spacing">6</property>633 <property name="Spacing">6</property>
634 <child>634 <child>
635 <widget class="Gtk.Button" id="new_dock_button">635 <placeholder />
636 <property name="MemberName" />
637 <property name="CanFocus">True</property>
638 <property name="Type">TextAndIcon</property>
639 <property name="Icon">stock:gtk-add Menu</property>
640 <property name="Label" translatable="yes">New Dock</property>
641 <property name="UseUnderline">True</property>
642 <property name="BorderWidth">5</property>
643 <signal name="Clicked" handler="OnNewDockButtonClicked" />
644 </widget>
645 <packing>
646 <property name="Position">0</property>
647 <property name="AutoSize">True</property>
648 <property name="Expand">False</property>
649 <property name="Fill">False</property>
650 </packing>
651 </child>636 </child>
652 <child>637 <child>
653 <widget class="Gtk.Button" id="delete_dock_button">638 <placeholder />
654 <property name="MemberName" />
655 <property name="CanFocus">True</property>
656 <property name="Type">TextAndIcon</property>
657 <property name="Icon">stock:gtk-delete Menu</property>
658 <property name="Label" translatable="yes">Delete Dock</property>
659 <property name="UseUnderline">True</property>
660 <property name="BorderWidth">5</property>
661 <signal name="Clicked" handler="OnDeleteDockButtonClicked" />
662 </widget>
663 <packing>
664 <property name="Position">1</property>
665 <property name="AutoSize">True</property>
666 <property name="Expand">False</property>
667 <property name="Fill">False</property>
668 </packing>
669 </child>639 </child>
670 <child>640 <child>
671 <widget class="Gtk.VBox" id="vbox4">641 <widget class="Gtk.VBox" id="vbox4">

Subscribers

People subscribed via source and target branches

to status/vote changes: