Browse Source

Move SideBar and AutoHide to ICSharpCode.SharpDevelop.Widgets.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1974 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
519c18a986
  1. 3
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/SetupDialogControlsSideTab.cs
  2. 5
      src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj
  3. 5
      src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj
  4. 7
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  5. 3
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs
  6. 3
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/RenameCategoryDialog.cs
  7. 9
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/SideTabDesigner.cs
  8. 9
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs
  9. 17
      src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildSideTab.cs
  10. 5
      src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj
  11. 5
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportAddin.csproj
  12. 7
      src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs
  13. 9
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  14. 17
      src/Main/Base/Project/Src/Commands/SideBarCommands.cs
  15. 31
      src/Main/Base/Project/Src/Gui/Components/SideBar/SharpDevelopSideBar.cs
  16. 3
      src/Main/Base/Project/Src/Gui/Components/SideBar/SharpDevelopSideTabItem.cs
  17. 5
      src/Main/Base/Project/Src/Gui/Pads/SideBarView.cs
  18. 1
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs
  19. 2
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/AutoHide/AutoHideContainer.cs
  20. 2
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/AutoHide/AutoHideMenuStripContainer.cs
  21. 2
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/AutoHide/AutoHideStatusStripContainer.cs
  22. 8
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/ICSharpCode.SharpDevelop.Widgets.csproj
  23. 163
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideBar.cs
  24. 108
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideTab.cs
  25. 14
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideTabItem.cs

3
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/SetupDialogControlsSideTab.cs

