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 20 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 @@ @@ -1,11 +1,19 @@
<Components version="1.0">
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="CreatedObject0" />
<ClientSize value="{Width=368, Height=272}" />
<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>
<Name value="showToolBarCheckBox" />
<Location value="{X=8,Y=165}" />
<Location value="{X=8,Y=161}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.ShowToolBarCheckBox}" />
<TabIndex value="3" />
@ -33,7 +41,7 @@ @@ -33,7 +41,7 @@
<Name value="preferProjectAmbienceCheckBox" />
<Location value="{X=8,Y=97}" />
<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" />
<Size value="{Width=336, Height=24}" />
</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 @@ -36,6 +36,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
Get<CheckBox>("showStatusBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", 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()
@ -44,6 +45,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -44,6 +45,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
PropertyService.Set("SharpDevelop.UI.CurrentAmbience", ((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text);
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.UseProfessionalRenderer", Get<CheckBox>("useProfessionalStyle").Checked);
AmbienceService.UseProjectAmbienceIfPossible = Get<CheckBox>("preferProjectAmbience").Checked;
return true;
}

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

@ -139,6 +139,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -139,6 +139,8 @@ namespace ICSharpCode.SharpDevelop.Gui
public void InitializeWorkspace()
{
UpdateRenderer();
MenuComplete += new EventHandler(SetStandardStatusBar);
SetStandardStatusBar(null, null);
@ -226,6 +228,17 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -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()
{
RightToLeft = RightToLeftConverter.RightToLeft;
@ -448,6 +461,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -448,6 +461,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void CreateMainMenu()
{
TopMenu = new MenuStrip();
TopMenu.Renderer = MenuService.Renderer;
TopMenu.Items.Clear();
try {
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 @@ -25,7 +25,7 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </summary>
public class SdiWorkbenchLayout : IWorkbenchLayout
{
Form wbForm;
DefaultWorkbench wbForm;
DockPanel dockPanel;
Dictionary<string, PadContentWrapper> contentHash = new Dictionary<string, PadContentWrapper>();
@ -63,10 +63,11 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -63,10 +63,11 @@ namespace ICSharpCode.SharpDevelop.Gui
public void Attach(IWorkbench workbench)
{
wbForm = (Form)workbench;
wbForm = (DefaultWorkbench)workbench;
wbForm.SuspendLayout();
wbForm.Controls.Clear();
toolStripContainer = new ToolStripContainer();
toolStripContainer.SuspendLayout();
toolStripContainer.Dock = DockStyle.Fill;
// RaftingContainer topRaftingContainer = new System.Windows.Forms.RaftingContainer();
@ -120,6 +121,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -120,6 +121,7 @@ namespace ICSharpCode.SharpDevelop.Gui
// bottomRaftingContainer.ResumeLayout(false);
// bottomRaftingContainer.PerformLayout();
toolStripContainer.ResumeLayout(false);
wbForm.ResumeLayout(false);
}
@ -163,24 +165,33 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -163,24 +165,33 @@ namespace ICSharpCode.SharpDevelop.Gui
void ShowToolBars()
{
DefaultWorkbench wb = (DefaultWorkbench)wbForm;
if (wb.ToolBars != null) {
foreach (ToolStrip toolBar in wb.ToolBars) {
if (wbForm.ToolBars != null) {
ArrayList oldControls = new ArrayList();
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)) {
toolStripContainer.ContentPanel.Controls.Add(toolBar);
}
}
for (int i = 1; i < oldControls.Count; i++) {
toolStripContainer.ContentPanel.Controls.Add(oldControls[i] as Control);
}
}
}
void HideToolBars()
{
// TODO: Implement HIDE TOOLBARS.
// DefaultWorkbench wb = (DefaultWorkbench)wbForm;
// if (wb.ToolStripManager.ToolStrips.Count != 1) {
// wb.ToolStripManager.ToolStrips.Clear();
// wb.ToolStripManager.ToolStrips.Add(wb.TopMenu);
// }
if (wbForm.ToolBars != null) {
foreach (ToolStrip toolBar in wbForm.ToolBars) {
if (toolStripContainer.ContentPanel.Controls.Contains(toolBar)) {
toolStripContainer.ContentPanel.Controls.Remove(toolBar);
}
}
}
}
DockContent GetContent(string padTypeName)

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

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

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

@ -13,6 +13,23 @@ namespace ICSharpCode.Core @@ -13,6 +13,23 @@ namespace ICSharpCode.Core
{
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)
{
return (ToolStripItem[])(treeNode.BuildChildItems(owner)).ToArray(typeof(ToolStripItem));
@ -21,6 +38,7 @@ namespace ICSharpCode.Core @@ -21,6 +38,7 @@ namespace ICSharpCode.Core
public static ToolStrip CreateToolStrip(object owner, AddInTreeNode treeNode)
{
ToolStrip toolStrip = new ToolStrip();
if (Renderer != null) toolStrip.Renderer = Renderer;
toolStrip.Items.AddRange(CreateToolStripItems(owner, treeNode));
UpdateToolbar(toolStrip); // setting Visible is only possible after the items have been added
new LanguageChangeWatcher(toolStrip);
@ -32,13 +50,18 @@ namespace ICSharpCode.Core @@ -32,13 +50,18 @@ namespace ICSharpCode.Core
public LanguageChangeWatcher(ToolStrip toolStrip) {
this.toolStrip = toolStrip;
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);
}
void OnRendererChanged(object sender, EventArgs e) {
toolStrip.Renderer = Renderer ?? new ToolStripProfessionalRenderer();
}
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