Browse Source

Add option to choose between "professional" menu style and system menu style.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@443 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
8d734c3fd4
  1. BIN
      data/resources/StringResources.ar.resources
  2. BIN
      data/resources/StringResources.bg.resources
  3. BIN
      data/resources/StringResources.cn-big.resources
  4. BIN
      data/resources/StringResources.cn-gb.resources
  5. BIN
      data/resources/StringResources.cz.resources
  6. BIN
      data/resources/StringResources.de.resources
  7. BIN
      data/resources/StringResources.dk.resources
  8. BIN
      data/resources/StringResources.es-mx.resources
  9. BIN
      data/resources/StringResources.es.resources
  10. BIN
      data/resources/StringResources.fi.resources
  11. BIN
      data/resources/StringResources.fr.resources
  12. BIN
      data/resources/StringResources.hu.resources
  13. BIN
      data/resources/StringResources.it.resources
  14. BIN
      data/resources/StringResources.jp.resources
  15. BIN
      data/resources/StringResources.kr.resources
  16. BIN
      data/resources/StringResources.lt.resources
  17. BIN
      data/resources/StringResources.nl.resources
  18. BIN
      data/resources/StringResources.pl.resources
  19. BIN
      data/resources/StringResources.pt-br.resources
  20. BIN
      data/resources/StringResources.pt.resources
  21. BIN
      data/resources/StringResources.ro.resources
  22. BIN
      data/resources/StringResources.ru.resources
  23. BIN
      data/resources/StringResources.se.resources
  24. BIN
      data/resources/StringResources.sl.resources
  25. BIN
      data/resources/StringResources.sr.resources
  26. BIN
      data/resources/StringResources.tr.resources
  27. 14
      src/Main/Base/Project/Resources/SelectStylePanel.xfrm
  28. 2
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs
  29. 14
      src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs
  30. 33
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs
  31. 3
      src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs
  32. 4
      src/Main/Core/Project/Src/Services/MenuService/MenuService.cs
  33. 29
      src/Main/Core/Project/Src/Services/ToolBarService/ToolBarService.cs
  34. BIN
      src/Main/StartUp/Project/Resources/StringResources.resources

BIN
data/resources/StringResources.ar.resources

Binary file not shown.

BIN
data/resources/StringResources.bg.resources

Binary file not shown.

BIN
data/resources/StringResources.cn-big.resources

Binary file not shown.

BIN
data/resources/StringResources.cn-gb.resources

Binary file not shown.

BIN
data/resources/StringResources.cz.resources

Binary file not shown.

BIN
data/resources/StringResources.de.resources

Binary file not shown.

BIN
data/resources/StringResources.dk.resources

Binary file not shown.

BIN
data/resources/StringResources.es-mx.resources

Binary file not shown.

BIN
data/resources/StringResources.es.resources

Binary file not shown.

BIN
data/resources/StringResources.fi.resources

Binary file not shown.

BIN
data/resources/StringResources.fr.resources

Binary file not shown.

BIN
data/resources/StringResources.hu.resources

Binary file not shown.

BIN
data/resources/StringResources.it.resources

Binary file not shown.

BIN
data/resources/StringResources.jp.resources

Binary file not shown.

BIN
data/resources/StringResources.kr.resources

Binary file not shown.

BIN
data/resources/StringResources.lt.resources

Binary file not shown.

BIN
data/resources/StringResources.nl.resources

Binary file not shown.

BIN
data/resources/StringResources.pl.resources

Binary file not shown.

BIN
data/resources/StringResources.pt-br.resources

Binary file not shown.

BIN
data/resources/StringResources.pt.resources

Binary file not shown.

BIN
data/resources/StringResources.ro.resources

Binary file not shown.

BIN
data/resources/StringResources.ru.resources

Binary file not shown.

BIN
data/resources/StringResources.se.resources

Binary file not shown.

BIN
data/resources/StringResources.sl.resources

Binary file not shown.

BIN
data/resources/StringResources.sr.resources

Binary file not shown.

BIN
data/resources/StringResources.tr.resources

Binary file not shown.

14
src/Main/Base/Project/Resources/SelectStylePanel.xfrm

