Type QToolBar extends QPanel
'Public
ButtonX as integer 'Button Clicked
ShowHint as short
Hint() as string 'Hint of buttons
Enabled() as short 'Button enable or nott
Flat as short 'Flat buttons or not
imglHandle as integer 'Handle
imglDHandle as integer 'Handel 2
'Private
imgl1 as Qimagelist 'Active buttton
imgl2 as Qimagelist 'Disabel button
img as qcanvas 'on paint Buttons
Butbmp as QBitmap 'our False button
CButton as qCoolBtn ' one real button
Buttons as integer 'Number of buttons
X as Integer 'Height of bmp
Y as Integer 'Width of bmp
Sub load
With QtoolBar
.imgl1.handle = .imglHandle 'QIamgeList 1 Enabled button
.imgl2.handle = .imglDHandle 'QImageList 2 Disabled Button
.Buttons = .imgl1.Count 'How many buttons?
.X = .imgl1.Width+6.: .Y = .imgl1.Width+6 'Dimensions
if .Align =1 or .Align =2 or .Align =0 then '& position
if .Height < .X + 12 then .Height = .X + 12
if .Width < .Y*.Buttons then .Width = .Y*.Buttons + 12
else
if .Height < .X*.Buttons then .Height = .X*.Buttons + 12
if .Width < .Y + 12 then .Width = .Y +12
end if
'Drawing one false button
.ButBmp.Height = .X: .ButBmp.Width = .Y
if .Flat Then 'is a flat toolbar
.ButBmp.FillRect (0, 0, .X, .Y, &HC0C0C0)
Else 'isn`t flat tool bar
.ButBmp.FillRect (0, 0, .X, .Y, &HC0C0C0)
.ButBmp.Line (0, 0, .X-2, 0, &HFFFFFF)
.ButBmp.Line (0, 0, 0, .Y-2, &HFFFFFF)
.ButBmp.Line (1, 1, .X-3, 1, &HDFDFDF)
.ButBmp.Line (1, 1, 1, .Y-3, &HDFDFDF)
.ButBmp.Line (0, .Y-1, .X-1, .Y-1, &H000000)
.ButBmp.Line (.X-1, .Y-1, .X-1, 0, &H000000)
.ButBmp.Line (1, .Y-2, .X-2, .Y-2, &H808080)
.ButBmp.Line (.X-2, .Y-2, .X-2, 1, &H808080)
end if
'a lot of propieties
.img.parent = Qtoolbar
.img.Top = 6: .img.Left = 6
if .Align =1 or .Align =2 or .Align =0 then
.img.Height = .X: .img.Width = .Buttons*.X
else
.img.Width = .Y: .img.Height = .Buttons*.Y
end if
.Cbutton.Parent = QtoolBar
.Cbutton.Height = .X:.Cbutton.Width = .Y
if .Align =1 or .Align =2 or .Align =0 then
.Cbutton.top = 6 : .CButton.Left = -100
else
.Cbutton.Left = 6 : .CButton.Top = -100
end if
.Cbutton.Flat = .Flat
.Cbutton.ShowHint = .ShowHint
End With
End Sub
Sub Paint 'Draw Buttons
Dim a as integer
With QtoolBar
.CButton.Down = 0
For a = 0 to .Buttons -1
if a <> .ButtonX then
If .Enabled(a) then
.ButBmp.Draw (3,3,Qtoolbar.imgl1.GetBMP(a))
else
.ButBmp.Draw (3,3,Qtoolbar.imgl2.GetBMP(a))
end if
if .Align =1 or .Align =2 or .Align =0 then
.img.Draw (a*.X, 0, .ButBmp.Bmp)
else
.img.Draw (0,a*.Y, .ButBmp.Bmp)
End if
end if
Next
End With
end sub
Sub showButton 'Show the correct button
With QToolBar
if .Align =1 or .Align =2 or .Align =0 then
.ButtonX = mouseX \ .X
else
.ButtonX = mouseY \ .Y
end if
IF .Enabled(.ButtonX) then
.CButton.BMP = Qtoolbar.imgl1.GetBMP(.ButtonX)
else
Exit sub
end if
if .Align =1 or .Align =2 or .Align =0 then
.CButton.Left = .ButtonX*.X + 6
else
.CButton.Top = .ButtonX*.Y + 6
end if
.CButton.hint = .hint(.ButtonX)
.CButton.Visible = 1
end With
end Sub
Sub Reset 'Reset toolbar
QToolbar.ButtonX = -1
QToolbar.CButton.Visible = 0
QToolbar.Paint
end Sub
Event img.onpaint
QtoolBar.Paint
end Event
Event img.OnMouseMove
QtoolBar.ShowButton
end Event
Event OnMouseMove
QToolbar.Reset
end Event
Constructor
Width = 0
Height = 0
Buttons = 0
ButtonX = -1
Flat = 1
Enabled() = 1
Hint() = ""
ShowHint = 1
end constructor
end type