Exemple #1
0
        public void Add(IDockablePanel control, Size suggestedSize, PeekSide side)
        {
            StackPanel panel  = panels[side];
            var        button = new PeekButton {
                Text        = control.Title.Short,
                Icon        = control.Icon,
                Orientation = side == PeekSide.Left || side == PeekSide.Right ? Orientation.Vertical : Orientation.Horizontal
            };

            peekablePanels.Add(button, new PeekablePanel(control, side, suggestedSize));
            button.Click += Button_Click;
            panel.Children.Add(button);
        }
Exemple #2
0
 public void Restore(DockState state, IDockablePanelFactory factory)
 {
     foreach (TabState tabState in state.tabStates)
     {
         Type           t       = Type.GetType(tabState.ClassName);
         IDockablePanel control = factory.MakePanel(t);
         if (control is IStateControl)
         {
             using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(tabState.ControlState)))
                 (control as IStateControl).RestoreState(stream);
         }
         var tab = new EditorTab(control);
         Items.Add(tab);
     }
 }
Exemple #3
0
 private void titleBar_WindowAction(object sender, WindowActionEventArgs args)
 {
     if (!args.ActionHandled)
     {
         if (args.DockableControls == null)
         {
             var controls = new IDockablePanel[tabControl.Items.Count];
             for (int i = 0; i < tabControl.Items.Count; i++)
             {
                 var tab   = tabControl.Items[i] as EditorTab;
                 var panel = tab.Content as EditorPanel;
                 controls[i] = panel.Content as IDockablePanel;
             }
             args.DockableControls = new DockableGroup(controls, new Size(tabControl.ActualWidth, tabControl.ActualHeight));
             undockAll();
         }
         else
         {
             undock(args.DockableControls.Panels);
         }
         args.ActionHandled = true;
     }
 }
Exemple #4
0
 private void openPanel(object sender, IDockablePanel panel)
 {
     if (workspacePanel.ShowChild(panel.Control))
     {
         return;
     }
     if (mostRecentDocumentTabControl != null && panel is IDocumentPanel)
     {
         var item = new EditorTab(panel);
         mostRecentDocumentTabControl.Items.Add(item);
         mostRecentDocumentTabControl.SelectedItem = item;
     }
     else if (mostRecentToolTabControl != null && panel is IToolPanel)
     {
         var item = new EditorTab(panel);
         mostRecentToolTabControl.Items.Add(item);
         mostRecentToolTabControl.SelectedItem = item;
     }
     else
     {
         new EditorWindow(workspacePanel, panel).Show();
     }
 }
Exemple #5
0
 public DockableGroup(EditorPanel panel)
 {
     Panels        = new IDockablePanel[] { panel.Content as IDockablePanel };
     SuggestedSize = new Size(panel.ActualWidth, panel.ActualHeight);
 }
Exemple #6
0
 public DockableGroup(IDockablePanel panel, Size?suggestedSize = null) : this(new IDockablePanel[] { panel }, suggestedSize)
 {
 }
Exemple #7
0
 public EditorTab(IDockablePanel control)
 {
     Style   = FindResource("Workspace.TabItem") as Style;
     Content = new EditorPanel(control);
     Header  = control.Title?.Short ?? "";
 }
Exemple #8
0
 public EditorWindow(WorkspacePanel workspacePanel, IDockablePanel control) : this(workspacePanel, new DockableGroup(control))
 {
 }
Exemple #9
0
 public PeekablePanel(IDockablePanel control, PeekSide side, Size suggestedSize)
 {
     DockableControl = control;
     Side            = side;
     Size            = suggestedSize;
 }