예제 #1
0
		private void JoinPanels(IdePanel existingPanel, IdePanel newPanel, int newIndex = 1)
		{
			var parent = existingPanel.Parent;
			var groupedPanel = new IdeGroupedPanel {Dock = DockStyle.Fill};
			groupedPanel.AddPanel(newPanel);
			groupedPanel.AddPanel(existingPanel, false, newIndex > 0 ? 0 : 1);
			parent.Controls.Add(groupedPanel);
		}
예제 #2
0
		private void RemovePanelFromGroupedPanel(IdePanel panel, IdeGroupedPanel groupedPanel)
		{
			var sibling = groupedPanel.Panels.FirstOrDefault(p => p != panel);
			if (sibling != null)
			{
				_memorizedPanelPositions[panel] = new PanelPosition
				{
					Index = groupedPanel.Tabs.FindIndex(t => t.Panel == panel),
					Sibling = sibling
				};
			}
			groupedPanel.RemovePanel(panel);
		}
예제 #3
0
 private void AddPanelGroup(List <string> panels, Action <IdePanel> add, Dictionary <string, Control> modules)
 {
     if (panels.Count > 1)
     {
         var groupedPanel = new IdeGroupedPanel();
         add(groupedPanel);
         add = p => groupedPanel.AddPanel(p);
     }
     foreach (var moduleName in panels)
     {
         var module = modules.ContainsKey(moduleName) ? modules[moduleName] : null;
         if (module == null)
         {
             continue;
         }
         var panel = GetPanel(module);
         add(panel);
         OnPanelStatusChanged(panel, true);
     }
 }