aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS')
-rw-r--r--ShiftOS/ShiftOSTabs.vb40
1 files changed, 40 insertions, 0 deletions
diff --git a/ShiftOS/ShiftOSTabs.vb b/ShiftOS/ShiftOSTabs.vb
new file mode 100644
index 0000000..52df581
--- /dev/null
+++ b/ShiftOS/ShiftOSTabs.vb
@@ -0,0 +1,40 @@
+Public Class ShiftOSTabs
+
+ Inherits TabControl
+ Sub New()
+ SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True)
+ DoubleBuffered = True
+ SizeMode = TabSizeMode.Fixed
+ ItemSize = New Size(120, 30)
+ End Sub
+
+ Protected Overrides Sub CreateHandle()
+ MyBase.CreateHandle()
+ End Sub
+
+ Protected Overrides Sub OnPaint(e As PaintEventArgs)
+ Dim B As New Bitmap(Width, Height)
+ Dim G As Graphics = Graphics.FromImage(B)
+
+ G.Clear(Color.Gainsboro)
+
+ For i = 0 To TabCount - 1
+ Dim TabRectangle As Rectangle = GetTabRect(i)
+
+ If i = SelectedIndex Then
+ G.FillRectangle(Brushes.DarkGray, TabRectangle)
+ Else
+ G.FillRectangle(Brushes.LightGray, TabRectangle)
+ End If
+
+ G.DrawString(TabPages(i).Text, Font, Brushes.White, TabRectangle, New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
+ Next
+
+ e.Graphics.DrawImage(B.Clone, 0, 0)
+ G.Dispose() : B.Dispose()
+ MyBase.OnPaint(e)
+ End Sub
+
+End Class
+
+