internal DockItemToolbar(DockItem parentItem, PositionType position) { this.parentItem = parentItem; frame = new CustomFrame(); switch (position) { case PositionType.Top: frame.SetMargins(0, 0, 1, 1); frame.SetPadding(0, 2, 2, 0); break; case PositionType.Bottom: frame.SetMargins(0, 1, 1, 1); frame.SetPadding(2, 2, 2, 0); break; case PositionType.Left: frame.SetMargins(0, 1, 1, 0); frame.SetPadding(0, 0, 2, 2); break; case PositionType.Right: frame.SetMargins(0, 1, 0, 1); frame.SetPadding(0, 0, 2, 2); break; } this.position = position; if (position == PositionType.Top || position == PositionType.Bottom) { box = new HBox(false, 3); } else { box = new VBox(false, 3); } box.Show(); frame.Add(box); frame.GradientBackround = true; }
public AutoHideBox(DockFrame frame, DockItem item, Gtk.PositionType pos, int size) { this.position = pos; this.frame = frame; this.targetSize = size; horiz = pos == PositionType.Left || pos == PositionType.Right; startPos = pos == PositionType.Top || pos == PositionType.Left; Events = Events | Gdk.EventMask.EnterNotifyMask | Gdk.EventMask.LeaveNotifyMask; Box fr; CustomFrame cframe = new CustomFrame(); switch (pos) { case PositionType.Left: cframe.SetMargins(1, 1, 0, 1); break; case PositionType.Right: cframe.SetMargins(1, 1, 1, 0); break; case PositionType.Top: cframe.SetMargins(0, 1, 1, 1); break; case PositionType.Bottom: cframe.SetMargins(1, 0, 1, 1); break; } EventBox sepBox = new EventBox(); cframe.Add(sepBox); if (horiz) { fr = new HBox(); sepBox.Realized += delegate { sepBox.GdkWindow.Cursor = resizeCursorW; }; sepBox.WidthRequest = gripSize; } else { fr = new VBox(); sepBox.Realized += delegate { sepBox.GdkWindow.Cursor = resizeCursorH; }; sepBox.HeightRequest = gripSize; } sepBox.Events = EventMask.AllEventsMask; if (pos == PositionType.Left || pos == PositionType.Top) { fr.PackEnd(cframe, false, false, 0); } else { fr.PackStart(cframe, false, false, 0); } Add(fr); ShowAll(); Hide(); scrollable = new ScrollableContainer(); scrollable.ScrollMode = false; scrollable.Show(); item.Widget.Show(); scrollable.Add(item.Widget); fr.PackStart(scrollable, true, true, 0); sepBox.ButtonPressEvent += OnSizeButtonPress; sepBox.ButtonReleaseEvent += OnSizeButtonRelease; sepBox.MotionNotifyEvent += OnSizeMotion; sepBox.ExposeEvent += OnGripExpose; sepBox.EnterNotifyEvent += delegate { insideGrip = true; sepBox.QueueDraw(); }; sepBox.LeaveNotifyEvent += delegate { insideGrip = false; sepBox.QueueDraw(); }; }