#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <GDIP.au3>
#include <GUIButton.au3>
#include <GUIImageList.au3>
#include <Misc.au3>
#include <Array.au3>
#include <WinAPI.au3>

Global $TabPosition = 0, $Curve = 0, $Graphic1 = 0, $ButtonLeft = 100, $ButtonTop = 100, $Array[5][22] = [[75, 25, "Hallo Welt", 0xFFFFFFFF, 0xFFECE9D8, "Arial", 1, 12, 0xFF666666, 1, 1, 0xFFFFFFFF, 0, 2, 1, 0xFFDDDDDD, 1, 0xFFDDDDDD, 1, 0xFFDDDDDD, 1, 0xFFDDDDDD],[75, 25, "Hallo Welt", 0xFFFFFFFF, 0xFFECE9D8, "Arial", 1, 12, 0xFF666666, 1, 1, 0xFFFFFFFF, 0, 2, 1, 0xFF666666, 1, 0xFF666666, 1, 0xFF666666, 1, 0xFF666666],[75, 25, "Hallo Welt", 0xFFFFFFFF, 0xFFECE9D8, "Arial", 1, 12, 0xFF666666, 1, 1, 0xFFFFFFFF, 0, 2, 1, 0xFF666666, 1, 0xFF666666, 1, 0xFF666666, 1, 0xFF666666],[75, 25, "Hallo Welt", 0xFFFFFFFF, 0xFFECE9D8, "Arial", 1, 12, 0xFF666666, 1, 1, 0xFFFFFFFF, 0, 2, 1, 0xFFFFFFFF, 1, 0xFFFFFFFF, 1, 0xFFFFFFFF, 1, 0xFFFFFFFF],[75, 25, "Hallo Welt", 0xFFFFFFFF, 0xFFECE9D8, "Arial", 1, 12, 0xFF666666, 1, 1, 0xFFFFFFFF, 0, 2, 1, 0xFFFFFFFF, 1, 0xFFFFFFFF, 1, 0xFFFFFFFF, 1, 0xFFFFFFFF]]
Dim $Design1[5][19] = [[0xFFFFFFFF, 0xFFE5E5E5, "Arial", 0x00000001, 0x0000000C, 0xFF555555, 0x00000001, 0x00000001, 0xFFFFFFFF, "0", "2", 0x00000001, 0xFFCCCCCC, 0x00000001, 0xFFCCCCCC, 0x00000001, 0xFFCCCCCC, 0x00000001, 0xFFCCCCCC],[0xFFFFFFFF, 0xFFE5E5E5, "Arial", 0x00000001, 0x0000000C, 0xFF555555, 0x00000001, 0x00000001, 0xFFFFFFFF, "0", "2", 0x00000001, 0xFF999999, 0x00000001, 0xFF999999, 0x00000001, 0xFF999999, 0x00000001, 0xFF999999],[0xFFE5E5E5, 0xFFDCDCDC, "Arial", 0x00000001, 0x0000000C, 0xFF555555, 0x00000001, 0x00000001, 0xFFFFFFFF, "0", "2", 0x00000001, 0xFFAAAAAA, 0x00000001, 0xFFAAAAAA, 0x00000001, 0xFFAAAAAA, 0x00000001, 0xFFAAAAAA],[0xFFF8F8F8, 0xFFE4E4E4, "Arial", 0x00000001, 0x0000000C, 0xFF9D9D9D, 0x00000001, 0x00000001, 0xFFFFFFFF, "0", "2", 0x00000001, 0xFFCCCCCC, 0x00000001, 0xFFCCCCCC, 0x00000001, 0xFFBCBCBC, 0x00000001, 0xFFCCCCCC],[0xFFFFFFFF, 0xFFE5E5E5, "Arial", 0x00000001, 0x0000000C, 0xFF555555, 0x00000001, 0x00000001, 0xFFFFFFFF, "0", "2", 0x00000001, 0xFF4496E7, 0x00000001, 0xFF4496E7, 0x00000001, 0xFF4496E7, 0x00000001, 0xFF4496E7]]

