[ Class + ( Editor Tool ) ] Custom Gui Image Button

Post your working scripts, libraries and tools for AHK v1.1 and older
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

[ Class + ( Editor Tool ) ] Custom Gui Image Button

15 Mar 2021, 22:20

This thread is comprised of two topics ( actually three sub-topics but two are interconnected ).

Button Class:
.
Button Demo 1.png
Button Demo 1.png (133.22 KiB) Viewed 8133 times
.

Spoiler
.

Editor:

.
20210217014330.png
20210217014330.png (113.9 KiB) Viewed 8133 times
.
Spoiler

There are a few things that I didn't go over, so if you have any questions feel free to ask.
Last edited by Hellbent on 26 Oct 2021, 18:59, edited 5 times in total.
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

15 Mar 2021, 22:33

*Edit*
Added _Setfocus() to the button controller. When you press a button, it gets set as having focus.

An example of the buttons in a finished project.

.
temp.gif
temp.gif (131.72 KiB) Viewed 7913 times

.

If you are looking for an easy way to get color values you can use this color picker.
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=60942


.
20210318044030.png
20210318044030.png (15.51 KiB) Viewed 7892 times
.

The random color function works well for this.
Last edited by Hellbent on 18 Mar 2021, 03:45, edited 2 times in total.
User avatar
manehscripts
Posts: 126
Joined: 03 May 2019, 16:10

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

16 Mar 2021, 14:54

Good job, bro! Thank you
-----------------------------------------------------------
Stop to think, shut up to resist, and act to win!
User avatar
SirSocks
Posts: 360
Joined: 26 Oct 2018, 08:14

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

17 Mar 2021, 12:16

😲 This is amazing! Super handy, very nice job 👍
In the last example, The ToolTip remains on. This is Line 19 to 22, consider modifying the code to...

Code: Select all

TestFunction(){
	ToolTip, In the test function
	SoundBeep, 500
	sleep 2000
	ToolTip,
}
User avatar
Xeo786
Posts: 759
Joined: 09 Nov 2015, 02:43
Location: Karachi, Pakistan

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

18 Mar 2021, 00:08

Great work....! :thumbup:
"When there is no gravity, there is absolute vacuum and light travel with no time" -Game changer theory
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

18 Mar 2021, 02:01

SirSocks wrote:
17 Mar 2021, 12:16
😲 This is amazing! Super handy, very nice job 👍
In the last example, The ToolTip remains on. This is Line 19 to 22, consider modifying the code to...

Code: Select all

TestFunction(){
	ToolTip, In the test function
	SoundBeep, 500
	sleep 2000
	ToolTip,
}
Thanks.

I had actually thought about adding in this

Code: Select all

TestFunction(){
	ToolTip, In the test function
	SetTimer, TipsOff, -700
}

TipsOff:
	ToolTip,
	return
But in the end I wanted to keep the code down to a minimum showing only how to set the defaults for the buttons, how to start adding new buttons and how to setup the code to run when you press the buttons. I also wanted to add a few buttons, but once again that would only serve to potentially make things more confusing. Thanks for the suggestion though.
User avatar
Xeo786
Posts: 759
Joined: 09 Nov 2015, 02:43
Location: Karachi, Pakistan

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

18 Mar 2021, 02:29

@Hellbent I suggest you use onmessage() instead settimer to monitor Hover and clicks,
https://www.autohotkey.com/docs/commands/Gui.htm#Events
"When there is no gravity, there is absolute vacuum and light travel with no time" -Game changer theory
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

18 Mar 2021, 03:15

Xeo786 wrote:
18 Mar 2021, 02:29
@Hellbent I suggest you use onmessage() instead settimer to monitor Hover and clicks,
https://www.autohotkey.com/docs/commands/Gui.htm#Events
Yeah you and I had discussed that in pms. By the time I became aware that the users script and the button class could both monitor the same messages and have 2 functions executed together I had already completed this version of the class and was just working on getting the editor done.
I do intend to investigate swapping out for messages for the next gen. At the end of the day the way I have it now works fine, its only downside is that it is always running, but I have the routine pretty well optimized and it only runs a few times a second so it has a low impact on performance. And the thing about messages is that they fire off really fast, I can't remember what the values I had seen before were, but the message function was getting called about as fast a a normal loop runs as I recall. So if you have your mouse over the gui a lot of the time, the way I have it is much more efficient. I do really want to investigate messages in the class though.
z1emba
Posts: 1
Joined: 19 Mar 2021, 09:57

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

19 Mar 2021, 14:56

Hi,
When I click the button with label I am getting error.
Error: A Goto/Gosub must not jump into a block that doens't enclose it.
1401:Else
1403: Gosub,HButton.Button[last].Label
1404:}

It's line from class HButton
Please help me. :(
Attachments
image.png
image.png (27.16 KiB) Viewed 7830 times
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

13 Apr 2021, 13:02

z1emba wrote:
19 Mar 2021, 14:56
Hi,
When I click the button with label I am getting error.
Error: A Goto/Gosub must not jump into a block that doens't enclose it.
1401:Else
1403: Gosub,HButton.Button[last].Label
1404:}

It's line from class HButton
Please help me. :(
It looks like the problem is that the label you are using isn't valid.
If you post your code I'll have a look.
jly
Posts: 89
Joined: 30 Sep 2020, 06:06

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

22 Apr 2021, 23:52

All your softwares are basically black theme.
It need to adjust the brightness and color temperature of a computer to a high level to see it clearly.

Why use a black theme, is it to protect eyesight?
In order to protect eyesight, it would be better to adjust the brightness and color temperature of the computer.

You can replace all color values with variables for easy modification.
jly
Posts: 89
Joined: 30 Sep 2020, 06:06

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

23 Apr 2021, 00:46

The Editor with white theme only modified background and font colors. Make it look clearer.

Also Color Picker
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=60942&p=395607#p395607

Code: Select all


;***************************************************************************************************
;#Include <My Altered Gdip Lib>
#Include .\Gdip_All.ahk
;***************************************************************************************************
#SingleInstance, Force
SetControlDelay, -1
SetBatchLines, -1
#NoEnv
global CurrentTab , DemoHwnd , Active := 0 , isPressed := 0 , DisplayHwnd
ptoken := GDIp_Startup()
SetIcon()
MainObj := {}
MainObj.ButtonHandles := []
MainObj.Edits := {}
MainObj.EditHandles := []
MainObj.Count := 1
SetDefaults( MainObj )
Main := New Custom_Window( x:= "" , y:= "" , w:= 1100 , h:= 590 , Name:= "1" , Options:= "+AlwaysOnTop -Caption -DPIScale" , Title:= "HB Button Maker v1.01" , Background_Bitmap:= Background() )
Gui,1:Add,Text,x10 y5 w610 h30 BackgroundTrans gMoveWindow
Gui, 1:Add, Text, x0 y0 w0 h0 BackgroundTrans hwndDemoHwnd gDemoPress
;Gui,1:Color,D0D0D0,071111
Gui,1:Color,FFFFFF,FFFFFF                  ;FF0000

;color_1 := "D0D0D0"
color_1 := "FFFFFF"
;121212 ->  F0F0F0
;0D0D0D -> F0F0F0
;171717 -> F1F1F1
;1D1D1D -> F3F3F3
;071414 -> F4F4F4
;3F4347 -> E0E0E0
;000000 -> E2E2E2
;22262a -> D0D0D0
;cRed -> cRed

;"0xFF006666" , "0xFFFFFFFF" -> "0xFFFFFFFF" , "0xFFFFFFFF"

AddButtonOptionsPanel( MainObj )
AddFontPanel( MainObj )
AddTextColorPanel( MainObj )
AddGlossyPanel( MainObj )
AddButtonColorPanel( MainObj )
AddTabsPanel( MainObj )
AddControlPanel( MainObj )
AddDropDown( MainObj )
AddClosePanel( MainObj )
w:=460 , h:= 363
Gui, 1:Add, Pic, x320 y95 w%w% h%h% 0xE hwndPichwnd
SetImage( Pichwnd , handle := CenterPanel( w , h , MainObj.Tab[CurrentTab] , MainObj[MainObj.Tab[CurrentTab]] , MainObj ) ) , DeleteObject( handle )
Main.Show_Window()
lock := 1
For k, v in MainObj[MainObj.Tab[CurrentTab]]	{
	GuiControl, 1:, % MainObj.Edits[k], % v
}
lock := 0
Gui, 1:Add, Edit,c00aacc x485 y50 w210 h22 -E0x200 Center hwndhwnd , MyButtonDesign
MainObj.ProjectName := hwnd
SetTimer, Hover, 60
return

GuiClose:
;~ GuiContextMenu:
;~ *ESC::
	ExitApp

MinimizeWindow:
	Gui, 1:Minimize
	return

GotoThreadTopic:
	soundbeep, 500
	return

SetIcon(){
	pBitmap := HB_BITMAP_MAKER()
	hIcon := Gdip_CreateHICONFromBitmap(pBitmap)
	Gdip_DisposeImage(pBitmap)
	Menu, Tray, Icon, HICON:%hIcon%
}
HB_BITMAP_MAKER(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 32 , 32 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_CreateLineBrush( 10 , 13 , 19 , 25 , "0xFF004444" , "0xFFF0F0F0" , 1 ) , Gdip_FillEllipse( G , Brush , 1 , 1 , 29 , 29 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawEllipse( G , Pen , 1 , 1 , 29 , 29 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFFE2E2E2" , 1 ) , Gdip_DrawEllipse( G , Pen , 2 , 2 , 27 , 27 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFE2E2E2" ) , Gdip_TextToGraphics( G , "HB" , "s14 Center vCenter Bold c" Brush " x1 y2" , "Segoe ui" , 29 , 29 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFD0D0D0" ) , Gdip_TextToGraphics( G , "HB" , "s14 Center vCenter Bold c" Brush " x3 y4" , "Segoe ui" , 29 , 29 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF009999" ) , Gdip_TextToGraphics( G , "HB" , "s14 Center vCenter Bold c" Brush " x2 y3" , "Segoe ui" , 29 , 29 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 7 , 9 , 17 , 12 , "0x66009999" , "0x66E2E2E2" , 1 , 1 ) , Gdip_TextToGraphics( G , "HB" , "s14 Center vCenter Bold c" Brush " x2 y3" , "Segoe ui" , 29 , 29 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	return pBitmap
}
Export:

	if( MainObj.Count = 1 ){
		;~ ToolTip, % "Save PNG Set"
		SaveImage( MainObj )
	}else if( MainObj.Count = 2 ){
		;~ ToolTip, % "Clipboard Button Object"
		ClipButton( MainObj )

	}
	return

SaveImage( obj ){
	local Default , Hover , Pressed , All , G
	All := Gdip_CreateBitmap( obj.Default.ButtonPanelWidthEdit + obj.Hover.ButtonPanelWidthEdit + obj.Pressed.ButtonPanelWidthEdit , ( obj.Default.ButtonPanelHeightEdit >= obj.Hover.ButtonPanelHeightEdit ) ? ( ( obj.Default.ButtonPanelHeightEdit >= obj.Pressed.ButtonPanelHeightEdit ) ? ( obj.Default.ButtonPanelHeightEdit ) : ( obj.Pressed.ButtonPanelHeightEdit >= obj.Hover.ButtonPanelHeightEdit ) ? ( obj.Pressed.ButtonPanelHeightEdit ) : ( obj.Hover.ButtonPanelHeightEdit ) ) : ( ( obj.Pressed.ButtonPanelHeightEdit >= obj.Hover.ButtonPanelHeightEdit ) ? ( obj.Pressed.ButtonPanelHeightEdit ) : ( obj.Hover.ButtonPanelHeightEdit ) )   ) , G := Gdip_GraphicsFromImage( All ) , Gdip_SetSmoothingMode( G , 2 )

	IfNotExist, % A_ScriptDir "\Saved Buttons"
		FileCreateDir, % A_ScriptDir "\Saved Buttons"

	Default := _CreateDefaultBitmap( obj.Default.ButtonPanelWidthEdit , obj.Default.ButtonPanelHeightEdit , obj.Default )
	Gdip_SaveBitmapToFile( Default , A_ScriptDir "\Saved Buttons\" A_Now "_" obj.ProjectName "_Default.png"  , 100 )
	Gdip_DrawImage( G , Default , 0, 0, obj.Default.ButtonPanelWidthEdit , obj.Default.ButtonPanelHeightEdit )
	Gdip_DisposeImage( Default )

	Hover := _CreateDefaultBitmap( obj.Hover.ButtonPanelWidthEdit , obj.Hover.ButtonPanelHeightEdit , obj.Hover )
	Gdip_SaveBitmapToFile( Hover , A_ScriptDir "\Saved Buttons\" A_Now "_" obj.ProjectName "_Hover.png"  , 100 )
	Gdip_DrawImage( G , Hover , obj.Default.ButtonPanelWidthEdit , 0 , obj.Hover.ButtonPanelWidthEdit , obj.Hover.ButtonPanelHeightEdit )
	Gdip_DisposeImage( Hover )

	Pressed := _CreateDefaultBitmap( obj.Pressed.ButtonPanelWidthEdit , obj.Pressed.ButtonPanelHeightEdit , obj.Pressed )
	Gdip_SaveBitmapToFile( Pressed , A_ScriptDir "\Saved Buttons\" A_Now "_" obj.ProjectName "_Pressed.png"  , 100 )
	Gdip_DrawImage( G , Pressed , obj.Default.ButtonPanelWidthEdit + obj.Hover.ButtonPanelWidthEdit , 0 , obj.Pressed.ButtonPanelWidthEdit , obj.Pressed.ButtonPanelHeightEdit )
	Gdip_DisposeImage( Pressed )

	Gdip_SaveBitmapToFile( All , A_ScriptDir "\Saved Buttons\" A_Now "_" obj.ProjectName "_All.png"  , 100 )
	Gdip_DisposeImage( All )
	SoundBeep, 500
	SoundBeep, 500
}

AutoTimer:
	if(MainObj.Tab[CurrentTab]="All")
		return
	GetEdits( MainObj , CurrentTab )
	SetImage( Pichwnd , handle := CenterPanel( w , h , MainObj.Tab[CurrentTab] , MainObj[MainObj.Tab[CurrentTab]] , MainObj ) )
	DeleteObject( handle )
	SetDisplayWindow( MainObj )
	return

AutoUpdate:
	if( MainObj.AutoSwitchState := !MainObj.AutoSwitchState ){
		SetImage( MainObj.AutoSwitch , handle := AutoSwitchOn() ) , DeleteObject( handle )
		SetTimer, AutoTimer, 5000
		gosub, AutoTimer
	}else{
		SetImage( MainObj.AutoSwitch , handle := AutoSwitchOff() ) , DeleteObject( handle )
		SetTimer, AutoTimer, Off
	}
	return

DemoPress:
	SetTimer, Hover, Off
	isPressed := 1
	SetImage( Pichwnd , handle := CenterPanel( w , h , "Pressed" , MainObj.Pressed , MainObj ) ) , DeleteObject( handle )
	While(GetKeyState("LButton"))
		sleep, 30
	isPressed := 0
	MouseGetPos,,,,ctrl,2
	if(Ctrl!=DemoHwnd){
		Active := 0
		SetImage( Pichwnd , handle := CenterPanel( w , h , "All" , MainObj.Default , MainObj ) ) , DeleteObject( handle )
	}else{
		SetImage( Pichwnd , handle := CenterPanel( w , h , "Hover" , MainObj.Hover , MainObj ) ) , DeleteObject( handle )
	}
	SetTimer, Hover, On
	return

Hover:
	MouseGetPos,,,,Ctrl,2
	if(DemoHwnd=ctrl&&!Active){
		Active := 1
		SetImage( Pichwnd , handle := CenterPanel( w , h , "Hover" , MainObj.Hover , MainObj ) ) , DeleteObject( handle )
	}else if(DemoHwnd!=ctrl&&Active){
		Active := 0
		SetImage( Pichwnd , handle := CenterPanel( w , h , "All" , MainObj.Default , MainObj ) ) , DeleteObject( handle )
	}
	return

SwitchTabs:
	MouseGetPos,,,,ctrl,2
	if(CurrentTab = ctrl)
		return
	lock := 1
	SetImage( MainObj.TabsPanelHwnd , handle := Tabs( MainObj.Tab[ctrl] ) )
	DeleteObject( handle )
	GetEdits( MainObj , CurrentTab )
	CurrentTab := ctrl
	if(MainObj.Tab[CurrentTab]="All")
		SetTimer, Hover, 60
	else
		SetTimer, Hover, Off
	SetImage( MainObj.GlossyPanelHwnd  , handle := Glossy( MainObj[MainObj.Tab[CurrentTab]].GlossyPanelUseGlossyCheckbox ) ) , DeleteObject( handle )
	For k, v in MainObj[MainObj.Tab[CurrentTab]]
		GuiControl, 1:, % MainObj.Edits[k], % v
	lock := 0
	guiControl,1:Focus, % MainObj.Edits.ButtonPanelTextEdit
	SendMessage, 0xB1, -2, -1,, % "ahk_id " MainObj.Edits.ButtonPanelTextEdit
	SetImage( Pichwnd , handle := CenterPanel( w , h , MainObj.Tab[CurrentTab] , MainObj[MainObj.Tab[CurrentTab]] , MainObj ) ) , DeleteObject( handle )
	return

GetEdits( ByRef Obj , CT ){
	For k , v in obj.Edits	{
		GuiControlGet, out, 1:, % v
		Obj[Obj.Tab[CT]][k] := "" Out
	}
}

SubmitEdit:
	if(lock)
		return
	GuiControlGet,hwnd,1: hwnd
	MainObj[MainObj.Tab[CurrentTab]][MainObj.EditHandles[hwnd]] := A_GuiControl
	return


AdjustSave:
	arr := ["Save PNG Set","Clipboard Button Object"]
	MouseGetPos,,,, ctrl3 , 2
	if( MainObj.DDLList[ ctrl3 ] = "Plus" ){
		if( ++MainObj.Count > arr.Length() )
			MainObj.Count := 1
	}else if( MainObj.DDLList[ ctrl3 ] = "Minus" ){
		if( --MainObj.Count < 1 )
			MainObj.Count := arr.Length()
	}
	SetImage( MainObj.DropDown , handle := DropDown( arr[ MainObj.Count ]) ) , DeleteObject( handle )
	arr := ""
	return

AddDropDown( Obj ){
	obj.DDLList := []
	Gui, 1:Add, Pic, x720 y46 w300 h26 0xE BackgroundTrans hwndhwnd
	obj.DropDown := hwnd
	Gui, 1:Add, Text, x730 y46 w30 h26 BackgroundTrans gAdjustSave hwndhwnd ;Border
	obj.DDLList[hwnd] := "Minus"
	Gui, 1:Add, Text, x980 y46 w30 h26 BackgroundTrans gAdjustSave hwndhwnd ;Border
	obj.DDLList[hwnd] := "Plus"
	SetImage( obj.DropDown , handle := DropDown() ) , DeleteObject( handle )
	Gui, 1:Add, Pic, x1025 y46 w100 h30 0xE BackgroundTrans hwndhwnd gExport
	obj.GB := hwnd
	SetImage( obj.GB , handle := GB() ) , DeleteObject( handle )
}

GB( Text := "GO" ){
	;Bitmap Created Using: HB Bitmap Maker
	;0xFF006666 -> 0xFFFF0000
	pBitmap := Gdip_CreateBitmap( w:=60 , h:=30 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , w + 2 , h + 2 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , w , h , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 3 , 3 , w - 7 , h - 7 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 3 , 3 , w - 7  , h + 5 , "0xFFFF0000" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush )
	Gdip_DrawRectangle( G , Pen , 3 , 3 , w - 7  , h - 7 ) , Gdip_DeletePen( Pen )
	;Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , w , h , "0xFF00aaaa" , "0xFFFF0000" , 1 , 1 ) , Gdip_TextToGraphics( G , Text , "s12 Center vCenter Bold c" Brush " x4 y4" , "Segoe ui" , w - 7 , h - 7 ) , Gdip_DeleteBrush( Brush )
	;Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , w , h , "0xFFFF0000" , "0xFFFF0000" , 1 , 1 ) , Gdip_TextToGraphics( G , Text , "s12 Center vCenter Bold c" Brush " x4 y4" , "Segoe ui" , w - 7 , h - 7 ) , Gdip_DeleteBrush( Brush )
	;Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , w , h , "0xFF00BFFF" , "0xFF00BFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , Text , "s12 Center vCenter Bold c" Brush " x4 y4" , "Segoe ui" , w - 7 , h - 7 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , w , h , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , Text , "s12 Center vCenter Bold c" Brush " x4 y4" , "Segoe ui" , w - 7 , h - 7 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

DropDown( Input := "Save PNG Set" ){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 300 , 26 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 30 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF02060a" ) , Gdip_FillRectangle( G , Brush , 11 , 3 , 28 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 14 , 4 , 23 , 18 , "0x77006666" , "0xaa002222" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 12 , 4 , 26 , 18 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF02060a" ) , Gdip_FillPie( G , Brush , 1 , 3 , 20 , 20 , 90 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 2 , 4 , 9 , 19 , "0x77006666" , "0xaa002222" , 1 , 1 ) , Gdip_FillPie( G , Brush , 2 , 4 , 18 , 18 , 90 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 19 , 9 , 13 , 8 , "0xFF009999" , "0xFF02060a" , 1 , 1 ) , Gdip_FillPolygon( G , Brush , "17,13|31,8|31,18|17,13|" ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 19 , 9 , 11 , 10 , "0xFFD0D0D0" , "0xFF02060A" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLines( G , Pen , "17,13|31,8|31,18|17,13|" ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF02060A" ) , Gdip_FillRectangle( G , Brush , 39 , 3 , 225 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 40 , 4 , 218 , 17 , "0x77006666" , "0xaa002222" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 39 , 4 , 222 , 18 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF02060a" ) , Gdip_FillRectangle( G , Brush , 260 , 3 , 28 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 260 , 3 , 27 , 22 , "0x77006666" , "0xaa002222" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 261 , 4 , 26 , 18 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF02060A" ) , Gdip_FillPie( G , Brush , 278 , 3 , 20 , 20 , 270 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 287 , 3 , 9 , 18 , "0x77006666" , "0xaa002222" , 1 , 1 ) , Gdip_FillPie( G , Brush , 279 , 4 , 18 , 18 , 270 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 269 , 8 , 14 , 9 , "0xFF009999" , "0xFF02060a" , 1 , 1 ) , Gdip_FillPolygon( G , Brush , "283,13|269,8|269,18|283,13|" ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 269 , 8 , 11 , 9 , "0xFFD0D0D0" , "0xFF02060a" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLines( G , Pen , "283,13|269,8|269,18|283,13|" ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 41 , 5 , 217 , 21 , "0xFFF0F0F0" , "0xFF009999" , 1 , 1 ) , Gdip_TextToGraphics( G , Input , "s16 Center vCenter Bold c" Brush " x40 y5" , "Segoe UI" , 219 , 18 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

TAG(obj){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 200 , 200 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	;~ Brush := Gdip_CreateLineBrushFromRect( 1 , 1 , 199 , 197 , "0xFF52565a" , "0xFFD0D0D0" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 10 , 10 , 180 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 1 , 1 , 199 , 197 , "0xFF52565a" , "0xFF02060a" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 10 , 10 , 180 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 26 , 36 , 100 , 25 , "0x6632363a" , "0x66D0D0D0" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 10 , 10 , 180 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrush( 26 , 65 , 34 , 153 , "0x6652565a" , "0x66D0D0D0" , 1 ) , Gdip_FillEllipse( G , Brush , 10 , 10 , 180 , 180 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , 202 , 197 , "0xFFF0F0F0" , "0xFFE2E2E2" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawEllipse( G , Pen , 10 , 10 , 180 , 180 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFE2E2E2" ) , Gdip_TextToGraphics( G , "HB" , "s112 Center vCenter Bold c" Brush " x-2 y78" , "Segoe ui" , 200 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF62666a" ) , Gdip_TextToGraphics( G , "HB" , "s112 Center vCenter Bold c" Brush " x2 y82" , "Segoe ui" , 200 , 50 ) , Gdip_DeleteBrush( Brush )
	;~ Brush := Gdip_CreateLineBrush( 43 , 59 , 65 , 126 , "0xFF004444" , "0xFFE2E2E2" , 1 ) , Gdip_TextToGraphics( G , "HB" , "s112 Center vCenter Bold c" Brush " x0 y80" , "Segoe ui" , 200 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrush( 43 , 59 , 65 , 126 , "0xFF" Obj.ALL.ButtonPanelBackgroundColorEdit , "0xFFE2E2E2" , 1 ) , Gdip_TextToGraphics( G , "HB" , "s112 Center vCenter Bold c" Brush " x0 y80" , "Segoe ui" , 200 , 50 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	return pBitmap
}

_CreatePressedBitmap( W , H , Obj ){

	local arr := []
	;@
	pBitmap := Gdip_CreateBitmap( W , H ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	;@
	Brush := Gdip_BrushCreateSolid( "0xFF" obj.ButtonPanelBackgroundColorEdit ) , Gdip_FillRectangle( G , Brush , -1 , -1 , W + 2 , H + 2 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_BrushCreateSolid( "0x" . obj.ButtonColorPanelOuterBorderColorAlphaEdit . obj.ButtonColorPanelOuterBorderColorEdit ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 4 , W - 7 , H - 7 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , W , H , "0x" . obj.ButtonColorPanelInnerBorderColor1AlphaEdit . obj.ButtonColorPanelInnerBorderColor1Edit , "0x" . obj.ButtonColorPanelInnerBorderColor2AlphaEdit . obj.ButtonColorPanelInnerBorderColor2Edit , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 2 , 3 , W - 5 , H - 8 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , W - 7 , H - 10 , "0x" . obj.ButtonColorPanelMainColor1AlphaEdit . obj.ButtonColorPanelMainColor1Edit , "0x" . obj.ButtonColorPanelMainColor2AlphaEdit . obj.ButtonColorPanelMainColor2Edit , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 5 , 5 , W - 11 , H - 12 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , W , H , "0x" . obj.TextColorPanelBottomColor1AlphaEdit . obj.TextColorPanelBottomColor1Edit , "0x" . obj.TextColorPanelBottomColor2AlphaEdit . obj.TextColorPanelBottomColor2Edit , 1 , 1 )

	arr := [ { X: -1 , Y: -1 } , { X: 0 , Y: -1 } , { X: 1 , Y: -1 } , { X: -1 , Y: 0 } , { X: 1 , Y: 0 } , { X: -1 , Y: 1 } , { X: 0 , Y: 1 } , { X: 1 , Y: 1 } ]

	Loop, % 8
		;@
		Gdip_TextToGraphics( G , obj.ButtonPanelTextEdit , "s" obj.FontPanelFontSizeEdit " " obj.FontPanelFontOptionsEdit " c" Brush " x" 1 + arr[A_Index].X + Obj.FontPanelXOffsetEdit " y" 3 + arr[A_Index].Y + Obj.FontPanelYOffsetEdit , Obj.FontPanelFontEdit , W + Obj.FontPanelWOffsetEdit , H + Obj.FontPanelHOffsetEdit )
	Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , W , H , "0x" . obj.TextColorPanelTopColor1AlphaEdit . obj.TextColorPanelTopColor1Edit , "0x" . obj.TextColorPanelTopColor2AlphaEdit . obj.TextColorPanelTopColor2Edit , 1 , 1 )
	;@
	Gdip_TextToGraphics( G , obj.ButtonPanelTextEdit , "s" obj.FontPanelFontSizeEdit " " obj.FontPanelFontOptionsEdit " c" Brush " x" 1 + Obj.FontPanelXOffsetEdit " y" 3 + Obj.FontPanelYOffsetEdit , Obj.FontPanelFontEdit , W + Obj.FontPanelWOffsetEdit , H + Obj.FontPanelHOffsetEdit )
	Gdip_DeleteBrush( Brush )
	;@
	if( Obj.GlossyPanelUseGlossyCheckbox ){
		;@
		Brush := Gdip_BrushCreateSolid( "0x" . obj.GlossyPanelTopColorAlphaEdit . obj.GlossyPanelTopColorEdit ) , Gdip_FillRectangle( G , Brush , 5 , 10 , W - 11 , ( H / 2 ) - 10   ) , Gdip_DeleteBrush( Brush )
		;@
		Brush := Gdip_BrushCreateSolid( "0x" . obj.GlossyPanelAccentColorAlphaEdit . obj.GlossyPanelAccentColorEdit ) , Gdip_FillRectangle( G , Brush , 10 , 12 , W - 21 , H / 15 ) , Gdip_DeleteBrush( Brush )
		;@
		Brush := Gdip_BrushCreateSolid( "0x" . obj.GlossyPanelBottomColorAlphaEdit . obj.GlossyPanelBottomColorEdit ) , Gdip_FillRectangle( G , Brush , 5  , 10 + ( H / 2 ) - 10 , W - 11 , ( H / 2 ) - 7 ) , Gdip_DeleteBrush( Brush )

	}

	Gdip_DeleteGraphics( G )

	return pBitmap
}

_CreateHoverBitmap( W , H , Obj ){

	local arr := []
	if( W = null )
		W := 100
	if( H = null )
		H := 40

	;@
	pBitmap := Gdip_CreateBitmap( W , H ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	;@
	Brush := Gdip_BrushCreateSolid( "0xFF" obj.ButtonPanelBackgroundColorEdit ) , Gdip_FillRectangle( G , Brush , -1 , -1 , W + 2 , H + 2 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_BrushCreateSolid( "0x" . obj.ButtonColorPanelOuterBorderColorAlphaEdit . obj.ButtonColorPanelOuterBorderColorEdit ) , Gdip_FillRoundedRectangle( G , Brush , 2 , 3 , W - 5 , H - 7 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_BrushCreateSolid( "0x" . obj.ButtonColorPanelCenterBorderColorAlphaEdit . obj.ButtonColorPanelCenterBorderColorEdit ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 4 , W - 7 , H - 9 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , W , H-10 , "0x" . obj.ButtonColorPanelInnerBorderColor1AlphaEdit . obj.ButtonColorPanelInnerBorderColor1Edit , "0x" . obj.ButtonColorPanelInnerBorderColor2AlphaEdit . obj.ButtonColorPanelInnerBorderColor2Edit , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 4 , 5 , W - 9 , H - 11 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 5 , 7 , W-11 , H-14 , "0x" . obj.ButtonColorPanelMainColor1AlphaEdit . obj.ButtonColorPanelMainColor1Edit , "0x" . obj.ButtonColorPanelMainColor2AlphaEdit . obj.ButtonColorPanelMainColor2Edit , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 5 , 7 , W - 11 , H - 14 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , W , H , "0x" . obj.TextColorPanelBottomColor1AlphaEdit . obj.TextColorPanelBottomColor1Edit , "0x" . obj.TextColorPanelBottomColor2AlphaEdit . obj.TextColorPanelBottomColor2Edit , 1 , 1 )

	arr := [ { X: -1 , Y: -1 } , { X: 0 , Y: -1 } , { X: 1 , Y: -1 } , { X: -1 , Y: 0 } , { X: 1 , Y: 0 } , { X: -1 , Y: 1 } , { X: 0 , Y: 1 } , { X: 1 , Y: 1 } ]

	Loop, % 8
		;@
		Gdip_TextToGraphics( G , obj.ButtonPanelTextEdit , "s" obj.FontPanelFontSizeEdit " " obj.FontPanelFontOptionsEdit " c" Brush " x" 0 + arr[A_Index].X + obj.FontPanelXOffsetEdit " y" 2 + arr[A_Index].Y + obj.FontPanelYOffsetEdit , obj.FontPanelFontEdit , W + obj.FontPanelWOffsetEdit , H + obj.FontPanelHOffsetEdit )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , W , H , "0x" . obj.TextColorPanelTopColor1AlphaEdit . obj.TextColorPanelTopColor1Edit , "0x" . obj.TextColorPanelTopColor2AlphaEdit . obj.TextColorPanelTopColor2Edit , 1 , 1 )
	;@
	Gdip_TextToGraphics( G , obj.ButtonPanelTextEdit , "s" obj.FontPanelFontSizeEdit " " obj.FontPanelFontOptionsEdit " c" Brush " x" 0 + obj.FontPanelXOffsetEdit " y" 2 + obj.FontPanelYOffsetEdit , obj.FontPanelFontEdit , W + obj.FontPanelWOffsetEdit , H + obj.FontPanelHOffsetEdit )
	;@
	if( obj.GlossyPanelUseGlossyCheckbox = 1 ){
		;@
		Brush := Gdip_BrushCreateSolid( "0x" . obj.GlossyPanelTopColorAlphaEdit . obj.GlossyPanelTopColorEdit ) , Gdip_FillRectangle( G , Brush , 6 , 10 , W-13 , ( H / 2 ) - 10   ) , Gdip_DeleteBrush( Brush )
		;@
		Brush := Gdip_BrushCreateSolid( "0x" . obj.GlossyPanelAccentColorAlphaEdit . obj.GlossyPanelAccentColorEdit ) , Gdip_FillRectangle( G , Brush , 10 , 12 , W - 21 , H / 15 ) , Gdip_DeleteBrush( Brush )
		;@
		Brush := Gdip_BrushCreateSolid( "0x" . obj.GlossyPanelBottomColorAlphaEdit . obj.GlossyPanelBottomColorEdit ) , Gdip_FillRectangle( G , Brush , 6  , 10 + ( H / 2 ) - 10 , W - 13 , ( H / 2 ) - 7 ) , Gdip_DeleteBrush( Brush )

	}

	Gdip_DeleteGraphics( G )

	return pBitmap

}

_CreateDefaultBitmap( W , H , Obj ){

	local arr := []
	if( W = null )
		W := 100
	if( H = null )
		H := 40

	;@
	pBitmap := Gdip_CreateBitmap( W , H ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	;@
	Brush := Gdip_BrushCreateSolid( "0xFF" Obj.ButtonPanelBackgroundColorEdit ) , Gdip_FillRectangle( G , Brush , -1 , -1 , W + 2 , H + 2 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_BrushCreateSolid( "0x" . Obj.ButtonColorPanelOuterBorderColorAlphaEdit .  Obj.ButtonColorPanelOuterBorderColorEdit ) , Gdip_FillRoundedRectangle( G , Brush , 2 , 3 , W - 5 , H - 7 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_BrushCreateSolid( "0x" . Obj.ButtonColorPanelCenterBorderColorAlphaEdit . Obj.ButtonColorPanelCenterBorderColorEdit ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 4 , W - 7 , H - 9 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , W , H - 10 , "0x" . Obj.ButtonColorPanelInnerBorderColor1AlphaEdit . Obj.ButtonColorPanelInnerBorderColor1Edit , "0x" . Obj.ButtonColorPanelInnerBorderColor2AlphaEdit . Obj.ButtonColorPanelInnerBorderColor2Edit , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 4 , 5 , W - 9 , H - 11 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 5 , 7 , W - 11 , H - 14 , "0x" . Obj.ButtonColorPanelMainColor1AlphaEdit . Obj.ButtonColorPanelMainColor1Edit , "0x" . Obj.ButtonColorPanelMainColor2AlphaEdit . Obj.ButtonColorPanelMainColor2Edit , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 5 , 7 , W - 11 , H - 14 , 5 ) , Gdip_DeleteBrush( Brush )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , W , H , "0x" . Obj.TextColorPanelBottomColor1AlphaEdit . Obj.TextColorPanelBottomColor1Edit , "0x" . Obj.TextColorPanelBottomColor2AlphaEdit . Obj.TextColorPanelBottomColor2Edit , 1 , 1 )

	arr := [ { X: -1 , Y: -1 } , { X: 0 , Y: -1 } , { X: 1 , Y: -1 } , { X: -1 , Y: 0 } , { X: 1 , Y: 0 } , { X: -1 , Y: 1 } , { X: 0 , Y: 1 } , { X: 1 , Y: 1 } ]

	Loop, % 8
		;@
		Gdip_TextToGraphics( G , Obj.ButtonPanelTextEdit , "s" Obj.FontPanelFontSizeEdit " " Obj.FontPanelFontOptionsEdit " c" Brush " x" 0 + arr[A_Index].X + Obj.FontPanelXOffsetEdit " y" 2 + arr[A_Index].Y + Obj.FontPanelYOffsetEdit , Obj.FontPanelFontEdit , W + Obj.FontPanelWOffsetEdit , H + Obj.FontPanelHOffsetEdit )
	;@
	Brush := Gdip_CreateLineBrushFromRect( 0 , 2 , W , H , "0x" . Obj.TextColorPanelTopColor1AlphaEdit . Obj.TextColorPanelTopColor1Edit , "0x" . Obj.TextColorPanelTopColor2AlphaEdit . Obj.TextColorPanelTopColor2Edit , 1 , 1 )
	;@
	Gdip_TextToGraphics( G , Obj.ButtonPanelTextEdit , "s" Obj.FontPanelFontSizeEdit " " Obj.FontPanelFontOptionsEdit " c" Brush " x" 0 + Obj.FontPanelXOffsetEdit " y" 2 + Obj.FontPanelYOffsetEdit , Obj.FontPanelFontEdit , W + Obj.FontPanelWOffsetEdit , H + Obj.FontPanelHOffsetEdit )
	;@
	if( Obj.GlossyPanelUseGlossyCheckbox ){

		Brush := Gdip_BrushCreateSolid( "0x" . Obj.GlossyPanelTopColorAlphaEdit . Obj.GlossyPanelTopColorEdit ) , Gdip_FillRectangle( G , Brush , 6 , 10 , W - 13 , ( H / 2 ) - 10   ) , Gdip_DeleteBrush( Brush )

		Brush := Gdip_BrushCreateSolid( "0x" . Obj.GlossyPanelAccentColorAlphaEdit . Obj.GlossyPanelAccentColorEdit ) , Gdip_FillRectangle( G , Brush , 10 , 12 , W - 21 , H / 15 ) , Gdip_DeleteBrush( Brush )

		Brush := Gdip_BrushCreateSolid( "0x" . Obj.GlossyPanelBottomColorAlphaEdit . Obj.GlossyPanelBottomColorEdit ) , Gdip_FillRectangle( G , Brush , 6  , 10 + ( H / 2 ) - 10 , W - 13 , ( H / 2 ) - 7 ) , Gdip_DeleteBrush( Brush )

	}

	Gdip_DeleteGraphics( G )

	return pBitmap

}

SetDisplayWindow( obj ){
	DisplayMasterBitmap := Gdip_CreateBitmap( 640 , 85 ) , G := Gdip_GraphicsFromImage( DisplayMasterBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFF" . Obj.ALL.ButtonPanelBackgroundColorEdit  ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 642 , 87   ) , Gdip_DeleteBrush( Brush )
	DisplayDefaultBitmap := _CreateDefaultBitmap( 200 , 65 , obj.Default )
	DisplayHoverBitmap := _CreateHoverBitmap( 200 , 65 , obj.Hover )
	DisplayPressedBitmap := _CreatePressedBitmap( 200 , 65 , obj.Pressed )
	Gdip_DrawImage(G, DisplayDefaultBitmap , 10 , 10 , 200 , 65 ) , Gdip_DisposeImage( DisplayDefaultBitmap )
	Gdip_DrawImage(G, DisplayHoverBitmap , 220 , 10 , 200 , 65 ) , Gdip_DisposeImage( DisplayHoverBitmap )
	Gdip_DrawImage(G, DisplayPressedBitmap , 430 , 10 , 200 , 65 ) , Gdip_DisposeImage( DisplayPressedBitmap )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( DisplayMasterBitmap )
	Gdip_DisposeImage( DisplayMasterBitmap )
	SetImage( DisplayHwnd , hBitmap )
	DeleteObject( hBitmap )
}

AddControlPanel( obj ){
	local hwnd
	Gui,1:Add,Pic,x982 y480 w80 h24 0xE hwndhwnd gAutoUpdate
	obj.AutoSwitch := Hwnd
	obj.AutoSwitchState := 0
	SetImage( obj.AutoSwitch , handle := AutoSwitchOff() ) , DeleteObject( handle )
	Gui, 1:Add, Text,cTeal x980 y515 w80 h30  BackgroundTrans center 0x200 gUpdateButton,
	Gui, 1:Add, Pic, x325 y470 w640 h85  HwndDisplayHwnd 0xE
	SetDisplayWindow(obj)
}

AutoSwitchOn(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 80 , 24 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF1F1F1" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 143 , 28 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000808" ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 4 , 32 , 16 , 5 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF002222" ) , Gdip_FillRoundedRectangle( G , Brush , 4 , 5 , 30 , 14 , 5 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_FillRoundedRectangle( G , Brush , 4 , 8 , 30 , 11 , 5 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000808" ) , Gdip_FillEllipse( G , Brush , 17 , 0 , 22 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 5 , 0 , 24 , 20 , "0xff004444" , "0xff02060a" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 18 , 1 , 20 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 1 , 1 , 135 , 21 , "0xFF009999" , "0xFF004444" , 1 , 1 ) , Gdip_TextToGraphics( G , "Auto" , "s12 Center vCenter Bold NoWrap c" Brush " x14 y1" , "Segoe ui" , 90 , 24 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

AutoSwitchOff(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 80 , 24 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF1F1F1" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 143 , 28 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000808" ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 4 , 32 , 16 , 5 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRoundedRectangle( G , Brush , 4 , 5 , 30 , 14 , 5 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRoundedRectangle( G , Brush , 4 , 8 , 30 , 11 , 5 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000808" ) , Gdip_FillEllipse( G , Brush , 1 , 0 , 22 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 5 , 0 , 24 , 20 , "0xff004444" , "0xff02060a" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 2 , 1 , 20 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 1 , 1 , 135 , 21 , "0xFF009999" , "0xFF004444" , 1 , 1 ) , Gdip_TextToGraphics( G , "Auto" , "s12 Center vCenter Bold NoWrap c" Brush " x14 y1" , "Segoe ui" , 90 , 24 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

AddTabsPanel( obj ){
	local hwnd , handle

	Gui, 1:Add, Pic, x16 y45 w343 h30 0xE hwndhwnd
	obj.TabsPanelHwnd := hwnd
	SetImage( hwnd , handle := Tabs("ALL") )
	DeleteObject( handle )
	;****************************************************************************************************

	;All Tab
	Gui, 1:Add, Text,cRed x20 y50 w80 h20 BackgroundTrans hwndhwnd gSwitchTabs      ;Border
	Obj.Tab[hwnd] := "ALL"
	CurrentTab := hwnd

	;****************************************************************************************************

	;Default Tab
	Gui, 1:Add, Text,cRed x105 y50 w80 h20 BackgroundTrans hwndhwnd gSwitchTabs      ;Border
	Obj.Tab[hwnd] := "Default"

	;****************************************************************************************************

	;Hover Tab
	Gui, 1:Add, Text,cRed x190 y50 w80 h20 BackgroundTrans hwndhwnd gSwitchTabs      ;Border
	Obj.Tab[hwnd] := "Hover"

	;****************************************************************************************************

	;Hover Tab
	;Gui, 1:Add, Text,cRed x275 y50 w80 h20 BackgroundTrans hwndhwnd gSwitchTabs      ;Border
	Gui, 1:Add, Text,cRed x275 y50 w80 h20 BackgroundTrans hwndhwnd gSwitchTabs      ;Border
	Obj.Tab[hwnd] := "Pressed"

}

AddButtonColorPanel( obj ){
	local hwnd

	Gui, 1:Add, Pic, x785 y245 w300 h220 0xE hwndhwnd
	obj.ButtonColorPanelHwnd := hwnd
	SetImage( hwnd , handle := ButtonColors() )
	DeleteObject( handle )
	;****************************************************************************************************

	;Outer Border Color Alpha
	Gui, 1:Add, Edit, cRed x889 y283 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.ButtonColorPanelOuterBorderColorAlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelOuterBorderColorAlphaEdit"

	;Outer Border Color
	Gui, 1:Add, Edit, cRed x929 y283 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.ButtonColorPanelOuterBorderColorEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelOuterBorderColorEdit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y280 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonColorPanelOuterBorderColorEdit

	;****************************************************************************************************


	;Center Border Color Alpha
	Gui, 1:Add, Edit, cRed x889 y313 w28 h18 -E0x200 Center hwndhwnd  Limit2 gSubmitEdit
	Obj.Edits.ButtonColorPanelCenterBorderColorAlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelCenterBorderColorAlphaEdit"

	;Outer Border Color
	Gui, 1:Add, Edit, cRed x929 y313 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.ButtonColorPanelCenterBorderColorEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelCenterBorderColorEdit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y310 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonColorPanelCenterBorderColorEdit

	;****************************************************************************************************


	;Inner Border Color 1 Alpha
	Gui, 1:Add, Edit, cRed x889 y343 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.ButtonColorPanelInnerBorderColor1AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelInnerBorderColor1AlphaEdit"

	;Inner Border Color 1
	Gui, 1:Add, Edit, cRed x929 y343 w88 h18 -E0x200 Center hwndhwnd  Limit6 gSubmitEdit
	Obj.Edits.ButtonColorPanelInnerBorderColor1Edit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelInnerBorderColor1Edit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y340 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonColorPanelInnerBorderColor1Edit

	;****************************************************************************************************

	;Inner Border Color 2 Alpha
	Gui, 1:Add, Edit, cRed x889 y373 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.ButtonColorPanelInnerBorderColor2AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelInnerBorderColor2AlphaEdit"

	;Inner Border Color 2
	Gui, 1:Add, Edit, cRed x929 y373 w88 h18 -E0x200 Center hwndhwnd  Limit6 gSubmitEdit
	Obj.Edits.ButtonColorPanelInnerBorderColor2Edit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelInnerBorderColor2Edit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y370 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonColorPanelInnerBorderColor2Edit

	;****************************************************************************************************

	;Main Color 1 Alpha
	Gui, 1:Add, Edit, cRed x889 y403 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.ButtonColorPanelMainColor1AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelMainColor1AlphaEdit"

	;Main Color 1
	Gui, 1:Add, Edit, cRed x929 y403 w88 h18 -E0x200 Center hwndhwnd  Limit6 gSubmitEdit
	Obj.Edits.ButtonColorPanelMainColor1Edit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelMainColor1Edit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y400 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonColorPanelMainColor1Edit

	;****************************************************************************************************

	;Main Color 2 Alpha
	Gui, 1:Add, Edit, cRed x889 y433 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.ButtonColorPanelMainColor2AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelMainColor2AlphaEdit"

	;Main Color 2
	Gui, 1:Add, Edit, cRed x929 y433 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.ButtonColorPanelMainColor2Edit := hwnd
	Obj.EditHandles[hwnd] := "ButtonColorPanelMainColor2Edit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y430 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonColorPanelMainColor2Edit

	;****************************************************************************************************


}

AddGlossyPanel( obj ){
	local hwnd

	Gui, 1:Add, Pic, x785 y81 w300 h165 0xE hwndhwnd
	obj.GlossyPanelHwnd := hwnd
	SetImage( hwnd , handle := Glossy() )
	DeleteObject( handle )

	;****************************************************************************************************
	;Use Glossy Checkbox
	Gui, 1:Add, Text, x807 y118 w120 h20 BackgroundTrans gToggleGlossy

	;****************************************************************************************************

	;Top Color Alpha
	Gui, 1:Add, Edit, cRed x889 y152 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.GlossyPanelTopColorAlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "GlossyPanelTopColorAlphaEdit"

	;Top Color
	Gui, 1:Add, Edit, cRed x929 y152 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.GlossyPanelTopColorEdit := hwnd
	Obj.EditHandles[hwnd] := "GlossyPanelTopColorEdit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y148 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.GlossyPanelTopColorEdit

	;****************************************************************************************************



	;Bottom Color Alpha
	Gui, 1:Add, Edit, cRed x889 y182 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.GlossyPanelBottomColorAlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "GlossyPanelBottomColorAlphaEdit"

	;Bottom Color
	Gui, 1:Add, Edit, cRed x929 y182 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.GlossyPanelBottomColorEdit := hwnd
	Obj.EditHandles[hwnd] := "GlossyPanelBottomColorEdit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y178 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.GlossyPanelBottomColorEdit

	;****************************************************************************************************

	;Accent Color Alpha
	Gui, 1:Add, Edit, cRed x889 y212 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.GlossyPanelAccentColorAlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "GlossyPanelAccentColorAlphaEdit"

	;Accent Color
	Gui, 1:Add, Edit, cRed x929 y212 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.GlossyPanelAccentColorEdit := hwnd
	Obj.EditHandles[hwnd] := "GlossyPanelAccentColorEdit"

	;Button
	Gui, 1:Add, Text,cRed x1022 y208 w49 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.GlossyPanelAccentColorEdit

	;****************************************************************************************************

}

AddTextColorPanel( obj ){
	local hwnd

	Gui, 1:Add, Pic, x16 y410 w300 h200 0xE hwndhwnd
	obj.TextColorPanelHwnd := hwnd
	SetImage( hwnd , handle := FontColor() )
	DeleteObject( handle )
	;****************************************************************************************************

	;Top Color 1 Alpha
	Gui, 1:Add, Edit, cRed x120 y445 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.TextColorPanelTopColor1AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelTopColor1AlphaEdit"

	;Top Color 1
	Gui, 1:Add, Edit, cRed x160 y445 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.TextColorPanelTopColor1Edit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelTopColor1Edit"

	;Button
	Gui, 1:Add, Text,cRed x253 y442 w48 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.TextColorPanelTopColor1Edit

	;****************************************************************************************************

	;Top Color 2 Alpha
	Gui, 1:Add, Edit, cRed x120 y475 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.TextColorPanelTopColor2AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelTopColor2AlphaEdit"

	;Top Color 2
	Gui, 1:Add, Edit, cRed x160 y475 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.TextColorPanelTopColor2Edit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelTopColor2Edit"

	;Button
	Gui, 1:Add, Text,cRed x253 y472 w48 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.TextColorPanelTopColor2Edit

	;****************************************************************************************************

	;Bottom Color 1 Alpha
	Gui, 1:Add, Edit, cRed x120 y505 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.TextColorPanelBottomColor1AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelBottomColor1AlphaEdit"

	;Bottom Color 1
	Gui, 1:Add, Edit, cRed x160 y505 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.TextColorPanelBottomColor1Edit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelBottomColor1Edit"

	;Button
	Gui, 1:Add, Text,cRed x253 y502 w48 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.TextColorPanelBottomColor1Edit

	;****************************************************************************************************

	;Bottom Color 2 Alpha
	Gui, 1:Add, Edit, cRed x120 y535 w28 h18 -E0x200 Center hwndhwnd Limit2 gSubmitEdit
	Obj.Edits.TextColorPanelBottomColor2AlphaEdit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelBottomColor2AlphaEdit"

	;Bottom Color 2
	Gui, 1:Add, Edit, cRed x160 y535 w88 h18 -E0x200 Center hwndhwnd Limit6 gSubmitEdit
	Obj.Edits.TextColorPanelBottomColor2Edit := hwnd
	Obj.EditHandles[hwnd] := "TextColorPanelBottomColor2Edit"

	;Button
	Gui, 1:Add, Text,cRed x253 y532 w48 h24 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.TextColorPanelBottomColor2Edit

	;****************************************************************************************************

}

AddFontPanel( obj ){
	local hwnd

	Gui, 1:Add, Pic, x16 y215 w300 h200 0xE hwndhwnd
	obj.FontPanelHwnd := hwnd
	SetImage( hwnd , handle := FontOptions() )
	DeleteObject( handle )

	;Font Size
	Gui, 1:Add, Edit, cRed x95 y250 w55 h18 -E0x200 Center Limit3 Number hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelFontSizeEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelFontSizeEdit"

	;Font
	Gui, 1:Add, Edit, cRed x70 y280 w225 h18 -E0x200 Center hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelFontEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelFontEdit"

	;Font Options
	Gui, 1:Add, Edit, cRed x117 y310 w178 h18 -E0x200 Center hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelFontOptionsEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelFontOptionsEdit"

	;X Offset
	Gui, 1:Add, Edit, cRed x87 y340 w70 h18 -E0x200 Center Limit4 hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelXOffsetEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelXOffsetEdit"

	;Y Offset
	Gui, 1:Add, Edit, cRed x217 y340 w70 h18 -E0x200 Center Limit4 hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelYOffsetEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelYOffsetEdit"

	;W Offset
	Gui, 1:Add, Edit, cRed x93 y370 w65 h18 -E0x200 Center Limit4 hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelWOffsetEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelWOffsetEdit"

	;H Offset
	Gui, 1:Add, Edit, cRed x223 y370 w65 h18 -E0x200 Center Limit4 hwndhwnd gSubmitEdit
	Obj.Edits.FontPanelHOffsetEdit := hwnd
	Obj.EditHandles[hwnd] := "FontPanelHOffsetEdit"

}

AddButtonOptionsPanel( obj ){
	local hwnd

	Gui, 1:Add, Pic, x16 y81 w300 h140 0xE hwndhwnd
	obj.ButtonOptionsPanelHwnd := hwnd
	SetImage( hwnd , handle := ButtonOptions() )
	DeleteObject( handle )
	;text
	Gui, 1:Add, Edit,cRed x113 y119 w179 h18 -E0x200 Center hwndhwnd gSubmitEdit
	Obj.Edits.ButtonPanelTextEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonPanelTextEdit"

	;width
	Gui, 1:Add, Edit,cRed x117 y148 w43 h18 -E0x200 Center Limit4 Number hwndhwnd gSubmitEdit
	Obj.Edits.ButtonPanelWidthEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonPanelWidthEdit"

	;height
	Gui, 1:Add, Edit,cRed x255 y148 w43 h18 -E0x200 Center Limit4 Number hwndhwnd gSubmitEdit
	Obj.Edits.ButtonPanelHeightEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonPanelHeightEdit"

	;Background Color
	Gui, 1:Add, Edit,cRed x142 y179 w111 h18 -E0x200 Center Limit6 hwndhwnd gSubmitEdit
	Obj.Edits.ButtonPanelBackgroundColorEdit := hwnd
	Obj.EditHandles[hwnd] := "ButtonPanelBackgroundColorEdit"

	;Button
	Gui, 1:Add, Text,cRed x262 y177 w36 h21 BackgroundTrans hwndhwnd gGetColor
	Obj.ButtonHandles[hwnd] := Obj.Edits.ButtonPanelBackgroundColorEdit

}

CenterPanel( w , h , tab , obj , main ){
	pBitmap := Gdip_CreateBitmap( w , h ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFF" Obj.ButtonPanelBackgroundColorEdit ) , Gdip_FillRectangle( G , Brush , -1 , -1 , w+2 , h+2 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 0 , 0 , w-1 , h-1 ) , Gdip_DeletePen( Pen )

	if(isPressed){
		Gdip_DrawImage(G, HBBitmap := TAG(main) , ( w / 2 ) - ( 200 / 2 ) , 20 , 200 , 200 ) , Gdip_DisposeImage( HBBitmap )
		Gdip_DrawImage(G, HBBitmap := _CreatePressedBitmap( main.Pressed.ButtonPanelWidthEdit , main.Pressed.ButtonPanelHeightEdit , main.Pressed ) , ( w / 2 ) - ( main.Pressed.ButtonPanelWidthEdit / 2 ) , 230 , main.Pressed.ButtonPanelWidthEdit, main.Pressed.ButtonPanelHeightEdit ) , Gdip_DisposeImage( HBBitmap )

	}else if(Active){
		Gdip_DrawImage(G, HBBitmap := TAG(main) , ( w / 2 ) - ( 200 / 2 ) , 20 , 200 , 200 ) , Gdip_DisposeImage( HBBitmap )
		Gdip_DrawImage(G, HBBitmap := _CreateHoverBitmap( main.Hover.ButtonPanelWidthEdit , main.Hover.ButtonPanelHeightEdit , main.Hover ) , ( w / 2 ) - ( main.Hover.ButtonPanelWidthEdit / 2 ) , 230 , main.Hover.ButtonPanelWidthEdit, main.Hover.ButtonPanelHeightEdit ) , Gdip_DisposeImage( HBBitmap )

	}else if(tab="All"){
		GuiControl, 1: Move , % DemoHwnd, % "x" ( w / 2 ) - ( main.Default.ButtonPanelWidthEdit / 2 ) + 320 " y" 230 + 95 " w" main.Default.ButtonPanelWidthEdit " h" main.Default.ButtonPanelHeightEdit

		Gdip_DrawImage(G, HBBitmap := TAG(main) , ( w / 2 ) - ( 200 / 2 ) , 20 , 200 , 200 ) , Gdip_DisposeImage( HBBitmap )
		Gdip_DrawImage(G, HBBitmap := _CreateDefaultBitmap( main.Default.ButtonPanelWidthEdit , main.Default.ButtonPanelHeightEdit , main.Default ) , ( w / 2 ) - ( main.Default.ButtonPanelWidthEdit / 2 ) , 230 , main.Default.ButtonPanelWidthEdit, main.Default.ButtonPanelHeightEdit ) , Gdip_DisposeImage( HBBitmap )

	}else{
		GuiControl, 1: Move , % DemoHwnd, x0 y0 w0 h0
		Gdip_DrawImage(G, HBBitmap := _Create%Tab%Bitmap( Obj.ButtonPanelWidthEdit , Obj.ButtonPanelHeightEdit , Obj ) , ( w / 2 ) - ( Obj.ButtonPanelWidthEdit / 2 ) , ( h / 2 ) - ( Obj.ButtonPanelHeightEdit / 2 ) , Obj.ButtonPanelWidthEdit, Obj.ButtonPanelHeightEdit ) , Gdip_DisposeImage( HBBitmap )
	}


	;Extra
	;___________________________________
	Pen := Gdip_CreatePen( "0xFFF0F0F0" , 4 )
	;~ Pen := Gdip_CreatePen( "0xFFff0000" , 4 )
	;~ Gdip_DrawLine( G , Pen , 315 , 92 , 785 , 92 )
	;~ Gdip_DrawLine( G , Pen , 317 , 89 , 317 , 125 )
	 Gdip_DrawRoundedRectangle( G , Pen , 3 , 3 , 453 , 356 , 0 ) , Gdip_DeletePen( Pen )
	 Pen := Gdip_CreatePen( "0xFF004444" , 1 )
	 Gdip_DrawRoundedRectangle( G , Pen , 5 , 5 , 449 , 352 , 0 ) , Gdip_DeletePen( Pen )
	;x320 y95 w:=460 , h:= 363


	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

Tabs( tab := "All" ){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 343 , 30 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 352 , 32 ) , Gdip_DeleteBrush( Brush )

	if(tab="All"){
		Brush := Gdip_CreateLineBrushFromRect( 4 , 5 , 79 , 18 , "0xFF006666" , "0xFFE2E2E2" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 2 , 3 , 80 , 22 , "0xFF008888" , "0xFF002222" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( G , Pen , 3 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_CreateLineBrushFromRect( 4 , 5 , 78 , 20 , "0xFF006666" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "ALL" , "s12 Center vCenter Bold c" Brush " x3 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 4 , 5 , 78 , 20 , "0xFFffffff" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "ALL" , "s12 Center vCenter Bold c" Brush " x3 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )

		;Highlight
		Brush := Gdip_BrushCreateSolid( "0x11F0F0F0" ) , Gdip_FillRectangle( G , Brush , 5 , 7 , 75 , 8 ) , Gdip_DeleteBrush( Brush )


	}else{
		Brush := Gdip_CreateLineBrushFromRect( 3 , 5 , 80 , 20 , "0xFF1f1f1f" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 3 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 3 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "All" , "s12 Center vCenter Bold c" Brush " x3 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFFFFFFF" ) , Gdip_TextToGraphics( G , "All" , "s12 Center vCenter Bold c" Brush " x3 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )

	}

	if(tab="Default"){
		Brush := Gdip_CreateLineBrushFromRect( 88 , 5 , 80 , 20 , "0xFF006666" , "0xFFE2E2E2" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 88 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 88 , 5 , 80 , 20 , "0xFF008888" , "0xFF002222" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( G , Pen , 88 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_CreateLineBrushFromRect( 88 , 5 , 80 , 20 , "0xFF006666" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "DEFAULT" , "s12 Center vCenter Bold c" Brush " x88 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 88 , 5 , 80 , 20 , "0xFFffffff" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "DEFAULT" , "s12 Center vCenter Bold c" Brush " x88 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		;Highlight
		Brush := Gdip_BrushCreateSolid( "0x11F0F0F0" ) , Gdip_FillRectangle( G , Brush , 90 , 7 , 75 , 8 ) , Gdip_DeleteBrush( Brush )

	}else{

		Brush := Gdip_CreateLineBrushFromRect( 88 , 5 , 80 , 20 , "0xFF1f1f1f" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 88 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 88 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "Default" , "s12 Center vCenter Bold c" Brush " x88 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFFFFFFF" ) , Gdip_TextToGraphics( G , "Default" , "s12 Center vCenter Bold c" Brush " x88 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )

	}
	if(tab="Hover"){
		Brush := Gdip_CreateLineBrushFromRect( 173 , 5 , 80 , 20 , "0xFF006666" , "0xFFE2E2E2" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 173 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 173 , 5 , 80 , 20 , "0xFF008888" , "0xFF002222" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( G , Pen , 173 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_CreateLineBrushFromRect( 173 , 5 , 80 , 20 , "0xFF006666" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "HOVER" , "s12 Center vCenter Bold c" Brush " x173 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 173 , 5 , 80 , 20 , "0xFFffffff" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "HOVER" , "s12 Center vCenter Bold c" Brush " x173 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		;Highlight
		Brush := Gdip_BrushCreateSolid( "0x11F0F0F0" ) , Gdip_FillRectangle( G , Brush , 175 , 7 , 75 , 8 ) , Gdip_DeleteBrush( Brush )

	}else{

		Brush := Gdip_CreateLineBrushFromRect( 89 , 5 , 77 , 20 , "0xFF1f1f1f" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 173 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 173 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "Hover" , "s12 Center vCenter Bold c" Brush " x173 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFFFFFFF" ) , Gdip_TextToGraphics( G , "Hover" , "s12 Center vCenter Bold c" Brush " x173 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )

	}

	if(tab="Pressed"){
		Brush := Gdip_CreateLineBrushFromRect( 258 , 5 , 80 , 20 , "0xFF006666" , "0xFFE2E2E2" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 258 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 258 , 5 , 80 , 20 , "0xFF008888" , "0xFF002222" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( G , Pen , 258 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_CreateLineBrushFromRect( 258 , 5 , 80 , 20 , "0xFF006666" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "PRESSED" , "s12 Center vCenter Bold c" Brush " x258 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 258 , 5 , 80 , 20 , "0xFFffffff" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "PRESSED" , "s12 Center vCenter Bold c" Brush " x258 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		;Highlight
		Brush := Gdip_BrushCreateSolid( "0x11F0F0F0" ) , Gdip_FillRectangle( G , Brush , 260 , 7 , 75 , 8 ) , Gdip_DeleteBrush( Brush )

	}else{

		Brush := Gdip_CreateLineBrushFromRect( 89 , 5 , 77 , 20 , "0xFF1f1f1f" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 258 , 5 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 258 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
		;Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "Pressed" , "s12 Center vCenter Bold c" Brush " x258 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFFFFFFF" ) , Gdip_TextToGraphics( G , "Pressed" , "s12 Center vCenter Bold c" Brush " x258 y6" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )

	}



	;~ ;Highlight
	;~ Brush := Gdip_BrushCreateSolid( "0x11F0F0F0" ) , Gdip_FillRectangle( G , Brush , 5 , 7 , 75 , 8 ) , Gdip_DeleteBrush( Brush )


	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

ButtonColors(){
	local BackgroundColor := "0xFFF1F1F1" , HeaderColor := "0xFFF4F4F4"
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 300 , 220 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 222 ) , Gdip_DeleteBrush( Brush )


	Brush := Gdip_BrushCreateSolid( BackgroundColor ) , Gdip_FillRectangle( G , Brush , 10 , 15 , 280 , 198 ) , Gdip_DeleteBrush( Brush )

	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 10 , 15 , 280 , 198 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( HeaderColor ) , Gdip_FillRectangle( G , Brush , 15 , 5 , 138 , 22 ) , Gdip_DeleteBrush( Brush )
	;Brush := Gdip_CreateLineBrushFromRect( 15 , 8 , 96 , 17 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Button Colors" , "s12  Bold c" Brush " x42 y8" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 15 , 8 , 96 , 17 , "0xFF006666" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Button Colors" , "s12  Bold c" Brush " x42 y8" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 15 , 5 , 138 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Outer Border:" , "s12 c" Brush " x16 y38" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 35 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 35 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 35 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 35 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 34 , 49 , 24 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 34 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 35 , 51 , 49 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 34 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 15 , 8 , 96 , 17 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y38" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Center Border:" , "s12 c" Brush " x16 y68" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 65 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 65 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 65 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 65 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 63 , 47 , 25 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 64 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 61 , 51 , 49 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 64 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 66 , 49 , 20 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y68" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Inner Border 1:" , "s12 c" Brush " x16 y98" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 95 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 95 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 95 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 95 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 94 , 47 , 24 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 94 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 94 , 50 , 40 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 94 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 94 , 47 , 24 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y98" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Inner Border 2:" , "s12 c" Brush " x16 y128" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 125 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 125 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 125 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 125 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 124 , 47 , 23 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 124 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 124 , 47 , 43 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 124 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 128 , 48 , 21 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y128" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Main 1:" , "s12 c" Brush " x16 y158" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 155 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 155 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 155 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 155 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 154 , 50 , 21 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 154 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 153 , 52 , 42 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 154 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 154 , 48 , 23 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y158" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Main 2:" , "s12 c" Brush " x16 y188" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 185 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 185 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 185 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 185 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 184 , 48 , 24 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 184 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 182 , 51 , 51 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 184 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 154 , 48 , 23 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y188" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

Glossy( input := 0 ){
	local BackgroundColor := "0xFFF1F1F1" , HeaderColor := "0xFFF4F4F4"
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 300 , 165 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 172 ) , Gdip_DeleteBrush( Brush )

	Brush := Gdip_BrushCreateSolid( BackgroundColor ) , Gdip_FillRectangle( G , Brush , 10 , 15 , 280 , 145 ) , Gdip_DeleteBrush( Brush )

	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 10 , 15 , 280 , 145 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( HeaderColor ) , Gdip_FillRectangle( G , Brush , 15 , 6 , 120 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 15 , 6 , 120 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 15 , 6 , 120 , 21 , "0xFF00aaaa" , "0xFF004444" , 1 , 1 ) , Gdip_TextToGraphics( G , "Glossy" , "s12 Center vCenter Bold c" Brush " x15 y6" , "Segoe ui" , 120 , 22 ) , Gdip_DeleteBrush( Brush )
	;Use Glossy Checkbox
	Brush := Gdip_BrushCreateSolid( BackgroundColor ) , Gdip_FillRectangle( G , Brush , 18 , 38 , 122 , 19 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 21 , 41 , 13 , 13 ) , Gdip_DeletePen( Pen )
	;Brush := Gdip_BrushCreateSolid( (input=1)?("0xFF008888"):("0xFF003333") ) , Gdip_FillRectangle( G , Brush , 24 , 44 , 7 , 7 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( (input=1)?("0xFF008888"):("0xFFFFFFFF") ) , Gdip_FillRectangle( G , Brush , 24 , 44 , 7 , 7 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Use Glossy Effect" , "s12 c" Brush " x41 y40" , "Segoe ui" , 120 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Top Color:" , "s12 c" Brush " x16 y70" , "Segoe ui" , 120 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Btm Color:" , "s12 c" Brush " x16 y100" , "Segoe ui" , 120 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Accent Color:" , "s12 c" Brush " x16 y130" , "Segoe ui" , 120 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 68 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 98 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 102 , 128 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 68 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 98 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 142 , 128 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 69 , 46 , 22 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 67 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 240 , 97 , 44 , 25 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 97 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 127 , 47 , 23 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 127 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 68 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 98 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 128 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 68 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 98 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 128 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 66 , 52 , 48 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 67 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 237 , 97 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 237 , 127 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 67 , 45 , 23 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12 Center vCenter Bold c" Brush " x236 y55" , "Segoe ui" , 50 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 97 , 46 , 24 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12 Center vCenter Bold c" Brush " x236 y85" , "Segoe ui" , 50 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 239 , 128 , 46 , 24 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12 Center vCenter Bold c" Brush " x236 y115" , "Segoe ui" , 50 , 50 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

FontColor(){
	local BackgroundColor := "0xFFF1F1F1" , HeaderColor := "0xFFF4F4F4"
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap:=Gdip_CreateBitmap( 300 , 160 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ),Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 162 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( BackgroundColor ),Gdip_FillRectangle( G , Brush , 10 , 10 , 280 , 140 ),Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 10 , 10 , 280 , 140 ),Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( HeaderColor ),Gdip_FillRectangle( G , Brush , 15 , 3 , 130 , 20 ),Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 15 , 3 , 130 , 20 ),Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 16 , 4 , 169 , 19 , "0xFF00aaaa" , "0xFF004444" , 1 , 1 ),Gdip_TextToGraphics( G , "Text Colors" , "s12 Center vCenter Bold c" Brush " x15 y4" , "Segoe ui" , 130 , 20 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ),Gdip_TextToGraphics( G , "Top Color 1:" , "s12 c" Brush " x17 y34" , "Segoe ui" , 130 , 20 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ),Gdip_TextToGraphics( G , "Top Color 2:" , "s12 c" Brush " x17 y64" , "Segoe ui" , 130 , 20 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ),Gdip_TextToGraphics( G , "Btm Color 1:" , "s12 c" Brush " x17 y94" , "Segoe ui" , 130 , 20 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ),Gdip_TextToGraphics( G , "Btm Color 2:" , "s12 c" Brush " x17 y124" , "Segoe ui" , 130 , 20 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 102 , 33 , 30 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 142 , 33 , 90 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 102 , 63 , 30 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 142 , 63 , 90 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 102 , 93 , 30 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 142 , 93 , 90 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 102 , 123 , 30 , 22 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ),Gdip_FillRectangle( G , Brush , 142 , 123 , 90 , 22 ),Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 102 , 33 , 30 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 142 , 33 , 90 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 102 , 63 , 30 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 142 , 63 , 90 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 102 , 93 , 30 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 102 , 123 , 30 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 142 , 93 , 90 , 22 ),Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ),Gdip_DrawRectangle( G , Pen , 142 , 123 , 90 , 22 ),Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 34 , 45 , 24 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ),Gdip_FillRectangle( G , Brush , 237 , 32 , 47 , 24 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 32 , 49 , 38 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ),Pen := Gdip_CreatePenFromBrush( Brush , 1 ),Gdip_DeleteBrush( Brush ),Gdip_DrawRectangle( G , Pen , 237 , 32 , 47 , 24 ),Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 32 , 48 , 25 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ),Gdip_TextToGraphics( G , "Get" , "s12 Bold c" Brush " x248 y36" , "Segoe ui" , 70 , 50 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 239 , 62 , 43 , 22 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ),Gdip_FillRectangle( G , Brush , 237 , 62 , 47 , 24 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 240 , 62 , 48 , 40 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ),Pen := Gdip_CreatePenFromBrush( Brush , 1 ),Gdip_DeleteBrush( Brush ),Gdip_DrawRectangle( G , Pen , 237 , 62 , 47 , 24 ),Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 62 , 45 , 22 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ),Gdip_TextToGraphics( G , "Get" , "s12 Bold c" Brush " x248 y66" , "Segoe ui" , 70 , 50 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 93 , 45 , 22 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ),Gdip_FillRectangle( G , Brush , 237 , 92 , 47 , 24 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 90 , 49 , 38 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ),Pen := Gdip_CreatePenFromBrush( Brush , 1 ),Gdip_DeleteBrush( Brush ),Gdip_DrawRectangle( G , Pen , 237 , 92 , 47 , 24 ),Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 240 , 92 , 42 , 22 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ),Gdip_TextToGraphics( G , "Get" , "s12 Bold c" Brush " x248 y96" , "Segoe ui" , 70 , 50 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 120 , 45 , 26 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ),Gdip_FillRectangle( G , Brush , 237 , 122 , 47 , 24 ),Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 239 , 122 , 46 , 36 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ),Pen := Gdip_CreatePenFromBrush( Brush , 1 ),Gdip_DeleteBrush( Brush ),Gdip_DrawRectangle( G , Pen , 237 , 122 , 47 , 24 ),Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 240 , 121 , 44 , 24 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ),Gdip_TextToGraphics( G , "Get" , "s12 Bold c" Brush " x248 y126" , "Segoe ui" , 70 , 50 ),Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

FontOptions(){
	local BackgroundColor := "0xFFF1F1F1" , HeaderColor := "0xFFF4F4F4"
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap:=Gdip_CreateBitmap( 300 , 200 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 202 ) , Gdip_DeleteBrush( Brush )



	Brush := Gdip_BrushCreateSolid( BackgroundColor ) , Gdip_FillRectangle( G , Brush , 10 , 15 , 280 , 175 ) , Gdip_DeleteBrush( Brush )

	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 10 , 15 , 280 , 175 ) , Gdip_DeletePen( Pen )
	;~ Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , 15 , 10 , 136 , 10 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( HeaderColor ) , Gdip_FillRectangle( G , Brush , 15 , 5 , 136 , 20 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 15 , 5 , 136 , 20 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 18 , 7 , 135 , 17 , "0xFF00aaaa" , "0xFF004444" , 1 , 1 ) , Gdip_TextToGraphics( G , "Font & Font Options" , "s12 Bold c" Brush " x23 y6" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Font:" , "s12 c" Brush " x17 y66" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;Font Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 52 , 63 , 228 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 52 , 63 , 228 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Font Size:" , "s12 c" Brush " x17 y36" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;Font Size Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 77 , 33 , 58 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 76 , 33 , 59 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Font Options:" , "s12 c" Brush " x17 y96" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;Font Options Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 100 , 93 , 180 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 99 , 93 , 181 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "X Offset:" , "s12 c" Brush " x17 y126" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;X Offset Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 70 , 123 , 72 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 69 , 123 , 73 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Y Offset:" , "s12 c" Brush " x147 y126" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;Y Offset Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 200 , 123 , 72 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 199 , 123 , 73 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "W Offset:" , "s12 c" Brush " x17 y156" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;W Offset Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 75 , 153 , 67 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 75 , 153 , 68 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "H Offset:" , "s12 c" Brush " x147 y156" , "Segoe ui" , 140 , 50 ) , Gdip_DeleteBrush( Brush )
	;H Offset Edit
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 205 , 153 , 67 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 205 , 153 , 68 , 22 ) , Gdip_DeletePen( Pen )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

ButtonOptions(){
	;Bitmap Created Using: HB Bitmap Maker

	local BackgroundColor := "0xFFF1F1F1" , HeaderColor := "0xFFF4F4F4"

	pBitmap := Gdip_CreateBitmap( 300 , 140 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 142 ) , Gdip_DeleteBrush( Brush )




	Brush := Gdip_BrushCreateSolid( BackgroundColor ) , Gdip_FillRectangle( G , Brush , 10 , 15 , 280 , 115 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 10 , 15 , 280 , 115 ) , Gdip_DeletePen( Pen )


	;~ Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , 15 , 10 , 110 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( HeaderColor ) , Gdip_FillRectangle( G , Brush , 15 , 10 , 110 , 20 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 15 , 10 , 110 , 20 ) , Gdip_DeletePen( Pen )



	Brush := Gdip_CreateLineBrushFromRect( 15 , 11 , 110 , 20 , "0xFF00aaaa" , "0xFF004444" , 1 , 1 ) , Gdip_TextToGraphics( G , "Button Options" , "s12 Bold Center vCenter c" Brush " x15 y11" , "Segoe ui" , 110 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Button Text:" , "s12 c" Brush " x17 y38" , "Segoe ui" , 120 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 95 , 35 , 181 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 95 , 35 , 181 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Button Width:" , "s12 c" Brush " x17 y68" , "Segoe ui" , 120 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 100 , 65 , 44 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 99 , 65 , 46 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Button Height:" , "s12 c" Brush " x151 y68" , "Segoe ui" , 120 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 238 , 65 , 44 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 237 , 65 , 46 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Background Color:" , "s12 c" Brush " x17 y98" , "Segoe ui" , 120 , 50 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 124 , 95 , 114 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 124 , 95 , 114 , 22 ) , Gdip_DeletePen( Pen )
	;Color get button
	Brush := Gdip_CreateLineBrushFromRect( 245 , 96 , 35 , 21 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 245 , 95 , 37 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 244 , 95 , 38 , 34 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 245 , 95 , 37 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 247 , 95 , 33 , 22 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x252 y98" , "Segoe ui" , 50 , 50 ) , Gdip_DeleteBrush( Brush )





	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

Background(){
	local w
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap:=Gdip_CreateBitmap( w:=1100 , h:=590 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 ) , Gdip_SetInterpolationMode( G , 7)
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 1102 , 592 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFFE2E2E2" , 1 ) , Gdip_DrawRectangle( G , Pen , 0 , 0 , w-1 , h-1 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 2 , 2 , w-5 , h-5 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , 9 , 39 , 1082 , 542 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 10 , 40 , 1080 , 540 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 20 , 50 , 83 , 20 , "0xFF1f1f1f" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 20 , 50 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 20 , 50 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "ALL" , "s12 Center vCenter Bold c" Brush " x20 y51" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 20 , 50 , 83 , 20 , "0xFF006666" , "0xFFE2E2E2" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 105 , 50 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 105 , 50 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 107 , 52 , 77 , 16 , "0xFF006666" , "0xFFffffff" , 1 , 1 ) , Gdip_TextToGraphics( G , "DEFAULT" , "s12 Center vCenter Bold c" Brush " x105 y51" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 20 , 50 , 83 , 20 , "0xFF1f1f1f" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 190 , 50 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 190 , 50 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "HOVER" , "s12 Center vCenter Bold c" Brush " x190 y51" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 20 , 50 , 83 , 20 , "0xFF1F1F1F" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 275 , 50 , 80 , 20 , 5 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 275 , 50 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF004444" ) , Gdip_TextToGraphics( G , "PRESSED" , "s12 Center vCenter Bold c" Brush " x275 y51" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
	;Brush := Gdip_BrushCreateSolid( "0xFFFFFFFF" ) , Gdip_TextToGraphics( G , "PRESSED" , "s12 Center vCenter Bold c" Brush " x275 y51" , "Segoe ui" , 80 , 20 ) , Gdip_DeleteBrush( Brush )
	;Banner
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRoundedRectangle( G , Brush , 10 , 5 , 610 , 30 , 7 ) , Gdip_DeleteBrush( Brush )
	;Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRoundedRectangle( G , Brush , 10 , 5 , 1000 , 30 , 7 ) , Gdip_DeleteBrush( Brush )
	w := 10
	loop ,% 610 / w	{
		Brush := Gdip_CreateLineBrushFromRect( 0 , 50 , w , 20  , "0x07006666" , "0x44F0F0F0"  , 0 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 10 , 5 , 610 , 30 , 7 ) , Gdip_DeleteBrush( Brush )
		w+=10
	}
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 10 , 5 , 610 , 30 , 7 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFE2E2E2" )
	Gdip_TextToGraphics( G , "HB Button Maker v1.01" , "s24 Center vCenter Bold c" Brush " x12 y7" , "Segoe UI" , 610 , 30 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 10 , 5 , 610 , 30 , "0xFF002222" , "0xFF009999" , 1 , 1 )
	Gdip_TextToGraphics( G , "HB Button Maker v1.01" , "s24 Center vCenter Bold c" Brush " x10 y5" , "Segoe UI" , 610 , 30 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ),Gdip_FillRectangle( G , Brush , 15 , 80 , 1070 , 495 ),Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 15 , 80 , 1070 , 495 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFF3F3F3" ) , Gdip_FillRectangle( G , Brush , 320 , 465 , 755 , 95 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 320 , 465 , 755 , 95 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 324 , 469 , 641 , 86 ) , Gdip_DeletePen( Pen )




	;x975 y500 w90 h45
	Brush := Gdip_BrushCreateSolid( "0xFFF1F1F1" ) , Gdip_FillRectangle( G , Brush , 970 , 472 , 100 , 82 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 970 , 472 , 100 , 82 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF071111" , 4 ) , Gdip_DrawRectangle( G , Pen , 973 , 475 , 95 , 77 ) , Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 974 , 476 , 92 , 74 ) , Gdip_DeletePen( Pen )



	;update button ;37w 22h
	Brush := Gdip_CreateLineBrushFromRect( 980 , 515 , 80 , 30 , "0xFF2d2d2d" , "0xFFF0F0F0" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 980 , 515 , 80 , 30 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 980 , 515 , 80 , 30 , "0xFF006666" , "0xFFF0F0F0" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 980 , 515 , 80 , 30 ) , Gdip_DeletePen( Pen )
	;Brush := Gdip_CreateLineBrushFromRect( 980 , 515 , 80 , 30 , "0xFF006666" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Update" , "s12 vCenter Center Bold c" Brush " x980 y516" , "Segoe ui" , 80 , 30 ) , Gdip_DeleteBrush( Brush )
	;Brush := Gdip_CreateLineBrushFromRect( 980 , 515 , 80 , 30 , "0xFF006666" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Update" , "s12 vCenter Center Bold c" Brush " x980 y516" , "Segoe ui" , 80 , 30 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 980 , 515 , 80 , 30 , "0xFFFFFFFF" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Update" , "s12 vCenter Center Bold c" Brush " x980 y516" , "Segoe ui" , 80 , 30 ) , Gdip_DeleteBrush( Brush )

	Brush := Gdip_BrushCreateSolid( "0xFFF1F1F1" ) , Gdip_FillRoundedRectangle( G , Brush , 370 , 45 , 340 , 30 , 5 ) , Gdip_DeleteBrush( Brush )
	w := 10
	loop, 33	{
		Brush := Gdip_CreateLineBrushFromRect( 370 , 45 , w , 30 , "0x44F0F0F0" , "0x07006666" , 0 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 370 , 45 , 340 , 30  , 5 ) , Gdip_DeleteBrush( Brush )
		w+=10
	}
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 370 , 45 , 340 , 30 , 5 ) , Gdip_DeletePen( Pen )
	;Brush := Gdip_CreateLineBrushFromRect( 370 , 45 , 340 , 30 , "0xFF006666" , "0xFFFFFFFF" , 1 , 1 ) , Gdip_TextToGraphics( G , "Button Name: " , "s14 vCenter Bold c" Brush " x380 y46" , "Segoe ui" , 340 , 30 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 370 , 45 , 340 , 30 , "0xFF006666" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Button Name: " , "s14 vCenter Bold c" Brush " x380 y46" , "Segoe ui" , 340 , 30 ) , Gdip_DeleteBrush( Brush )

	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 484 , 49 , 211 , 23 ) , Gdip_DeletePen( Pen )

	;~ x485 y50 w210 h22





	Gdip_DeleteGraphics( G )
	return pBitmap
}


AddClosePanel( obj ){
	local hwnd

	Gui, 1:Add, Pic, x970 y7 w120 h30 0xE hwndhwnd
	obj.TextColorPanelHwnd := hwnd
	SetImage( hwnd , handle := CloseButtons() )
	DeleteObject( handle )
	;****************************************************************************************************

	;~ ;Question Button
	Gui, 1:Add, Text,cRed x977 y12 w32 h19 BackgroundTrans gGotoThreadTopic
	;~ ;Minimize Button
	Gui, 1:Add, Text,cRed x1014 y12 w32 h19 BackgroundTrans gMinimizeWindow
	;~ ;Close Button
	Gui, 1:Add, Text,cRed x1051 y12 w32 h19 BackgroundTrans gGuiClose
	;****************************************************************************************************
}
CloseButtons(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 120 , 30 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 122 , 32 ) , Gdip_DeleteBrush( Brush )
	;~ Brush := Gdip_CreateLineBrushFromRect( 2 , 3 , 117 , 24 , "0xFFF3F3F3" , "0xFF0B4747" , 0 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 2 , 2 , 116 , 25 , 4 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 2 , 3 , 117 , 24 , "0xFFF3F3F3" , "0x990B4747" , 0 , 1 ) , Gdip_FillRoundedRectangle( G , Brush , 2 , 2 , 116 , 25 , 4 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0x33004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 2 , 2 , 116 , 25 , 5 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 17 , 8 , 81 , 14 , "0xFFF3F3F3" , "0x99004444" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 7 , 5 , 106 , 19 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0x33004444" , 1 ) , Gdip_DrawEllipse( G , Pen , 7 , 5 , 106 , 19 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 9 , 7 , 28 , 13 , "0xFFF0F0F0" , "0x99004444" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 7 , 5 , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFE2E2E2" ) , Gdip_TextToGraphics( G , "?" , "s14 Center vCenter Bold c" Brush " x7 y6" , "Segoe ui" , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF00aaaa" ) , Gdip_TextToGraphics( G , "?" , "s14 Center vCenter Bold c" Brush " x8 y7" , "Segoe ui" , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0x33004444" , 2 ) , Gdip_DrawEllipse( G , Pen , 7 , 5 , 32 , 19 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 44 , 6 , 29 , 17 , "0xFFF0F0F0" , "0x99004444" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 44 , 5 , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFE2E2E2" ) , Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x44 y2" , "Segoe ui" , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF00aaaa" ) , Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x45 y3" , "Segoe ui" , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0x33004444" , 2 ) , Gdip_DrawEllipse( G , Pen , 44 , 5 , 32 , 19 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 81 , 7 , 30 , 15 , "0xFFF0F0F0" , "0xFF004444" , 1 , 1 ) , Gdip_FillEllipse( G , Brush , 81 , 5 , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0x33004444" , 2 ) , Gdip_DrawEllipse( G , Pen , 81 , 5 , 32 , 19 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFFE2E2E2" ) , Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x81 y6" , "Segoe ui" , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF00aaaa" ) , Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x82 y7" , "Segoe ui" , 32 , 19 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	hBitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
	Gdip_DisposeImage( pBitmap )
	return hBitmap
}

UpdateButton:
	counter := 0
	GetEdits( MainObj , CurrentTab )
	if(MainObj.Tab[CurrentTab]="All"){
		for k, v in ["Default","Hover","Pressed"]{
			for i, j in MainObj[v]{
				if( MainObj["All"][i]!="" && i != "GlossyPanelUseGlossyCheckbox" )
					MainObj[v][i] := MainObj["All"][i]
				if( i = "GlossyPanelUseGlossyCheckbox" && GlossyChange ){
					MainObj[v][i] := MainObj["All"][i]
					;~ ToolTip, % "glossy changed`ncounter: " ++counter
				}
			}
		}
		GlossyChange := 0
	}
	SetImage( Pichwnd , handle := CenterPanel( w , h , MainObj.Tab[CurrentTab] , MainObj[MainObj.Tab[CurrentTab]] , MainObj ) )
	DeleteObject( handle )
	SetDisplayWindow( MainObj )
	return

GetColor:
	CoordMode, Mouse, Screen
	CoordMode, Pixel, Screen
	MouseGetPos,,,,ctrl2,2
	While(!GetKeyState("ctrl")){
		ToolTip, Press "CTRL" to capture screen color under cursor.
		Sleep, 60
	}
	ToolTip,
	MouseGetPos, x, y
	PixelGetColor, out, x, y, rgb
	StringRight, out, out, 6
	guiControl,1:Focus, % MainObj.ButtonHandles[ctrl2]
	guiControl,1:, % MainObj.ButtonHandles[ctrl2] , % "" out
	SendMessage, 0xB1, -2, -1,, % "ahk_id " MainObj.ButtonHandles[ctrl2]
	return

MoveWindow:
	PostMessage, 0xA1, 2
	return

ToggleGlossy:
	MainObj[MainObj.Tab[CurrentTab]].GlossyPanelUseGlossyCheckbox := !MainObj[MainObj.Tab[CurrentTab]].GlossyPanelUseGlossyCheckbox
	SetImage( MainObj.GlossyPanelHwnd  , handle := Glossy( MainObj[MainObj.Tab[CurrentTab]].GlossyPanelUseGlossyCheckbox ) )
	DeleteObject( handle )
	RedrawGlossyEdits(MainObj)
	if( MainObj.Tab[CurrentTab] = "ALL" )
		GlossyChange := 1
	return

RedrawGlossyEdits(Obj){
	for k, v in ["GlossyPanelTopColorAlphaEdit","GlossyPanelTopColorEdit","GlossyPanelBottomColorAlphaEdit","GlossyPanelBottomColorEdit","GlossyPanelAccentColorAlphaEdit","GlossyPanelAccentColorEdit"]
		GuiControl, 1:+Redraw, % Obj.Edits[v]
}

SetDefaults(ByRef Obj){
	local w := 200 , h := 65
	Obj.All := {}
	Obj.Default := {}
	Obj.Hover := {}
	Obj.Pressed := {}

	;**************************************************************************

	Obj.All.ButtonPanelTextEdit := ""
	;Obj.All.ButtonPanelBackgroundColorEdit := "D0D0D0"
	Obj.All.ButtonPanelBackgroundColorEdit := color_1
	Obj.All.ButtonPanelWidthEdit := w
	Obj.All.ButtonPanelHeightEdit := h
	Obj.All.FontPanelFontEdit := ""
	Obj.All.FontPanelFontOptionsEdit := ""
	Obj.All.FontPanelFontSizeEdit := ""
	Obj.All.FontPanelHOffsetEdit := ""
	Obj.All.FontPanelWOffsetEdit := ""
	Obj.All.FontPanelXOffsetEdit := ""
	Obj.All.FontPanelYOffsetEdit := ""

	Obj.All.TextColorPanelBottomColor1AlphaEdit := ""
	Obj.All.TextColorPanelBottomColor1Edit := ""
	Obj.All.TextColorPanelBottomColor2AlphaEdit := ""
	Obj.All.TextColorPanelBottomColor2Edit := ""
	Obj.All.TextColorPanelTopColor1AlphaEdit := ""
	Obj.All.TextColorPanelTopColor1Edit := ""
	Obj.All.TextColorPanelTopColor2AlphaEdit := ""
	Obj.All.TextColorPanelTopColor2Edit := ""

	Obj.All.GlossyPanelUseGlossyCheckbox := ""

	Obj.All.GlossyPanelTopColorAlphaEdit := ""
	Obj.All.GlossyPanelTopColorEdit := ""

	Obj.All.GlossyPanelBottomColorAlphaEdit := ""
	Obj.All.GlossyPanelBottomColorEdit := ""

	Obj.All.GlossyPanelAccentColorAlphaEdit := ""
	Obj.All.GlossyPanelAccentColorEdit := ""

	Obj.All.ButtonColorPanelOuterBorderColorAlphaEdit := ""
	Obj.All.ButtonColorPanelOuterBorderColorEdit := ""

	Obj.All.ButtonColorPanelCenterBorderColorAlphaEdit := ""
	Obj.All.ButtonColorPanelCenterBorderColorEdit := ""

	Obj.All.ButtonColorPanelInnerBorderColor1AlphaEdit := ""
	Obj.All.ButtonColorPanelInnerBorderColor1Edit := ""
	Obj.All.ButtonColorPanelInnerBorderColor2AlphaEdit := ""
	Obj.All.ButtonColorPanelInnerBorderColor2Edit := ""

	Obj.All.ButtonColorPanelMainColor1AlphaEdit := ""
	Obj.All.ButtonColorPanelMainColor1Edit := ""
	Obj.All.ButtonColorPanelMainColor2AlphaEdit := ""
	Obj.All.ButtonColorPanelMainColor2Edit := ""

	;**************************************************************************

	Obj.Default.ButtonPanelTextEdit := "Button"
	;Obj.Default.ButtonPanelBackgroundColorEdit := "D0D0D0"
	Obj.Default.ButtonPanelBackgroundColorEdit := color_1
	Obj.Default.ButtonPanelWidthEdit := w
	Obj.Default.ButtonPanelHeightEdit := h
	Obj.Default.FontPanelFontEdit := "Arial"
	Obj.Default.FontPanelFontOptionsEdit := " Bold Center vCenter "
	Obj.Default.FontPanelFontSizeEdit := "12"
	Obj.Default.FontPanelHOffsetEdit := 0
	Obj.Default.FontPanelWOffsetEdit := 0
	Obj.Default.FontPanelXOffsetEdit := 0
	Obj.Default.FontPanelYOffsetEdit := 0

	Obj.Default.TextColorPanelBottomColor1AlphaEdit := "00"
	Obj.Default.TextColorPanelBottomColor1Edit := "02112F"
	Obj.Default.TextColorPanelBottomColor2AlphaEdit := Obj.Default.TextColorPanelBottomColor1AlphaEdit
	Obj.Default.TextColorPanelBottomColor2Edit := Obj.Default.TextColorPanelBottomColor1Edit
	Obj.Default.TextColorPanelTopColor1AlphaEdit := "FF"
	Obj.Default.TextColorPanelTopColor1Edit := "FFFFFF"
	Obj.Default.TextColorPanelTopColor2AlphaEdit := Obj.Default.TextColorPanelTopColor1AlphaEdit
	Obj.Default.TextColorPanelTopColor2Edit := Obj.Default.TextColorPanelTopColor1Edit

	Obj.Default.GlossyPanelUseGlossyCheckbox := 1

	Obj.Default.GlossyPanelTopColorAlphaEdit := "11"
	Obj.Default.GlossyPanelTopColorEdit := "FFFFFF"

	Obj.Default.GlossyPanelBottomColorAlphaEdit := "33"
	Obj.Default.GlossyPanelBottomColorEdit := "E2E2E2"

	Obj.Default.GlossyPanelAccentColorAlphaEdit := "05"
	Obj.Default.GlossyPanelAccentColorEdit := "FFFFFF"

	Obj.Default.ButtonColorPanelOuterBorderColorAlphaEdit := "FF"
	Obj.Default.ButtonColorPanelOuterBorderColorEdit := "161B1F"

	Obj.Default.ButtonColorPanelCenterBorderColorAlphaEdit := "FF"
	Obj.Default.ButtonColorPanelCenterBorderColorEdit := "262B2F"

	Obj.Default.ButtonColorPanelInnerBorderColor1AlphaEdit := "FF"
	Obj.Default.ButtonColorPanelInnerBorderColor1Edit := "3F444A"
	Obj.Default.ButtonColorPanelInnerBorderColor2AlphaEdit := "FF"
	Obj.Default.ButtonColorPanelInnerBorderColor2Edit := "24292D"

	Obj.Default.ButtonColorPanelMainColor1AlphaEdit := "FF"
	Obj.Default.ButtonColorPanelMainColor1Edit := "272C32"
	Obj.Default.ButtonColorPanelMainColor2AlphaEdit := Obj.Default.ButtonColorPanelMainColor1AlphaEdit
	Obj.Default.ButtonColorPanelMainColor2Edit := Obj.Default.ButtonColorPanelMainColor1Edit


	;*************************************************************************************

	Obj.Hover.ButtonPanelTextEdit := "Button"
	;Obj.Hover.ButtonPanelBackgroundColorEdit := "D0D0D0"
	Obj.Hover.ButtonPanelBackgroundColorEdit := color_1
	Obj.Hover.ButtonPanelWidthEdit := w
	Obj.Hover.ButtonPanelHeightEdit := h
	Obj.Hover.FontPanelFontEdit := "Arial"
	Obj.Hover.FontPanelFontOptionsEdit := " Bold Center vCenter "
	Obj.Hover.FontPanelFontSizeEdit := "12"
	Obj.Hover.FontPanelHOffsetEdit := 0
	Obj.Hover.FontPanelWOffsetEdit := 0
	Obj.Hover.FontPanelXOffsetEdit := 0
	Obj.Hover.FontPanelYOffsetEdit := 0

	Obj.Hover.TextColorPanelBottomColor1AlphaEdit := "00"
	Obj.Hover.TextColorPanelBottomColor1Edit := "02112F"
	Obj.Hover.TextColorPanelBottomColor2AlphaEdit := Obj.Hover.TextColorPanelBottomColor1AlphaEdit
	Obj.Hover.TextColorPanelBottomColor2Edit := Obj.Hover.TextColorPanelBottomColor1Edit
	Obj.Hover.TextColorPanelTopColor1AlphaEdit := "FF"
	Obj.Hover.TextColorPanelTopColor1Edit := "FFFFFF"
	Obj.Hover.TextColorPanelTopColor2AlphaEdit := Obj.Hover.TextColorPanelTopColor1AlphaEdit
	Obj.Hover.TextColorPanelTopColor2Edit := Obj.Hover.TextColorPanelTopColor1Edit

	Obj.Hover.GlossyPanelUseGlossyCheckbox := 1

	Obj.Hover.GlossyPanelTopColorAlphaEdit := "11"
	Obj.Hover.GlossyPanelTopColorEdit := "FFFFFF"

	Obj.Hover.GlossyPanelBottomColorAlphaEdit := "33"
	Obj.Hover.GlossyPanelBottomColorEdit := "E2E2E2"

	Obj.Hover.GlossyPanelAccentColorAlphaEdit := "05"
	Obj.Hover.GlossyPanelAccentColorEdit := "FFFFFF"

	Obj.Hover.ButtonColorPanelOuterBorderColorAlphaEdit := "FF"
	Obj.Hover.ButtonColorPanelOuterBorderColorEdit := "161B1F"

	Obj.Hover.ButtonColorPanelCenterBorderColorAlphaEdit := "FF"
	Obj.Hover.ButtonColorPanelCenterBorderColorEdit := "262B2F"

	Obj.Hover.ButtonColorPanelInnerBorderColor1AlphaEdit := "FF"
	Obj.Hover.ButtonColorPanelInnerBorderColor1Edit := "3F444A"
	Obj.Hover.ButtonColorPanelInnerBorderColor2AlphaEdit := "FF"
	Obj.Hover.ButtonColorPanelInnerBorderColor2Edit := "24292D"

	Obj.Hover.ButtonColorPanelMainColor1AlphaEdit := "FF"
	Obj.Hover.ButtonColorPanelMainColor1Edit := "373C42"
	Obj.Hover.ButtonColorPanelMainColor2AlphaEdit := Obj.Hover.ButtonColorPanelMainColor1AlphaEdit
	Obj.Hover.ButtonColorPanelMainColor2Edit := Obj.Hover.ButtonColorPanelMainColor1Edit




	;*******************************************************************************************

	Obj.Pressed.ButtonPanelTextEdit := "Button"
	;Obj.Pressed.ButtonPanelBackgroundColorEdit := "D0D0D0"
	Obj.Pressed.ButtonPanelBackgroundColorEdit := color_1
	Obj.Pressed.ButtonPanelWidthEdit := w
	Obj.Pressed.ButtonPanelHeightEdit := h
	Obj.Pressed.FontPanelFontEdit := "Arial"
	Obj.Pressed.FontPanelFontOptionsEdit := " Bold Center vCenter "
	Obj.Pressed.FontPanelFontSizeEdit := "12"
	Obj.Pressed.FontPanelHOffsetEdit := 0
	Obj.Pressed.FontPanelWOffsetEdit := 0
	Obj.Pressed.FontPanelXOffsetEdit := 0
	Obj.Pressed.FontPanelYOffsetEdit := 0

	Obj.Pressed.TextColorPanelBottomColor1AlphaEdit := "00"
	Obj.Pressed.TextColorPanelBottomColor1Edit := "02112F"
	Obj.Pressed.TextColorPanelBottomColor2AlphaEdit := Obj.Pressed.TextColorPanelBottomColor1AlphaEdit
	Obj.Pressed.TextColorPanelBottomColor2Edit := Obj.Pressed.TextColorPanelBottomColor1Edit
	Obj.Pressed.TextColorPanelTopColor1AlphaEdit := "FF"
	Obj.Pressed.TextColorPanelTopColor1Edit := "FFFFFF"
	Obj.Pressed.TextColorPanelTopColor2AlphaEdit := Obj.Pressed.TextColorPanelTopColor1AlphaEdit
	Obj.Pressed.TextColorPanelTopColor2Edit := Obj.Pressed.TextColorPanelTopColor1Edit

	Obj.Pressed.GlossyPanelUseGlossyCheckbox := 0

	Obj.Pressed.GlossyPanelTopColorAlphaEdit := "11"
	Obj.Pressed.GlossyPanelTopColorEdit := "FFFFFF"

	Obj.Pressed.GlossyPanelBottomColorAlphaEdit := "33"
	Obj.Pressed.GlossyPanelBottomColorEdit := "E2E2E2"

	Obj.Pressed.GlossyPanelAccentColorAlphaEdit := "05"
	Obj.Pressed.GlossyPanelAccentColorEdit := "FFFFFF"

	Obj.Pressed.ButtonColorPanelOuterBorderColorAlphaEdit := "FF"
	Obj.Pressed.ButtonColorPanelOuterBorderColorEdit := "62666a"

	Obj.Pressed.ButtonColorPanelCenterBorderColorAlphaEdit := "FF"
	Obj.Pressed.ButtonColorPanelCenterBorderColorEdit := "262B2F"

	Obj.Pressed.ButtonColorPanelInnerBorderColor1AlphaEdit := "FF"
	Obj.Pressed.ButtonColorPanelInnerBorderColor1Edit := "151A20"
	Obj.Pressed.ButtonColorPanelInnerBorderColor2AlphaEdit := "FF"
	Obj.Pressed.ButtonColorPanelInnerBorderColor2Edit := "151A20"

	Obj.Pressed.ButtonColorPanelMainColor1AlphaEdit := "FF"
	Obj.Pressed.ButtonColorPanelMainColor1Edit := "12161a"
	Obj.Pressed.ButtonColorPanelMainColor2AlphaEdit := "FF"
	Obj.Pressed.ButtonColorPanelMainColor2Edit := "33383E"

}

ClipButton( Obj ){
	local ProjectName , output
	GuiControlGet, ProjectName, 1:, % Obj.ProjectName
	ProjectName := StrReplace( ProjectName , " " , "" )
	output := "HBCustomButton(){`n`tlocal " ProjectName " := {}`n`t"
	output .= ProjectName ".All := {}`n`t"
	output .= ProjectName ".Default := {}`n`t"
	output .= ProjectName ".Hover := {}`n`t"
	output .= ProjectName ".Pressed := {}`n`t"
	;*************************************************************************************************************************************************************************
	arr := ["All","Default","Hover","Pressed"] , stopped := 0
	loop, 4 	{
		output .= ";********************************`n`t"
		output .= ";" Arr[A_Index] "`n`t"
		if( MainObj[Arr[A_Index]].ButtonPanelWidthEdit != "" )
			output .=  ProjectName "." Arr[A_Index] ".W := " MainObj[Arr[A_Index]].ButtonPanelWidthEdit
		if( MainObj[Arr[A_Index]].ButtonPanelHeightEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".H := " MainObj[Arr[A_Index]].ButtonPanelHeightEdit
		if( MainObj[Arr[A_Index]].ButtonPanelTextEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".Text := """ MainObj[Arr[A_Index]].ButtonPanelTextEdit """"
		else
			output .= " , " ProjectName "." Arr[A_Index] ".Text := "" Button """
		if( MainObj[Arr[A_Index]].FontPanelFontEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".Font := """ MainObj[Arr[A_Index]].FontPanelFontEdit """"
		if( MainObj[Arr[A_Index]].FontPanelFontOptionsEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".FontOptions := """ MainObj[Arr[A_Index]].FontPanelFontOptionsEdit """"
		if( MainObj[Arr[A_Index]].FontPanelFontSizeEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".FontSize := """ MainObj[Arr[A_Index]].FontPanelFontSizeEdit """"
		if( MainObj[Arr[A_Index]].TextColorPanelBottomColor1AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".H := ""0x" MainObj[Arr[A_Index]].TextColorPanelBottomColor1AlphaEdit . MainObj[Arr[A_Index]].TextColorPanelBottomColor1Edit """"
		if( MainObj[Arr[A_Index]].TextColorPanelBottomColor2AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextBottomColor2 := ""0x" MainObj[Arr[A_Index]].TextColorPanelBottomColor2AlphaEdit . MainObj[Arr[A_Index]].TextColorPanelBottomColor2Edit """"
		if( MainObj[Arr[A_Index]].TextColorPanelTopColor1AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextTopColor1 := ""0x" MainObj[Arr[A_Index]].TextColorPanelTopColor1AlphaEdit . MainObj[Arr[A_Index]].TextColorPanelTopColor1Edit """"
		if( MainObj[Arr[A_Index]].TextColorPanelTopColor2AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextTopColor2 := ""0x" MainObj[Arr[A_Index]].TextColorPanelTopColor2AlphaEdit . MainObj[Arr[A_Index]].TextColorPanelTopColor2Edit """"
		if( MainObj[Arr[A_Index]].FontPanelXOffsetEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextOffsetX := """ MainObj[Arr[A_Index]].FontPanelXOffsetEdit """"
		if( MainObj[Arr[A_Index]].FontPanelYOffsetEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextOffsetY := """ MainObj[Arr[A_Index]].FontPanelYOffsetEdit """"
		if( MainObj[Arr[A_Index]].FontPanelWOffsetEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextOffsetW := """ MainObj[Arr[A_Index]].FontPanelWOffsetEdit """"
		if( MainObj[Arr[A_Index]].FontPanelHOffsetEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".TextOffsetH := """ MainObj[Arr[A_Index]].FontPanelHOffsetEdit """"
		if( MainObj[Arr[A_Index]].ButtonPanelBackgroundColorEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".BackgroundColor := ""0xFF" MainObj[Arr[A_Index]].ButtonPanelBackgroundColorEdit """" ; May need to change this later. Not sure if I remember if bg color needs 0x and alpha
		if( MainObj[Arr[A_Index]].ButtonColorPanelOuterBorderColorAlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonOuterBorderColor := ""0x" MainObj[Arr[A_Index]].ButtonColorPanelOuterBorderColorAlphaEdit . MainObj[Arr[A_Index]].ButtonColorPanelOuterBorderColorEdit """"
		if( MainObj[Arr[A_Index]].ButtonColorPanelCenterBorderColorAlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonCenterBorderColor := ""0x" MainObj[Arr[A_Index]].ButtonColorPanelCenterBorderColorAlphaEdit . MainObj[Arr[A_Index]].ButtonColorPanelCenterBorderColorEdit """"
		if( MainObj[Arr[A_Index]].ButtonColorPanelInnerBorderColor1AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonInnerBorderColor1 := ""0x" MainObj[Arr[A_Index]].ButtonColorPanelInnerBorderColor1AlphaEdit . MainObj[Arr[A_Index]].ButtonColorPanelInnerBorderColor1Edit """"
		if( MainObj[Arr[A_Index]].ButtonColorPanelInnerBorderColor2AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonInnerBorderColor2 := ""0x" MainObj[Arr[A_Index]].ButtonColorPanelInnerBorderColor2AlphaEdit . MainObj[Arr[A_Index]].ButtonColorPanelInnerBorderColor2Edit """"
		if( MainObj[Arr[A_Index]].ButtonColorPanelMainColor1AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonMainColor1 := ""0x" MainObj[Arr[A_Index]].ButtonColorPanelMainColor1AlphaEdit . MainObj[Arr[A_Index]].ButtonColorPanelMainColor1Edit """"
		if( MainObj[Arr[A_Index]].ButtonColorPanelMainColor2AlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonMainColor2 := ""0x" MainObj[Arr[A_Index]].ButtonColorPanelMainColor2AlphaEdit . MainObj[Arr[A_Index]].ButtonColorPanelMainColor2Edit """"
		if( MainObj[Arr[A_Index]].GlossyPanelUseGlossyCheckbox != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".ButtonAddGlossy := """ MainObj[Arr[A_Index]].GlossyPanelUseGlossyCheckbox """"
		if( MainObj[Arr[A_Index]].GlossyPanelTopColorAlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".GlossTopColor := ""0x" MainObj[Arr[A_Index]].GlossyPanelTopColorAlphaEdit . MainObj[Arr[A_Index]].GlossyPanelTopColorEdit """"
		if( MainObj[Arr[A_Index]].GlossyPanelAccentColorAlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".GlossTopAccentColor := """ MainObj[Arr[A_Index]].GlossyPanelAccentColorAlphaEdit . MainObj[Arr[A_Index]].GlossyPanelAccentColorEdit """"
		if( MainObj[Arr[A_Index]].GlossyPanelBottomColorAlphaEdit != "" )
			output .= " , " ProjectName "." Arr[A_Index] ".GlossBottomColor := """ MainObj[Arr[A_Index]].GlossyPanelBottomColorAlphaEdit . MainObj[Arr[A_Index]].GlossyPanelBottomColorEdit """"
		output .= "`n`t"
	}
	;*************************************************************************************************************************************************************************
	output .= ";********************************`n`t"
	output .= "`n`t"
	output .= "return " ProjectName "`n"
	output .= "}"
	Clipboard := output
	SoundBeep, 500
	SoundBeep, 500
}

Class Custom_Window	{
	__New(x:="",y:="",w:=300,h:=200,Name:=1,Options:="+AlwaysOnTop -Caption -DPIScale",Title:="",Background_Bitmap:=""){
		This.X:=x
		This.Y:=y
		This.W:=w
		This.H:=h
		This.Name:=Name
		This.Title:=Title
		This.Options:=Options
		This.Background_Bitmap:=Background_Bitmap
		This.Create_Window()
	}
	Create_Window(){
		Gui,% This.Name ":New",%  This.Options " +LastFound"
		This.Hwnd:=WinExist()
		if(This.Background_Bitmap)
			This.Draw_Background_Bitmap()
	}
	Draw_Background_Bitmap(){
		local hwnd
		This.Bitmap:=Gdip_CreateHBITMAPFromBitmap(This.Background_Bitmap)
		Gdip_DisposeImage(This.Background_Bitmap)
		Gui,% This.Name ":Add",Picture,% "x0 y0 w" This.W " h" This.H " 0xE hwndhwnd"
		This.Background_Hwnd:=hwnd
		SetImage(This.Background_Hwnd,This.Bitmap)

	}
	Show_Window(){
		if(This.X&&This.Y)
			Gui,% This.Name ":Show",% "x" This.X " y" This.Y " w" This.W " h" This.H,% This.Title
		else if(This.X&&!This.Y)
			Gui,% This.Name ":Show",% "x" This.X  " w" This.W " h" This.H,% This.Title
		else if(!This.X&&This.Y)
			Gui,% This.Name ":Show",% "y" This.Y  " w" This.W " h" This.H,% This.Title
		else
			Gui,% This.Name ":Show",% " w" This.W " h" This.H,% This.Title
	}
}


esc::ExitApp
Attachments
Color_Picker_White_Theme.png
Color_Picker_White_Theme.png (15.29 KiB) Viewed 7354 times
HB_Button_Custom.png
HB_Button_Custom.png (113.44 KiB) Viewed 7356 times
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

23 Apr 2021, 18:58

jly wrote:
23 Apr 2021, 00:46
The Editor with white theme only modified background and font colors. Make it look clearer.
That color picker has the ability to convert a color to its grayscale value. If you really want to convert the editor to black on white or grayscale you can take a look at how I convert a color in the color picker and then apply that to the colors you want to change. Then you just need to invert the color to get a gradient of white shifted colors to replace the colors used. A function call could be used where ever you want grayscale and invert.

An example could look something like this.

.

Code: Select all

;______________________________________________________________________________________

;Old
Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 173 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )

;______________________________________________________________________________________

;New
Pen := Gdip_CreatePen( ColorSwap( "0xFF004444" ) , 1 ) , Gdip_DrawRoundedRectangle( G , Pen , 173 , 5 , 80 , 20 , 5 ) , Gdip_DeletePen( Pen )

;______________________________________________________________________________________
;********************************************************************************************************************************************************
;********************************************************************************************************************************************************
;********************************************************************************************************************************************************
ColorSwap( Input ){
	;_______________________________
	;convert to grayscale
	;Add up all 3 of the color components and then divide it by 3 and replace the 3 color components with the new value.
	;_______________________________
	;invert value 
	;Change the refrence point from 0 to 255. 
	;Apply the same values as before as negative values
	;So a Red value of 10 would be 255 - 10 
	;And a Red value of 245 would invert to 10
	;_______________________________
	;Other logic and other replacement values can be applied.
	;_______________________________
	return NewColor
}
.
Something to keep in mind is that the editor was kind of a last minute addition and is only a first draft prototype. There are a number of things that could be changed to flush out the editors design and function.
For example. There is a small rectangle that changes color based on the value of a variable that gets it value swapped between 0 and 1 ( It's a checkbox ). As it is now, that checkbox is part of ( written into ) the graphics of the whole panel, and because I have a edit control sitting on top of other graphics. If I change those graphics, then I also need to redraw the edit control back on top of the graphics again.
If I wanted to, what I would do is have the checkbox as its own graphics or look into how to only draw a small region of the graphics when someone clicks on the checkbox.
As I said though, the editor was just an after thought. I could see that adjusting the different values of this button designs colors produced very unexpected results and I realistically needed an environment like the editor to play around with those color values, so I did the editor with only the goal of having an environment that showed me images rather than code as my way of editing the code, and have the ability put the code to recreate that image in my clipboard to be pasted in a script. Everything else was superfluous in my mind.

The graphics for the editor are kind of an inside joke to me. You may have noticed that although I clearly have the ability to produce nice, dynamic gui buttons and implement them with pretty much just one line of code, but I didn't use them. Instead I used a very simple, flat design that is built into the graphics of the panel. I assure you that there is a joke in there and it is written in a way that I will catch later if I ever have to really look at the editor again some time in the years to come. There are those little Easter eggs written into pretty much everything that I do. Another example is the big HB when you are in the all tab. I'm not going to say what the joke is, but that is what it is, and a future me will spot it in a flash and have a little chuckle about it.

Anyway, I would love to see it if you do end up doing a grayscale + invert version
But like I said, the editor is just the means to an end and was a diversion from what I actually wanted to do.

BTW. If you or anyone else have any button designs done I would love to get a copy of the code the editor spits out for that design. I would like to create a little tool with dozens of different button designs examples and where you could just click on an example and have the code for that button put in your clipboard. There is an enormous amount of variation in the way the button looks, due to in part that the button design (the shapes and lines ) has just enough complexity to use the colors simply as colors, or use them to change the apparent lighting direction and so on. Anyways, the more examples the better.
jly
Posts: 89
Joined: 30 Sep 2020, 06:06

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

25 Apr 2021, 02:48

@Hellbent
Thank you very much for your reply, I have learned a lot from you,
and I'll study it carefully later when I have time .
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

30 Sep 2021, 22:31

Baby White Theme.
20210930232124.png
20210930232124.png (471.78 KiB) Viewed 6979 times
Temp (1).gif
Temp (1).gif (200.34 KiB) Viewed 6979 times
Button style object:

Code: Select all

BabyWhiteTheme(){
	local MyButtonDesign := {}
	MyButtonDesign.All := {}
	MyButtonDesign.Default := {}
	MyButtonDesign.Hover := {}
	MyButtonDesign.Pressed := {}
	;********************************
	;All
	MyButtonDesign.All.W := 120 , MyButtonDesign.All.H := 40 , MyButtonDesign.All.Text := " Button " , MyButtonDesign.All.Font := "Comic Sans MS" , MyButtonDesign.All.FontSize := "16" , MyButtonDesign.All.H := "0x99F0F7FF" , MyButtonDesign.All.TextBottomColor2 := "0x99F9FCFF" , MyButtonDesign.All.BackgroundColor := "0xFFacacac" , MyButtonDesign.All.ButtonAddGlossy := "0"
	;********************************
	;Default
	MyButtonDesign.Default.W := 120 , MyButtonDesign.Default.H := 40 , MyButtonDesign.Default.Text := "Button" , MyButtonDesign.Default.Font := "Comic Sans MS" , MyButtonDesign.Default.FontOptions := " Bold Center vCenter " , MyButtonDesign.Default.FontSize := "16" , MyButtonDesign.Default.H := "0x99F0F7FF" , MyButtonDesign.Default.TextBottomColor2 := "0x99F9FCFF" , MyButtonDesign.Default.TextTopColor1 := "0xFF000000" , MyButtonDesign.Default.TextTopColor2 := "0xFF000000" , MyButtonDesign.Default.TextOffsetX := "0" , MyButtonDesign.Default.TextOffsetY := "0" , MyButtonDesign.Default.TextOffsetW := "0" , MyButtonDesign.Default.TextOffsetH := "0" , MyButtonDesign.Default.BackgroundColor := "0xFFacacac" , MyButtonDesign.Default.ButtonOuterBorderColor := "0xFF9a9a9a" , MyButtonDesign.Default.ButtonCenterBorderColor := "0xFFACACAC" , MyButtonDesign.Default.ButtonInnerBorderColor1 := "0xFFACACAC" , MyButtonDesign.Default.ButtonInnerBorderColor2 := "0xFFACACAC" , MyButtonDesign.Default.ButtonMainColor1 := "0xff66aaff" , MyButtonDesign.Default.ButtonMainColor2 := "0xffffffff" , MyButtonDesign.Default.ButtonAddGlossy := "0" , MyButtonDesign.Default.GlossTopColor := "0x11FFFFFF" , MyButtonDesign.Default.GlossTopAccentColor := "05FFFFFF" , MyButtonDesign.Default.GlossBottomColor := "33000000"
	;********************************
	;Hover
	MyButtonDesign.Hover.W := 120 , MyButtonDesign.Hover.H := 40 , MyButtonDesign.Hover.Text := "Button" , MyButtonDesign.Hover.Font := "Comic Sans MS" , MyButtonDesign.Hover.FontOptions := " Bold Center vCenter " , MyButtonDesign.Hover.FontSize := "16" , MyButtonDesign.Hover.H := "0x99F0F7FF" , MyButtonDesign.Hover.TextBottomColor2 := "0x99F9FCFF" , MyButtonDesign.Hover.TextTopColor1 := "0xFF000000" , MyButtonDesign.Hover.TextTopColor2 := "0xFF000000" , MyButtonDesign.Hover.TextOffsetX := "0" , MyButtonDesign.Hover.TextOffsetY := "0" , MyButtonDesign.Hover.TextOffsetW := "0" , MyButtonDesign.Hover.TextOffsetH := "0" , MyButtonDesign.Hover.BackgroundColor := "0xFFacacac" , MyButtonDesign.Hover.ButtonOuterBorderColor := "0xFF99ccff" , MyButtonDesign.Hover.ButtonCenterBorderColor := "0xFFACACAC" , MyButtonDesign.Hover.ButtonInnerBorderColor1 := "0xFFACACAC" , MyButtonDesign.Hover.ButtonInnerBorderColor2 := "0xFFACACAC" , MyButtonDesign.Hover.ButtonMainColor1 := "0xff96eaff" , MyButtonDesign.Hover.ButtonMainColor2 := "0xffffffff" , MyButtonDesign.Hover.ButtonAddGlossy := "0" , MyButtonDesign.Hover.GlossTopColor := "0x11FFFFFF" , MyButtonDesign.Hover.GlossTopAccentColor := "05FFFFFF" , MyButtonDesign.Hover.GlossBottomColor := "33000000"
	;********************************
	;Pressed
	MyButtonDesign.Pressed.W := 120 , MyButtonDesign.Pressed.H := 40 , MyButtonDesign.Pressed.Text := "Button" , MyButtonDesign.Pressed.Font := "Comic Sans MS" , MyButtonDesign.Pressed.FontOptions := " Bold Center vCenter " , MyButtonDesign.Pressed.FontSize := "16" , MyButtonDesign.Pressed.H := "0x99F0F7FF" , MyButtonDesign.Pressed.TextBottomColor2 := "0x99F9FCFF" , MyButtonDesign.Pressed.TextTopColor1 := "0xFF000000" , MyButtonDesign.Pressed.TextTopColor2 := "0xFF000000" , MyButtonDesign.Pressed.TextOffsetX := "-1" , MyButtonDesign.Pressed.TextOffsetY := "-1" , MyButtonDesign.Pressed.TextOffsetW := "0" , MyButtonDesign.Pressed.TextOffsetH := "0" , MyButtonDesign.Pressed.BackgroundColor := "0xFFacacac" , MyButtonDesign.Pressed.ButtonOuterBorderColor := "0xFFffffff" , MyButtonDesign.Pressed.ButtonCenterBorderColor := "0xFFACACAC" , MyButtonDesign.Pressed.ButtonInnerBorderColor1 := "0xFFACACAC" , MyButtonDesign.Pressed.ButtonInnerBorderColor2 := "0xFFACACAC" , MyButtonDesign.Pressed.ButtonMainColor1 := "0xFF66aaff" , MyButtonDesign.Pressed.ButtonMainColor2 := "0xFFffffff" , MyButtonDesign.Pressed.ButtonAddGlossy := "0" , MyButtonDesign.Pressed.GlossTopColor := "0x11FFFFFF" , MyButtonDesign.Pressed.GlossTopAccentColor := "05FFFFFF" , MyButtonDesign.Pressed.GlossBottomColor := "33000000"
	;********************************
	return MyButtonDesign
}
Sample code.

Code: Select all

Theme1 := BabyWhiteTheme()
	GuiButtonType1.SetSessionDefaults( Theme1.All , Theme1.Default , Theme1.Hover , Theme1.Pressed )
	Gui, Gui1:New, +AlwaysOnTop +Resize +hwndHwnd 
	Gui, Gui1:Add, Pic , hwndhwnd Section, C:\Users\Hellbent\Desktop\AHK Tools\Color Picker Mini\Screen Shots\blue vortex 3.png
	Gui, Gui1:Color, % color := "ffffff" , FFFFFF
	GuiControlGet, pos, pos, % hwnd
	A_Color := "0xFF" color
	Button1 := New HButton( { Owner: "Gui1" , X: "+0" , Y: "p" , W: 120 , H: 40 , Text: "Remove" } , { BackgroundColor: A_Color } )
	Button2 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Copy" } , { BackgroundColor: A_Color } )
	Button3 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Up" } , { BackgroundColor: A_Color } )
	Button4 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Down" } , { BackgroundColor: A_Color } )
	Button5 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Clipboard" } , { BackgroundColor: A_Color } )
	Button6 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Update" } , { BackgroundColor: A_Color } )
	Button7 := New HButton( { Owner: "Gui1" , X: "m" , Y: "s+" PosH  , W: 200 , H: 60 , Text: "Go Back" } , { BackgroundColor: A_Color } )
	Button8 := New HButton( { Owner: "Gui1" , X: "+10" , Y: "p" , W: 200 , H: 60 , Text: "Submit" } , { BackgroundColor: A_Color } )
	Gui, Gui1:Show, AutoSize NA,  
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

30 Sep 2021, 22:40

Dark Theme 1


Temp (1).gif
Temp (1).gif (220.78 KiB) Viewed 6973 times
Button style object:

Code: Select all

DarkTheme1(){
	local MyButtonDesign := {}
	MyButtonDesign.All := {}
	MyButtonDesign.Default := {}
	MyButtonDesign.Hover := {}
	MyButtonDesign.Pressed := {}
	;********************************
	;All
	MyButtonDesign.All.W := 120 , MyButtonDesign.All.H := 45 , MyButtonDesign.All.Text := " Button " , MyButtonDesign.All.Font := "Times" , MyButtonDesign.All.FontSize := "18" , MyButtonDesign.All.BackgroundColor := "0xFF32363a" , MyButtonDesign.All.ButtonAddGlossy := "0"
	;********************************
	;Default
	MyButtonDesign.Default.W := 120 , MyButtonDesign.Default.H := 45 , MyButtonDesign.Default.Text := "Button" , MyButtonDesign.Default.Font := "Times" , MyButtonDesign.Default.FontOptions := " Bold Center vCenter " , MyButtonDesign.Default.FontSize := "18" , MyButtonDesign.Default.H := "0x0002112F" , MyButtonDesign.Default.TextBottomColor2 := "0x0002112F" , MyButtonDesign.Default.TextTopColor1 := "0xFFacacac" , MyButtonDesign.Default.TextTopColor2 := "0xFFacacac" , MyButtonDesign.Default.TextOffsetX := "0" , MyButtonDesign.Default.TextOffsetY := "0" , MyButtonDesign.Default.TextOffsetW := "0" , MyButtonDesign.Default.TextOffsetH := "0" , MyButtonDesign.Default.BackgroundColor := "0xFF32363a" , MyButtonDesign.Default.ButtonOuterBorderColor := "0xFF161B1F" , MyButtonDesign.Default.ButtonCenterBorderColor := "0xFF262B2F" , MyButtonDesign.Default.ButtonInnerBorderColor1 := "0xFF3F444A" , MyButtonDesign.Default.ButtonInnerBorderColor2 := "0xFF24292D" , MyButtonDesign.Default.ButtonMainColor1 := "0xFF272C32" , MyButtonDesign.Default.ButtonMainColor2 := "0xFF070C12" , MyButtonDesign.Default.ButtonAddGlossy := "0" , MyButtonDesign.Default.GlossTopColor := "0x11FFFFFF" , MyButtonDesign.Default.GlossTopAccentColor := "05FFFFFF" , MyButtonDesign.Default.GlossBottomColor := "33000000"
	;********************************
	;Hover
	MyButtonDesign.Hover.W := 120 , MyButtonDesign.Hover.H := 45 , MyButtonDesign.Hover.Text := "Button" , MyButtonDesign.Hover.Font := "Times" , MyButtonDesign.Hover.FontOptions := " Bold Center vCenter " , MyButtonDesign.Hover.FontSize := "18" , MyButtonDesign.Hover.H := "0x0002112F" , MyButtonDesign.Hover.TextBottomColor2 := "0x0002112F" , MyButtonDesign.Hover.TextTopColor1 := "0xFF3366aa" , MyButtonDesign.Hover.TextTopColor2 := "0xFF3366aa" , MyButtonDesign.Hover.TextOffsetX := "0" , MyButtonDesign.Hover.TextOffsetY := "0" , MyButtonDesign.Hover.TextOffsetW := "0" , MyButtonDesign.Hover.TextOffsetH := "0" , MyButtonDesign.Hover.BackgroundColor := "0xFF32363a" , MyButtonDesign.Hover.ButtonOuterBorderColor := "0xFF161B1F" , MyButtonDesign.Hover.ButtonCenterBorderColor := "0xFF262B2F" , MyButtonDesign.Hover.ButtonInnerBorderColor1 := "0xFF3F444A" , MyButtonDesign.Hover.ButtonInnerBorderColor2 := "0xFF24292D" , MyButtonDesign.Hover.ButtonMainColor1 := "0x99272C32" , MyButtonDesign.Hover.ButtonMainColor2 := "0x33070C12" , MyButtonDesign.Hover.ButtonAddGlossy := "0" , MyButtonDesign.Hover.GlossTopColor := "0x11FFFFFF" , MyButtonDesign.Hover.GlossTopAccentColor := "05FFFFFF" , MyButtonDesign.Hover.GlossBottomColor := "33000000"
	;********************************
	;Pressed
	MyButtonDesign.Pressed.W := 120 , MyButtonDesign.Pressed.H := 45 , MyButtonDesign.Pressed.Text := "Button" , MyButtonDesign.Pressed.Font := "Times" , MyButtonDesign.Pressed.FontOptions := " Bold Center vCenter " , MyButtonDesign.Pressed.FontSize := "18" , MyButtonDesign.Pressed.H := "0x0002112F" , MyButtonDesign.Pressed.TextBottomColor2 := "0x0002112F" , MyButtonDesign.Pressed.TextTopColor1 := "0xFF336699" , MyButtonDesign.Pressed.TextTopColor2 := "0xFF336699" , MyButtonDesign.Pressed.TextOffsetX := "0" , MyButtonDesign.Pressed.TextOffsetY := "0" , MyButtonDesign.Pressed.TextOffsetW := "0" , MyButtonDesign.Pressed.TextOffsetH := "0" , MyButtonDesign.Pressed.BackgroundColor := "0xFF32363a" , MyButtonDesign.Pressed.ButtonOuterBorderColor := "0xFF62666a" , MyButtonDesign.Pressed.ButtonCenterBorderColor := "0xFF262B2F" , MyButtonDesign.Pressed.ButtonInnerBorderColor1 := "0xFF151A20" , MyButtonDesign.Pressed.ButtonInnerBorderColor2 := "0xFF151A20" , MyButtonDesign.Pressed.ButtonMainColor1 := "0xFF272C32" , MyButtonDesign.Pressed.ButtonMainColor2 := "0xFF070C12" , MyButtonDesign.Pressed.ButtonAddGlossy := "0" , MyButtonDesign.Pressed.GlossTopColor := "0x11FFFFFF" , MyButtonDesign.Pressed.GlossTopAccentColor := "05FFFFFF" , MyButtonDesign.Pressed.GlossBottomColor := "33000000"
	;********************************
	
	return MyButtonDesign
}

Example Code:

Code: Select all

	Theme1 := DarkTheme1()
	GuiButtonType1.SetSessionDefaults( Theme1.All , Theme1.Default , Theme1.Hover , Theme1.Pressed )
	Gui, Gui1:New, +AlwaysOnTop +Resize +hwndHwnd 
	Gui, Gui1:Add, Pic , hwndhwnd Section, C:\Users\Hellbent\Desktop\AHK Tools\Color Picker Mini\Screen Shots\blue vortex 3.png
	Gui, Gui1:Color, % color := "222222" , 222222
	GuiControlGet, pos, pos, % hwnd
	A_Color := "0xFF" color
	Button1 := New HButton( { Owner: "Gui1" , X: "+0" , Y: "p" , W: 120 , H: 40 , Text: "Remove" } , { BackgroundColor: A_Color } )
	Button2 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Copy" } , { BackgroundColor: A_Color } )
	Button3 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Up" } , { BackgroundColor: A_Color } )
	Button4 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Down" } , { BackgroundColor: A_Color } )
	Button5 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Clipboard" } , { BackgroundColor: A_Color } )
	Button6 := New HButton( { Owner: "Gui1" , X: "p" , Y: "+-3" , W: 120 , H: 40 , Text: "Update" } , { BackgroundColor: A_Color } )
	Button7 := New HButton( { Owner: "Gui1" , X: "m" , Y: "s+" PosH  , W: 200 , H: 60 , Text: "Go Back" } , { BackgroundColor: A_Color } )
	Button8 := New HButton( { Owner: "Gui1" , X: "+10" , Y: "p" , W: 200 , H: 60 , Text: "Submit" } , { BackgroundColor: A_Color } )
	Gui, Gui1:Show, AutoSize NA,  
User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: [ Class + ( Editor Tool ) ] Custom Gui Image Button

01 Oct 2021, 09:02

.
Multiple button themes can be used in the same gui.
.
.
20211001094218.png
20211001094218.png (28.64 KiB) Viewed 6903 times
.

.
You can also add pictures / icons to a button like this.
.
Temp (1).gif
Temp (1).gif (99.58 KiB) Viewed 6903 times

Code: Select all

G := Gdip_GraphicsFromImage( HButton.Button[ Button7 ].Bitmaps.Default.pBitmap ) ;Get the pointer to the buttons graphics.
Bitmap := Gdip_CreateBitmapFromFile( "C:\Users\Hellbent\Desktop\AHK Tools\Color Picker Mini\Screen Shots\11111.png" ) ;get an image from your files.
Gdip_DrawImage( G , Bitmap, 10, 10, 40, 40 ) ;Draw the image on to the buttons graphics.
;*********************
;Ideally you would do some cleanup in here. ( delete the graphics and delete the old hBitmap )
;If your script doesn't need to recreate the window over and over you can just skip it and there shouldn't be any issues.
;*********************
HButton.Button[ Button7 ].Bitmaps.Default.hBitmap := Gdip_CreateHBITMAPFromBitmap( HButton.Button[ Button7 ].Bitmaps.Default.pBitmap ) ;Replace the old hBitmap with a new copy 
HButton._DisplayButton( Button7 , HButton.Button[ Button7 ].Bitmaps.Default.hBitmap ) ;Display the updated button. (Only required if you change the "Default" button bitmap )
iilabs wrote:
01 Oct 2021, 07:34
That is amazing HB!
Thank you iilabs.

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: No registered users and 106 guests