~psybers/docky/stacks

« back to all changes in this revision

Viewing changes to Docky/Docky/Interface/DockWindow.cs

  • Committer: Robert Dyer
  • Date: 2010-06-17 20:09:14 UTC
  • mfrom: (1446.1.45 docky)
  • Revision ID: psybers@gmail.com-20100617200914-rlz1tsy0ob3qon1g
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
364
364
                                Pango.CairoHelper.LayoutPath (surface.Context, layout);
365
365
                                surface.Context.Color = HoverTextManager.IsLight ? new Cairo.Color (0.1, 0.1, 0.1) : new Cairo.Color (1, 1, 1);
366
366
                                surface.Context.Fill ();
 
367
                                
 
368
                                layout.Context.Dispose ();
367
369
                        }
368
370
                        
369
371
                        return surface;
723
725
                                          Gdk.EventMask.ScrollMask));
724
726
                        
725
727
                        Realized                      += HandleRealized;
726
 
                        ThemeController.ThemeChanged += DockyControllerThemeChanged;
 
728
                        DockServices.Theme.ThemeChanged += DockyControllerThemeChanged;
727
729
                        
728
730
                        // fix for nvidia bug
729
731
                        if (Docky.CommandLinePreferences.BufferTime > 0)
766
768
                                if ((now - adi.LastClick) < BounceTime || (now - adi.StateSetTime (ItemState.Urgent)) < BounceTime)
767
769
                                        return true;
768
770
                                //Glowing Items
769
 
                                if ((now - adi.StateSetTime (ItemState.Urgent)) < ThemeController.GlowTime)
 
771
                                if ((now - adi.StateSetTime (ItemState.Urgent)) < DockServices.Theme.GlowTime)
770
772
                                        return true;
771
773
                        }
772
774
                        return false;
1210
1212
                                                FolderMenu.SetFolder ((HoveredItem as FileDockItem).OwnedFile);
1211
1213
                                                FolderMenu.Show ();
1212
1214
                                        } else {
1213
 
                                                double x, y;
1214
1215
                                                Gdk.Rectangle region = DrawRegionForItem (HoveredItem);
 
1216
                                                
 
1217
                                                double x;
 
1218
                                                double y = Math.Min (1, Math.Max (0, (Cursor.Y - window_position.Y - region.Y) / (double) region.Height));
 
1219
                                                
 
1220
                                                if (Preferences.IsVertical)
 
1221
                                                        x = Math.Min (1, Math.Max (0, (Cursor.X - window_position.X - region.X) / (double) region.Width));
 
1222
                                                else
 
1223
                                                        x = Math.Min (1, Math.Max (0, (Cursor.X + window_position.X - region.X) / (double) region.Width));
 
1224
                                                
 
1225
                                                if (HoveredItem.RotateWithDock) {
 
1226
                                                        if (Position == DockPosition.Top) {
 
1227
                                                                x = 1 - x;
 
1228
                                                                y = 1 - y;
 
1229
                                                        } else if (Preferences.IsVertical) {
 
1230
                                                                double tmp = x;
 
1231
                                                                x = y;
 
1232
                                                                y = tmp;
1215
1233
                                                        
1216
 
                                                x = ((Cursor.X + window_position.X) - region.X) / (double) region.Height;
1217
 
                                                y = ((Cursor.Y + window_position.Y) - region.Y) / (double) region.Width;
1218
 
                                                
 
1234
                                                        if (Position == DockPosition.Left)
 
1235
                                                                y = 1 - y;
 
1236
                                                        else
 
1237
                                                                x = 1 - x;
 
1238
                                                        }
 
1239
                                                }
 
1240
                                        
1219
1241
                                                HoveredItem.Clicked (evnt.Button, evnt.State, x, y);
 
1242
 
 
1243
                                                AnimatedDraw ();
1220
1244
                                        }
1221
 
                                        AnimatedDraw ();
1222
1245
                                }