@ -1,11 +1,19 @@
<Components version="1.0"> <Components version="1.0">
<System.Windows.Forms.UserControl> <System.Windows.Forms.UserControl>
<Name value="CreatedObject0" /> <Name value="CreatedObject0" />
<ClientSize value="{Width=368, Height=272}" /> <ClientSize value="{Width=368, Height=272}" />
<Controls> <Controls>
<System.Windows.Forms.CheckBox>
<Name value="useProfessionalStyleCheckBox" />
<Location value="{X=8,Y=181}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.UseProfessionalStyleCheckBox}" />
<TabIndex value="4" />
<Size value="{Width=352, Height=24}" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox> <System.Windows.Forms.CheckBox>
<Name value="showToolBarCheckBox" /> <Name value="showToolBarCheckBox" />
<Location value="{X=8,Y=165}" /> <Location value="{X=8,Y=161}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" /> <FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.ShowToolBarCheckBox}" /> <Text value="${res:Dialog.Options.IDEOptions.SelectStyle.ShowToolBarCheckBox}" />
<TabIndex value="3" /> <TabIndex value="3" />
@ -33,7 +41,7 @@
<Name value="preferProjectAmbienceCheckBox" /> <Name value="preferProjectAmbienceCheckBox" />
<Location value="{X=8,Y=97}" /> <Location value="{X=8,Y=97}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" /> <FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Prefer project's ambience if possible" /> <Text value="${res:Dialog.Options.IDEOptions.SelectStyle.UseProjectAmbience}" />
<TabIndex value="4" /> <TabIndex value="4" />
<Size value="{Width=336, Height=24}" /> <Size value="{Width=336, Height=24}" />
</System.Windows.Forms.CheckBox> </System.Windows.Forms.CheckBox>

2
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs

