Browse Source

Merge pull request #603 from jogibear9988/SideTabGdiIssues

Fixes DPI issues for SideTab
pull/606/head
Andreas Weizel 12 years ago
parent
commit
9deca6854d
  1. 16
      src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideTab.cs

16
src/Main/ICSharpCode.SharpDevelop.Widgets/Project/SideBar/SideTab.cs

@ -106,6 +106,8 @@ namespace ICSharpCode.SharpDevelop.Widgets.SideBar
ImageList smallImageList = null; ImageList smallImageList = null;
int scrollIndex = 0; int scrollIndex = 0;
float dpiY = 96.0F;
public bool Hidden = false; public bool Hidden = false;
public int ScrollIndex { public int ScrollIndex {
@ -266,13 +268,17 @@ namespace ICSharpCode.SharpDevelop.Widgets.SideBar
{ {
} }
public SideTab(ISideTabItemFactory sideTabItemFactory) private SideTab(ISideTabItemFactory sideTabItemFactory)
{ {
SideTabItemFactory = sideTabItemFactory; SideTabItemFactory = sideTabItemFactory;
} }
public SideTab(SideBarControl sideBar, string name) : this(sideBar.SideTabItemFactory) public SideTab(SideBarControl sideBar, string name) : this(sideBar.SideTabItemFactory)
{ {
var g = sideBar.CreateGraphics();
dpiY = g.DpiY;
g.Dispose();
this.Name = name; this.Name = name;
SetCanRename(); SetCanRename();
items.ItemRemoved += OnSideTabItemRemoved; items.ItemRemoved += OnSideTabItemRemoved;
@ -326,7 +332,7 @@ namespace ICSharpCode.SharpDevelop.Widgets.SideBar
public int Height { public int Height {
get { get {
return Items.Count * 20; return Items.Count * ItemHeight;
} }
} }
@ -335,7 +341,7 @@ namespace ICSharpCode.SharpDevelop.Widgets.SideBar
for (int i = 0; i < Items.Count; ++i) { for (int i = 0; i < Items.Count; ++i) {
SideTabItem item = (SideTabItem)Items[i]; SideTabItem item = (SideTabItem)Items[i];
if (item == whichItem) { if (item == whichItem) {
return new Point(0, i * 20); return new Point(0, i * ItemHeight);
} }
} }
return new Point(-1, -1); return new Point(-1, -1);
@ -343,7 +349,7 @@ namespace ICSharpCode.SharpDevelop.Widgets.SideBar
public SideTabItem GetItemAt(int x, int y) public SideTabItem GetItemAt(int x, int y)
{ {
int index = ScrollIndex + y / 20; int index = ScrollIndex + y / ItemHeight;
return (index >= 0 && index < Items.Count) ? (SideTabItem)Items[index] : null; return (index >= 0 && index < Items.Count) ? (SideTabItem)Items[index] : null;
} }
@ -354,7 +360,7 @@ namespace ICSharpCode.SharpDevelop.Widgets.SideBar
public int ItemHeight { public int ItemHeight {
get { get {
return 20; return (int)(20 * (dpiY / 96)); ;
} }
} }

Loading…
Cancel
Save