diff --git a/comp/src/gb.form/.src/Button/ButtonBox.class b/comp/src/gb.form/.src/Button/ButtonBox.class index c9f11b2df..fad35d12f 100644 --- a/comp/src/gb.form/.src/Button/ButtonBox.class +++ b/comp/src/gb.form/.src/Button/ButtonBox.class @@ -231,8 +231,8 @@ Public Sub Background_Arrange() X = FW For Each hCtrl In aCtrl hCtrl.W = Desktop.Scale * 3 - hCtrl.Move(X, FH, hCtrl.W, H) - X += hCtrl.W + hCtrl.Move(X, FH, H, H) + X += H Next If $hFilter Then $hTextBox.Move(X, FH, Me.W - FW - X - H, H) @@ -244,8 +244,8 @@ Public Sub Background_Arrange() X = Me.W - FW For Each hCtrl In aCtrl hCtrl.W = Desktop.Scale * 3 - X -= hCtrl.W - hCtrl.Move(X, FH, hCtrl.W, H) + X -= H + hCtrl.Move(X, FH, H, H) Next If $hFilter Then $hFilter.Move(FW, FH, H, H) @@ -332,6 +332,7 @@ Private Sub Filter_Write(Value As Boolean) $hTimer.Delay = 500 Else $hFilter.Delete + $hFilter = Null Endif Background_Arrange diff --git a/comp/src/gb.form/.src/Color/ColorPalette.class b/comp/src/gb.form/.src/Color/ColorPalette.class index cd61aa3b5..4a6b36193 100644 --- a/comp/src/gb.form/.src/Color/ColorPalette.class +++ b/comp/src/gb.form/.src/Color/ColorPalette.class @@ -87,8 +87,6 @@ Public Sub Clear() End - - Public Sub Add((Color) As Integer) Dim iPos As Integer diff --git a/comp/src/gb.form/.src/DocumentView/DocumentView.class b/comp/src/gb.form/.src/DocumentView/DocumentView.class index f058ca459..b77250c41 100644 --- a/comp/src/gb.form/.src/DocumentView/DocumentView.class +++ b/comp/src/gb.form/.src/DocumentView/DocumentView.class @@ -80,6 +80,7 @@ Event Layout(Page As Integer) Event Draw(Page As Integer, Width As Integer, Height As Integer) Event Finished Event Zoom + Private $bDesaturate As Boolean Public Sub _new() diff --git a/comp/src/gb.form/.src/TabPanel/TabPanel.class b/comp/src/gb.form/.src/TabPanel/TabPanel.class index 612d59324..4df1fad8c 100644 --- a/comp/src/gb.form/.src/TabPanel/TabPanel.class +++ b/comp/src/gb.form/.src/TabPanel/TabPanel.class @@ -27,6 +27,8 @@ Property Read Current As _TabPanelContainer Property Background As Integer Property Moveable As Boolean Property CloseButton As Boolean +Property TabBarPaddingStart As Integer +Property TabBarPaddingEnd As Integer Private $hTabBar As DrawingArea Private $hTabBarContainer As DrawingArea @@ -59,6 +61,10 @@ Private $hClosePanel As DrawingArea Private $hObserver As Observer Private $iTabBarContainerH As Integer +Private $hTabBarLeft As DrawingArea +Private $hTabBarRight As DrawingArea +Private $bUpdateLayout As Boolean + Public Sub _new() $hTabBar = New DrawingArea(Me) As "TabBar" @@ -236,18 +242,44 @@ Private Sub UpdateLayout() Dim W As Integer Dim H As Integer Dim X As Integer + Dim PL, PR As Integer + Dim Y As Integer + + If $bUpdateLayout Then Return + $bUpdateLayout = True $hTabBar.Height = $hTabBar.Font.Height + Desktop.Scale * 2 W = Me.W H = $hTabBar.H + Y = If(Align.Top, 0, $hTabBar.Y) + + PL = TabBarPaddingStart_Read() + PR = TabBarPaddingEnd_Read() + + If System.RightToLeft Then + If $hTabBarLeft Then $hTabBarLeft.Move(W - PL, Y, PL, H) + If $hTabBarRight Then $hTabBarRight.Move(0, Y, PR, H) + Swap PL, PR + Else + If $hTabBarLeft Then $hTabBarLeft.Move(0, Y, PL, H) + If $hTabBarRight Then $hTabBarRight.Move(W - PR, Y, PR, H) + Endif + + X += PL + W -= PL + PR + If Not $hClosePanel Or If W < H * 3 Then - H = 0 If $hClosePanel Then $hClosePanel.Hide Else - X = If(System.RightToLeft, H, 0) - W -= H + W -= H - 1 + If System.RightToLeft Then + $hClosePanel.Move(X - (H - 1), Y, H - 1, H) + Else + $hClosePanel.Move(X + W, Y, H - 1, H) + Endif + $hCloseAll.Move(0, 0, H - 1, H - 1) $hClosePanel.Show $hClosePanel.Raise Endif @@ -257,12 +289,10 @@ Private Sub UpdateLayout() Select Case $iOrientation Case Align.Top $hTabBar.Move(X, 0, W, $hTabBar.H) - If H And If $hClosePanel Then $hClosePanel.Move(If(System.RightToLeft, 0, W), 0, H, H) $hPanel.Move(0, $hTabBar.H, Me.W, Me.H - $hTabBar.H) '$hTabBar.Next = $hPanel Case Align.Bottom $hTabBar.Move(X, Me.H - $hTabBar.H, W, $hTabBar.H) - If H And If $hClosePanel Then $hClosePanel.Move(If(System.RightToLeft, 0, W), $hTabBar.Y, H, H) $hPanel.Move(0, 0, Me.W, Me.H - $hTabBar.H) 'Me._Arrangement = Arrange.Vertical '$hPanel.Next = $hTabBar @@ -282,6 +312,8 @@ Private Sub UpdateLayout() $hTabBarContainer.Arrangement = Arrange.Horizontal _EnsureCurrentVisible + $bUpdateLayout = False + End Public Sub TabBar_Arrange() @@ -940,7 +972,6 @@ Private Sub CloseButton_Write(Value As Boolean) Me._Container = Null $hClosePanel = New DrawingArea(Me) As "ClosePanel" - $hClosePanel.Arrangement = Arrange.Fill $hCloseAll = New ToolButton($hClosePanel) As "CloseAll" $hCloseAll.Picture = Picture["icon:/small/close"] $hCloseAll.Show @@ -980,3 +1011,63 @@ Public Sub CloseAll_Click() End +Private Function TabBarPaddingStart_Read() As Integer + + If $hTabBarLeft Then Return $hTabBarLeft.W + +End + +Private Sub TabBarPaddingStart_Write(Value As Integer) + + Dim hSave As Container + + If TabBarPaddingStart_Read() = Value Then Return + If Value > 0 Then + If Not $hTabBarLeft Then + hSave = Me._Container + Me._Container = Null + $hTabBarLeft = New DrawingArea(Me) As "ClosePanel" + Me._Container = hSave + $hTabBarLeft.Ignore = True + Endif + $hTabBarLeft.W = Value + Else + If $hTabBarLeft Then + $hTabBarLeft.Delete + $hTabBarLeft = Null + Endif + Endif + UpdateLayout + +End + +Private Function TabBarPaddingEnd_Read() As Integer + + If $hTabBarRight Then Return $hTabBarRight.W + +End + +Private Sub TabBarPaddingEnd_Write(Value As Integer) + + Dim hSave As Container + + If TabBarPaddingEnd_Read() = Value Then Return + If Value > 0 Then + If Not $hTabBarRight Then + hSave = Me._Container + Me._Container = Null + $hTabBarRight = New DrawingArea(Me) As "ClosePanel" + Me._Container = hSave + $hTabBarRight.Ignore = True + Endif + $hTabBarRight.W = Value + Else + If $hTabBarRight Then + $hTabBarRight.Delete + $hTabBarRight = Null + Endif + Endif + UpdateLayout + +End + diff --git a/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class b/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class index c98104dfd..77f480a61 100644 --- a/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class +++ b/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class @@ -192,7 +192,7 @@ Public Sub DrawingArea_Draw() Case Align.Top If $bSelected Then - If Not bFirst Or If bBorder Or If System.RightToLeft Then Draw.Line(0, Me.H - 1, 0, 0) + If Not bFirst Or If bBorder Or If System.RightToLeft Or If hTabPanel.TabBarPaddingStart Then Draw.Line(0, Me.H - 1, 0, 0) If Not bFirst Or If bBorder Or If Not System.RightToLeft Then Draw.Line(Me.W - 1, 0, Me.W - 1, Me.H - 1) If bBorder Then Draw.Line(0, 0, Me.W - 1, 0) Else @@ -201,7 +201,7 @@ Public Sub DrawingArea_Draw() Case Align.Bottom If $bSelected Then - If Not bFirst Or If bBorder Or If System.RightToLeft Then Draw.Line(0, 0, 0, Me.H - 1) + If Not bFirst Or If bBorder Or If System.RightToLeft Or If hTabPanel.TabBarPaddingStart Then Draw.Line(0, 0, 0, Me.H - 1) If Not bFirst Or If bBorder Or If Not System.RightToLeft Then Draw.Line(Me.W - 1, Me.H - 1, Me.W - 1, 0) If bBorder Then Draw.Line(0, Me.H - 1, Me.W - 1, Me.H - 1) Else