1223
1246
                        } else if (button == MenuButton.Right) {
1224
1247
                                ShowDockyItemMenu ();
2095
2118
                                foreach (AbstractDockItem adi in Items) {
2096
2119
                                        double diff = (render_time - adi.StateSetTime (ItemState.Urgent)).TotalMilliseconds;
2097
2120
                                        if (adi.Indicator != ActivityIndicator.None && (adi.State & ItemState.Urgent) == ItemState.Urgent &&
2098
 
                                            (ThemeController.GlowTime.Days > 0 || diff < ThemeController.GlowTime.TotalMilliseconds)) {
 
2121
                                            (DockServices.Theme.GlowTime.Days > 0 || diff < DockServices.Theme.GlowTime.TotalMilliseconds)) {
2099
2122
                                                
2100
2123
                                                if (urgent_glow_buffer == null)
2101
2124
                                                        urgent_glow_buffer = CreateUrgentGlowBuffer ();
2290
2313
                                        renderRotation = Math.PI;
2291
2314
                                        break;
2292
2315
                                case DockPosition.Left:
 
2316
                                        renderRotation = Math.PI * .5;
 
2317
                                        break;
 
2318
                                case DockPosition.Right:
2293
2319
                                        renderRotation = Math.PI * 1.5;
2294
2320
                                        break;
2295
 
                                case DockPosition.Right:
2296
 
                                        renderRotation = Math.PI * .5;
2297
 
                                        break;
2298
2321
                                default:
2299
2322
                                case DockPosition.Bottom:
2300
2323
                                        renderRotation = 0;
2484
2507
                                                                                        (double) gdkColor.Green / ushort.MaxValue,
2485
2508
                                                                                        (double) gdkColor.Blue / ushort.MaxValue,
2486
2509
                                                                                        1.0);
2487
 
                        return CreateIndicatorBuffer (UrgentIndicatorSize, color.AddHue (ThemeController.UrgentHueShift).SetSaturation (1));
 
2510
                        return CreateIndicatorBuffer (UrgentIndicatorSize, color.AddHue (DockServices.Theme.UrgentHueShift).SetSaturation (1));
2488
2511
                }
2489
2512
                
2490
2513
                DockySurface CreateIndicatorBuffer (int size, Cairo.Color color)
2523
2546
                                                                                        (double) gdkColor.Green / ushort.MaxValue,
2524
2547
                                                                                        (double) gdkColor.Blue / ushort.MaxValue,
2525
2548
                                                                                        1.0);
2526
 
                        color = color.AddHue (ThemeController.UrgentHueShift).SetSaturation (1);
 
2549
                        color = color.AddHue (DockServices.Theme.UrgentHueShift).SetSaturation (1);
2527
2550
                        
2528
2551
                        int size = (int) 2.5 * IconSize;
2529
2552
                        
2560
2583
                                        background_buffer = new DockySurface (BackgroundWidth, BackgroundHeight, surface);
2561
2584
                                
2562
2585
                                // FIXME we should probably compute if the theme is transparent, but for now this works
2563
 
                                if (ConfigurationMode && ThemeController.DockTheme.Equals ("Transparent")) {
 
2586
                                if (ConfigurationMode && DockServices.Theme.DockTheme.Equals ("Transparent")) {
2564
2587
                                        background_buffer.Context.Rectangle (0, 0, background_buffer.Width, background_buffer.Height);
2565
2588
                                        background_buffer.Context.Color = new Cairo.Color (1, 1, 1, Items.Where (adi => !(adi is SpacingItem)).Count () == 0 ? 0.10 : 0.04);
2566
2589
                                        background_buffer.Context.Fill ();
2567
2590
                                }
2568
2591
                                
2569
 
                                Gdk.Pixbuf background = DockServices.Drawing.LoadIcon (ThreeDimensional ? ThemeController.Background3dSvg : ThemeController.BackgroundSvg);
 
2592
                                Gdk.Pixbuf background = DockServices.Drawing.LoadIcon (ThreeDimensional ? DockServices.Theme.Background3dSvg : DockServices.Theme.BackgroundSvg);
2570
2593
                                Gdk.Pixbuf tmp;
2571
2594
                                
2572
2595
                                switch (Position) {
2655
2678
                                }
2656
2679
                                
2657
2680
                                cr.Paint ();
 
2681
 
 
2682
                                (cr.Target as IDisposable).Dispose ();
 
2683
 
2658
2684
                                rendering = false;
2659
2685
                                
2660
2686
                                //now after rendering we can set the new HoveredItem
2756
2782
                        AutohideManager.HiddenChanged       -= HandleHiddenChanged;
2757
2783
                        AutohideManager.DockHoveredChanged  -= HandleDockHoveredChanged;
2758
2784
                        Screen.SizeChanged                  -= ScreenSizeChanged;
2759
 
                        ThemeController.ThemeChanged        -= DockyControllerThemeChanged;
 
2785
                        DockServices.Theme.ThemeChanged        -= DockyControllerThemeChanged;
2760
2786
                        
2761
2787
                        // clear out our separators
2762
2788
                        foreach (AbstractDockItem adi in Items.Where (adi => adi is INonPersistedItem))