Res /

Qflatbutton Inc

Documentation

Resources

The Wiki

edit SideBar

Qflatbutton Inc
'File source from OnClickSoftware
'QFlatButton - See "Appendix A QFLATBUTTON.htm" for usage
'Special thanks to Erlend Rovik <e-rovik@online.no> for the OnMouseDown/Up suggestion.
	Type QFlatButton EXTENDS QImage
		b as Integer
		CurrState as Integer
		FlatBMPHandle as STRING
		G as integer
		R as integer
		SUB GetColors
			Dim ColorScheme as QRegistry
			Dim SchemeText$ as string
			ColorScheme.OpenKey("\\Control Panel\\Colors", 0)
			if ColorScheme.ValueExists("ButtonFace") then
				SchemeText$ =  ColorScheme.ReadString("ButtonFace")
'Forgot to delete ling 16 :) ? ColorScheme.ReadString("ButtonFace")
				else
					SchemeText$ = "150 150 150"
			end if
			ColorScheme.closeKey
			dim SchemeWaldo& as integer
			for SchemeWaldo& = 0 to Len(SchemeText$)
				if Mid$( SchemeText$, ( Len(SchemeText$) - SchemeWaldo& ), 1 ) = " " then
					QFlatButton.B = Val( Right$(SchemeText$, SchemeWaldo&) )
					SchemeText$ = Left$( SchemeText$, ( ( Len(SchemeText$) - SchemeWaldo& ) - 1 ) )
					SchemeWaldo& = Len(SchemeText$)
				end if
			next
			SchemeWaldo& = 0
			for SchemeWaldo& = 0 to Len(SchemeText$)
				if Mid$( SchemeText$, ( Len(SchemeText$) - SchemeWaldo& ), 1 ) = " " then
					QFlatButton.G = Val( Right$(SchemeText$, SchemeWaldo&) )
					SchemeText$ = Left$( SchemeText$, ( ( Len(SchemeText$) - SchemeWaldo& ) - 1 ) )
					SchemeWaldo& = Len(SchemeText$)
				end if
			next
			QFlatButton.R = Val(SchemeText$)
		end SUB
		SUB Depress
			If QFlatButton.CurrState < 2 then
				QFlatButton.GetColors
				QFlatButton.FlatBMPHandle = QFlatButton.BMPHandle
				'Light
				QFlatButton.Line( (QFlatButton.Width - 1), 1, (QFlatButton.Width - 1), (QFlatButton.Height - 1), rgb( round(QFlatButton.R * 1.15), round(QFlatButton.G * 1.15), round(QFlatButton.B * 1.15) ) )
				QFlatButton.Line( 1, (QFlatButton.Height - 1), (QFlatButton.Height - 1), (QFlatButton.Height - 1), rgb( round(QFlatButton.R * 1.15), round(QFlatButton.G * 1.15), round(QFlatButton.B * 1.15) ) )
				'Dark
				QFlatButton.Line( 1, 1, 1, (QFlatButton.Height - 1), rgb( round(QFlatButton.R * .3), round(QFlatButton.G * .3), round(QFlatButton.B * .3) ) )
				QFlatButton.Line( 1, 1,(QFlatButton.Width - 1), 1, rgb( round(QFlatButton.R * .3), round(QFlatButton.G * .3), round(QFlatButton.B * .3) ) )
				QFlatButton.CurrState = 2
			end if
		end SUB
		SUB Flatten
			If QFlatButton.CurrState > 0 then
				QFlatButton.BMPHandle = QFlatButton.FlatBMPHandle
				QFlatButton.CurrState = 0
				QFlatButton.Stretch = 1
				QFlatButton.Transparent = 1
			end if
		end SUB
		SUB Raise
			If QFlatButton.CurrState = 0 or QFlatButton.CurrState > 1 then
				QFlatButton.CurrState = 1
				'Light
				QFlatButton.GetColors
				QFlatButton.Line( 1, 1, 1, (QFlatButton.Height - 1), rgb( round(QFlatButton.R * 1.15), round(QFlatButton.G * 1.15), round(QFlatButton.B * 1.15) ) )
				QFlatButton.Line( 1, 1, (QFlatButton.Width - 1), 1, rgb( round(QFlatButton.R * 1.15), round(QFlatButton.G * 1.15), round(QFlatButton.B * 1.15) ) )
				'Dark
				QFlatButton.Line( 1, (QFlatButton.Height - 1), (QFlatButton.Width - 1), (QFlatButton.Height - 1), rgb( round(QFlatButton.R * .3), round(QFlatButton.G * .3), round(QFlatButton.B * .3) ) )
				QFlatButton.Line( (QFlatButton.Width - 1), 1, (QFlatButton.Width - 1), (QFlatButton.Height - 1), rgb( round(QFlatButton.R * .3), round(QFlatButton.G * .3), round(QFlatButton.B * .3) ) )
			End If
		end SUB
		event OnMouseDown
			QFlatButton.Depress
		end event
		EVENT OnMouseMove
			if (MouseX > 3 and MouseX < (QFlatButton.Width - 3) ) and (MouseY > 3 and MouseY < ( QFlatButton.Height - 3 ) ) then
				QFlatButton.Raise
				Else
					QFlatButton.Flatten
			end if
		end Event
		Event OnMouseUp
			QFlatButton.Flatten
		end event
		CONSTRUCTOR
			GetColors
			Autosize = 1
			CurrState = 0
			height = 25
			Stretch = 1
			Transparent = 1
			width = 25
		end CONSTRUCTOR
	end type
	'FlatButton Constants
	const fbFlattened = 0
	const fbRaised = 1
	const fbDepressed = 2

Recent Changes (All) | Edit SideBar Page last modified on August 17, 2007, at 06:48 PM Edit Page | Page History
Powered by PmWiki