; <COMPILER: v1.0.21.0>
Release = 2.5
#persistent
SetControlDelay, 0
SetFormat, float, 1.1
CoordMode, ToolTip, Screen
#UseHook On
FileInstall, Grid.gif, %temp%\Grid.gif
FileInstall, splash.gif, %temp%\splash.gif
FileDelete, %temp%\Generated.ini
SplashImage, %temp%\splash.gif, B1
Menu, Tray, NoStandard
Menu, Tray, Add, `:`: SmartGUI Creator by Rajat `:`:, About
Menu, Tray, Default, `:`: SmartGUI Creator by Rajat `:`:
Menu, Tray, Add
Menu, Tray, Add, Edit GUI Script, EditGUI
Menu, Tray, Add, Set GUI Count, SetGUICount
Menu, Tray, Add, Move Group, MoveGroup
Menu, Tray, Add
Menu, Tray, Add, Add Button, AddControl
Menu, Tray, Add, Add Checkbox, AddControl
Menu, Tray, Add, Add ComboBox, AddControl
Menu, Tray, Add, Add DropDownList, AddControl
Menu, Tray, Add, Add Edit, AddControl
Menu, Tray, Add, Add GroupBox, AddControl
Menu, Tray, Add, Add ListBox, AddControl
Menu, Tray, Add, Add Pic, AddControl
Menu, Tray, Add, Add Radio, AddControl
Menu, Tray, Add, Add Text, AddControl
Menu, Tray, Add, Change Font, ChangeFont
Menu, Tray, Add
Menu, Tray, Add, Show Grid, Grid
Menu, Tray, Check, Show Grid
Menu, Tray, Add, Show Help, Help
Menu, Tray, Add, Show GUI Statistics, Stats
Menu, Tray, Check, Show GUI Statistics
Menu, Tray, Add, Ask Control Label, CtrlText
Menu, Tray, Add, MicroEditing, MicroEditing
Menu, Tray, Add
Menu, Tray, Add, Test GUI, TestGUI
Menu, Tray, Add, Save GUI, SaveGUI
Menu, Tray, Add, Exit, GuiClose
GuiW = 475
GuiH = 375
G = 1
L = 0
M = 0
MainWnd = SmartGUI Creator
GeneratedWnd = Generated using SmartGUI %Release%
Gui, 1:+Resize
Gui, 1:Show, w%GuiW% h%GuiH% x170 y110, %MainWnd%
WinGetPos,,, WinW, WinH, %MainWnd%
WinDiffW = %WinW%
WinDiffW -= %GuiW%
WinDiffW /= 2
WinDiffH = %WinH%
WinDiffH -= %GuiH%
GridY = %WinDiffH%
GridY -= %WinDiffW%
Gui, 1:add, pic, x-%WinDiffW% y-%GridY%, %temp%\grid.gif
StaticCount = 1
IniRead, SaveDir, %a_scriptdir%\SmartGUI.ini, Folders, SaveDir
IniRead, LoadDir, %a_scriptdir%\SmartGUI.ini, Folders, LoadDir
IfEqual, SaveDir, ERROR, SetEnv, SaveDir,
IfEqual, LoadDir, ERROR, SetEnv, LoadDir,
IniRead, HKModify, %a_scriptdir%\SmartGUI.ini, Hotkeys, Modify, Alt
IniRead, HKDuplicate, %a_scriptdir%\SmartGUI.ini, Hotkeys, Duplicate, ^C
IniRead, HKDelete, %a_scriptdir%\SmartGUI.ini, Hotkeys, Delete, BackSpace
IniRead, HKUndo, %a_scriptdir%\SmartGUI.ini, Hotkeys, Undo, ^Z
IniWrite, %HKModify%, %a_scriptdir%\SmartGUI.ini, Hotkeys, HKModify
IniWrite, %HKDuplicate%, %a_scriptdir%\SmartGUI.ini, Hotkeys, HKDuplicate
IniWrite, %HKDelete%, %a_scriptdir%\SmartGUI.ini, Hotkeys, HKDelete
IniWrite, %HKUndo%, %a_scriptdir%\SmartGUI.ini, Hotkeys, HKUndo
Hotkey, %HKModify%, Modify
Hotkey, %HKDuplicate%, Duplicate
Hotkey, %HKDelete%, Delete
Hotkey, %HKUndo%, Undo
HK = %HKModify%
Gosub, FormatHK
HKModify1 = %HK%
HK = %HKDuplicate%
Gosub, FormatHK
HKDuplicate1 = %HK%
HK = %HKDelete%
Gosub, FormatHK
HKDelete1 = %HK%
HK = %HKUndo%
Gosub, FormatHK
HKUndo1 = %HK%
Help = %Help%Create Control`t`tTray Menu`n
Help = %Help%Modify Control`t`tPress %HKModify1% with mouse on target control`n
Help = %Help%Duplicate Control`tPress %HKDuplicate1% with mouse on target
control`n
Help = %Help%Remove Control`t`tPress %HKDelete1% with mouse on target control`n
Help = %Help%Undo Last Removal`tPress %HKUndo1%
IniRead, ShowHelp, %a_scriptdir%\SmartGUI.ini, Settings, ShowHelp, Yes
IniWrite, %ShowHelp%, %a_scriptdir%\SmartGUI.ini, Settings, ShowHelp
IfEqual, ShowHelp, Yes
{
Menu, Tray, Check, Show help
ToolTip, %Help%, 1, 1, 2
WinSet, AlwaysOnTop, Off, %Help%
}
SetTimer, WinSpy, 500
WinActivate, %MainWnd%
sleep, 800
SplashImage, Off
IfExist, %1%
{
GUIScript = %1%
Goto, EditGUI
}
Return
Grid:
IfEqual, G, 1
{
Menu, Tray, ToggleCheck, Show Grid
Control, hide,, Static1, %MainWnd%
G = 0
}
Else
{
Menu, Tray, ToggleCheck, Show Grid
Control, show,, Static1, %MainWnd%
G = 1
}
Return
CtrlText:
IfEqual, L, 1
{
Menu, Tray, ToggleCheck, Ask Control Label
L = 0
}
Else
{
Menu, Tray, ToggleCheck, Ask Control Label
L = 1
}
Return
MicroEditing:
IfEqual, M, 1
{
Menu, Tray, ToggleCheck, MicroEditing
M = 0
}
Else
{
Menu, Tray, ToggleCheck, MicroEditing
M = 1
}
Return
Stats:
IfWinExist, GUI Statistics
{
Menu, Tray, ToggleCheck, Show GUI Statistics
WinClose, GUI Statistics
WinActivate, GUI Statistics
SetTimer, WinSpy, Off
}
Else
{
Menu, Tray, ToggleCheck, Show GUI Statistics
FirstTimeS = Yes
SetTimer, WinSpy, 500
}
Return
Help:
IfEqual, ShowHelp, Yes
{
ToolTip,,,,2
Menu, Tray, ToggleCheck, Show Help
ShowHelp = No
IniWrite, %ShowHelp%, %a_scriptdir%\SmartGUI.ini, Settings, ShowHelp
}
Else
{
ToolTip, %Help%, 1, 1, 2
WinSet, AlwaysOnTop, Off, %Help%
IniWrite, %ShowHelp%, %a_scriptdir%\SmartGUI.ini, Settings, ShowHelp
Menu, Tray, ToggleCheck, Show Help
ShowHelp = Yes
IniWrite, %ShowHelp%, %a_scriptdir%\SmartGUI.ini, Settings, ShowHelp
}
Return
AddControl:
StringTrimLeft, Ctrl2Add, A_ThisMenuItem, 4
Goto, CreateCtrl
Return
ChangeFont:
IfNotEqual, FirstTimeF, No
{
Gui, 4:+owner1 +ToolWindow
Gui, 4:Add, Text, x7 y6 w110 h20, Enter valid font name
Gui, 4:Add, Text, x7 y36 w110 h20, Font size
Gui, 4:Add, Text, x7 y66 w110 h20, Font Color
Gui, 4:Add, Edit, x127 y6 w110 h20 vFName, Verdana
Gui, 4:Add, Edit, x127 y36 w110 h20 vFSize, 8
Gui, 4:Add, Edit, x127 y66 w110 h20 vFColor, Default
Gui, 4:Add, Checkbox, x17 y98 w110 h20 vFBold, Bold
Gui, 4:Add, Checkbox, x137 y98 w110 h20 vFItalic, Italic
Gui, 4:Add, Checkbox, x17 y128 w110 h20 vFUnderline, Underline
Gui, 4:Add, Checkbox, x137 y128 w110 h20 vFStrike, Strikeout
Gui, 4:Add, Button, x16 y167 w60 h20, OK
Gui, 4:Add, Button, x156 y167 w60 h20, Cancel
Gui, 4:Add, Button, x86 y167 w60 h20, Default
FirstTimeF = No
}
Gui, 4:Show, x548 y124 h200 w245, Enter Font Settings
Return
4ButtonCancel:
GUI, 4:Cancel
Return
4ButtonDefault:
ControlSetText, Edit1,, Enter Font Settings, Enter valid
ControlSetText, Edit2,, Enter Font Settings, Enter valid
ControlSetText, Edit3,, Enter Font Settings, Enter valid
Control, Uncheck,, Button1, Enter Font Settings, Enter valid
Control, Uncheck,, Button2, Enter Font Settings, Enter valid
Control, Uncheck,, Button3, Enter Font Settings, Enter valid
Control, Uncheck,, Button4, Enter Font Settings, Enter valid
Return
4ButtonOK:
FSet =
GUI, 4:Submit
IfNotEqual, FSize,, SetEnv, FSet, %FSet% S%FSize%
IfNotEqual, FColor,, SetEnv, FSet, %FSet% C%FColor%
IfEqual, FBold, 1, SetEnv, FSet, %FSet% Bold
IfEqual, FItalic, 1, SetEnv, FSet, %FSet% Italic
IfEqual, FUnderline, 1, SetEnv, FSet, %FSet% Underline
IfEqual, FStrike, 1, SetEnv, FSet, %FSet% Strike
Gui, 1:Font, %FSet%, %FName%
FontCount ++
IniWrite, Gui`, Font`, %FSet%`, %FName%, %temp%\Generated.ini, Generated,
Font%FontCount%
Return
CreateCtrl:
IfNotEqual, JustCopy, Y
{
cW = 100
cH = 30
}
WinActivate, %MainWnd%
IfEqual, Ctrl2Add, Pic
{
FileSelectFile, PicFile,, %a_scriptdir%
IfNotExist, %PicFile%, Return
Gui, 1:Add, %Ctrl2Add%, x0 y0, %PicFile%
}
Else
{
CtrlText = %Ctrl2Add%
IfEqual, L, 1, InputBox, CtrlText, Label, Enter Control Label,, 250, 125,,,,,
%Ctrl2Add%
IfEqual, ErrorLevel, 1, Return
Gui, 1:Add, %Ctrl2Add%, x0 y0 w%cW% h%cH%, %CtrlText%
}
Sleep, 300
CtrlName = %Ctrl2Add%
IfEqual, Ctrl2Add, ListBox, SetEnv, CtrlName, ListBox
IfEqual, Ctrl2Add, ComboBox, SetEnv, CtrlName, ComboBox
IfEqual, Ctrl2Add, DropDownList, SetEnv, CtrlName, ComboBox
IfEqual, Ctrl2Add, CheckBox, SetEnv, CtrlName, Button
IfEqual, Ctrl2Add, GroupBox, SetEnv, CtrlName, Button
IfEqual, Ctrl2Add, Pic, SetEnv, CtrlName, Static
IfEqual, Ctrl2Add, Radio, SetEnv, CtrlName, Button
IfEqual, Ctrl2Add, Text, SetEnv, CtrlName, Static
%CtrlName%Count ++
IfEqual, Ctrl2Add, ComboBox
EditCount ++
StringTrimLeft, CtrlCount, %CtrlName%Count, 0
Control, Hide,, %CtrlName%%CtrlCount%, %MainWnd%
Control, Show,, %CtrlName%%CtrlCount%, %MainWnd%
Goto, Alter
Return
Modify:
IfWinNotActive, %MainWnd%,,Return
MouseGetPos,,,, CtrlNameCount
IfEqual, CtrlNameCount, Static1, Return
ControlGetPos, cX, cY,,, %CtrlNameCount%, %MainWnd%
MouseMove, %cX%, %cY%
Loop
{
StringRight, check, CtrlNameCount, %a_index%
if check is integer
{
CtrlCount = %check%
StringTrimRight, CtrlName, CtrlNameCount, %a_index%
}
Else Break
}
IniRead, CtrlData, %temp%\Generated.ini, Generated, %CtrlNameCount%
StringGetPos, lpos, CtrlData, Gui`, Add`,
lpos += 10
StringTrimLeft, Ctrl2Add, CtrlData, %lpos%
StringGetPos, cpos, Ctrl2Add, `,
StringLeft, Ctrl2Add, Ctrl2Add, %cpos%
Goto, Alter
return
Duplicate:
IfWinNotActive, %MainWnd%,,Return
MouseGetPos,,,, CtrlNameCount
IfEqual, CtrlNameCount, Static1, Return
ControlGetPos, cX, cY, cW, cH, %CtrlNameCount%, %MainWnd%
Loop
{
StringRight, check, CtrlNameCount, %a_index%
if check is integer
{
CtrlCount = %check%
StringTrimRight, CtrlName, CtrlNameCount, %a_index%
}
Else Break
}
IniRead, CtrlData, %temp%\Generated.ini, Generated, %CtrlNameCount%
StringGetPos, lpos, CtrlData, Gui`, Add`,
lpos += 10
StringTrimLeft, Ctrl2Add, CtrlData, %lpos%
StringGetPos, cpos, Ctrl2Add, `,
StringLeft, Ctrl2Add, Ctrl2Add, %cpos%
JustCopy = Y
Goto, CreateCtrl
return
Delete:
IfWinNotActive, %MainWnd%,,Return
MouseGetPos,,,, CtrlNameCount
IfEqual, CtrlNameCount, Static1, Return
ControlGetPos, cX, cY,,, %CtrlNameCount%, %MainWnd%
IniRead, LastDelIni, %temp%\Generated.ini, Generated, %CtrlNameCount%
IniDelete, %temp%\Generated.ini, Generated, %CtrlNameCount%
Control, hide,, %CtrlNameCount%, %MainWnd%
LastDel = %CtrlNameCount%
Return
Undo:
IfWinNotActive, %MainWnd%,,Return
Control, Show,, %LastDel%, %MainWnd%
IniWrite, %LastDelIni%, %temp%\Generated.ini, Generated, %LastDel%
Return
Alter:
Loop
{
GetKeyState, LB, LButton
IfEqual, LB, U
{
MouseGetPos, mX, mY
IfEqual, M, 0
{
StringRight, dmX, mX, 1
StringRight, dmY, mY, 1
mX -= %dmX%
mY -= %dmY%
}
ControlGetPos, tempX, tempY,,, %CtrlName%%CtrlCount%, %MainWnd%
IfEqual, tempX, %mX%
IfEqual, tempY, %mY%
Continue
ControlMove, %CtrlName%%CtrlCount%, %mX%, %mY%,,, %MainWnd%
Control, Hide,, %CtrlName%%CtrlCount%, %MainWnd%
Control, Show,, %CtrlName%%CtrlCount%, %MainWnd%
Sleep, 50
}
IfEqual, LB, D, Break
}
Control, Hide,, %CtrlName%%CtrlCount%, %MainWnd%
Control, Show,, %CtrlName%%CtrlCount%, %MainWnd%
ControlGetPos, cX, cY, cW, cH, %CtrlName%%CtrlCount%, %MainWnd%
cX += %cW%
cY += %cH%
IfNotEqual, JustCopy, Y
MouseMove, %cX%, %cY%
KeyWait, LButton
IfNotEqual, JustCopy, Y
Loop
{
GetKeyState, LB, LButton
IfEqual, LB, U
{
MouseGetPos, mX2, mY2
IfEqual, M, 0
{
StringRight, dmX, mX2, 1
StringRight, dmY, mY2, 1
mX2 -= %dmX%
mY2 -= %dmY%
}
cW = %mX2%
cH = %mY2%
cW -= %mX%
cH -= %mY%
ControlGetPos,,, tempW, tempH, %CtrlName%%CtrlCount%, %MainWnd%
IfEqual, cW, %tempW%
IfEqual, cH, %tempH%
Continue
ControlMove, %CtrlName%%CtrlCount%,,, %cW%, %cH%, %MainWnd%
Control, Hide,, %CtrlName%%CtrlCount%, %MainWnd%
Control, Show,, %CtrlName%%CtrlCount%, %MainWnd%
Sleep, 50
}
IfEqual, LB, D, Break
}
Control, Hide,, %CtrlName%%CtrlCount%, %MainWnd%
Control, Show,, %CtrlName%%CtrlCount%, %MainWnd%
JustCopy = N
mX -= %WinDiffW%
mY -= %WinDiffH%
mY += %WinDiffW%
ControlGetText, CtrlText,%CtrlName%%CtrlCount%, %MainWnd%
IniWrite, Gui`, Add`, %Ctrl2Add%`, x%mX% y%mY% w%cW% h%cH%`, %CtrlText%,
%temp%\Generated.ini, Generated, %CtrlName%%CtrlCount%
Return
GuiClose:
FileSelectFile, SaveAsFile, S16, %SaveDir%, Save generated GUI script as:,
AutoHotkey Script (*.ahk)
IfNotEqual, SaveAsFile,
{
StringGetPos, Spos, SaveAsFile, \, R
StringLeft, SaveDir, SaveAsFile, %Spos%
IniWrite, %SaveDir%, %a_scriptdir%\SmartGUI.ini, Folders, SaveDir
StringRight, Ext, SaveAsFile, 4
IfNotEqual, Ext, .ahk, SetEnv, SaveAsFile, %SaveAsFile%.ahk
Gosub, GenerateGUI
Run, %SaveAsFile%
}
FileDelete, %temp%\Grid.gif
FileDelete, %temp%\Splash.gif
FileDelete, %temp%\Generated.ini
FileDelete, %temp%\Generated.ahk
ExitApp
Return
SaveGUI:
FileSelectFile, SaveAsFile, S16, %SaveDir%, Save generated GUI script as:,
AutoHotkey Script (*.ahk)
IfNotEqual, SaveAsFile,
{
StringGetPos, Spos, SaveAsFile, \, R
StringLeft, SaveDir, SaveAsFile, %Spos%
IniWrite, %SaveDir%, %a_scriptdir%\SmartGUI.ini, Folders, SaveDir
StringRight, Ext, SaveAsFile, 4
IfNotEqual, Ext, .ahk, SetEnv, SaveAsFile, %SaveAsFile%.ahk
Gosub, GenerateGUI
Run, %SaveAsFile%
}
SaveAsFile =
Return
TestGUI:
SaveAsFile = %temp%\Generated.ahk
Gosub, GenerateGUI
Run, %SaveAsFile%
SaveAsFile =
Return
GenerateGUI:
FileDelete, %SaveAsFile%
FileAppend, `; Generated by SmartGUI Creater`n`n, %SaveAsFile%
Loop, Read, %temp%\Generated.ini, %SaveAsFile%
{
IfNotInString, A_LoopReadLine, =, Continue
StringGetPos, eqpos, A_LoopReadLine, =
eqpos ++
StringTrimLeft, Buffer, A_LoopReadLine, %eqpos%
IfInString, Buffer, Gui`, Add`, `,, Continue
FileAppend, %Buffer%`n
}
WinGetPos, wX, wY, wW, wH, %MainWnd%
wH -= %WinDiffH%
wW -= %WinDiffW%
wW -= %WinDiffW%
FileAppend, Gui`, Show`, x%wX% y%wY% h%wH% w%wW%`, %GeneratedWnd%`n,
%SaveAsFile%
FileAppend, Return`n`n, %SaveAsFile%
FileAppend, GuiClose`:`nExitApp, %SaveAsFile%
Return
About:
IfNotEqual, FirstTimeA, No
{
Gui, 2:+owner1
Gui, 2:Font, S10 CA03410, verdana
Gui, 2:Add, Text, x90 y166 w180 h20, Release %Release%
Gui, 2:Add, Text, x57 y196 w150 h20, www.autohotkey.com
Gui, 2:Add, Button, x87 y226 w90 h30, OK
Gui, 2:Add, Pic, x17 y16 w230 h130, %temp%\splash.gif
Gui, 2:Add, GroupBox, x18 y9 w230 h140,
FirstTimeA = No
}
Gui, 2:Show, x274 y129 h272 w266, About..
relcount = 0
Loop
{
relcount += 0.1
ControlSetText, Static1, Release %relcount%, About..
IfEqual, relcount, %release%, break
sleep, 75
}
Return
2ButtonOK:
Gui, 2:Cancel
Return
TrayMenu:
IfWinNotActive, %MainWnd%,,Return
KeyWait, Lbutton
Menu, Tray, Show
Return
FormatHK:
StringReplace,HK,HK,~,
StringReplace,HK,HK,#,Win-
StringReplace,HK,HK,!,Alt-
StringReplace,HK,HK,^,Ctrl-
StringReplace,HK,HK,+,Shift-
StringReplace,HK,HK,RButton,Right mouse button
StringReplace,HK,HK,LButton,Left mouse button
StringReplace,HK,HK,MButton,Middle mouse button
Return
EditGUI:
IfNotExist, %GUIScript%, FileSelectFile, GUIScript, 1, %LoadDir%, Select GUI
script to edit, AutoHotkey GUI script (*.ahk)
IfNotExist, %GUIScript%, Return
Menu, Tray, Disable, Edit GUI script
StringGetPos, Spos, GUIScript, \, R
StringLeft, LoadDir, GUIScript, %Spos%
IniWrite, %LoadDir%, %a_scriptdir%\SmartGUI.ini, Folders, LoadDir
Loop, Read, %GUIScript%
{
StringGetPos, cpos, A_LoopReadLine, `,, L2
StringLeft, check, A_LoopReadLine, %cpos%
IfInString, check, GUI
IfInString, check, Add
{
StringGetPos, apos, check, Add
apos += 3
StringTrimLeft, data, A_LoopReadLine, %apos%
StringSplit, param, data, `,
IfLess, param0, 4, SetEnv, param4,
IfLess, param0, 3, SetEnv, param3,
IfLess, param0, 2, Continue
IfInString, param2, `:, Continue
StringReplace, param2, param2, %a_space%,, All
StringLeft, FirstChar, param3, 1
IfEqual, FirstChar, %a_space%, StringReplace, param3, param3, %a_space%,
StringLeft, FirstChar, param4, 1
IfEqual, FirstChar, %a_space%, StringReplace, param4, param4, %a_space%,
StringSplit, option, param3, %a_space%
Loop, %option0%
{
StringTrimLeft, ThisOption, option%a_index%, 0
StringLeft, OptionTest, ThisOption, 1
IfEqual, OptionTest, g, StringReplace, param3, param3, %ThisOption%
}
Gui, 1:Add, %param2%, %param3%, %param4%
Ctrl2Add = %param2%
CtrlName = %param2%
IfEqual, Ctrl2Add, ListBox, SetEnv, CtrlName, ListBox
IfEqual, Ctrl2Add, ComboBox, SetEnv, CtrlName, ComboBox
IfEqual, Ctrl2Add, DropDownList, SetEnv, CtrlName, ComboBox
IfEqual, Ctrl2Add, CheckBox, SetEnv, CtrlName, Button
IfEqual, Ctrl2Add, GroupBox, SetEnv, CtrlName, Button
IfEqual, Ctrl2Add, Pic, SetEnv, CtrlName, Static
IfEqual, Ctrl2Add, Radio, SetEnv, CtrlName, Button
IfEqual, Ctrl2Add, Text, SetEnv, CtrlName, Static
%CtrlName%Count ++
StringTrimLeft, CtrlCount, %CtrlName%Count, 0
IniWrite, Gui`, Add`, %param2%`, %param3%`, %param4%, %temp%\Generated.ini,
Generated, %CtrlName%%CtrlCount%
}
IfInString, check, GUI
IfInString, check, Font
{
StringGetPos, fpos, check, Font
fpos += 4
StringTrimLeft, data, A_LoopReadLine, %fpos%
StringSplit, param, data, `,
IfLess, param0, 2, SetEnv, param2,
IfInString, param2, `:, Continue
IfNotEqual, param2,, Gui, 1:Font, %param2%, %param3%
FontCount ++
IniWrite, Gui`, Font`, %param2%`, %param3%, %temp%\Generated.ini, Generated,
Font%FontCount%
}
IfInString, check, GUI
IfInString, check, Show
{
StringGetPos, spos, check, Show
spos += 4
StringTrimLeft, data, A_LoopReadLine, %spos%
StringSplit, param, data, `,
IfLess, param0, 2, SetEnv, param2,
IfInString, param2, `:, Continue
IfNotEqual, param2,, Gui, 1:Show, %param2%
Break
}
}
Return
GUIEscape:
Return
WinSpy:
IfNotEqual, FirstTimeS, No
{
Gui, 5:+owner1
Gui, 5:Font, CMaroon,
Gui, 5:Add, Text, x7 y3 w50 h20, Control
Gui, 5:Add, Text, x7 y63 w50 h20, Window
Gui, 5:Font
Gui, 5:Add, Text, x7 y23 w90 h40,
Gui, 5:Add, Text, x7 y83 w90 h40,
Gui, 5:Add, Button, x77 y3 w20 h20, M
Gui, 5:Show, x0 h129 w106, GUI Statistics
FirstTimeS = No
}
IfWinNotExist, GUI Statistics,, Menu, Tray, UnCheck, Show GUI Statistics
IfWinNotActive, %MainWnd%,,Return
MouseGetPos,,,, MCtrl
IfNotEqual, MCtrl, Static1
ControlGetPos, ScX, ScY, ScW, ScH, %MCtrl%, %MainWnd%
WinGetActiveStats, SwT, SwW, SwH, SwX, SwY
WinInfo = X:%SwX%`tY:%SwY%`t`nW:%SwW%`tH:%SwH%`t
CtrlInfo = X:%ScX%`tY:%ScY%`t`nW:%ScW%`tH:%ScH%`t
ControlSetText, Static3, %CtrlInfo%, GUI Statistics
ControlSetText, Static4, %WinInfo%, GUI Statistics
Return
5ButtonM:
Menu, Tray, Show
Return
MoveGroup:
keywait, lbutton, d
IfWinNotActive, %MainWnd%,,Return
MouseGetPos, sX, sY
CoordMode, ToolTip, Relative
ToolTip, .., %sX%, %sY%
WinSet, Trans, 100, ..
WinActivate, ..
Loop
{
GetKeyState, RB, Lbutton
IfEqual, RB, D
{
MouseGetPos, eX, eY
WinMove, ..,,,, %eX%, %eY%
Sleep, 50
}
IfEqual, RB, U, Break
}
ToolTip
sX -= %WinDiffW%
sY += %WinDiffW%
sY -= %WinDiffH%
eX += %sX%
eY += %sY%
Controls2Modify =
Loop, Read, %temp%\Generated.ini
{
IfNotInString, A_LoopReadLine, =,Continue
StringGetPos, EqPos, A_LoopReadLine, =
StringLeft, CtrlNameCount, A_LoopReadLine, %EqPos%
StringTrimLeft, Value, A_LoopReadLine, %EqPos%
StringGetPos, apos, Value, Add
apos += 3
StringTrimLeft, data, Value, %apos%
StringSplit, param, data, `,
StringSplit, option, param3, %a_space%
CtrlX =
CtrlY =
CtrlW =
CtrlH =
Loop, %option0%
{
StringTrimLeft, ThisOption, option%a_index%, 0
StringLeft, OptionTest, ThisOption, 1
IfEqual, OptionTest, x, StringTrimLeft, CtrlX, ThisOption, 1
IfEqual, OptionTest, y, StringTrimLeft, CtrlY, ThisOption, 1
IfEqual, OptionTest, w, StringTrimLeft, CtrlW, ThisOption, 1
IfEqual, OptionTest, h, StringTrimLeft, CtrlH, ThisOption, 1
}
CtrlW += %CtrlX%
CtrlH += %CtrlY%
IfGreaterOrEqual, CtrlX, %sX%
IfGreaterOrEqual, CtrlY, %sY%
IfLessOrEqual, CtrlW, %eX%
IfLessOrEqual, CtrlH, %eY%
Controls2Modify = %Controls2Modify%|%CtrlNameCount%
}
StringTrimLeft, Controls2Modify, Controls2Modify, 1
IfEqual, Controls2Modify,, Return
IfNotEqual, FirstTimeM, No
{
Gui, 3:+owner1
Gui, 3:Add, Button, x12 y13 w20 h20 g3UL,
Gui, 3:Add, Button, x42 y13 w20 h20 g3U ,
Gui, 3:Add, Button, x72 y13 w20 h20 g3UR,
Gui, 3:Add, Button, x12 y38 w20 h20 g3L ,
Gui, 3:Add, Button, x12 y63 w20 h20 g3DL,
Gui, 3:Add, Button, x42 y63 w20 h20 g3D,
Gui, 3:Add, Button, x72 y63 w20 h20 g3DR,
Gui, 3:Add, Button, x72 y38 w20 h20 g3R,
Gui, 3:Add, Edit, x37 y38 w30 h20 vToMove, 10
Gui, 3:Add, GroupBox, x4 y-1 w98 h93,
FirstTimeM = No
}
Gui, 3:Show, x686 y2 h96 w107, Move
Return
3UL:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddX -= %ToMove%
AddY -= %ToMove%
Goto, 3Move
3U:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddY -= %ToMove%
Goto, 3Move
3UR:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddX += %ToMove%
AddY -= %ToMove%
Goto, 3Move
3L:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddX -= %ToMove%
Goto, 3Move
3DL:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddX -= %ToMove%
AddY += %ToMove%
Goto, 3Move
3D:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddY += %ToMove%
Goto, 3Move
3DR:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddX += %ToMove%
AddY += %ToMove%
Goto, 3Move
3R:
Gui, 3:Submit, NoHide
AddX = 0
AddY = 0
AddX += %ToMove%
Goto, 3Move
3Move:
IfEqual, AddX, 0, IfEqual, AddY, 0, Return
Loop, Parse, Controls2Modify, |
{
IfEqual, %A_LoopField%, Static1, Continue
IniRead, Ctrl2Add, %temp%\Generated.ini, Generated, %A_LoopField%
StringGetPos, apos, Ctrl2Add, Add
apos += 3
StringTrimLeft, Ctrl2Add, Ctrl2Add, %apos%
StringSplit, Name, Ctrl2Add, `,
StringReplace, Ctrl2Add, Name2, %a_space%
ControlGetPos, TempX, TempY, TempW, TempH, %A_LoopField%, %MainWnd%
TempX += %AddX%
TempY += %AddY%
ControlMove, %A_LoopField%, %TempX%, %TempY%,,, %MainWnd%
Control, Hide,, %A_LoopField%, %MainWnd%
Control, Show,, %A_LoopField%, %MainWnd%
TempX -= %WinDiffW%
TempY -= %WinDiffH%
TempY += %WinDiffW%
ControlGetText, CtrlText, %A_LoopField%, %MainWnd%
IniWrite, Gui`, Add`, %Ctrl2Add%`, x%TempX% y%TempY% w%TempW% h%TempH%`,
%CtrlText%, %temp%\Generated.ini, Generated, %A_LoopField%
}
Return
3ButtonClose: