I'm sorry to be bothering you (again) with this. But its either that or giving up on the project, so...
I'm basically using the same working script that you already saw in another topic. I just modified it to work with two GUIs instead of one.
Each GUI or GUI-dependant parameter now has a Sx1 or Sx2 prefix ("Left" or "Right"). The rest is just the same, so I guess I'm close to making it work.
I'm guessing it can't work like that, because in the Go subroutine it can't differentiate
for any of the GUIs.
Code: Select all
win = Multi-Slider Window
global Usc := "_"
global Sx1 := "Left"
global Sx2 := "Right"
global SliNum := 5
global SliName1 := "Text 1"
global SliName2 := "Text 2"
global SliName3 := "Text 3"
global SliName4 := "Text 4"
global SliName5 := "Text 5"
SliCol1 := "CC3333"
SliCol2 := "FF9900"
SliCol3 := "66FFCC"
SliCol4 := "CCFF66"
SliCol5 := "99FFFF"
SliTextSize := 14
SliFont := "Calibri"
%Sx1%ActiveSli := 1
%Sx2%ActiveSli := 1
DrawSliders(Sx1)
Gui, LeftGui: show, x440 y85 w374 h130
DrawSliders(Sx2)
Gui, RightGui: show, x1720 y85 w374 h130
return
; ------------------------------------
DrawSliders(Listener)
{
global
guiName := Listener "Gui"
goListener := Listener
Gui, %guiName%: +HwndGuiID
Gui, %guiName%: +OwnDialogs
Gui, %guiName%: -Caption +ToolWindow AlwaysOnTop
Gui, %guiName%: Color, %BackColor%
Gui, %guiName%: Font, s%SliTextSize%, %SliFont%
loop, %SliNum%
{
ThisTopText := Listener "TopText"
ThisCol := SliCol%A_Index%
ThisSliDis := Listener "SliDis"
ThisSliVal := Listener "SliVal"
ThisSliDis%A_Index% := 0
ThisSliVal%A_Index% := 0
Gui, %guiName%: Add, Text, vThisTopText%A_Index% c%ThisCol% Center w50, % ThisSliDis%A_Index% . " dB"
Gui, %guiName%: Add, Text, vBottomText%A_Index% c%ThisCol%, % SliName%A_Index%
Gui, %guiName%: Add, Slider, % "x" 27 + 75 * (A_Index - 1) " y25 h80 w25 TickInterval1 Line1 Vertical Invert Range-2-2 vThisSliVal" A_Index " gGo Buddy1ThisTopText" A_Index " Buddy2BottomText" A_Index, 0
}
Return
}
Go:
Gui, %Sx1%Gui: Submit, NoHide
SetLevel(Sx1, A_GuiControl)
Gui, %Sx2%Gui: Submit, NoHide
SetLeve2(Sx1, A_GuiControl)
Return
; ------------------------------------
SetLevel(Listener, Control)
{
global
guiName := Listener "Gui"
%Listener%ActiveSli := SubStr(Control, 0)
ThisTopText := Listener "TopText"
ThisSliDis := Listener "SliDis"
ThisSliVal := Listener "SliVal"
Gui, %guiName%: Submit, NoHide
loop, %SliNum%
{
ThisSliDis%A_Index% := ThisSliVal%A_Index% * 3
GuiControl,, ThisTopText%A_Index%, % ThisSliDis%A_Index% . " dB"
}
Enhancers(Listener)
return
}
; ------------------------------------
ChangeVal(Listener, Num, Val)
{
global
guiName := Listener "Gui"
If (Num = 0)
Num := %Listener%ActiveSli
ThisTopText := Listener "TopText"
ThisSliDis := Listener "SliDis"
ThisSliVal := Listener "SliVal"
GuiControl,, ThisSliVal%Num%, % "+" Val
Gui, %guiName%: Submit, NoHide
ThisSliDis%Num% := ThisSliVal%Num% * 3
loop, %SliNum%
GuiControl,, ThisTopText%A_Index%, % ThisSliDis%A_Index% . " dB"
Enhancers(Listener)
return
}
; ------------------------------------
ChangeSli(Listener, Num)
{
global
guiName := Listener "Gui"
ThisSliVal := Listener "SliVal"
%Listener%ActiveSli := %Listener%ActiveSli + Num
If (%Listener%ActiveSli < 1)
%Listener%ActiveSli := 1
If (%Listener%ActiveSli > SliNum)
%Listener%ActiveSli := SliNum
Gui, %guiName%: Submit, NoHide
GuiControl, Focus, ThisSliVal%ActiveSli%
return
}
; ------------------------------------
Enhancers(Listener)
{
return
}
; ------------------------------------
QuitApp()
{
FileDelete, %EnhFileLoc%
ExitApp
}
; ------------------------------------
GuiClose:
ExitApp
; #If WinActive("ahk_id " GuiID)
#Right::ChangeSli(Sx1, 1)
#Left::ChangeSli(Sx1, -1)
#Up::ChangeVal(Sx1, 0, 1)
#Down::ChangeVal(Sx1, 0, -1)
#q::ChangeVal(Sx1, 1, -1)
#s::ChangeVal(Sx1, 1, 1)
#d::ChangeVal(Sx1, 2, -1)
#f::ChangeVal(Sx1, 2, 1)
#g::ChangeVal(Sx1, 3, -1)
#h::ChangeVal(Sx1, 3, 1)
#j::ChangeVal(Sx1, 4, -1)
#k::ChangeVal(Sx1, 4, 1)
#l::ChangeVal(Sx1, 5, -1)
#m::ChangeVal(Sx1, 5, 1)
<^>!Right::ChangeSli(Sx2, 1)
<^>!Left::ChangeSli(Sx2, -1)
<^>!Up::ChangeVal(Sx2, 0, 1)
<^>!Down::ChangeVal(Sx2, 0, -1)
<^>!q::ChangeVal(Sx2, 1, -1)
<^>!s::ChangeVal(Sx2, 1, 1)
<^>!d::ChangeVal(Sx2, 2, -1)
<^>!f::ChangeVal(Sx2, 2, 1)
<^>!g::ChangeVal(Sx2, 3, -1)
<^>!h::ChangeVal(Sx2, 3, 1)
<^>!j::ChangeVal(Sx2, 4, -1)
<^>!k::ChangeVal(Sx2, 4, 1)
<^>!l::ChangeVal(Sx2, 5, -1)
<^>!m::ChangeVal(Sx2, 5, 1)
#v:: QuitApp()