quote:
Originally posted by mathieumg
Script
code:
...
XML
code:
...
The point of the CreateChildWnd is to create One window then create another inside of it instead of having to use the SetParent API. Now what you need to do is first create your WndManageFiles which has the <DialogTmpl /> Template then you create your WndText window which has the <ChildTmpl />.
To show you a bit easier
XML
code:
<Window Id="WndPref" Version="1">
<Attributes>
<Caption>Screenshot Sender</Caption>
<SetForeground>True</SetForeground>
</Attributes>
<TitleBar>
<Title><Text>Preferences</Text></Title>
</TitleBar>
<Position Width="350" Height="250"/>
<Elements>
<Element xsi:type="ImageElement" Id="imgSidebar">
<Position Top="121" Left="30" />
<Image><Name>preferences-side-messenger</Name></Image>
</Element>
<Element xsi:type="FigureElement" Id="mnuFiller">
<Position Top="102" Left="0" Width="96" Height="150"/>
<Figure><Rectangle/></Figure>
<Fill>
<LinearGradient Angle="0">
<Color1><BaseColor><Transparency>100</Transparency></BaseColor></Color1>
<Color2><BaseColor><Transparency>0</Transparency></BaseColor></Color2>
</LinearGradient>
</Fill>
</Element>
<Element xsi:type="LineElement" Id="LnVerticalLine">
<Position Top="0" Left="96" Width="0" Height="210">
<Anchor Horizontal="LeftRightFixed"/>
</Position>
<Size>1</Size>
<Color><Red>195</Red><Green>195</Green><Blue>195</Blue></Color>
</Element>
</Elements>
<DialogTmpl>
<BottomBar Style="Plain">
<LeftControls>
<Control xsi:type="ButtonControl" Id="BtnAbout">
<Position Left="0" Top="0" Width="50"/>
<Caption>About...</Caption>
</Control>
</LeftControls>
<RightControls>
<Control xsi:type="ButtonControl" Id="BtnOk">
<Position Left="0" Top="0" Width="50"/>
<Caption>OK</Caption>
</Control>
<Control xsi:type="ButtonControl" Id="BtnCancel">
<Position Left="0" Top="0" Width="50"/>
<Caption>Close</Caption>
</Control>
<Control xsi:type="ButtonControl" Id="BtnApply">
<Position Left="0" Top="0" Width="50"/>
<Caption>Apply</Caption>
</Control>
</RightControls>
</BottomBar>
</DialogTmpl>
<Controls>
</Controls>
</Window>
<Window Id="WndOverlay" Version="1">
<ChildTmpl/>
<Position Width="243" Height="193"/>
<Controls>
<Control xsi:type="StaticControl" Id="lblVersion3">
<Position Top="5" Width="100" Left="5" Height="15" />
<Caption>Overlay Text</Caption>
<Color><GlobalColor>green</GlobalColor></Color>
<Font><Bold>true</Bold><Size>12</Size></Font>
</Control>
<Control xsi:type="StaticControl" Id="lblTitle">
<Position Top="25" Width="100" Left="15" Height="15" />
<Caption>To be later incorporated</Caption>
</Control>
</Controls>
</Window>
Script
code:
function OnEvent_MenuClicked(sMenuId, nLocation, ChatWnd){
if(sMenuId == "preferences"){
if (WndPref){
Interop.Call('user32', 'SetForegroundWindow', WndPref.Handle);
}else{
WndPref = LoadChildWindows(MsgPlus.CreateWnd("ss4_gui.xml", "WndPref"));
}
}
}
function LoadChildWindows(Wnd){
/*
Load Child Windows
*/
WndGeneral = MsgPlus.CreateChildWnd(Wnd, "ss4_gui.xml", "WndGeneral", 153, 40, true);
WndCurrentWnd = WndGeneral;
/*
Click Default General Button
*/
Wnd.SendControlMessage('RadGeneral', 256 , 32, 0);
Wnd.SendControlMessage('RadGeneral', 257 , 32, 0);
return Wnd;
}
I hope this makes a bit more sense on how to do it.