_GDIPlus_Startup()
$Form1 = GUICreate("Button Designer", 899, 610, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))
GUISetFont(9, 400, 0, "Tahoma")
GUISetBkColor(0xFFFFFF)
GUICtrlCreateLabel("Button Width:", 520, 42, 83, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Button Height:", 520, 66, 86, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Button Text:", 520, 90, 76, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Font Name:", 520, 162, 68, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Font Size:", 520, 210, 58, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Font Color:", 520, 234, 64, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Font Attributes:", 520, 186, 92, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Text Align:", 520, 258, 64, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Background Color 1:", 520, 114, 110, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Background Color 2:", 520, 138, 110, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Text Shadow Color:", 520, 306, 113, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Text Shadow Vertical Position:", 520, 330, 172, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Text Shadow Horizontal Position:", 520, 354, 185, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Top Border Color:", 520, 402, 101, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Top Border Width:", 520, 378, 107, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Bottom Border Color:", 520, 450, 120, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Bottom Border Width:", 520, 426, 126, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Left Border Width:", 520, 474, 107, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Left Border Color:", 520, 498, 101, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Right Border Width:", 520, 522, 113, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Right Border Color:", 520, 546, 107, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("Text Line Align:", 520, 282, 90, 18)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input1 = GUICtrlCreateInput("", 712, 40, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input2 = GUICtrlCreateInput("", 712, 64, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input3 = GUICtrlCreateInput("", 712, 88, 177, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input4 = GUICtrlCreateInput("", 712, 112, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button1 = _GUICtrlCreateButton("^", 864, 112, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input5 = GUICtrlCreateInput("", 712, 136, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button2 = _GUICtrlCreateButton("^", 864, 136, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Combo1 = GUICtrlCreateCombo("", 712, 160, 177, 25)
GUICtrlSetData(-1, Fonts())
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Checkbox1 = GUICtrlCreateCheckbox("Bold", 712, 184, 44, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Checkbox2 = GUICtrlCreateCheckbox("Italic", 760, 184, 49, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Checkbox3 = GUICtrlCreateCheckbox("Underline", 812, 184, 81, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Slider1 = GUICtrlCreateSlider(768, 38, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 200, 75)
$Slider2 = GUICtrlCreateSlider(768, 62, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 72, 25)
$Input6 = GUICtrlCreateInput("", 712, 208, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Slider3 = GUICtrlCreateSlider(768, 206, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 100, 8)
$Input7 = GUICtrlCreateInput("", 712, 232, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input8 = GUICtrlCreateInput("", 712, 304, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input9 = GUICtrlCreateInput("", 712, 352, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input10 = GUICtrlCreateInput("", 712, 328, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button4 = _GUICtrlCreateButton("^", 864, 304, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input11 = GUICtrlCreateInput("", 712, 376, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input12 = GUICtrlCreateInput("", 712, 400, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input13 = GUICtrlCreateInput("", 712, 424, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input14 = GUICtrlCreateInput("", 712, 448, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input15 = GUICtrlCreateInput("", 712, 472, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input16 = GUICtrlCreateInput("", 712, 496, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input17 = GUICtrlCreateInput("", 712, 520, 56, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input18 = GUICtrlCreateInput("", 712, 544, 152, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button5 = _GUICtrlCreateButton("^", 864, 400, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button6 = _GUICtrlCreateButton("^", 864, 448, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button7 = _GUICtrlCreateButton("^", 864, 496, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button8 = _GUICtrlCreateButton("^", 864, 544, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Slider4 = GUICtrlCreateSlider(768, 326, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 20, -20)
$Slider5 = GUICtrlCreateSlider(768, 422, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 5, 0)
$Slider6 = GUICtrlCreateSlider(768, 470, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 5, 0)
$Slider7 = GUICtrlCreateSlider(768, 518, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 5, 0)
$Slider8 = GUICtrlCreateSlider(768, 350, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 20, -20)
$Slider9 = GUICtrlCreateSlider(768, 374, 126, 21, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH))
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetLimit(-1, 5, 0)
GUIStartGroup()
$Radio1 = GUICtrlCreateRadio("Left", 712, 256, 41, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Radio2 = GUICtrlCreateRadio("Center", 760, 256, 65, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Radio3 = GUICtrlCreateRadio("Right", 832, 256, 65, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUIStartGroup()
GUIStartGroup()
$Radio4 = GUICtrlCreateRadio("Top", 712, 280, 41, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Radio5 = GUICtrlCreateRadio("Center", 760, 280, 65, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Radio6 = GUICtrlCreateRadio("Bottom", 832, 280, 113, 17)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUIStartGroup()
$Button3 = _GUICtrlCreateButton("^", 864, 232, 27, 22)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button10 = _GUICtrlCreateButton("Source Code", 712, 576, 99, 25)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Combo2 = GUICtrlCreateCombo("Normal", 520, 576, 96, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Hot|Pressed|Disabled|Defaulted")
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button15 = _GUICtrlCreateButton("Replace", 620, 576, 87, 25)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Button9 = _GUICtrlCreateButton("Cancel", 816, 576, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Input19 = GUICtrlCreateInput($Curve, 10, 578, 42, 22)
GUICtrlSetLimit(-1, 2, 0)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateUpdown($Input19)
GUICtrlSetLimit(-1, 99, 0)
$Tab1 = GUICtrlCreateTab(520, 8, 282, 23, $TCS_BUTTONS)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Normal")
$TabSheet2 = GUICtrlCreateTabItem("Hot")
$TabSheet3 = GUICtrlCreateTabItem("Pressed")
$TabSheet4 = GUICtrlCreateTabItem("Disabled")
$TabSheet5 = GUICtrlCreateTabItem("Defaulted")
GUICtrlCreateTabItem("")
$Checkbox = GUICtrlCreateCheckbox("Enabled", 820, 10, 100, 20)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetState(-1, $GUI_CHECKED)
$Button = GUICtrlCreateButton("", $ButtonLeft, $ButtonTop, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$Handle = GUICtrlGetHandle($Button)
Graphic()
Write(0)
Edit()
GUIRegisterMsg($WM_SIZE, "Graphic")
GUISetState()

While True
	Switch GUIGetMsg()
		Case $Input19
			$Curve = GUICtrlRead($Input19)
			ButtonChange()
			Edit()
			$Curve = 0
		Case $Button15
			$Read = GUICtrlRead($Combo2)
			If $Read = "Normal" Then
				$a = 0
			ElseIf $Read = "Hot" Then
				$a = 1
			ElseIf $Read = "Pressed" Then
				$a = 2
			ElseIf $Read = "Disabled" Then
				$a = 3
			ElseIf $Read = "Defaulted" Then
				$a = 4
			EndIf
			$b = GUICtrlRead($Tab1)
			For $i = 0 To 21
				$Array[$b][$i] = $Array[$a][$i]
			Next
			Write(GUICtrlRead($Tab1))
			Edit()
		Case $Button10
			$Form2 = GUICreate("Source Code", 378, 386, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU))
			GUISetFont(9, 400, 0, "Tahoma")
			$Edit1 = GUICtrlCreateEdit(SourceCode(), 8, 8, 361, 337)
			$Button11 = _GUICtrlCreateButton("Copy all", 24, 352, 75, 25)
			$Button13 = _GUICtrlCreateButton("Save as UDF", 200, 352, 91, 25)
			$Button14 = _GUICtrlCreateButton("Copy design", 104, 352, 91, 25)
			$Button12 = _GUICtrlCreateButton("Cancel", 296, 352, 75, 25)
			GUISetState()
			While True
				Switch GUIGetMsg()
					Case $Button14
						ClipPut(SourceCode(1))
					Case $GUI_EVENT_CLOSE
						GUIDelete($Form2)
						ExitLoop
					Case $Button12
						GUIDelete($Form2)
						ExitLoop
					Case $Button11
						ClipPut(SourceCode())
					Case $Button13
						$Open = FileOpenDialog("Save as UDF", "", "(*.au3)")
						If $Open <> "" Then
							If StringRight($Open, 4) = ".au3" Then
								If FileExists($Open) Then FileDelete($Open)
								FileWrite($Open, SourceCode())
							Else
								If FileExists($Open & ".au3") Then FileDelete($Open & ".au3")
								FileWrite($Open & ".au3", SourceCode())
							EndIf
						EndIf
				EndSwitch
			WEnd
		Case $GUI_EVENT_CLOSE
			Close()
		Case $Button9
			Close()
		Case $Checkbox
			If GUICtrlRead($Checkbox) = $GUI_CHECKED Then
				GUICtrlSetState($Button, $GUI_ENABLE)
			Else
				GUICtrlSetState($Button, $GUI_DISABLE)
			EndIf
		Case $Combo1
			$Array[$TabPosition][5] = GUICtrlRead($Combo1)
			Edit()
		Case $Tab1
			$Read = GUICtrlRead($Tab1)
			Write($Read)
			$TabPosition = $Read
		Case $Input1
			ButtonChange()
			Edit()
		Case $Input2
			ButtonChange()
			Edit()
		Case $Input3
			$Array[$TabPosition][2] = GUICtrlRead($Input3)
			Edit()
		Case $Input4
			$Array[$TabPosition][3] = Dec(GUICtrlRead($Input4))
			Edit()
		Case $Input5
			$Array[$TabPosition][4] = Dec(GUICtrlRead($Input5))
			Edit()
		Case $Input6
			$Array[$TabPosition][7] = GUICtrlRead($Input6)
			Edit()
		Case $Input7
			$Array[$TabPosition][8] = Dec(GUICtrlRead($Input7))
			Edit()
		Case $Input8
			$Array[$TabPosition][11] = Dec(GUICtrlRead($Input8))
			Edit()
		Case $Input9
			$Array[$TabPosition][12] = GUICtrlRead($Input9)
			Edit()
		Case $Input10
			$Array[$TabPosition][13] = GUICtrlRead($Input10)
			Edit()
		Case $Input11
			$Array[$TabPosition][14] = GUICtrlRead($Input11)
			Edit()
		Case $Input12
			$Array[$TabPosition][15] = Dec(GUICtrlRead($Input12))
			Edit()
		Case $Input13
			$Array[$TabPosition][16] = GUICtrlRead($Input13)
			Edit()
		Case $Input14
			$Array[$TabPosition][17] = Dec(GUICtrlRead($Input14))
			Edit()
		Case $Input15
			$Array[$TabPosition][18] = GUICtrlRead($Input15)
			Edit()
		Case $Input16
			$Array[$TabPosition][19] = Dec(GUICtrlRead($Input16))
			Edit()
		Case $Input17
			$Array[$TabPosition][20] = GUICtrlRead($Input17)
			Edit()
		Case $Input18
			$Array[$TabPosition][21] = Dec(GUICtrlRead($Input18))
			Edit()
		Case $Checkbox1
			If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
				$Array[$TabPosition][6] += 1
			Else
				$Array[$TabPosition][6] -= 1
			EndIf
			Edit()
		Case $Checkbox2
			If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
				$Array[$TabPosition][6] += 2
			Else
				$Array[$TabPosition][6] -= 2
			EndIf
			Edit()
		Case $Checkbox3
			If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
				$Array[$TabPosition][6] += 4
			Else
				$Array[$TabPosition][6] -= 4
			EndIf
			Edit()
		Case $Radio1
			$Array[$TabPosition][9] = 0
			Edit()
		Case $Radio2
			$Array[$TabPosition][9] = 1
			Edit()
		Case $Radio3
			$Array[$TabPosition][9] = 2
			Edit()
		Case $Radio4
			$Array[$TabPosition][10] = 0
			Edit()
		Case $Radio5
			$Array[$TabPosition][10] = 1
			Edit()
		Case $Radio6
			$Array[$TabPosition][10] = 2
			Edit()
		Case $Button1
			Color($Input4, 3)
		Case $Button2
			Color($Input5, 4)
		Case $Button3
			Color($Input7, 8)
		Case $Button4
			Color($Input8, 11)
		Case $Button5
			Color($Input12, 15)
		Case $Button6
			Color($Input14, 17)
		Case $Button7
			Color($Input16, 19)
		Case $Button8
			Color($Input18, 21)
		Case $Slider1
			Slider($Input1, $Slider1, 0)
		Case $Slider2
			Slider($Input2, $Slider2, 1)
		Case $Slider3
			Slider($Input6, $Slider3, 7)
		Case $Slider4
			Slider($Input10, $Slider4, 12)
		Case $Slider8
			Slider($Input9, $Slider8, 13)
		Case $Slider9
			Slider($Input11, $Slider9, 14)
		Case $Slider5
			Slider($Input13, $Slider5, 16)
		Case $Slider6
			Slider($Input15, $Slider6, 18)
		Case $Slider7
			Slider($Input17, $Slider7, 20)
	EndSwitch
	$Position = GUIGetCursorInfo($Form1)
	If _IsPressed(1) And WinActive("Button Designer") And $Position[4] = $Button Then
		$LeftMin = $Position[0] - $ButtonLeft
		$TopMin = $Position[1] - $ButtonTop
		While _IsPressed(1)
			$Position = GUIGetCursorInfo($Form1)
			If $ButtonLeft <> $Position[0] Then
				$ButtonLeft = $Position[0] - $LeftMin
				GUICtrlSetPos($Button, $ButtonLeft, $ButtonTop, $Array[0][0], $Array[0][1])
			EndIf
			If $ButtonTop <> $Position[1] Then
				$ButtonTop = $Position[1] - $TopMin
				GUICtrlSetPos($Button, $ButtonLeft, $ButtonTop, $Array[0][0], $Array[0][1])
			EndIf
		WEnd
	EndIf
WEnd

Func SourceCode($Settings = 0)
	$Curve = GUICtrlRead($Input19)
	Local $SourceCode = "["
	For $i = 0 To 4
		$SourceCode &= "["
		For $a = 0 To 18
			If $a <> 18 Then
				If IsString($Array[$i][$a + 3]) Then
					$SourceCode &= '"' & $Array[$i][$a + 3] & '",'
				Else
					$SourceCode &= '0x' & Hex($Array[$i][$a + 3], 8) & ','
				EndIf
			Else
				$SourceCode &= '0x' & Hex($Array[$i][$a + 3], 8)
			EndIf
		Next
		If $i <> 4 Then
			$SourceCode &= "],"
		Else
			$SourceCode &= "]"
		EndIf
	Next
	$SourceCode &= "]"
	If $Settings = 1 Then Return "Dim $Design1[5][19] = " & $SourceCode
	Local $Code = "#include <GDIP.au3>" & @CRLF & "#include <GUIButton.au3>" & @CRLF & "#include <WinAPI.au3>" & @CRLF & "#include <GUIImageList.au3>" & @CRLF & @CRLF & "Dim $Design1[5][19] = " & $SourceCode & @CRLF & @CRLF & "Func _GUICtrlCreateButton($Text,$Left,$Top,$Width,$Height,$Style = -1,$Array = $Design1,$Curve = " & $Curve & ")" & @CRLF & "If IsArray($Array) Then" & @CRLF & 'Local $Button = GUICtrlCreateButton("",$Left,$Top,$Width,$Height,$Style = -1)' & @CRLF & "Local $Handle = GUICtrlGetHandle($Button)" & @CRLF & "_GDIPlus_Startup()" & @CRLF & "$RoundRect = _WinAPI_CreateRoundRectRgn(0, 0, $Width + 1, $Height + 1, $Curve, $Curve)" & @CRLF & '$Result = DllCall("user32.dll", "uint", "GetClassLongW", "hwnd", $Handle, "int", -26)' & @CRLF & 'DllCall("user32.dll", "uint", "SetClassLongW", "hwnd", $Handle, "int", -26, "int", BitAND($Result[0], BitNOT(162)))' & @CRLF & "_WinAPI_SetWindowRgn($Handle, $RoundRect)" & @CRLF & "Local $ImageList = _GUIImageList_Create($Width,$Height, 5)" & @CRLF & "For $State = 0 To 4" & @CRLF & "Local $Bitmap = Draw($Width, $Height, $Text, $Array[$State][0], $Array[$State][1], $Array[$State][2], $Array[$State][3], $Array[$State][4], $Array[$State][5], $Array[$State][6], $Array[$State][7], $Array[$State][8], $Array[$State][9], $Array[$State][10], $Array[$State][11], $Array[$State][12], $Array[$State][13], $Array[$State][14], $Array[$State][15], $Array[$State][16], $Array[$State][17], $Array[$State][18],$Curve)" & @CRLF & "_GUIImageList_Add($ImageList, $Bitmap)" & @CRLF & "_WinAPI_DeleteObject($Bitmap)" & @CRLF & "Next" & @CRLF & "_GUICtrlButton_SetImageList($Handle, $ImageList, 4)" & @CRLF & "_GDIPlus_Shutdown()" & @CRLF & "Return $Button" & @CRLF & "EndIf" & @CRLF & "EndFunc" & @CRLF & @CRLF & "Func Draw($ButtonWidth, $ButtonHeight, $ButtonText, $BackgroundColor1, $BackgroundColor2, $FontName, $FontAttributes, $FontSize, $FontColor, $TextAlign, $TextLineAlign, $TextShadowColor, $TextShadowVerticalPosition, $TextShadowHorizontalPosition, $TopBorderWidth, $TopBorderColor, $BottomBorderWidth, $BottomBorderColor, $LeftBorderWidth, $LeftBorderColor, $RightBorderWidth, $RightBorderLeft,$Curve)" & @CRLF & "Local $Image = _GDIPlus_BitmapCreateFromScan0($ButtonWidth, $ButtonHeight)" & @CRLF & "Local $Buffer = _GDIPlus_ImageGetGraphicsContext($Image)" & @CRLF & "Local $LineBrush = _GDIPlus_LineBrushCreate($ButtonWidth, 0, $ButtonWidth, $ButtonHeight, $BackgroundColor1, $BackgroundColor2)" & @CRLF & "Local $Brush = _GDIPlus_BrushCreateSolid($FontColor)" & @CRLF & "Local $Pen = _GDIPlus_PenCreate()" & @CRLF & "Local $Family = _GDIPlus_FontFamilyCreate($FontName)" & @CRLF & "Local $Font = _GDIPlus_FontCreate($Family, $FontSize, $FontAttributes, 2)" & @CRLF & "Local $Layout = _GDIPlus_RectFCreate(0, 0, $ButtonWidth, $ButtonHeight)" & @CRLF & "Local $Format = _GDIPlus_StringFormatCreate()" & @CRLF & "_GDIPlus_StringFormatSetAlign($Format, $TextAlign)" & @CRLF & "_GDIPlus_StringFormatSetLineAlign($Format, $TextLineAlign)" & @CRLF & "_GDIPlus_GraphicsFillRect($Buffer, 0, 0, $ButtonWidth, $ButtonHeight, $LineBrush)" & @CRLF & "_GDIPlus_PenSetColor($Pen, $TopBorderColor)" & @CRLF & "_GDIPlus_PenSetWidth($Pen, $TopBorderWidth)" & @CRLF
	$Code &= "_GDIPlus_GraphicsDrawLine($Buffer, 0, 0, $ButtonWidth, 0, $Pen)" & @CRLF & "_GDIPlus_PenSetColor($Pen, $LeftBorderColor)" & @CRLF & "_GDIPlus_PenSetWidth($Pen, $LeftBorderWidth)" & @CRLF & "_GDIPlus_GraphicsDrawLine($Buffer, 0, 0, 0, $ButtonHeight, $Pen)" & @CRLF & "_GDIPlus_PenSetColor($Pen, $BottomBorderColor)" & @CRLF & "_GDIPlus_PenSetWidth($Pen, $BottomBorderWidth)" & @CRLF & "_GDIPlus_GraphicsDrawLine($Buffer, 0, $ButtonHeight - $BottomBorderWidth, $ButtonWidth, $ButtonHeight - $BottomBorderWidth, $Pen)" & @CRLF & "_GDIPlus_PenSetColor($Pen, $RightBorderLeft)" & @CRLF & "_GDIPlus_PenSetWidth($Pen, $RightBorderWidth)" & @CRLF & "_GDIPlus_GraphicsDrawLine($Buffer, $ButtonWidth - $RightBorderWidth, 0, $ButtonWidth - $RightBorderWidth, $ButtonHeight, $Pen)" & @CRLF & "If $Curve <> 0 Then" & @CRLF & "_GDIPlus_PenSetColor($Pen,$BottomBorderColor)" & @CRLF & "_GDIPlus_PenSetWidth($Pen,$BottomBorderWidth)" & @CRLF & "_GDIPlus_GraphicsDrawArc($Buffer,$ButtonWidth-$Curve-1,$ButtonHeight-$Curve-1,$Curve,$Curve,0,90,$Pen)" & @CRLF & "_GDIPlus_GraphicsDrawArc($Buffer,0,$ButtonHeight-$Curve-1,$Curve,$Curve,90,90,$Pen)" & @CRLF & "_GDIPlus_PenSetColor($Pen,$TopBorderColor)" & @CRLF & "_GDIPlus_PenSetWidth($Pen,$TopBorderWidth)" & @CRLF & "_GDIPlus_GraphicsDrawArc($Buffer,0,0,$Curve,$Curve,180,90,$Pen)" & @CRLF & "_GDIPlus_GraphicsDrawArc($Buffer,$ButtonWidth-$Curve-1,0,$Curve,$Curve,270,90,$Pen)" & @CRLF & "EndIf" & @CRLF & "_GDIPlus_BrushSetSolidColor($Brush, $TextShadowColor)" & @CRLF & "_GDIPlus_GraphicsDrawStringEx($Buffer, $ButtonText, $Font, _GDIPlus_RectFCreate(0, 0, $ButtonWidth + $TextShadowHorizontalPosition, $ButtonHeight + $TextShadowVerticalPosition), $Format, $Brush)" & @CRLF & "_GDIPlus_BrushSetSolidColor($Brush, $FontColor)" & @CRLF & "_GDIPlus_GraphicsDrawStringEx($Buffer, $ButtonText, $Font, $Layout, $Format, $Brush)" & @CRLF & "$Bitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($Image)" & @CRLF & "_GDIPlus_StringFormatDispose($Format)" & @CRLF & "_GDIPlus_FontDispose($Font)" & @CRLF & "_GDIPlus_FontFamilyDispose($Family)" & @CRLF & "_GDIPlus_PenDispose($Pen)" & @CRLF & "_GDIPlus_BrushDispose($Brush)" & @CRLF & "_GDIPlus_BrushDispose($LineBrush)" & @CRLF & "_GDIPlus_BitmapDispose($Image)" & @CRLF & "Return $Bitmap" & @CRLF & "EndFunc"
	$Curve = 0
	Return $Code
EndFunc   ;==>SourceCode

Func ButtonChange()
	For $i = 0 To 4
		$Array[$i][0] = GUICtrlRead($Input1)
		$Array[$i][1] = GUICtrlRead($Input2)
	Next
	GUICtrlDelete($Button)
	$Button = GUICtrlCreateButton("", $ButtonLeft, $ButtonTop, $Array[0][0], $Array[0][1])
	GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
	$Handle = GUICtrlGetHandle($Button)
	$Curve = GUICtrlRead($Input19)
	$RoundRect = _WinAPI_CreateRoundRectRgn(0, 0, $Array[0][0] + 1, $Array[0][1] + 1, $Curve, $Curve)
	$Result = DllCall("user32.dll", "uint", "GetClassLongW", "hwnd", $Handle, "int", -26)
	DllCall("user32.dll", "uint", "SetClassLongW", "hwnd", $Handle, "int", -26, "int", BitAND($Result[0], BitNOT(162)))
	_WinAPI_SetWindowRgn($Handle, $RoundRect)
	Graphic()
EndFunc   ;==>ButtonChange

Func Slider($InputBox, $Slider, $Table)
	GUICtrlSetData($InputBox, GUICtrlRead($Slider))
	$Array[$TabPosition][$Table] = GUICtrlRead($InputBox)
	If $Table = 0 Or $Table = 1 Then
		ButtonChange()
	EndIf
	Edit()
EndFunc   ;==>Slider

Func Color($InputBox, $Table)
	Local $Color = _ChooseColor(2, "0x" & StringRight(GUICtrlRead($InputBox), 6), 2)
	If $Color <> -1 Then
		GUICtrlSetData($InputBox, "FF" & StringRight($Color, 6))
		$Array[$TabPosition][$Table] = Dec(GUICtrlRead($InputBox))
		Edit()
	EndIf
EndFunc   ;==>Color

Func Edit()
	Local $ImageList = _GUIImageList_Create($Array[0][0], $Array[0][1], 5)
	For $State = 0 To 4
		Local $Bitmap = Draw($Array[$State][0], $Array[$State][1], $Array[$State][2], $Array[$State][3], $Array[$State][4], $Array[$State][5], $Array[$State][6], $Array[$State][7], $Array[$State][8], $Array[$State][9], $Array[$State][10], $Array[$State][11], $Array[$State][12], $Array[$State][13], $Array[$State][14], $Array[$State][15], $Array[$State][16], $Array[$State][17], $Array[$State][18], $Array[$State][19], $Array[$State][20], $Array[$State][21])
		_GUIImageList_Add($ImageList, $Bitmap)
		_WinAPI_DeleteObject($Bitmap)
	Next
	_GUICtrlButton_SetImageList($Handle, $ImageList, 4)
EndFunc   ;==>Edit

Func Close()
	_GDIPlus_Shutdown()
	Exit
EndFunc   ;==>Close

Func Write($State)
	GUICtrlSetData($Input1, $Array[$State][0])
	GUICtrlSetData($Input2, $Array[$State][1])
	GUICtrlSetData($Input3, $Array[$State][2])
	GUICtrlSetData($Input4, Hex($Array[$State][3], 8))
	GUICtrlSetData($Input5, Hex($Array[$State][4], 8))
	GUICtrlSetData($Input6, $Array[$State][7])
	GUICtrlSetData($Input7, Hex($Array[$State][8], 8))
	GUICtrlSetData($Input8, Hex($Array[$State][11], 8))
	GUICtrlSetData($Input9, $Array[$State][12])
	GUICtrlSetData($Input10, $Array[$State][13])
	GUICtrlSetData($Input11, $Array[$State][14])
	GUICtrlSetData($Input12, Hex($Array[$State][15], 8))
	GUICtrlSetData($Input13, $Array[$State][16])
	GUICtrlSetData($Input14, Hex($Array[$State][17], 8))
	GUICtrlSetData($Input15, $Array[$State][18])
	GUICtrlSetData($Input16, Hex($Array[$State][19], 8))
	GUICtrlSetData($Input17, $Array[$State][20])
	GUICtrlSetData($Input18, Hex($Array[$State][21], 8))
	GUICtrlSetData($Combo1, $Array[$State][5])
	GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
	GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
	GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)
	If BitAND(1, $Array[$State][6]) Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)
	If BitAND(2, $Array[$State][6]) Then GUICtrlSetState($Checkbox2, $GUI_CHECKED)
	If BitAND(4, $Array[$State][6]) Then GUICtrlSetState($Checkbox3, $GUI_CHECKED)
	GUICtrlSetState($Radio1, $GUI_UNCHECKED)
	GUICtrlSetState($Radio2, $GUI_UNCHECKED)
	GUICtrlSetState($Radio3, $GUI_UNCHECKED)
	If $Array[$State][9] = 0 Then
		GUICtrlSetState($Radio1, $GUI_CHECKED)
	ElseIf $Array[$State][9] = 1 Then
		GUICtrlSetState($Radio2, $GUI_CHECKED)
	ElseIf $Array[$State][9] = 2 Then
		GUICtrlSetState($Radio3, $GUI_CHECKED)
	EndIf
	GUICtrlSetState($Radio4, $GUI_UNCHECKED)
	GUICtrlSetState($Radio5, $GUI_UNCHECKED)
	GUICtrlSetState($Radio6, $GUI_UNCHECKED)
	If $Array[$State][10] = 0 Then
		GUICtrlSetState($Radio4, $GUI_CHECKED)
	ElseIf $Array[$State][10] = 1 Then
		GUICtrlSetState($Radio5, $GUI_CHECKED)
	ElseIf $Array[$State][10] = 2 Then
		GUICtrlSetState($Radio6, $GUI_CHECKED)
	EndIf
EndFunc   ;==>Write

Func Draw($ButtonWidth, $ButtonHeight, $ButtonText, $BackgroundColor1, $BackgroundColor2, $FontName, $FontAttributes, $FontSize, $FontColor, $TextAlign, $TextLineAlign, $TextShadowColor, $TextShadowVerticalPosition, $TextShadowHorizontalPosition, $TopBorderWidth, $TopBorderColor, $BottomBorderWidth, $BottomBorderColor, $LeftBorderWidth, $LeftBorderColor, $RightBorderWidth, $RightBorderLeft)
	Local $Image = _GDIPlus_BitmapCreateFromScan0($ButtonWidth, $ButtonHeight)
	Local $Buffer = _GDIPlus_ImageGetGraphicsContext($Image)
	Local $LineBrush = _GDIPlus_LineBrushCreate($ButtonWidth, 0, $ButtonWidth, $ButtonHeight, $BackgroundColor1, $BackgroundColor2)
	Local $Brush = _GDIPlus_BrushCreateSolid($FontColor)
	Local $Pen = _GDIPlus_PenCreate()
	Local $Family = _GDIPlus_FontFamilyCreate($FontName)
	Local $Font = _GDIPlus_FontCreate($Family, $FontSize, $FontAttributes, 2)
	Local $Layout = _GDIPlus_RectFCreate(0, 0, $ButtonWidth, $ButtonHeight)
	Local $Format = _GDIPlus_StringFormatCreate()
	_GDIPlus_StringFormatSetAlign($Format, $TextAlign)
	_GDIPlus_StringFormatSetLineAlign($Format, $TextLineAlign)
	_GDIPlus_GraphicsFillRect($Buffer, 0, 0, $ButtonWidth, $ButtonHeight, $LineBrush)
	_GDIPlus_PenSetColor($Pen, $TopBorderColor)
	_GDIPlus_PenSetWidth($Pen, $TopBorderWidth)
	_GDIPlus_GraphicsDrawLine($Buffer, 0, 0, $ButtonWidth, 0, $Pen)
	_GDIPlus_PenSetColor($Pen, $LeftBorderColor)
	_GDIPlus_PenSetWidth($Pen, $LeftBorderWidth)
	_GDIPlus_GraphicsDrawLine($Buffer, 0, 0, 0, $ButtonHeight, $Pen)
	_GDIPlus_PenSetColor($Pen, $BottomBorderColor)
	_GDIPlus_PenSetWidth($Pen, $BottomBorderWidth)
	_GDIPlus_GraphicsDrawLine($Buffer, 0, $ButtonHeight - $BottomBorderWidth, $ButtonWidth, $ButtonHeight - $BottomBorderWidth, $Pen)
	_GDIPlus_PenSetColor($Pen, $RightBorderLeft)
	_GDIPlus_PenSetWidth($Pen, $RightBorderWidth)
	_GDIPlus_GraphicsDrawLine($Buffer, $ButtonWidth - $RightBorderWidth, 0, $ButtonWidth - $RightBorderWidth, $ButtonHeight, $Pen)
	If $Curve <> 0 Then
		_GDIPlus_PenSetColor($Pen, $BottomBorderColor)
		_GDIPlus_PenSetWidth($Pen, $BottomBorderWidth)
		_GDIPlus_GraphicsDrawArc($Buffer, $ButtonWidth - $Curve - 1, $ButtonHeight - $Curve - 1, $Curve, $Curve, 0, 90, $Pen)
		_GDIPlus_GraphicsDrawArc($Buffer, 0, $ButtonHeight - $Curve - 1, $Curve, $Curve, 90, 90, $Pen)
		_GDIPlus_PenSetColor($Pen, $TopBorderColor)
		_GDIPlus_PenSetWidth($Pen, $TopBorderWidth)
		_GDIPlus_GraphicsDrawArc($Buffer, 0, 0, $Curve, $Curve, 180, 90, $Pen)
		_GDIPlus_GraphicsDrawArc($Buffer, $ButtonWidth - $Curve - 1, 0, $Curve, $Curve, 270, 90, $Pen)
	EndIf
	_GDIPlus_BrushSetSolidColor($Brush, $TextShadowColor)
	_GDIPlus_GraphicsDrawStringEx($Buffer, $ButtonText, $Font, _GDIPlus_RectFCreate(0, 0, $ButtonWidth + $TextShadowHorizontalPosition, $ButtonHeight + $TextShadowVerticalPosition), $Format, $Brush)
	_GDIPlus_BrushSetSolidColor($Brush, $FontColor)
	_GDIPlus_GraphicsDrawStringEx($Buffer, $ButtonText, $Font, $Layout, $Format, $Brush)
	Local $Bitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($Image)
	_GDIPlus_StringFormatDispose($Format)
	_GDIPlus_FontDispose($Font)
	_GDIPlus_FontFamilyDispose($Family)
	_GDIPlus_PenDispose($Pen)
	_GDIPlus_BrushDispose($Brush)
	_GDIPlus_BrushDispose($LineBrush)
	_GDIPlus_BitmapDispose($Image)
	Return $Bitmap
EndFunc   ;==>Draw

Func Graphic()
	If WinActive("Button Designer") Then
		If $Graphic1 <> 0 Then GUICtrlDelete($Graphic1)
		Local $Size = WinGetPos("Button Designer")
		$Graphic1 = GUICtrlCreateGraphic(0, 0, $Size[2] - 400, $Size[3])
		GUICtrlSetBkColor(-1, 0xECE9D8)
	EndIf
EndFunc   ;==>Graphic

Func Fonts()
	Global $aFonts[1]
	Local Const $LOGFONT = "long lfHeight;long lfWidth;long lfEscapement;long lfOrientation;long lfWeight;byte lfItalic;byte lfUnderline; byte lfStrikeout;byte lfCharSet;byte lfOutPrecision;byte lfClipPrecision;byte lfQuality;byte lfPitchAndFamily;char lfFaceName[32]"
	Local $hGDI32 = DllOpen("Gdi32.dll"), $hUser32 = DllOpen("user32.dll")
	Local $hDesktop, $hDC, $iReturn
	Local $hCBFunc = DllCallbackRegister("EnumFontFamExProc", "long", "ptr;ptr;dword;lparam")
	Local $strctLOGFONT = DllStructCreate($LOGFONT)
	DllStructSetData($strctLOGFONT, "lfCharset", 1)
	$hDesktop = DllCall($hUser32, "hwnd", "GetDesktopWindow")
	$hDC = DllCall($hUser32, "ptr", "GetWindowDC", "hwnd", $hDesktop[0])
	DllCall($hGDI32, "long", "EnumFontFamiliesEx", "ptr", $hDC[0], "ptr", DllStructGetPtr($strctLOGFONT), "ptr", DllCallbackGetPtr($hCBFunc), "lparam", 10, "DWORD", 0)
	$aFonts = _ArrayUnique($aFonts, 1, 1)
	_ArraySort($aFonts, 0, 1)
	DllCall($hUser32, "int", "ReleaseCapture")
	DllCallbackFree($hCBFunc)
	DllClose($hGDI32)
	DllClose($hUser32)
	Local $aString = ""
	For $i = 1 To $aFonts[0]
		$aString &= $aFonts[$i] & "|"
	Next
	Return $aString
EndFunc   ;==>Fonts

Func EnumFontFamExProc($pLOGFONT, $TEXTMETRIC, $dwType, $lpData)
	Local Const $LOGFONT = "long lfHeight;long lfWidth;long lfEscapement;long lfOrientation;long lfWeight;byte lfItalic;byte lfUnderline; byte lfStrikeout;byte lfCharSet;byte lfOutPrecision;byte lfClipPrecision;byte lfQuality;byte lfPitchAndFamily;char lfFaceName[32]"
	ReDim $aFonts[UBound($aFonts) + 1]
	$aFonts[UBound($aFonts) - 1] = DllStructGetData(DllStructCreate($LOGFONT, $pLOGFONT), "lfFaceName")
	Return 1
EndFunc   ;==>EnumFontFamExProc

Func _GUICtrlCreateButton($Text, $Left, $Top, $Width, $Height, $Style = -1, $Array = $Design1)
	If IsArray($Array) Then
		Local $Button = GUICtrlCreateButton("", $Left, $Top, $Width, $Height, $Style = -1)
		Local $Handle = GUICtrlGetHandle($Button)
		Local $ImageList = _GUIImageList_Create($Width, $Height, 5)
		For $State = 0 To 4
			Local $Bitmap = Draw($Width, $Height, $Text, $Array[$State][0], $Array[$State][1], $Array[$State][2], $Array[$State][3], $Array[$State][4], $Array[$State][5], $Array[$State][6], $Array[$State][7], $Array[$State][8], $Array[$State][9], $Array[$State][10], $Array[$State][11], $Array[$State][12], $Array[$State][13], $Array[$State][14], $Array[$State][15], $Array[$State][16], $Array[$State][17], $Array[$State][18])
			_GUIImageList_Add($ImageList, $Bitmap)
			_WinAPI_DeleteObject($Bitmap)
		Next
		_GUICtrlButton_SetImageList($Handle, $ImageList, 4)
		Return $Button
	EndIf
EndFunc   ;==>_GUICtrlCreateButton