@ -14,12 +14,13 @@ using ICSharpCode.Core;
using ICSharpCode.FormsDesigner; using ICSharpCode.FormsDesigner;
using ICSharpCode.FormsDesigner.Gui; using ICSharpCode.FormsDesigner.Gui;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.WixBinding namespace ICSharpCode.WixBinding
{ {
public sealed class SetupDialogControlsSideTab : SideTabDesigner public sealed class SetupDialogControlsSideTab : SideTabDesigner
{ {
SetupDialogControlsSideTab(AxSideBar sideBar, Category category, IToolboxService toolboxService) SetupDialogControlsSideTab(SideBarControl sideBar, Category category, IToolboxService toolboxService)
: base(sideBar, category, toolboxService) : base(sideBar, category, toolboxService)
{ {
} }

5
src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj

@ -213,6 +213,11 @@
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<Folder Include="Src\PropertyGrid" /> <Folder Include="Src\PropertyGrid" />
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
<Import Project="PostBuildEvent.proj" /> <Import Project="PostBuildEvent.proj" />

5
src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj

@ -129,6 +129,11 @@
<Name>ICSharpCode.SharpDevelop.Dom</Name> <Name>ICSharpCode.SharpDevelop.Dom</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
<Import Project="PostBuildEvent.proj" /> <Import Project="PostBuildEvent.proj" />

7
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -22,6 +22,7 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor; using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document; using ICSharpCode.TextEditor.Document;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner namespace ICSharpCode.FormsDesigner
{ {
@ -335,7 +336,7 @@ namespace ICSharpCode.FormsDesigner
if (SharpDevelopSideBar.SideBar.ActiveTab != null && ToolboxProvider.SideTabs.Contains(SharpDevelopSideBar.SideBar.ActiveTab)) { if (SharpDevelopSideBar.SideBar.ActiveTab != null && ToolboxProvider.SideTabs.Contains(SharpDevelopSideBar.SideBar.ActiveTab)) {
activeTabName = SharpDevelopSideBar.SideBar.ActiveTab.Name; activeTabName = SharpDevelopSideBar.SideBar.ActiveTab.Name;
} }
foreach(AxSideTab tab in ToolboxProvider.SideTabs) { foreach(SideTab tab in ToolboxProvider.SideTabs) {
if (!SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) { if (!SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) {
return; return;
} }
@ -577,7 +578,7 @@ namespace ICSharpCode.FormsDesigner
void AddSideBars() void AddSideBars()
{ {
foreach(AxSideTab tab in ToolboxProvider.SideTabs) { foreach(SideTab tab in ToolboxProvider.SideTabs) {
if (!SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) { if (!SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) {
SharpDevelopSideBar.SideBar.Tabs.Add(tab); SharpDevelopSideBar.SideBar.Tabs.Add(tab);
} }
@ -591,7 +592,7 @@ namespace ICSharpCode.FormsDesigner
return; return;
} }
foreach(AxSideTab tab in ToolboxProvider.SideTabs) { foreach(SideTab tab in ToolboxProvider.SideTabs) {
if (activeTabName == tab.Name) { if (activeTabName == tab.Name) {
SharpDevelopSideBar.SideBar.ActiveTab = tab; SharpDevelopSideBar.SideBar.ActiveTab = tab;
return; return;

3
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs

@ -17,13 +17,14 @@ using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner.Gui namespace ICSharpCode.FormsDesigner.Gui
{ {
public class CustomComponentsSideTab : SideTabDesigner public class CustomComponentsSideTab : SideTabDesigner
{ {
///<summary>Load an assembly's controls</summary> ///<summary>Load an assembly's controls</summary>
public CustomComponentsSideTab(AxSideBar sideTab, string name, IToolboxService toolboxService) : base(sideTab,name, toolboxService) public CustomComponentsSideTab(SideBarControl sideTab, string name, IToolboxService toolboxService) : base(sideTab,name, toolboxService)
{ {
ScanProjectAssemblies(); ScanProjectAssemblies();
ProjectService.EndBuild += RescanProjectAssemblies; ProjectService.EndBuild += RescanProjectAssemblies;

3
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/RenameCategoryDialog.cs

@ -11,6 +11,7 @@ using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.XmlForms; using ICSharpCode.SharpDevelop.Gui.XmlForms;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner.Gui namespace ICSharpCode.FormsDesigner.Gui
{ {
@ -60,7 +61,7 @@ namespace ICSharpCode.FormsDesigner.Gui
} }
} }
foreach (AxSideTab tab in SharpDevelopSideBar.SideBar.Tabs) { foreach (SideTab tab in SharpDevelopSideBar.SideBar.Tabs) {
if (!(tab is SideTabDesigner) && !(tab is CustomComponentsSideTab)) { if (!(tab is SideTabDesigner) && !(tab is CustomComponentsSideTab)) {
if (tab.Name == ControlDictionary["categoryNameTextBox"].Text) { if (tab.Name == ControlDictionary["categoryNameTextBox"].Text) {
ShowDuplicateErrorMessage(); ShowDuplicateErrorMessage();

9
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/SideTabDesigner.cs

@ -10,15 +10,16 @@ using System.Drawing.Design;
using System.Reflection; using System.Reflection;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner.Gui namespace ICSharpCode.FormsDesigner.Gui
{ {
public class SideTabDesigner : AxSideTab public class SideTabDesigner : SideTab
{ {
protected bool loadImages = true; protected bool loadImages = true;
IToolboxService toolboxService; IToolboxService toolboxService;
protected SideTabDesigner(AxSideBar sideBar, string name, IToolboxService toolboxService) : base(sideBar, name) protected SideTabDesigner(SideBarControl sideBar, string name, IToolboxService toolboxService) : base(sideBar, name)
{ {
this.toolboxService = toolboxService; this.toolboxService = toolboxService;
this.CanSaved = false; this.CanSaved = false;
@ -33,7 +34,7 @@ namespace ICSharpCode.FormsDesigner.Gui
} }
///<summary>Load an assembly's controls</summary> ///<summary>Load an assembly's controls</summary>
public SideTabDesigner(AxSideBar sideBar, Category category, IToolboxService toolboxService) : this(sideBar, category.Name, toolboxService) public SideTabDesigner(SideBarControl sideBar, Category category, IToolboxService toolboxService) : this(sideBar, category.Name, toolboxService)
{ {
foreach (ToolComponent component in category.ToolComponents) { foreach (ToolComponent component in category.ToolComponents) {
if (component.IsEnabled) { if (component.IsEnabled) {
@ -51,7 +52,7 @@ namespace ICSharpCode.FormsDesigner.Gui
void SelectedTabItemChanged(object sender, EventArgs e) void SelectedTabItemChanged(object sender, EventArgs e)
{ {
AxSideTabItem item = (sender as AxSideTab).ChoosedItem; SideTabItem item = (sender as SideTab).ChoosedItem;
if (item == null) { if (item == null) {
toolboxService.SetSelectedToolboxItem(null); toolboxService.SetSelectedToolboxItem(null);
} else { } else {

9
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs

@ -17,13 +17,14 @@ using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner namespace ICSharpCode.FormsDesigner
{ {
public class ToolboxProvider public class ToolboxProvider
{ {
static ICSharpCode.FormsDesigner.Services.ToolboxService toolboxService = null; static ICSharpCode.FormsDesigner.Services.ToolboxService toolboxService = null;
public static List<AxSideTab> SideTabs = new List<AxSideTab>(); public static List<SideTab> SideTabs = new List<SideTab>();
static ComponentLibraryLoader componentLibraryLoader = new ComponentLibraryLoader(); static ComponentLibraryLoader componentLibraryLoader = new ComponentLibraryLoader();
@ -84,7 +85,7 @@ namespace ICSharpCode.FormsDesigner
public static void ReloadSideTabs(bool doInsert) public static void ReloadSideTabs(bool doInsert)
{ {
bool reInsertTabs = false; bool reInsertTabs = false;
foreach(AxSideTab tab in SideTabs) { foreach(SideTab tab in SideTabs) {
tab.ItemRemoved -= SideTabItemRemoved; tab.ItemRemoved -= SideTabItemRemoved;
tab.ItemsExchanged -= SideTabItemsExchanged; tab.ItemsExchanged -= SideTabItemsExchanged;
if (SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) { if (SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) {
@ -112,7 +113,7 @@ namespace ICSharpCode.FormsDesigner
customTab.ItemsExchanged += SideTabItemsExchanged; customTab.ItemsExchanged += SideTabItemsExchanged;
SideTabs.Add(customTab); SideTabs.Add(customTab);
if (reInsertTabs) { if (reInsertTabs) {
foreach(AxSideTab tab in SideTabs) { foreach(SideTab tab in SideTabs) {
SharpDevelopSideBar.SideBar.Tabs.Add(tab); SharpDevelopSideBar.SideBar.Tabs.Add(tab);
} }
} }
@ -121,7 +122,7 @@ namespace ICSharpCode.FormsDesigner
static void SelectedToolUsedHandler(object sender, EventArgs e) static void SelectedToolUsedHandler(object sender, EventArgs e)
{ {
LoggingService.Debug("SelectedToolUsedHandler"); LoggingService.Debug("SelectedToolUsedHandler");
AxSideTab tab = SharpDevelopSideBar.SideBar.ActiveTab; SideTab tab = SharpDevelopSideBar.SideBar.ActiveTab;
// try to add project reference // try to add project reference
if (sender != null && sender is ICSharpCode.FormsDesigner.Services.ToolboxService) { if (sender != null && sender is ICSharpCode.FormsDesigner.Services.ToolboxService) {

17
src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildSideTab.cs

@ -13,6 +13,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using SharpReport.Designer; using SharpReport.Designer;
using SharpReportCore; using SharpReportCore;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace SharpReport namespace SharpReport
{ {
@ -21,8 +22,8 @@ namespace SharpReport
/// </summary> /// </summary>
public class BuildSideTab{ public class BuildSideTab{
SharpDevelopSideBar sideBar; SharpDevelopSideBar sideBar;
AxSideTab sideTab; SideTab sideTab;
AxSideTab sideTabFunctions; SideTab sideTabFunctions;
public BuildSideTab(SharpDevelopSideBar sideBar){ public BuildSideTab(SharpDevelopSideBar sideBar){
this.sideBar = sideBar; this.sideBar = sideBar;
@ -49,22 +50,22 @@ namespace SharpReport
sideBar.Tabs.Add (this.sideTabFunctions); sideBar.Tabs.Add (this.sideTabFunctions);
} }
private AxSideTabItem BuildPointer () { private SideTabItem BuildPointer () {
return sideTab.SideTabItemFactory.CreateSideTabItem(ResourceService.GetString("SharpReport.Toolbar.Pointer"), return sideTab.SideTabItemFactory.CreateSideTabItem(ResourceService.GetString("SharpReport.Toolbar.Pointer"),
"pointer", "pointer",
ResourceService.GetBitmap("Icons.16x16.FormsDesigner.PointerIcon")); ResourceService.GetBitmap("Icons.16x16.FormsDesigner.PointerIcon"));
} }
private void CusomizeSideTab (AxSideTab tab) { private void CusomizeSideTab (SideTab tab) {
tab.CanDragDrop = true; tab.CanDragDrop = true;
tab.CanSaved = false; tab.CanSaved = false;
} }
private void AddReportElements (AxSideTab tab) { private void AddReportElements (SideTab tab) {
Bitmap bitmap = ResourceService.GetIcon("Icons.16.16.SharpReport.Textbox").ToBitmap(); Bitmap bitmap = ResourceService.GetIcon("Icons.16.16.SharpReport.Textbox").ToBitmap();
AxSideTabItem t = sideTab.SideTabItemFactory.CreateSideTabItem(ResourceService.GetString("SharpReport.Toolbar.TextBox"), SideTabItem t = sideTab.SideTabItemFactory.CreateSideTabItem(ResourceService.GetString("SharpReport.Toolbar.TextBox"),
GlobalEnums.ReportItemType.ReportTextItem.ToString(), GlobalEnums.ReportItemType.ReportTextItem.ToString(),
bitmap); bitmap);
tab.Items.Add (t); tab.Items.Add (t);
@ -115,13 +116,13 @@ namespace SharpReport
// //
} }
private void AddFunctionElements (AxSideTab tab) { private void AddFunctionElements (SideTab tab) {
FunctionFactory ff = new FunctionFactory(); FunctionFactory ff = new FunctionFactory();
string localise = "SharpReport.Toolbar.Functions."; string localise = "SharpReport.Toolbar.Functions.";
Bitmap functionBitmap = ResourceService.GetIcon("Icons.16x16.SharpReport.Function").ToBitmap(); Bitmap functionBitmap = ResourceService.GetIcon("Icons.16x16.SharpReport.Function").ToBitmap();
AxSideTabItem t = sideTab.SideTabItemFactory.CreateSideTabItem(ResourceService.GetString(localise + ff.AvailableTypes[0]) , SideTabItem t = sideTab.SideTabItemFactory.CreateSideTabItem(ResourceService.GetString(localise + ff.AvailableTypes[0]) ,
ff.AvailableTypes[0].ToString(), ff.AvailableTypes[0].ToString(),
functionBitmap); functionBitmap);

5
src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj

@ -130,6 +130,11 @@
<Name>SharpReportCore</Name> <Name>SharpReportCore</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

5
src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportAddin.csproj

@ -96,6 +96,11 @@
<Name>SharpQuery</Name> <Name>SharpQuery</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

7
src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs

@ -21,6 +21,7 @@ using SharpReport;
using SharpReport.Designer; using SharpReport.Designer;
using SharpReportAddin.Commands; using SharpReportAddin.Commands;
using SharpReportCore; using SharpReportCore;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace SharpReportAddin{ namespace SharpReportAddin{
/// <summary> /// <summary>
@ -37,8 +38,8 @@ namespace SharpReportAddin{
// SideBar // SideBar
private AxSideTab sideTabItem = null; private SideTab sideTabItem = null;
private AxSideTab sideTabFunctions = null; private SideTab sideTabFunctions = null;
private Panel panel; private Panel panel;
private bool disposed; private bool disposed;
@ -148,7 +149,7 @@ namespace SharpReportAddin{
SideBarView v = (SideBarView)WorkbenchSingleton.Workbench.GetPad (typeof(SideBarView)).PadContent; SideBarView v = (SideBarView)WorkbenchSingleton.Workbench.GetPad (typeof(SideBarView)).PadContent;
SharpDevelopSideBar sb =(SharpDevelopSideBar) v.Control; SharpDevelopSideBar sb =(SharpDevelopSideBar) v.Control;
AxSideTab s; SideTab s;
for (int i = SideBarView.sideBar.Tabs.Count -1; i > 0;i -- ) { for (int i = SideBarView.sideBar.Tabs.Count -1; i > 0;i -- ) {
s = SideBarView.sideBar.Tabs[i]; s = SideBarView.sideBar.Tabs[i];
if (s.Name.IndexOf("Report") > 0) { if (s.Name.IndexOf("Report") > 0) {

9
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -128,11 +128,6 @@
<Compile Include="Src\Gui\BrowserDisplayBinding\HtmlViewPane.cs"> <Compile Include="Src\Gui\BrowserDisplayBinding\HtmlViewPane.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
<Compile Include="Src\Gui\Components\SideBar\AxSideBar.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Src\Gui\Components\SideBar\AxSideTab.cs" />
<Compile Include="Src\Gui\Components\SideBar\AxSideTabItem.cs" />
<Compile Include="Src\Gui\Components\SideBar\SharpDevelopSideBar.cs"> <Compile Include="Src\Gui\Components\SideBar\SharpDevelopSideBar.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
@ -609,9 +604,6 @@
<Compile Include="Src\Gui\Dialogs\OptionPanels\IDEOptions\FullscreenPanel.cs"> <Compile Include="Src\Gui\Dialogs\OptionPanels\IDEOptions\FullscreenPanel.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
<Compile Include="Src\Gui\Components\AutoHide\AutoHideMenuStripContainer.cs" />
<Compile Include="Src\Gui\Components\AutoHide\AutoHideStatusStripContainer.cs" />
<Compile Include="Src\Gui\Components\AutoHide\AutoHideContainer.cs" />
<Compile Include="Src\Services\RefactoringService\LocalVariableRefactoring.cs" /> <Compile Include="Src\Services\RefactoringService\LocalVariableRefactoring.cs" />
<Compile Include="Src\Services\RefactoringService\FindReferencesAndRenameHelper.cs" /> <Compile Include="Src\Services\RefactoringService\FindReferencesAndRenameHelper.cs" />
<Compile Include="Src\Internal\Doozers\DirectoryDoozer.cs" /> <Compile Include="Src\Internal\Doozers\DirectoryDoozer.cs" />
@ -714,7 +706,6 @@
<Project>{35cef10f-2d4c-45f2-9dd1-161e0fec583c}</Project> <Project>{35cef10f-2d4c-45f2-9dd1-161e0fec583c}</Project>
<Name>ICSharpCode.Core</Name> <Name>ICSharpCode.Core</Name>
</ProjectReference> </ProjectReference>
<Folder Include="Src\Gui\Components\AutoHide" />
<Folder Include="Src\Gui\Pads\TaskList" /> <Folder Include="Src\Gui\Pads\TaskList" />
<Content Include="..\..\..\..\AddIns\ICSharpCode.SharpDevelop.addin"> <Content Include="..\..\..\..\AddIns\ICSharpCode.SharpDevelop.addin">
<Link>ICSharpCode.SharpDevelop.addin</Link> <Link>ICSharpCode.SharpDevelop.addin</Link>

17
src/Main/Base/Project/Src/Commands/SideBarCommands.cs

@ -9,6 +9,7 @@ using System;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.SharpDevelop.Commands namespace ICSharpCode.SharpDevelop.Commands
{ {
@ -17,7 +18,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public override void Run() public override void Run()
{ {
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
AxSideTabItem item = sideBar.ActiveTab.ChoosedItem; SideTabItem item = sideBar.ActiveTab.ChoosedItem;
if (item != null) { if (item != null) {
sideBar.StartRenamingOf(item); sideBar.StartRenamingOf(item);
} }
@ -29,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public override void Run() public override void Run()
{ {
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
AxSideTabItem item = sideBar.ActiveTab.ChoosedItem; SideTabItem item = sideBar.ActiveTab.ChoosedItem;
if (item != null && MessageBox.Show(StringParser.Parse(ResourceService.GetString("SideBarComponent.ContextMenu.DeleteTabItemQuestion"), new string[,] { {"TabItem", item.Name}}), if (item != null && MessageBox.Show(StringParser.Parse(ResourceService.GetString("SideBarComponent.ContextMenu.DeleteTabItemQuestion"), new string[,] { {"TabItem", item.Name}}),
ResourceService.GetString("Global.QuestionText"), ResourceService.GetString("Global.QuestionText"),
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
@ -46,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public override void Run() public override void Run()
{ {
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
AxSideTab tab = new AxSideTab(sideBar, "New Tab"); SideTab tab = new SideTab(sideBar, "New Tab");
sideBar.Tabs.Add(tab); sideBar.Tabs.Add(tab);
sideBar.StartRenamingOf(tab); sideBar.StartRenamingOf(tab);
sideBar.DoAddTab = true; sideBar.DoAddTab = true;
@ -61,7 +62,7 @@ namespace ICSharpCode.SharpDevelop.Commands
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
int index = sideBar.GetTabIndexAt(sideBar.SideBarMousePosition.X, sideBar.SideBarMousePosition.Y); int index = sideBar.GetTabIndexAt(sideBar.SideBarMousePosition.X, sideBar.SideBarMousePosition.Y);
if (index > 0) { if (index > 0) {
AxSideTab tab = sideBar.Tabs[index]; SideTab tab = sideBar.Tabs[index];
sideBar.Tabs[index] = sideBar.Tabs[index - 1]; sideBar.Tabs[index] = sideBar.Tabs[index - 1];
sideBar.Tabs[index - 1] = tab; sideBar.Tabs[index - 1] = tab;
sideBar.Refresh(); sideBar.Refresh();
@ -75,7 +76,7 @@ namespace ICSharpCode.SharpDevelop.Commands
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
int index = sideBar.GetTabIndexAt(sideBar.SideBarMousePosition.X, sideBar.SideBarMousePosition.Y); int index = sideBar.GetTabIndexAt(sideBar.SideBarMousePosition.X, sideBar.SideBarMousePosition.Y);
if (index >= 0 && index < sideBar.Tabs.Count - 1) { if (index >= 0 && index < sideBar.Tabs.Count - 1) {
AxSideTab tab = sideBar.Tabs[index]; SideTab tab = sideBar.Tabs[index];
sideBar.Tabs[index] = sideBar.Tabs[index + 1]; sideBar.Tabs[index] = sideBar.Tabs[index + 1];
sideBar.Tabs[index + 1] = tab; sideBar.Tabs[index + 1] = tab;
sideBar.Refresh(); sideBar.Refresh();
@ -91,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Commands
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
int index = sideBar.Tabs.IndexOf(sideBar.ActiveTab); int index = sideBar.Tabs.IndexOf(sideBar.ActiveTab);
if (index > 0) { if (index > 0) {
AxSideTab tab = sideBar.Tabs[index]; SideTab tab = sideBar.Tabs[index];
sideBar.Tabs[index] = sideBar.Tabs[index - 1]; sideBar.Tabs[index] = sideBar.Tabs[index - 1];
sideBar.Tabs[index - 1] = tab; sideBar.Tabs[index - 1] = tab;
sideBar.Refresh(); sideBar.Refresh();
@ -106,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Commands
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
int index = sideBar.Tabs.IndexOf(sideBar.ActiveTab); int index = sideBar.Tabs.IndexOf(sideBar.ActiveTab);
if (index >= 0 && index < sideBar.Tabs.Count - 1) { if (index >= 0 && index < sideBar.Tabs.Count - 1) {
AxSideTab tab = sideBar.Tabs[index]; SideTab tab = sideBar.Tabs[index];
sideBar.Tabs[index] = sideBar.Tabs[index + 1]; sideBar.Tabs[index] = sideBar.Tabs[index + 1];
sideBar.Tabs[index + 1] = tab; sideBar.Tabs[index + 1] = tab;
sideBar.Refresh(); sideBar.Refresh();
@ -119,7 +120,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public override void Run() public override void Run()
{ {
SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner; SharpDevelopSideBar sideBar = (SharpDevelopSideBar)Owner;
AxSideTab selectedSideTab = sideBar.GetTabAt(sideBar.SideBarMousePosition.X, sideBar.SideBarMousePosition.Y); SideTab selectedSideTab = sideBar.GetTabAt(sideBar.SideBarMousePosition.X, sideBar.SideBarMousePosition.Y);
if (MessageBox.Show(StringParser.Parse(ResourceService.GetString("SideBarComponent.ContextMenu.DeleteTabHeaderQuestion"), new string[,] { {"TabHeader", selectedSideTab.Name}}), if (MessageBox.Show(StringParser.Parse(ResourceService.GetString("SideBarComponent.ContextMenu.DeleteTabHeaderQuestion"), new string[,] { {"TabHeader", selectedSideTab.Name}}),
ResourceService.GetString("Global.QuestionText"), ResourceService.GetString("Global.QuestionText"),
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,

31
src/Main/Base/Project/Src/Gui/Components/SideBar/SharpDevelopSideBar.cs

@ -13,35 +13,36 @@ using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Internal.Templates; using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui
{ {
public class SharpDevelopSideTabItemFactory : ISideTabItemFactory public class SharpDevelopSideTabItemFactory : ISideTabItemFactory
{ {
public AxSideTabItem CreateSideTabItem(string name) public SideTabItem CreateSideTabItem(string name)
{ {
return new SharpDevelopSideTabItem(name); return new SharpDevelopSideTabItem(name);
} }
public AxSideTabItem CreateSideTabItem(string name, object tag) public SideTabItem CreateSideTabItem(string name, object tag)
{ {
return new SharpDevelopSideTabItem(name, tag); return new SharpDevelopSideTabItem(name, tag);
} }
public AxSideTabItem CreateSideTabItem(string name, object tag, Bitmap bitmap) public SideTabItem CreateSideTabItem(string name, object tag, Bitmap bitmap)
{ {
return new SharpDevelopSideTabItem(name, tag, bitmap); return new SharpDevelopSideTabItem(name, tag, bitmap);
} }
} }
public class SharpDevelopSideBar : AxSideBar, IOwnerState public class SharpDevelopSideBar : SideBarControl, IOwnerState
{ {
readonly static string contextMenuPath = "/SharpDevelop/Workbench/SharpDevelopSideBar/ContextMenu"; readonly static string contextMenuPath = "/SharpDevelop/Workbench/SharpDevelopSideBar/ContextMenu";
readonly static string sideTabContextMenuPath = "/SharpDevelop/Workbench/SharpDevelopSideBar/SideTab/ContextMenu"; readonly static string sideTabContextMenuPath = "/SharpDevelop/Workbench/SharpDevelopSideBar/SideTab/ContextMenu";
Point mousePosition; Point mousePosition;
Point itemMousePosition; Point itemMousePosition;
public AxSideTab ClipboardRing = null; public SideTab ClipboardRing = null;
public Point ItemMousePosition { public Point ItemMousePosition {
get { get {
@ -92,7 +93,7 @@ namespace ICSharpCode.SharpDevelop.Gui
sideTabContent.MouseUp += new MouseEventHandler(SetItemContextMenu); sideTabContent.MouseUp += new MouseEventHandler(SetItemContextMenu);
foreach (TextTemplate template in TextTemplate.TextTemplates) { foreach (TextTemplate template in TextTemplate.TextTemplates) {
AxSideTab tab = new AxSideTab(this, template.Name); SideTab tab = new SideTab(this, template.Name);
tab.CanSaved = false; tab.CanSaved = false;
foreach (TextTemplate.Entry entry in template.Entries) { foreach (TextTemplate.Entry entry in template.Entries) {
tab.Items.Add(SideTabItemFactory.CreateSideTabItem(entry.Display, entry.Value)); tab.Items.Add(SideTabItemFactory.CreateSideTabItem(entry.Display, entry.Value));
@ -129,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public void PutInClipboardRing(string text) public void PutInClipboardRing(string text)
{ {
foreach (AxSideTab tab in Tabs) { foreach (SideTab tab in Tabs) {
if (tab.IsClipboardRing) { if (tab.IsClipboardRing) {
tab.Items.Add("Text:" + text.Trim(), text); tab.Items.Add("Text:" + text.Trim(), text);
if (tab.Items.Count > 20) { if (tab.Items.Count > 20) {
@ -141,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Gui
System.Diagnostics.Debug.Assert(false, "Can't find clipboard ring side tab category"); System.Diagnostics.Debug.Assert(false, "Can't find clipboard ring side tab category");
} }
public void DeleteSideTab(AxSideTab tab) public void DeleteSideTab(SideTab tab)
{ {
if (tab == null) { if (tab == null) {
return; return;
@ -154,7 +155,7 @@ namespace ICSharpCode.SharpDevelop.Gui
//////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
// Tab Context Menu // Tab Context Menu
void SetDeletedState(AxSideTabItem item) void SetDeletedState(SideTabItem item)
{ {
if (item != null) { if (item != null) {
SetDeletedState(item.CanBeDeleted); SetDeletedState(item.CanBeDeleted);
@ -173,7 +174,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
void SetRenameState(AxSideTabItem item) void SetRenameState(SideTabItem item)
{ {
if (item != null) { if (item != null) {
SetRenameState(item.CanBeRenamed); SetRenameState(item.CanBeRenamed);
@ -197,7 +198,7 @@ namespace ICSharpCode.SharpDevelop.Gui
int index = GetTabIndexAt(e.X, e.Y); int index = GetTabIndexAt(e.X, e.Y);
if (index >= 0) { if (index >= 0) {
AxSideTab tab = Tabs[index]; SideTab tab = Tabs[index];
SetDeletedState(tab.CanBeDeleted); SetDeletedState(tab.CanBeDeleted);
SetRenameState(tab.CanBeRenamed); SetRenameState(tab.CanBeRenamed);
@ -282,7 +283,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void SetOptions(XmlElement el) void SetOptions(XmlElement el)
{ {
foreach (XmlElement sideTabEl in el.ChildNodes) { foreach (XmlElement sideTabEl in el.ChildNodes) {
AxSideTab tab = new AxSideTab(this, sideTabEl.GetAttribute("text")); SideTab tab = new SideTab(this, sideTabEl.GetAttribute("text"));
if (tab.Name == el.GetAttribute("activetab")) { if (tab.Name == el.GetAttribute("activetab")) {
ActiveTab = tab; ActiveTab = tab;
} else { } else {
@ -313,7 +314,7 @@ namespace ICSharpCode.SharpDevelop.Gui
XmlElement el = doc.CreateElement("SideBar"); XmlElement el = doc.CreateElement("SideBar");
el.SetAttribute("activetab", ActiveTab.Name); el.SetAttribute("activetab", ActiveTab.Name);
foreach (AxSideTab tab in Tabs) { foreach (SideTab tab in Tabs) {
if (tab.CanSaved && standardTabs[tab] == null) { if (tab.CanSaved && standardTabs[tab] == null) {
XmlElement child = doc.CreateElement("SideTab"); XmlElement child = doc.CreateElement("SideTab");
@ -323,7 +324,7 @@ namespace ICSharpCode.SharpDevelop.Gui
child.SetAttribute("text", tab.Name); child.SetAttribute("text", tab.Name);
foreach (AxSideTabItem item in tab.Items) { foreach (SideTabItem item in tab.Items) {
XmlElement itemChild = doc.CreateElement("SideTabItem"); XmlElement itemChild = doc.CreateElement("SideTabItem");
itemChild.SetAttribute("text", item.Name); itemChild.SetAttribute("text", item.Name);
@ -338,7 +339,7 @@ namespace ICSharpCode.SharpDevelop.Gui
return el; return el;
} }
void OnSideTabDeleted(AxSideTab tab) void OnSideTabDeleted(SideTab tab)
{ {
if (SideTabDeleted != null) { if (SideTabDeleted != null) {
SideTabDeleted(this, new SideTabEventArgs(tab)); SideTabDeleted(this, new SideTabEventArgs(tab));

3
src/Main/Base/Project/Src/Gui/Components/SideBar/SharpDevelopSideTabItem.cs

@ -8,10 +8,11 @@
using System; using System;
using System.Drawing; using System.Drawing;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui
{ {
public class SharpDevelopSideTabItem : AxSideTabItem public class SharpDevelopSideTabItem : SideTabItem
{ {

5
src/Main/Base/Project/Src/Gui/Pads/SideBarView.cs

@ -11,6 +11,7 @@ using System.Windows.Forms;
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui
{ {
@ -61,12 +62,12 @@ namespace ICSharpCode.SharpDevelop.Gui
void GenerateStandardSideBar() void GenerateStandardSideBar()
{ {
sideBar = new SharpDevelopSideBar(); sideBar = new SharpDevelopSideBar();
AxSideTab tab = new AxSideTab(sideBar, "${res:SharpDevelop.SideBar.GeneralCategory}"); SideTab tab = new SideTab(sideBar, "${res:SharpDevelop.SideBar.GeneralCategory}");
sideBar.Tabs.Add(tab); sideBar.Tabs.Add(tab);
sideBar.ActiveTab = tab; sideBar.ActiveTab = tab;
tab = new AxSideTab(sideBar, "${res:SharpDevelop.SideBar.ClipboardRing}"); tab = new SideTab(sideBar, "${res:SharpDevelop.SideBar.ClipboardRing}");
tab.IsClipboardRing = true; tab.IsClipboardRing = true;
tab.CanBeDeleted = false; tab.CanBeDeleted = false;
tab.CanDragDrop = false; tab.CanDragDrop = false;

1
src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs

@ -12,6 +12,7 @@ using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Widgets.AutoHide;
using WeifenLuo.WinFormsUI; using WeifenLuo.WinFormsUI;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui

2
src/Main/Base/Project/Src/Gui/Components/AutoHide/AutoHideContainer.cs → src/Main/ICSharpCode.SharpDevelop.Widgets/Project/AutoHide/AutoHideContainer.cs

@ -9,7 +9,7 @@ using System;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Widgets.AutoHide
{ {
public class AutoHideContainer: Panel public class AutoHideContainer: Panel
{ {

2
src/Main/Base/Project/Src/Gui/Components/AutoHide/AutoHideMenuStripContainer.cs → src/Main/ICSharpCode.SharpDevelop.Widgets/Project/AutoHide/AutoHideMenuStripContainer.cs

@ -8,7 +8,7 @@
using System; using System;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Widgets.AutoHide
{ {
/// <summary> /// <summary>
/// AutoHideMenuStripContainer can be used instead of MenuStrip to get a menu /// AutoHideMenuStripContainer can be used instead of MenuStrip to get a menu

2
src/Main/Base/Project/Src/Gui/Components/AutoHide/AutoHideStatusStripContainer.cs → src/Main/ICSharpCode.SharpDevelop.Widgets/Project/AutoHide/AutoHideStatusStripContainer.cs

@ -8,7 +8,7 @@
using System; using System;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Widgets.AutoHide
{ {
/// <summary> /// <summary>
/// AutoHideStatusStripContainer can be used instead of StatusStrip to get a status strip /// AutoHideStatusStripContainer can be used instead of StatusStrip to get a status strip

8
src/Main/ICSharpCode.SharpDevelop.Widgets/Project/ICSharpCode.SharpDevelop.Widgets.csproj

@ -57,10 +57,18 @@
<Compile Include="TreeGrid\ScrollButton.cs" /> <Compile Include="TreeGrid\ScrollButton.cs" />
<Compile Include="TreeGrid\VerticalScrollContainer.cs" /> <Compile Include="TreeGrid\VerticalScrollContainer.cs" />
<Compile Include="DesignHelper.cs" /> <Compile Include="DesignHelper.cs" />
<Compile Include="AutoHide\AutoHideContainer.cs" />
<Compile Include="AutoHide\AutoHideMenuStripContainer.cs" />
<Compile Include="AutoHide\AutoHideStatusStripContainer.cs" />
<Compile Include="SideBar\SideBar.cs" />
<Compile Include="SideBar\SideTab.cs" />
<Compile Include="SideBar\SideTabItem.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Configuration" /> <Folder Include="Configuration" />
<Folder Include="TreeGrid" /> <Folder Include="TreeGrid" />
<Folder Include="AutoHide" />
<Folder Include="SideBar" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

163
src/Main/Base/Project/Src/Gui/Components/SideBar/AxSideBar.cs → src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideBar.cs

@ -10,61 +10,62 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Widgets.SideBar
{ {
public interface ISideTabItemFactory public interface ISideTabItemFactory
{ {
AxSideTabItem CreateSideTabItem(string name); SideTabItem CreateSideTabItem(string name);
AxSideTabItem CreateSideTabItem(string name, object tag); SideTabItem CreateSideTabItem(string name, object tag);
AxSideTabItem CreateSideTabItem(string name, object tag, Bitmap bitmap); SideTabItem CreateSideTabItem(string name, object tag, Bitmap bitmap);
} }
public class DefaultSideTabItemFactory : ISideTabItemFactory public class DefaultSideTabItemFactory : ISideTabItemFactory
{ {
public AxSideTabItem CreateSideTabItem(string name) public SideTabItem CreateSideTabItem(string name)
{ {
return new AxSideTabItem(name); return new SideTabItem(name);
} }
public AxSideTabItem CreateSideTabItem(string name, object tag) public SideTabItem CreateSideTabItem(string name, object tag)
{ {
return new AxSideTabItem(name, tag); return new SideTabItem(name, tag);
} }
public AxSideTabItem CreateSideTabItem(string name, object tag, Bitmap bitmap) public SideTabItem CreateSideTabItem(string name, object tag, Bitmap bitmap)
{ {
return new AxSideTabItem(name, tag, bitmap); return new SideTabItem(name, tag, bitmap);
} }
} }
public interface ISideTabFactory public interface ISideTabFactory
{ {
AxSideTab CreateSideTab(AxSideBar sideBar, string name); SideTab CreateSideTab(SideBarControl sideBar, string name);
} }
public class DefaultSideTabFactory : ISideTabFactory public class DefaultSideTabFactory : ISideTabFactory
{ {
public AxSideTab CreateSideTab(AxSideBar sideBar, string name) public SideTab CreateSideTab(SideBarControl sideBar, string name)
{ {
return new AxSideTab(sideBar, name); return new SideTab(sideBar, name);
} }
} }
public class AxSideBar : UserControl public class SideBarControl : UserControl
{ {
SideTabCollection sideTabs; SideTabCollection sideTabs;
AxSideTab activeTab = null; SideTab activeTab = null;
[CLSCompliant(false)]
protected SideTabContent sideTabContent = new SideTabContent(); protected SideTabContent sideTabContent = new SideTabContent();
AxSideTab renameTab = null; SideTab renameTab = null;
AxSideTabItem renameTabItem = null; SideTabItem renameTabItem = null;
TextBox renameTextBox = new TextBox(); TextBox renameTextBox = new TextBox();
ScrollBar scrollBar = new VScrollBar(); ScrollBar scrollBar = new VScrollBar();
Point mousePosition; Point mousePosition;
protected bool doAddTab = false; bool doAddTab = false;
public bool DoAddTab { public bool DoAddTab {
get { get {
@ -102,7 +103,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public AxSideTab ActiveTab { public SideTab ActiveTab {
get { get {
return activeTab; return activeTab;
} }
@ -129,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.Gui
scrollBar.LargeChange = sideTabContent.Height / activeTab.ItemHeight; scrollBar.LargeChange = sideTabContent.Height / activeTab.ItemHeight;
} }
public AxSideBar() public SideBarControl()
{ {
ResizeRedraw = true; ResizeRedraw = true;
AllowDrop = true; AllowDrop = true;
@ -166,7 +167,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public void EnsureVisible(AxSideTabItem item) public void EnsureVisible(SideTabItem item)
{ {
int index = activeTab.Items.IndexOf(item); int index = activeTab.Items.IndexOf(item);
if (index != -1) { if (index != -1) {
@ -279,7 +280,7 @@ namespace ICSharpCode.SharpDevelop.Gui
return false; return false;
} }
public void StartRenamingOf(AxSideTabItem item) public void StartRenamingOf(SideTabItem item)
{ {
EnsureVisible(item); EnsureVisible(item);
renameTabItem = item; renameTabItem = item;
@ -297,7 +298,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
public void StartRenamingOf(AxSideTab tab) public void StartRenamingOf(SideTab tab)
{ {
int index = Tabs.IndexOf(tab); int index = Tabs.IndexOf(tab);
renameTab = Tabs[index]; renameTab = Tabs[index];
@ -318,14 +319,14 @@ namespace ICSharpCode.SharpDevelop.Gui
Refresh(); Refresh();
} }
public Point GetLocation(AxSideTab whichTab) public Point GetLocation(SideTab whichTab)
{ {
int i = 0; int i = 0;
int lastUpperY = 0; int lastUpperY = 0;
for (; i < sideTabs.Count; ++i) { for (; i < sideTabs.Count; ++i) {
AxSideTab tab = sideTabs[i]; SideTab tab = sideTabs[i];
int yPos = i * (Font.Height + 4 + 1); int yPos = i * (Font.Height + 4 + 1);
if (tab == whichTab) { if (tab == whichTab) {
@ -340,7 +341,7 @@ namespace ICSharpCode.SharpDevelop.Gui
int bottom = Height; int bottom = Height;
for (int j = sideTabs.Count - 1; j > i; --j) { for (int j = sideTabs.Count - 1; j > i; --j) {
AxSideTab tab = sideTabs[j]; SideTab tab = sideTabs[j];
int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1); int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1);
@ -356,12 +357,12 @@ namespace ICSharpCode.SharpDevelop.Gui
return new Point(-1, -1); return new Point(-1, -1);
} }
public AxSideTab GetTabAt(int x, int y) public SideTab GetTabAt(int x, int y)
{ {
int lastUpperY = 0; int lastUpperY = 0;
int i = 0; int i = 0;
for (; i < sideTabs.Count; ++i) { for (; i < sideTabs.Count; ++i) {
AxSideTab tab = sideTabs[i]; SideTab tab = sideTabs[i];
int yPos = i * (Font.Height + 4 + 1); int yPos = i * (Font.Height + 4 + 1);
@ -375,7 +376,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
for (int j = sideTabs.Count - 1; j > i; --j) { for (int j = sideTabs.Count - 1; j > i; --j) {
AxSideTab tab = sideTabs[j]; SideTab tab = sideTabs[j];
int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1); int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1);
@ -392,7 +393,7 @@ namespace ICSharpCode.SharpDevelop.Gui
int lastUpperY = 0; int lastUpperY = 0;
int i = 0; int i = 0;
for (; i < sideTabs.Count; ++i) { for (; i < sideTabs.Count; ++i) {
AxSideTab tab = sideTabs[i]; SideTab tab = sideTabs[i];
int yPos = i * (Font.Height + 4 + 1); int yPos = i * (Font.Height + 4 + 1);
@ -405,7 +406,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
for (int j = sideTabs.Count - 1; j > i; --j) { for (int j = sideTabs.Count - 1; j > i; --j) {
AxSideTab tab = sideTabs[j]; SideTab tab = sideTabs[j];
int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1); int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1);
@ -438,10 +439,10 @@ namespace ICSharpCode.SharpDevelop.Gui
Point p = PointToClient(new Point(e.X, e.Y)); Point p = PointToClient(new Point(e.X, e.Y));
if (e.Data.GetDataPresent(typeof(AxSideTabItem))) { if (e.Data.GetDataPresent(typeof(SideTabItem))) {
e.Effect = (e.KeyState & 8) > 0 ? DragDropEffects.Copy : DragDropEffects.Move; e.Effect = (e.KeyState & 8) > 0 ? DragDropEffects.Copy : DragDropEffects.Move;
} else if (e.Data.GetDataPresent(typeof(AxSideTab))) { } else if (e.Data.GetDataPresent(typeof(SideTab))) {
AxSideTab tab = (AxSideTab)e.Data.GetData(typeof(AxSideTab)); SideTab tab = (SideTab)e.Data.GetData(typeof(SideTab));
if (Tabs.Contains(tab)) { if (Tabs.Contains(tab)) {
Tabs.DragOverTab = tab; Tabs.DragOverTab = tab;
e.Effect = GetDragDropEffect(e); e.Effect = GetDragDropEffect(e);
@ -469,12 +470,12 @@ namespace ICSharpCode.SharpDevelop.Gui
base.OnDragDrop(e); base.OnDragDrop(e);
Point p = PointToClient(new Point(e.X, e.Y)); Point p = PointToClient(new Point(e.X, e.Y));
if (e.Data.GetDataPresent(typeof(AxSideTabItem))) { if (e.Data.GetDataPresent(typeof(SideTabItem))) {
AxSideTabItem draggedItem = (AxSideTabItem)e.Data.GetData(typeof(AxSideTabItem)); SideTabItem draggedItem = (SideTabItem)e.Data.GetData(typeof(SideTabItem));
// drag tabitem into other sideTab // drag tabitem into other sideTab
AxSideTab tab = GetTabAt(p.X, p.Y); SideTab tab = GetTabAt(p.X, p.Y);
if (tab != null) { if (tab != null) {
if (tab == Tabs.DragOverTab && tab.CanDragDrop) { if (tab == Tabs.DragOverTab && tab.CanDragDrop) {
Tabs.DragOverTab.SideTabStatus = SideTabStatus.Normal; Tabs.DragOverTab.SideTabStatus = SideTabStatus.Normal;
@ -487,7 +488,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
break; break;
case DragDropEffects.Copy: case DragDropEffects.Copy:
AxSideTabItem newItem = draggedItem.Clone(); SideTabItem newItem = draggedItem.Clone();
Tabs.DragOverTab.Items.Add(newItem); Tabs.DragOverTab.Items.Add(newItem);
break; break;
} }
@ -508,9 +509,9 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
void ClearDraggings(AxSideTab tab) void ClearDraggings(SideTab tab)
{ {
foreach (AxSideTabItem item in tab.Items) { foreach (SideTabItem item in tab.Items) {
if (item.SideTabItemStatus == SideTabItemStatus.Drag) { if (item.SideTabItemStatus == SideTabItemStatus.Drag) {
item.SideTabItemStatus = SideTabItemStatus.Normal; item.SideTabItemStatus = SideTabItemStatus.Normal;
} }
@ -523,9 +524,9 @@ namespace ICSharpCode.SharpDevelop.Gui
base.OnDragOver(e); base.OnDragOver(e);
Point p = PointToClient(new Point(e.X, e.Y)); Point p = PointToClient(new Point(e.X, e.Y));
if (e.Data.GetDataPresent(typeof(AxSideTabItem))) { if (e.Data.GetDataPresent(typeof(SideTabItem))) {
ClearDraggings(activeTab); ClearDraggings(activeTab);
AxSideTab tab = GetTabAt(p.X, p.Y); SideTab tab = GetTabAt(p.X, p.Y);
if (tab != null && tab != Tabs.DragOverTab) { if (tab != null && tab != Tabs.DragOverTab) {
if (tab.CanDragDrop) { if (tab.CanDragDrop) {
Tabs.DragOverTab = tab; Tabs.DragOverTab = tab;
@ -540,7 +541,7 @@ namespace ICSharpCode.SharpDevelop.Gui
e.Effect = DragDropEffects.None; e.Effect = DragDropEffects.None;
} }
} else if (e.Data.GetDataPresent(typeof(string))) { } else if (e.Data.GetDataPresent(typeof(string))) {
AxSideTab oldTab = Tabs.DragOverTab; SideTab oldTab = Tabs.DragOverTab;
if (activeTabMemberArea.Contains(p.X, p.Y)) { if (activeTabMemberArea.Contains(p.X, p.Y)) {
Tabs.DragOverTab = activeTab; Tabs.DragOverTab = activeTab;
} else { } else {
@ -549,10 +550,10 @@ namespace ICSharpCode.SharpDevelop.Gui
if (oldTab != Tabs.DragOverTab) { if (oldTab != Tabs.DragOverTab) {
Refresh(); Refresh();
} }
} else if (e.Data.GetDataPresent(typeof(AxSideTab))) { } else if (e.Data.GetDataPresent(typeof(SideTab))) {
int tabIndex = GetTabIndexAt(p.X, p.Y); int tabIndex = GetTabIndexAt(p.X, p.Y);
if (tabIndex != -1) { if (tabIndex != -1) {
AxSideTab tab = Tabs.DragOverTab; SideTab tab = Tabs.DragOverTab;
Tabs.Remove(tab); Tabs.Remove(tab);
Tabs.Insert(tabIndex, tab); Tabs.Insert(tabIndex, tab);
Refresh(); Refresh();
@ -626,7 +627,7 @@ namespace ICSharpCode.SharpDevelop.Gui
if (e.Button == MouseButtons.Left) { if (e.Button == MouseButtons.Left) {
mouseDownPosition = e.Location; mouseDownPosition = e.Location;
AxSideTab tab = GetTabAt(e.X, e.Y); SideTab tab = GetTabAt(e.X, e.Y);
if (tab != null) { if (tab != null) {
mouseDownTab = tab; mouseDownTab = tab;
tab.SideTabStatus = SideTabStatus.Selected; tab.SideTabStatus = SideTabStatus.Selected;
@ -634,7 +635,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
} }
AxSideTab mouseDownTab = null; SideTab mouseDownTab = null;
protected override void OnMouseUp(MouseEventArgs e) protected override void OnMouseUp(MouseEventArgs e)
{ {
@ -659,7 +660,7 @@ namespace ICSharpCode.SharpDevelop.Gui
int lastUpperY = 0; int lastUpperY = 0;
for (; i < sideTabs.Count; ++i) { for (; i < sideTabs.Count; ++i) {
AxSideTab tab = sideTabs[i]; SideTab tab = sideTabs[i];
int yPos = i * (Font.Height + 4 + 1); int yPos = i * (Font.Height + 4 + 1);
tab.DrawTabHeader(g, Font, new Point(0, yPos), Width); tab.DrawTabHeader(g, Font, new Point(0, yPos), Width);
@ -673,7 +674,7 @@ namespace ICSharpCode.SharpDevelop.Gui
int bottom = Height; int bottom = Height;
for (int j = sideTabs.Count - 1; j > i; --j) { for (int j = sideTabs.Count - 1; j > i; --j) {
AxSideTab tab = sideTabs[j]; SideTab tab = sideTabs[j];
int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1); int yPos = Height - (-j + sideTabs.Count ) * (Font.Height + 4 + 1);
@ -706,10 +707,10 @@ namespace ICSharpCode.SharpDevelop.Gui
protected class SideTabContent : UserControl protected class SideTabContent : UserControl
{ {
AxSideBar sideBar = null; SideBarControl sideBar = null;
Point mousePosition; Point mousePosition;
public AxSideBar SideBar { public SideBarControl SideBar {
get { get {
return sideBar; return sideBar;
} }
@ -746,7 +747,7 @@ namespace ICSharpCode.SharpDevelop.Gui
base.OnDragEnter(e); base.OnDragEnter(e);
sideBar.ExitRenameMode(); sideBar.ExitRenameMode();
if (sideBar.activeTab.CanDragDrop) { if (sideBar.activeTab.CanDragDrop) {
if (e.Data.GetDataPresent(typeof(string)) || e.Data.GetDataPresent(typeof(AxSideTabItem))) { if (e.Data.GetDataPresent(typeof(string)) || e.Data.GetDataPresent(typeof(SideTabItem))) {
e.Effect = GetDragDropEffect(e); e.Effect = GetDragDropEffect(e);
} else { } else {
e.Effect = DragDropEffects.None; e.Effect = DragDropEffects.None;
@ -769,11 +770,11 @@ namespace ICSharpCode.SharpDevelop.Gui
base.OnDragDrop(e); base.OnDragDrop(e);
Point p = PointToClient(new Point(e.X, e.Y)); Point p = PointToClient(new Point(e.X, e.Y));
if (e.Data.GetDataPresent(typeof(AxSideTabItem))) { if (e.Data.GetDataPresent(typeof(SideTabItem))) {
AxSideTabItem draggedItem = (AxSideTabItem)e.Data.GetData(typeof(AxSideTabItem)); SideTabItem draggedItem = (SideTabItem)e.Data.GetData(typeof(SideTabItem));
switch (e.Effect) { switch (e.Effect) {
case DragDropEffects.Move: case DragDropEffects.Move:
AxSideTabItem item = sideBar.activeTab.GetItemAt(p.X, p.Y); SideTabItem item = sideBar.activeTab.GetItemAt(p.X, p.Y);
if (item != sideBar.activeTab.ChoosedItem) { if (item != sideBar.activeTab.ChoosedItem) {
int idx = sideBar.activeTab.Items.DraggedIndex; int idx = sideBar.activeTab.Items.DraggedIndex;
@ -784,7 +785,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
break; break;
case DragDropEffects.Copy: case DragDropEffects.Copy:
AxSideTabItem newItem = draggedItem.Clone(); SideTabItem newItem = draggedItem.Clone();
newItem.SideTabItemStatus = SideTabItemStatus.Normal; newItem.SideTabItemStatus = SideTabItemStatus.Normal;
sideBar.activeTab.Items.Add(newItem); sideBar.activeTab.Items.Add(newItem);
break; break;
@ -805,9 +806,9 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
void ClearDraggings(AxSideTab tab) void ClearDraggings(SideTab tab)
{ {
foreach (AxSideTabItem item in tab.Items) { foreach (SideTabItem item in tab.Items) {
if (item.SideTabItemStatus == SideTabItemStatus.Drag) { if (item.SideTabItemStatus == SideTabItemStatus.Drag) {
item.SideTabItemStatus = SideTabItemStatus.Normal; item.SideTabItemStatus = SideTabItemStatus.Normal;
} }
@ -820,10 +821,10 @@ namespace ICSharpCode.SharpDevelop.Gui
sideBar.ExitRenameMode(); sideBar.ExitRenameMode();
Point p = PointToClient(new Point(e.X, e.Y)); Point p = PointToClient(new Point(e.X, e.Y));
if (e.Data.GetDataPresent(typeof(AxSideTabItem))) { if (e.Data.GetDataPresent(typeof(SideTabItem))) {
// drag move item inside the activeTabMembarArea // drag move item inside the activeTabMembarArea
if (sideBar.activeTab.CanDragDrop) { if (sideBar.activeTab.CanDragDrop) {
AxSideTabItem item = sideBar.activeTab.GetItemAt(p.X, p.Y); SideTabItem item = sideBar.activeTab.GetItemAt(p.X, p.Y);
if (item == null) { if (item == null) {
sideBar.ClearDraggings(sideBar.activeTab); sideBar.ClearDraggings(sideBar.activeTab);
sideBar.Refresh(); sideBar.Refresh();
@ -880,7 +881,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{ {
base.OnMouseMove(e); base.OnMouseMove(e);
if (e.Button == MouseButtons.Left) { if (e.Button == MouseButtons.Left) {
AxSideTabItem item = sideBar.activeTab.GetItemAt(e.X, e.Y); SideTabItem item = sideBar.activeTab.GetItemAt(e.X, e.Y);
if (item != null) { if (item != null) {
if (IsDragStarted(mouseDownPos, e.Location)) { if (IsDragStarted(mouseDownPos, e.Location)) {
@ -894,10 +895,10 @@ namespace ICSharpCode.SharpDevelop.Gui
Refresh(); Refresh();
} }
} else { } else {
AxSideTabItem oldItem = sideBar.activeTab.SelectedItem; SideTabItem oldItem = sideBar.activeTab.SelectedItem;
sideBar.activeTab.SelectedItem = null; sideBar.activeTab.SelectedItem = null;
mousePosition = new Point(e.X, e.Y); mousePosition = new Point(e.X, e.Y);
AxSideTabItem item = sideBar.activeTab.GetItemAt(e.X, e.Y); SideTabItem item = sideBar.activeTab.GetItemAt(e.X, e.Y);
if (item != null) { if (item != null) {
sideBar.activeTab.SelectedItem = item; sideBar.activeTab.SelectedItem = item;
@ -929,13 +930,13 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public class SideTabCollection : ICollection<AxSideTab>, IEnumerable<AxSideTab> public class SideTabCollection : ICollection<SideTab>, IEnumerable<SideTab>
{ {
List<AxSideTab> list = new List<AxSideTab>(); List<SideTab> list = new List<SideTab>();
AxSideTab dragOverTab; SideTab dragOverTab;
AxSideBar sideBar; SideBarControl sideBar;
public AxSideTab this[int index] { public SideTab this[int index] {
get { get {
return list[index]; return list[index];
} }
@ -944,7 +945,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public AxSideTab DragOverTab { public SideTab DragOverTab {
get { get {
return dragOverTab; return dragOverTab;
} }
@ -958,7 +959,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
} }
public SideTabCollection(AxSideBar sideBar) public SideTabCollection(SideBarControl sideBar)
{ {
this.sideBar = sideBar; this.sideBar = sideBar;
} }
@ -980,14 +981,14 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public virtual void Add(AxSideTab item) public virtual void Add(SideTab item)
{ {
list.Add(item); list.Add(item);
} }
public virtual AxSideTab Add(string name) public virtual SideTab Add(string name)
{ {
AxSideTab tab = sideBar.SideTabFactory.CreateSideTab(sideBar, name); SideTab tab = sideBar.SideTabFactory.CreateSideTab(sideBar, name);
Add(tab); Add(tab);
return tab; return tab;
} }
@ -997,12 +998,12 @@ namespace ICSharpCode.SharpDevelop.Gui
list.Clear(); list.Clear();
} }
public bool Contains(AxSideTab item) public bool Contains(SideTab item)
{ {
return list.Contains(item); return list.Contains(item);
} }
public IEnumerator<AxSideTab> GetEnumerator() public IEnumerator<SideTab> GetEnumerator()
{ {
return list.GetEnumerator(); return list.GetEnumerator();
} }
@ -1012,28 +1013,28 @@ namespace ICSharpCode.SharpDevelop.Gui
return list.GetEnumerator(); return list.GetEnumerator();
} }
public int IndexOf(AxSideTab item) public int IndexOf(SideTab item)
{ {
return list.IndexOf(item); return list.IndexOf(item);
} }
public void CopyTo(Array dest, int index) public void CopyTo(Array dest, int index)
{ {
list.CopyTo((AxSideTab[])dest, index); list.CopyTo((SideTab[])dest, index);
} }
public virtual AxSideTab Insert(int index, AxSideTab item) public virtual SideTab Insert(int index, SideTab item)
{ {
list.Insert(index, item); list.Insert(index, item);
return item; return item;
} }
public virtual AxSideTab Insert(int index, string name) public virtual SideTab Insert(int index, string name)
{ {
return Insert(index, sideBar.SideTabFactory.CreateSideTab(sideBar, name)); return Insert(index, sideBar.SideTabFactory.CreateSideTab(sideBar, name));
} }
public bool Remove(AxSideTab item) public bool Remove(SideTab item)
{ {
if (item == sideBar.ActiveTab) { if (item == sideBar.ActiveTab) {
int index = IndexOf(item); int index = IndexOf(item);
@ -1059,7 +1060,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public void CopyTo(AxSideTab[] array, int arrayIndex) public void CopyTo(SideTab[] array, int arrayIndex)
{ {
list.CopyTo(array, arrayIndex); list.CopyTo(array, arrayIndex);
} }

108
src/Main/Base/Project/Src/Gui/Components/SideBar/AxSideTab.cs → src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideTab.cs

@ -10,9 +10,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.Widgets.SideBar
namespace ICSharpCode.SharpDevelop.Gui
{ {
public enum SideTabStatus { public enum SideTabStatus {
Normal, Normal,
@ -24,14 +22,14 @@ namespace ICSharpCode.SharpDevelop.Gui
public class SideTabEventArgs public class SideTabEventArgs
{ {
AxSideTab tab; SideTab tab;
public SideTabEventArgs(AxSideTab tab) public SideTabEventArgs(SideTab tab)
{ {
this.tab = tab; this.tab = tab;
} }
public AxSideTab SideTab { public SideTab SideTab {
get { get {
return tab; return tab;
} }
@ -42,14 +40,14 @@ namespace ICSharpCode.SharpDevelop.Gui
public class SideTabItemEventArgs public class SideTabItemEventArgs
{ {
AxSideTabItem item; SideTabItem item;
public SideTabItemEventArgs(AxSideTabItem item) public SideTabItemEventArgs(SideTabItem item)
{ {
this.item = item; this.item = item;
} }
public AxSideTabItem Item { public SideTabItem Item {
get { get {
return item; return item;
} }
@ -60,29 +58,29 @@ namespace ICSharpCode.SharpDevelop.Gui
public class SideTabItemExchangeEventArgs public class SideTabItemExchangeEventArgs
{ {
AxSideTabItem item1; SideTabItem item1;
AxSideTabItem item2; SideTabItem item2;
public SideTabItemExchangeEventArgs(AxSideTabItem item1, AxSideTabItem item2) public SideTabItemExchangeEventArgs(SideTabItem item1, SideTabItem item2)
{ {
this.item1 = item1; this.item1 = item1;
this.item2 = item2; this.item2 = item2;
} }
public AxSideTabItem Item1 { public SideTabItem Item1 {
get { get {
return item1; return item1;
} }
} }
public AxSideTabItem Item2 { public SideTabItem Item2 {
get { get {
return item2; return item2;
} }
} }
} }
public class AxSideTab public class SideTab
{ {
string name; string name;
bool canDragDrop = true; bool canDragDrop = true;
@ -91,8 +89,8 @@ namespace ICSharpCode.SharpDevelop.Gui
bool isClipboardRing = false; bool isClipboardRing = false;
SideTabItemCollection items = new SideTabItemCollection(); SideTabItemCollection items = new SideTabItemCollection();
SideTabStatus sideTabStatus; SideTabStatus sideTabStatus;
AxSideTabItem selectedItem = null; SideTabItem selectedItem = null;
AxSideTabItem choosedItem = null; SideTabItem choosedItem = null;
ImageList largeImageList = null; ImageList largeImageList = null;
ImageList smallImageList = null; ImageList smallImageList = null;
@ -199,7 +197,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public AxSideTabItem SelectedItem { public SideTabItem SelectedItem {
get { get {
return selectedItem; return selectedItem;
} }
@ -222,7 +220,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
public event EventHandler ChoosedItemChanged; public event EventHandler ChoosedItemChanged;
public AxSideTabItem ChoosedItem { public SideTabItem ChoosedItem {
get { get {
return choosedItem; return choosedItem;
} }
@ -257,23 +255,23 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
protected AxSideTab() protected SideTab()
{ {
} }
public AxSideTab(ISideTabItemFactory sideTabItemFactory) public SideTab(ISideTabItemFactory sideTabItemFactory)
{ {
SideTabItemFactory = sideTabItemFactory; SideTabItemFactory = sideTabItemFactory;
} }
public AxSideTab(AxSideBar sideBar, string name) : this(sideBar.SideTabItemFactory) public SideTab(SideBarControl sideBar, string name) : this(sideBar.SideTabItemFactory)
{ {
this.name = name; this.name = name;
SetCanRename(); SetCanRename();
items.ItemRemoved += OnSideTabItemRemoved; items.ItemRemoved += OnSideTabItemRemoved;
} }
public AxSideTab(string name) public SideTab(string name)
{ {
this.name = name; this.name = name;
SetCanRename(); SetCanRename();
@ -297,12 +295,12 @@ namespace ICSharpCode.SharpDevelop.Gui
switch (sideTabStatus) { switch (sideTabStatus) {
case SideTabStatus.Normal: case SideTabStatus.Normal:
ControlPaint.DrawBorder3D(g, new Rectangle(0, pos.Y, width - 4, font.Height + 4), Border3DStyle.RaisedInner); ControlPaint.DrawBorder3D(g, new Rectangle(0, pos.Y, width - 4, font.Height + 4), Border3DStyle.RaisedInner);
g.DrawString(StringParser.Parse(name), font, SystemBrushes.ControlText, new RectangleF(1, pos.Y + 1, width - 5, font.Height + 1)); g.DrawString(name, font, SystemBrushes.ControlText, new RectangleF(1, pos.Y + 1, width - 5, font.Height + 1));
break; break;
case SideTabStatus.Selected: case SideTabStatus.Selected:
ControlPaint.DrawBorder3D(g, new Rectangle(0, pos.Y, width - 4, font.Height + 4), Border3DStyle.Sunken); ControlPaint.DrawBorder3D(g, new Rectangle(0, pos.Y, width - 4, font.Height + 4), Border3DStyle.Sunken);
g.DrawString(StringParser.Parse(name), font, SystemBrushes.ControlText, new RectangleF(1 + 1, pos.Y + 2, width - 5, font.Height + 2)); g.DrawString(name, font, SystemBrushes.ControlText, new RectangleF(1 + 1, pos.Y + 2, width - 5, font.Height + 2));
break; break;
case SideTabStatus.Dragged: case SideTabStatus.Dragged:
Rectangle r = new Rectangle(0, pos.Y, width - 4, font.Height + 4); Rectangle r = new Rectangle(0, pos.Y, width - 4, font.Height + 4);
@ -314,7 +312,7 @@ namespace ICSharpCode.SharpDevelop.Gui
g.FillRectangle(SystemBrushes.ControlDarkDark, r); g.FillRectangle(SystemBrushes.ControlDarkDark, r);
g.DrawString(StringParser.Parse(name), font, SystemBrushes.HighlightText, new RectangleF(1 + 1, pos.Y + 2, width - 5, font.Height + 2)); g.DrawString(name, font, SystemBrushes.HighlightText, new RectangleF(1 + 1, pos.Y + 2, width - 5, font.Height + 2));
break; break;
} }
} }
@ -325,10 +323,10 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public Point GetLocation(AxSideTabItem whichItem) public Point GetLocation(SideTabItem whichItem)
{ {
for (int i = 0; i < Items.Count; ++i) { for (int i = 0; i < Items.Count; ++i) {
AxSideTabItem item = (AxSideTabItem)Items[i]; SideTabItem item = (SideTabItem)Items[i];
if (item == whichItem) { if (item == whichItem) {
return new Point(0, i * 20); return new Point(0, i * 20);
} }
@ -336,13 +334,13 @@ namespace ICSharpCode.SharpDevelop.Gui
return new Point(-1, -1); return new Point(-1, -1);
} }
public AxSideTabItem GetItemAt(int x, int y) public SideTabItem GetItemAt(int x, int y)
{ {
int index = ScrollIndex + y / 20; int index = ScrollIndex + y / 20;
return (index >= 0 && index < Items.Count) ? (AxSideTabItem)Items[index] : null; return (index >= 0 && index < Items.Count) ? (SideTabItem)Items[index] : null;
} }
public AxSideTabItem GetItemAt(Point pos) public SideTabItem GetItemAt(Point pos)
{ {
return GetItemAt(pos.X, pos.Y); return GetItemAt(pos.X, pos.Y);
} }
@ -356,7 +354,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public void DrawTabContent(Graphics g, Font f, Rectangle rectangle) public void DrawTabContent(Graphics g, Font f, Rectangle rectangle)
{ {
for (int i = 0; i + ScrollIndex < Items.Count; ++i) { for (int i = 0; i + ScrollIndex < Items.Count; ++i) {
AxSideTabItem item = (AxSideTabItem)Items[ScrollIndex + i]; SideTabItem item = (SideTabItem)Items[ScrollIndex + i];
if (rectangle.Height < i * ItemHeight) { if (rectangle.Height < i * ItemHeight) {
break; break;
} }
@ -372,8 +370,8 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </summary> /// </summary>
public void Exchange(int a, int b) public void Exchange(int a, int b)
{ {
AxSideTabItem itemA = Items[a]; SideTabItem itemA = Items[a];
AxSideTabItem itemB = Items[b]; SideTabItem itemB = Items[b];
Items[a] = itemB; Items[a] = itemB;
Items[b] = itemA; Items[b] = itemA;
OnExchange(itemA, itemB); OnExchange(itemA, itemB);
@ -393,16 +391,16 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
void OnExchange(AxSideTabItem item1, AxSideTabItem item2) void OnExchange(SideTabItem item1, SideTabItem item2)
{ {
if (ItemsExchanged != null) { if (ItemsExchanged != null) {
ItemsExchanged(this, new SideTabItemExchangeEventArgs(item1, item2)); ItemsExchanged(this, new SideTabItemExchangeEventArgs(item1, item2));
} }
} }
public class SideTabItemCollection : ICollection<AxSideTabItem>, IEnumerable<AxSideTabItem> public class SideTabItemCollection : ICollection<SideTabItem>, IEnumerable<SideTabItem>
{ {
List<AxSideTabItem> list = new List<AxSideTabItem>(); List<SideTabItem> list = new List<SideTabItem>();
ISideTabItemFactory sideTabItemFactory = new DefaultSideTabItemFactory(); ISideTabItemFactory sideTabItemFactory = new DefaultSideTabItemFactory();
public event SideTabItemEventHandler ItemRemoved; public event SideTabItemEventHandler ItemRemoved;
@ -420,9 +418,9 @@ namespace ICSharpCode.SharpDevelop.Gui
{ {
} }
public AxSideTabItem this[int index] { public SideTabItem this[int index] {
get { get {
return (AxSideTabItem)list[index]; return (SideTabItem)list[index];
} }
set { set {
list[index] = value; list[index] = value;
@ -457,19 +455,19 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public virtual void Add(AxSideTabItem item) public virtual void Add(SideTabItem item)
{ {
list.Add(item); list.Add(item);
} }
public virtual AxSideTabItem Add(string name, object content) public virtual SideTabItem Add(string name, object content)
{ {
return Add(name, content, -1); return Add(name, content, -1);
} }
public virtual AxSideTabItem Add(string name, object content, int imageIndex) public virtual SideTabItem Add(string name, object content, int imageIndex)
{ {
AxSideTabItem item = sideTabItemFactory.CreateSideTabItem(name, imageIndex); SideTabItem item = sideTabItemFactory.CreateSideTabItem(name, imageIndex);
item.Tag = content; item.Tag = content;
Add(item); Add(item);
return item; return item;
@ -480,12 +478,12 @@ namespace ICSharpCode.SharpDevelop.Gui
list.Clear(); list.Clear();
} }
public bool Contains(AxSideTabItem item) public bool Contains(SideTabItem item)
{ {
return list.Contains(item); return list.Contains(item);
} }
public IEnumerator<AxSideTabItem> GetEnumerator() public IEnumerator<SideTabItem> GetEnumerator()
{ {
return list.GetEnumerator(); return list.GetEnumerator();
} }
@ -495,35 +493,35 @@ namespace ICSharpCode.SharpDevelop.Gui
return list.GetEnumerator(); return list.GetEnumerator();
} }
public int IndexOf(AxSideTabItem item) public int IndexOf(SideTabItem item)
{ {
return list.IndexOf(item); return list.IndexOf(item);
} }
public void CopyTo(Array dest, int index) public void CopyTo(Array dest, int index)
{ {
list.CopyTo((AxSideTabItem[])dest, index); list.CopyTo((SideTabItem[])dest, index);
} }
public virtual AxSideTabItem Insert(int index, AxSideTabItem item) public virtual SideTabItem Insert(int index, SideTabItem item)
{ {
list.Insert(index, item); list.Insert(index, item);
return item; return item;
} }
public virtual AxSideTabItem Insert(int index, string name, object content) public virtual SideTabItem Insert(int index, string name, object content)
{ {
return Insert(index, name, content, -1); return Insert(index, name, content, -1);
} }
public virtual AxSideTabItem Insert(int index, string name, object content, int imageIndex) public virtual SideTabItem Insert(int index, string name, object content, int imageIndex)
{ {
AxSideTabItem item = sideTabItemFactory.CreateSideTabItem(name, imageIndex); SideTabItem item = sideTabItemFactory.CreateSideTabItem(name, imageIndex);
item.Tag = content; item.Tag = content;
return Insert(index, item); return Insert(index, item);
} }
public virtual bool Remove(AxSideTabItem item) public virtual bool Remove(SideTabItem item)
{ {
bool r = list.Remove(item); bool r = list.Remove(item);
OnItemRemoved(item); OnItemRemoved(item);
@ -535,12 +533,12 @@ namespace ICSharpCode.SharpDevelop.Gui
if (index < 0 || index >= list.Count) { if (index < 0 || index >= list.Count) {
return; return;
} }
AxSideTabItem item = this[index]; SideTabItem item = this[index];
list.Remove(item); list.Remove(item);
OnItemRemoved(item); OnItemRemoved(item);
} }
void OnItemRemoved(AxSideTabItem item) void OnItemRemoved(SideTabItem item)
{ {
if (ItemRemoved != null) { if (ItemRemoved != null) {
ItemRemoved(this, new SideTabItemEventArgs(item)); ItemRemoved(this, new SideTabItemEventArgs(item));
@ -553,7 +551,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public void CopyTo(AxSideTabItem[] array, int arrayIndex) public void CopyTo(SideTabItem[] array, int arrayIndex)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

14
src/Main/Base/Project/Src/Gui/Components/SideBar/AxSideTabItem.cs → src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideTabItem.cs

@ -9,7 +9,7 @@ using System;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Widgets.SideBar
{ {
public enum SideTabItemStatus { public enum SideTabItemStatus {
Normal, Normal,
@ -18,7 +18,7 @@ namespace ICSharpCode.SharpDevelop.Gui
Drag Drag
} }
public class AxSideTabItem public class SideTabItem
{ {
string name; string name;
object tag; object tag;
@ -81,7 +81,7 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public AxSideTabItem(string name) public SideTabItem(string name)
{ {
int idx = name.IndexOf("\n"); int idx = name.IndexOf("\n");
if (idx > 0) { if (idx > 0) {
@ -91,19 +91,19 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public AxSideTabItem(string name, object tag) : this(name) public SideTabItem(string name, object tag) : this(name)
{ {
this.tag = tag; this.tag = tag;
} }
public AxSideTabItem(string name, object tag, Bitmap icon) : this(name, tag) public SideTabItem(string name, object tag, Bitmap icon) : this(name, tag)
{ {
this.icon = new Bitmap(icon); this.icon = new Bitmap(icon);
} }
public AxSideTabItem Clone() public SideTabItem Clone()
{ {
return (AxSideTabItem)MemberwiseClone(); return (SideTabItem)MemberwiseClone();
} }
public virtual void DrawItem(Graphics g, Font f, Rectangle rectangle) public virtual void DrawItem(Graphics g, Font f, Rectangle rectangle)
Loading…
Cancel
Save