@ -36,6 +36,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
Get<CheckBox>("showStatusBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", true); Get<CheckBox>("showStatusBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", true);
Get<CheckBox>("showToolBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", true); Get<CheckBox>("showToolBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", true);
Get<CheckBox>("useProfessionalStyle").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.UseProfessionalRenderer", true);
} }
public override bool StorePanelContents() public override bool StorePanelContents()
@ -44,6 +45,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
PropertyService.Set("SharpDevelop.UI.CurrentAmbience", ((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text); PropertyService.Set("SharpDevelop.UI.CurrentAmbience", ((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text);
PropertyService.Set("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", ((CheckBox)ControlDictionary["showStatusBarCheckBox"]).Checked); PropertyService.Set("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", ((CheckBox)ControlDictionary["showStatusBarCheckBox"]).Checked);
PropertyService.Set("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", ((CheckBox)ControlDictionary["showToolBarCheckBox"]).Checked); PropertyService.Set("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", ((CheckBox)ControlDictionary["showToolBarCheckBox"]).Checked);
PropertyService.Set("ICSharpCode.SharpDevelop.Gui.UseProfessionalRenderer", Get<CheckBox>("useProfessionalStyle").Checked);
AmbienceService.UseProjectAmbienceIfPossible = Get<CheckBox>("preferProjectAmbience").Checked; AmbienceService.UseProjectAmbienceIfPossible = Get<CheckBox>("preferProjectAmbience").Checked;
return true; return true;
} }

14
src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs

@ -139,6 +139,8 @@ namespace ICSharpCode.SharpDevelop.Gui
public void InitializeWorkspace() public void InitializeWorkspace()
{ {
UpdateRenderer();
MenuComplete += new EventHandler(SetStandardStatusBar); MenuComplete += new EventHandler(SetStandardStatusBar);
SetStandardStatusBar(null, null); SetStandardStatusBar(null, null);
@ -226,6 +228,17 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public void UpdateRenderer()
{
bool pro = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.UseProfessionalRenderer", true);
ToolStripRenderer renderer = pro ? (ToolStripRenderer)new ToolStripProfessionalRenderer() : new ToolStripSystemRenderer();
MenuService.Renderer = renderer;
ToolbarService.Renderer = renderer;
if (TopMenu != null) {
TopMenu.Renderer = renderer;
}
}
public void RedrawAllComponents() public void RedrawAllComponents()
{ {
RightToLeft = RightToLeftConverter.RightToLeft; RightToLeft = RightToLeftConverter.RightToLeft;
@ -448,6 +461,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void CreateMainMenu() void CreateMainMenu()
{ {
TopMenu = new MenuStrip(); TopMenu = new MenuStrip();
TopMenu.Renderer = MenuService.Renderer;
TopMenu.Items.Clear(); TopMenu.Items.Clear();
try { try {
ToolStripItem[] items = (ToolStripItem[])(AddInTree.GetTreeNode(mainMenuPath).BuildChildItems(this)).ToArray(typeof(ToolStripItem)); ToolStripItem[] items = (ToolStripItem[])(AddInTree.GetTreeNode(mainMenuPath).BuildChildItems(this)).ToArray(typeof(ToolStripItem));

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

@ -25,7 +25,7 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </summary> /// </summary>
public class SdiWorkbenchLayout : IWorkbenchLayout public class SdiWorkbenchLayout : IWorkbenchLayout
{ {
Form wbForm; DefaultWorkbench wbForm;
DockPanel dockPanel; DockPanel dockPanel;
Dictionary<string, PadContentWrapper> contentHash = new Dictionary<string, PadContentWrapper>(); Dictionary<string, PadContentWrapper> contentHash = new Dictionary<string, PadContentWrapper>();
@ -63,10 +63,11 @@ namespace ICSharpCode.SharpDevelop.Gui
public void Attach(IWorkbench workbench) public void Attach(IWorkbench workbench)
{ {
wbForm = (Form)workbench; wbForm = (DefaultWorkbench)workbench;
wbForm.SuspendLayout(); wbForm.SuspendLayout();
wbForm.Controls.Clear(); wbForm.Controls.Clear();
toolStripContainer = new ToolStripContainer(); toolStripContainer = new ToolStripContainer();
toolStripContainer.SuspendLayout();
toolStripContainer.Dock = DockStyle.Fill; toolStripContainer.Dock = DockStyle.Fill;
// RaftingContainer topRaftingContainer = new System.Windows.Forms.RaftingContainer(); // RaftingContainer topRaftingContainer = new System.Windows.Forms.RaftingContainer();
@ -120,6 +121,7 @@ namespace ICSharpCode.SharpDevelop.Gui
// bottomRaftingContainer.ResumeLayout(false); // bottomRaftingContainer.ResumeLayout(false);
// bottomRaftingContainer.PerformLayout(); // bottomRaftingContainer.PerformLayout();
toolStripContainer.ResumeLayout(false);
wbForm.ResumeLayout(false); wbForm.ResumeLayout(false);
} }
@ -163,24 +165,33 @@ namespace ICSharpCode.SharpDevelop.Gui
void ShowToolBars() void ShowToolBars()
{ {
DefaultWorkbench wb = (DefaultWorkbench)wbForm; if (wbForm.ToolBars != null) {
if (wb.ToolBars != null) { ArrayList oldControls = new ArrayList();
foreach (ToolStrip toolBar in wb.ToolBars) { foreach (Control ctl in toolStripContainer.ContentPanel.Controls) {
oldControls.Add(ctl);
}
toolStripContainer.ContentPanel.Controls.Clear();
toolStripContainer.ContentPanel.Controls.Add(oldControls[0] as Control);
foreach (ToolStrip toolBar in wbForm.ToolBars) {
if (!toolStripContainer.ContentPanel.Controls.Contains(toolBar)) { if (!toolStripContainer.ContentPanel.Controls.Contains(toolBar)) {
toolStripContainer.ContentPanel.Controls.Add(toolBar); toolStripContainer.ContentPanel.Controls.Add(toolBar);
} }
} }
for (int i = 1; i < oldControls.Count; i++) {
toolStripContainer.ContentPanel.Controls.Add(oldControls[i] as Control);
}
} }
} }
void HideToolBars() void HideToolBars()
{ {
// TODO: Implement HIDE TOOLBARS. if (wbForm.ToolBars != null) {
// DefaultWorkbench wb = (DefaultWorkbench)wbForm; foreach (ToolStrip toolBar in wbForm.ToolBars) {
// if (wb.ToolStripManager.ToolStrips.Count != 1) { if (toolStripContainer.ContentPanel.Controls.Contains(toolBar)) {
// wb.ToolStripManager.ToolStrips.Clear(); toolStripContainer.ContentPanel.Controls.Remove(toolBar);
// wb.ToolStripManager.ToolStrips.Add(wb.TopMenu); }
// } }
}
} }
DockContent GetContent(string padTypeName) DockContent GetContent(string padTypeName)

3
src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

@ -70,6 +70,9 @@ namespace ICSharpCode.SharpDevelop.Gui
case "ICSharpCode.SharpDevelop.Gui.ToolBarVisible": case "ICSharpCode.SharpDevelop.Gui.ToolBarVisible":
workbench.RedrawAllComponents(); workbench.RedrawAllComponents();
break; break;
case "ICSharpCode.SharpDevelop.Gui.UseProfessionalRenderer":
workbench.UpdateRenderer();
break;
} }
} }
} }

4
src/Main/Core/Project/Src/Services/MenuService/MenuService.cs

@ -20,6 +20,8 @@ namespace ICSharpCode.Core
{ {
public static class MenuService public static class MenuService
{ {
public static ToolStripRenderer Renderer;
public static void AddItemsToMenu(ToolStripItemCollection collection, object owner, string addInTreePath) public static void AddItemsToMenu(ToolStripItemCollection collection, object owner, string addInTreePath)
{ {
ArrayList buildItems = AddInTree.GetTreeNode(addInTreePath).BuildChildItems(owner); ArrayList buildItems = AddInTree.GetTreeNode(addInTreePath).BuildChildItems(owner);
@ -43,6 +45,7 @@ namespace ICSharpCode.Core
try { try {
ArrayList buildItems = AddInTree.GetTreeNode(addInTreePath).BuildChildItems(owner); ArrayList buildItems = AddInTree.GetTreeNode(addInTreePath).BuildChildItems(owner);
ContextMenuStrip contextMenu = new ContextMenuStrip(); ContextMenuStrip contextMenu = new ContextMenuStrip();
if (Renderer != null) contextMenu.Renderer = Renderer;
contextMenu.Items.Add(new ToolStripMenuItem("dummy")); contextMenu.Items.Add(new ToolStripMenuItem("dummy"));
contextMenu.Opening += delegate { contextMenu.Opening += delegate {
contextMenu.Items.Clear(); contextMenu.Items.Clear();
@ -123,6 +126,7 @@ namespace ICSharpCode.Core
public static void CreateQuickInsertMenu(TextBoxBase targetControl, Control popupControl, string[,] quickInsertMenuItems) public static void CreateQuickInsertMenu(TextBoxBase targetControl, Control popupControl, string[,] quickInsertMenuItems)
{ {
ContextMenuStrip contextMenu = new ContextMenuStrip(); ContextMenuStrip contextMenu = new ContextMenuStrip();
if (Renderer != null) contextMenu.Renderer = Renderer;
for (int i = 0; i < quickInsertMenuItems.GetLength(0); ++i) { for (int i = 0; i < quickInsertMenuItems.GetLength(0); ++i) {
if (quickInsertMenuItems[i, 0] == "-") { if (quickInsertMenuItems[i, 0] == "-") {
contextMenu.Items.Add(new MenuSeparator()); contextMenu.Items.Add(new MenuSeparator());

29
src/Main/Core/Project/Src/Services/ToolBarService/ToolBarService.cs

@ -13,6 +13,23 @@ namespace ICSharpCode.Core
{ {
public static class ToolbarService public static class ToolbarService
{ {
static ToolStripRenderer renderer;
public static ToolStripRenderer Renderer {
get {
return renderer;
}
set {
if (renderer != value) {
renderer = value;
if (RendererChanged != null)
RendererChanged(null, EventArgs.Empty);
}
}
}
public static event EventHandler RendererChanged;
public static ToolStripItem[] CreateToolStripItems(object owner, AddInTreeNode treeNode) public static ToolStripItem[] CreateToolStripItems(object owner, AddInTreeNode treeNode)
{ {
return (ToolStripItem[])(treeNode.BuildChildItems(owner)).ToArray(typeof(ToolStripItem)); return (ToolStripItem[])(treeNode.BuildChildItems(owner)).ToArray(typeof(ToolStripItem));
@ -21,6 +38,7 @@ namespace ICSharpCode.Core
public static ToolStrip CreateToolStrip(object owner, AddInTreeNode treeNode) public static ToolStrip CreateToolStrip(object owner, AddInTreeNode treeNode)
{ {
ToolStrip toolStrip = new ToolStrip(); ToolStrip toolStrip = new ToolStrip();
if (Renderer != null) toolStrip.Renderer = Renderer;
toolStrip.Items.AddRange(CreateToolStripItems(owner, treeNode)); toolStrip.Items.AddRange(CreateToolStripItems(owner, treeNode));
UpdateToolbar(toolStrip); // setting Visible is only possible after the items have been added UpdateToolbar(toolStrip); // setting Visible is only possible after the items have been added
new LanguageChangeWatcher(toolStrip); new LanguageChangeWatcher(toolStrip);
@ -32,13 +50,18 @@ namespace ICSharpCode.Core
public LanguageChangeWatcher(ToolStrip toolStrip) { public LanguageChangeWatcher(ToolStrip toolStrip) {
this.toolStrip = toolStrip; this.toolStrip = toolStrip;
toolStrip.Disposed += Disposed; toolStrip.Disposed += Disposed;
ResourceService.LanguageChanged += LanguageChanged; ResourceService.LanguageChanged += OnLanguageChanged;
RendererChanged += OnRendererChanged;
} }
void LanguageChanged(object sender, EventArgs e) { void OnLanguageChanged(object sender, EventArgs e) {
ToolbarService.UpdateToolbarText(toolStrip); ToolbarService.UpdateToolbarText(toolStrip);
} }
void OnRendererChanged(object sender, EventArgs e) {
toolStrip.Renderer = Renderer ?? new ToolStripProfessionalRenderer();
}
void Disposed(object sender, EventArgs e) { void Disposed(object sender, EventArgs e) {
ResourceService.LanguageChanged -= LanguageChanged; ResourceService.LanguageChanged -= OnLanguageChanged;
RendererChanged -= OnRendererChanged;
} }
} }

BIN
src/Main/StartUp/Project/Resources/StringResources.resources

Binary file not shown.
Loading…
Cancel
Save