Created
June 3, 2021 11:42
-
-
Save JoeGlines/dc02479271fe06c69a96aed07bdfe4b7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;******************************************************* | |
; Want a clear path for learning AutoHotkey; Take a look at our AutoHotkey Udemy courses. They're structured in a way to make learning AHK EASY | |
; Right now you can get a coupon code here: https://the-Automator.com/Learn | |
;******************************************************* | |
#SingleInstance,Force | |
var= | |
( | |
Email First_Name Last_Name Phone | |
[email protected] Joy Senilg 123.456.7801 | |
[email protected] Joe Glines 234.654.4321 | |
[email protected] Jon Seling 567.890.6543 | |
[email protected] Jon Seling 345.234.1322 | |
) | |
obj:={} ;Need to declare object first | |
;*********Use For loop over Var going line by line********************* | |
for i, row in Loopobj:=StrSplit(var,"`n","`r`n") { ;Parse Var on each new line | |
IfEqual, i,1,continue ;Skip header row | |
;~ MsgBox % StrSplit(row,"`t").1 a_tab StrSplit(row,"`t").2 | |
Obj[StrSplit(row,"`t").1]:={} ;Need to instanciate the object under the key so you can stuff data into it | |
Obj[StrSplit(row,"`t").1].First_Name :=StrSplit(row,"`t").2 | |
Obj[StrSplit(row,"`t").1].Last_Name :=StrSplit(row,"`t").3 | |
Obj[StrSplit(row,"`t").1].Phone :=StrSplit(row,"`t").4 | |
} | |
;~ MsgBox % Obj["[email protected]"].Phone | |
m(obj) | |
;~ DebugWindow("`n______Object to String____________`n" ObjectToString(Obj),1,1,0,0) ;show content | |
;~ return | |
;********************Use a for loop to loop over all 2nd-level objects contained in OBJ*********************************** | |
for k, v in Obj | |
data.= k a_tab v.First_name a_tab v.Last_Name a_tab v.Phone "`n" | |
DebugWindow("`n______FOR LOOP____________`n" data,0,1,100,0) | |
Obj2String(Obj,FullPath:=1,BottomBlank:=0){ | |
static String,Blank | |
if(FullPath=1) | |
String:=FullPath:=Blank:="" | |
if(IsObject(Obj)&&!Obj.XML){ | |
for a,b in Obj{ | |
if(IsObject(b)&&b.OuterHtml) | |
String.=FullPath "." a " = " b.OuterHtml | |
else if(IsObject(b)&&!b.XML) | |
Obj2String(b,FullPath "." a,BottomBlank) | |
else{ | |
if(BottomBlank=0) | |
String.=FullPath "." a " = " (b.XML?b.XML:b) "`n" | |
else if(b!="") | |
String.=FullPath "." a " = " (b.XML?b.XML:b) "`n" | |
else | |
Blank.=FullPath "." a " =`n" | |
} | |
} | |
}else if(Obj.XML) | |
String.=FullPath Obj.XML "`n" | |
return String Blank | |
} | |
m(x*){ | |
static Buttons:={YNC:"Yes,No,Cancel",YN:"Yes,No",OC:"OK,Cancel",ARI:"Abort,Retry,Ignore"} | |
m:=New MsgBox(),Default:=1 | |
for a,b in x{ | |
Cmd:=StrSplit(b,":") | |
if(Cmd.1="Btn") | |
Btn:=Buttons[Cmd.2] | |
else if(Cmd.1="HTML"){ | |
HTML:=1 | |
}else if(Cmd.1="Def"){ | |
Default:=Cmd.2 | |
}else{ | |
Msg.=IsObject(b)?Obj2String(b):b "`r`n" | |
} | |
} | |
m[HTML?"SetHTML":"SetText"](Msg) | |
if(Btn) | |
m.SetButtons(Btn) | |
return m.Show("Win",Default) | |
} | |
Class MsgBox{ | |
static Keep:=[] | |
_Event(Name,Event){ | |
local | |
static | |
Node:=Event.srcElement | |
CTRL:=this | |
if(Name="MouseDown"){ | |
Mode:=A_CoordModeMouse,Delay:=A_WinDelay | |
SetWinDelay,-1 | |
CoordMode,Mouse,Screen | |
if(Node.ID="Title"){ | |
MouseGetPos,XX,YY | |
WinGetPos,X,Y,,,% this.ID | |
OffX:=XX-X,OffY:=YY-Y,LastX:=XX,LastY:=YY | |
while(GetKeyState("LButton")){ | |
MouseGetPos,X,Y | |
if(LastX!=X||LastY!=Y) | |
WinMove,% this.ID,,% X-OffX,% Y-OffY | |
LastX:=X,LastY:=Y | |
Sleep,20 | |
} | |
} | |
CoordMode,Mouse,%Mode% | |
SetWinDelay,%Delay% | |
}else if(Name="OnClick"){ | |
if(Node.ID="Close"){ | |
this.ResultValue:=Chr(127) | |
Gui,% this.Win ":Destroy" | |
}else if(Node.ID="Settings"){ | |
return m("Settings Coming Soon") | |
TT:=this | |
SetTimer,ShowSettingsWindow,-1 | |
return | |
ShowSettingsWindow: | |
Gui,MsgBoxSettings:Destroy | |
Gui,MsgBoxSettings:Default | |
Gui,Color,0,0 | |
Gui,Font,c0xAAAAAA | |
Gui,Add,Text,,% "Settings For: " TT.ParentTitle | |
Gui,Show | |
return | |
}else if(Node.ID="Testing"){ | |
this.ResultValue:=Node.Value | |
}if(Node.NodeName="Button"){ | |
this.ResultValue:=Node.Value | |
} | |
} | |
}__New(Options:=""){ | |
local | |
global MsgBox | |
static wb | |
Win:="MyMsgBox" A_TickCount | |
WinGetActiveTitle,Title | |
Gui,%Win%:Destroy | |
Gui,%Win%:Default | |
Gui,-Caption +HWNDMain +LabelMsgBox. ;+Resize | |
Gui,Margin,0,0 | |
WinGet,HWND,ID,A | |
Ver:=this.FixIE(11) | |
MsgBox.Keep[Main]:=this | |
Gui,Add,ActiveX,vwb HWNDIE,mshtml | |
this.FixIE(Ver),this.Owner:=HWND,this.HWND:=IE,this.Win:=Win,this.ParentTitle:=Title,this.ID:="ahk_id" Main+0,this.KeyResult:=[],this.BoundResult:=this.Result.Bind(this),this.CSS:=[] | |
RegRead,CheckReg,HKCU\SOFTWARE\Microsoft\Windows\DWM,ColorizationColor | |
Color:=(CC:=SubStr(Format("{:x}",CheckReg+0),-5))?CC:"AAAAAA",this.ThemeColor:="#" Color,wb.Navigate("About:Blank") | |
for a,b in {Border:DllCall("GetSystemMetrics",Int,33,Int)-1} | |
this[a]:=b | |
Gui,Color,% "0x" Color,% "0x" Color | |
for a,b in {Color:"Grey",Background:"#000000"} | |
this[a]:=b | |
for a,b in Options | |
this[a]:=b | |
IconCode:=(II:=Icons[this.Icon]).Code | |
while(wb.ReadyState!=4) | |
Sleep,10 | |
this.Doc:=wb.Document,Master:=this.CreateElement("Div",,"-MS-User-Select:None;Margin:0px;Width:100%","Master"),Root:=this.CreateElement("Div",Master,"","Root"),this.Doc.Body.SetAttribute("Style","Background-Color:" this.Background ";Margin:0px;Display:Flex"),this.NormalCSS:=[],this.ButtonCSS:=[],Style:=this.Doc.Body.Style | |
for a,b in {ScrollBarBaseColor:this.Background,ScrollBarFaceColor:this.ThemeColor,ScrollBarArrowColor:this.ThemeColor,ScrollBarTrackColor:this.Background} | |
Style[a]:=b | |
Outer:=this.CreateElement("Div",Root,,"Outer"),this.Outer:=Outer,Header:=this.CreateElement("Div",Outer,"Cursor:Move;Width:100%","Header") | |
for a,b in [["Title","Div",Header,"Float:Left;Align-Items:Center;-MS-User-Select:None;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;","Window Title"] | |
,["Settings","Div",Header,"Position:Absolute;Float:Left;Cursor:Hand;Background-Color:Pink;Display:Flex;Justify-Content:Center;Align-Items:Center;Color:Black;-MS-User-Select:None","S"] | |
,["Close","Div",Header,"Position:Absolute;Float:Left;Cursor:Hand;Background-Color:Red;Display:Flex;Justify-Content:Center;Align-Items:Center;Color:Black;-MS-User-Select:None","X"]] | |
New:=this.CreateElement(b.2,b.3,b.4),New.ID:=b.1,New.InnerText:=b.5,New.SetAttribute("Class","Header") | |
Icon:=this.CreateElement("Div",Master,"Display:Inline-Block;Padding-Left:4px;Padding-Right:4px;User-Select:Text;Float:Left;Justify-Content:Center;Align-Items:Center","Icon"),Icon.SetAttribute("Class","Icon"),this.Text:=this.CreateElement("Div",Master,"Display:Block;OverFlow:Auto;-MS-User-Select:Text;White-Space:NoWrap","Text") | |
if(II.Color!="") | |
Icon.Style.Color:=II.Color | |
this.Text.SetAttribute("Class","Text") | |
Hotkey,IfWinActive,% this.ID | |
for a,b in {Esc:this.Escape.Bind(this),Space:(Enter:=this.Enter.Bind(this)),Enter:Enter | |
,Left:(Arrows:=this.Arrows.Bind(this)),Right:Arrows,Up:Arrows,Down:Arrows} | |
Hotkey,%a%,%b%,On | |
this.ButtonDiv:=this.CreateElement("Div",Master,,"Buttons"),this.SetButtons(),this.CreateElement("Div",Master,"Visibility:Hidden;Position:Absolute;Width:Auto;Height:Auto","GetSize"),Script:=this.CreateElement("Script",Root),Script.InnerText:="onclick=function(event){ahk_event('OnClick',event);" "};ondblclick=function(event){ahk_event('OnDoubleClick',event);" "};onmousedown=function(event){ahk_event('MouseDown',event);" "};",Settings.ID:="Settings",Close.ID:="Close",Button.ID:="Testing",this.Doc.ParentWindow.ahk_event:=this._Event.Bind(this) | |
if(this.Gradient) | |
this.SetBackground({0:this.ThemeColor,100:"#000"}),this.SetBackground({0:this.ThemeColor,100:"#000"},"Icon") | |
this.CSS.Button:=this.CreateElement("Style",Root),this.CSS.Header:=this.CreateElement("Style",Root),this.CSS.GetSize:=this.CreateElement("Style",Root),this.CSS.Text:=this.CreateElement("Style",Root),this.CSS.Icon:=this.CreateElement("Style",Root),this.SetCSS({"Header":{Size:20,Background:this.ThemeColor},"Button":{Size:20},"Icon":{Size:120}}),this.SetIcon(this.Icon),this.SetCSS({Text:{Color:this.Color},Header:{Color:this.Color},Button:{Color:this.Color,Background:(this.Gradient?"-ms-linear-gradient(Top," this.ThemeColor " 0%,#383838 70%,#000000 100%)":this.ThemeColor),Border:"1px Solid " this.Background}}) | |
return this | |
}Arrows(){ | |
local | |
Button:=this.GetActive().Value,ID:=this.OrderTab[Button],ID:=ID+(A_ThisHotkey~="i)\b(Up|Left)\b"?-1:1),ID:=ID>this.TabOrder.MaxIndex()?1:ID<=0?this.TabOrder.MaxIndex():ID,this.TabOrder[ID].Obj.Focus() | |
}BuildCSS(Obj){ | |
local | |
for a,b in {Size:"Font-Size"} | |
if(Value:=Obj[a]) | |
Obj[b]:=Value "px",Obj.Delete(a) | |
Total:="{" | |
for a,b in Obj | |
Total.=a ":" b ";" | |
return Total "}" | |
}BuildGradient(Color){ | |
local | |
Start:="Top" | |
for a,b in Color{ | |
if(a="Start") | |
Start:=b | |
else | |
Gradient.=b " " a "%," | |
}return Color:=Gradient?"-ms-linear-gradient(" Start "," Trim(Gradient,",") ")":Color | |
}ClearHotkeys(){ | |
Hotkey,IfWinActive,% this.ID | |
for a,b in this.KeyResult | |
Hotkey,%a%,Off | |
this.KeyResult:=[] | |
}CreateElement(Type,Parent:="",Style:="",ID:=""){ | |
local | |
New:=this.Doc.CreateElement(Type),(Parent?Parent.AppendChild(New):this.Doc.Body.AppendChild(New)) | |
if(Style) | |
New.SetAttribute("Style",Style) | |
if(ID) | |
New.ID:=ID | |
return New | |
}Enter(){ | |
this.GetActive().Click() | |
}Escape(){ | |
Gui,% this.Win ":Destroy" | |
}FixIE(Version=0){ ;Thanks GeekDude | |
local | |
static Versions:={7:7000,8:8888,9:9999,10:10001,11:11001} | |
Key:="Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION",Version:=Versions[Version]?Versions[Version]:Version | |
if(A_IsCompiled) | |
ExeName:=A_ScriptName | |
else | |
SplitPath,A_AhkPath,ExeName | |
RegRead,PreviousValue,HKCU,%Key%,%ExeName% | |
if(!Version) | |
RegDelete,HKCU,%Key%,%ExeName% | |
else | |
RegWrite,REG_DWORD,HKCU,%Key%,%ExeName%,%Version% | |
return PreviousValue | |
}GetActive(){ | |
return this.Doc.ActiveElement | |
}GetID(ID){ | |
return this.Doc.GetElementById(ID) | |
}Monitor(Monitor:=""){ | |
local | |
SysGet,Count,MonitorCount | |
SysGet,Primary,MonitorPrimary | |
Obj:=[] | |
while(A_Index<=Count){ | |
SysGet,Mon,MonitorWorkArea,%A_Index% | |
Obj[A_Index]:={Left:MonLeft,Top:MonTop,Right:MonRight,Bottom:MonBottom,W:MonRight-MonLeft,H:MonBottom-MonTop} | |
}return Obj.Count()=1?Obj.1:Obj[Monitor]?Obj[Monitor]:Obj[Primary] | |
}Result(){ | |
local | |
this.ResultValue:=this.KeyResult[A_ThisHotkey] | |
}SetBackground(Color,ID:="Text"){ | |
local | |
this.SetCSS({(ID):{Background:this.BuildGradient(Color)}}) | |
}SetButtons(ButtonsCSV:="OK",Default:="Clipboard,ClipExit,E&xitApp,FileDump"){ | |
local | |
this.ClearHotkeys() | |
for a,b in this.ButtonsCSS | |
b.ParentNode.RemoveChild(b) | |
Buttons:=StrSplit(ButtonsCSV,","),this.OrderTab:=[],this.TabOrder:=[],ID:=1,this.ButtonsCSS:=[] | |
while(aa:=this.Doc.GetElementsByTagName("Button").Item[0]) | |
aa.ParentNode.RemoveChild(aa) | |
for a,b in StrSplit(Default,",") | |
Buttons.Push(b) | |
if(FileExist(A_MyDocuments "\AutoHotkey\Lib\Studio.ahk")) | |
Buttons.Push("Studio") | |
this.Hotkeys:=[] | |
for a,Text in Buttons{ | |
Button:=this.CreateElement("Button",this.ButtonDiv) | |
Button.Value:=RegExReplace(Text,"&") | |
Button.ID:="Button" ++ID | |
if(RegExMatch(Text,"O)&(.)",Found)){ | |
if(this.Hotkeys[Found.1]) | |
Letter:=this.GetHotkey(Text) | |
else | |
Letter:=Found.1 | |
}else | |
Letter:=this.GetHotkey(Text) | |
if(Letter) | |
this.SetHotkey(Letter,Button.Value) | |
Button.InnerHTML:=RegExReplace(Button.Value,Letter,"<u>" Letter "</u>") | |
this.OrderTab[Button.Value]:=this.TabOrder.Push({ID:Button.Value,Obj:Button,ButtonID:ID}),Style:=Button.Style,Style.Cursor:="Hand",Button.SetAttribute("Class","Button"),this.Buttons[Button.Value]:=Button,Button.SetAttribute("ButtonID",ID) | |
} | |
}GetHotkey(Text){ | |
for a,Letter in StrSplit(RegExReplace(Text,"(\W|\s)")){ | |
if(!this.Hotkeys[Letter]) | |
return Letter,this.Hotkeys[Letter]:=1 | |
} | |
}SetButtonCSS(Object){ | |
local | |
for Name,Obj in Object{ | |
if(!Button:=this.ButtonCSS[Name]) | |
Button:=this.ButtonCSS[Name]:=[] | |
for a,b in Obj | |
Button[a]:=(a="Background"?this.BuildGradient(b):b) | |
if(!OO:=this.ButtonsCSS[Name]) | |
OO:=this.ButtonsCSS[Name]:=this.CreateElement("Style") | |
OO.InnerText:="#Button" this.Buttons[Name].GetAttribute("ButtonID") this.BuildCSS(Button) | |
}}SetCSS(Object){ | |
local | |
for Type,Obj in Object{ | |
if(!Normal:=this.NormalCSS[Type]) | |
Normal:=this.NormalCSS[Type]:=[] | |
for a,b in Obj | |
Normal[a]:=b | |
this.CSS[Type].InnerText:="." Type this.BuildCSS(Normal) | |
if(Type="Header"&&(VV:=OO["Font-Size"])) | |
if(RegExMatch(VV,"O)(\d+)",Found)) | |
this.GetID("Close").Style.Width:=Round(Found.1*1.5) "px",Found:="" | |
}}SetHotkey(Key,Value){ | |
local | |
Result:=this.BoundResult | |
Hotkey,%Key%,%Result%,On | |
this.KeyResult[Key]:=Value | |
}SetHTML(Text*){ | |
local | |
for a,b in Text | |
(a=HTML&&b=1?(HTML:=1):(Msg.=(IsObject(b)?this.Obj2String(b):b))) | |
this.Text.InnerHTML:=RegExReplace(Msg,"\R","<br>") | |
}SetIcon(Icon){ | |
local | |
static Icons:={"!":{Code:"⚠",Color:"Yellow"},X:{Code:"⊗",Color:"Red"},"?":{Code:"❓",Color:"Blue"},I:{Code:"ⓘ",Color:"Blue"}},Img | |
IconObj:=this.GetID("Icon") | |
if(!Icon) | |
IconObj.Style.Display:="None" | |
else | |
IconObj.Style.Display:="Flex" | |
if(InStr(Icon,"http")&&!Image) | |
(Img:=this.CreateElement("Img",this.GetID("Icon"))),Img.SRC:=this.Icon,Img.Style.MaxWidth:=200,Img.Style.MaxHeight:=200,IconObj.Style.Display:="Flex" | |
else | |
IconObj.InnerHTML:=(II:=Icons[Icon])?II.Code:Icon | |
if(II.Color) | |
this.SetCSS({"Icon":{Color:II.Color}}) | |
}SetText(Text*){ | |
local | |
for a,b in Text | |
Msg.=(IsObject(b)?this.Obj2String(b):b) | |
this.GetID("Text").InnerText:=Msg | |
}Show(Name:="",Default:=1,Ico:=""){ | |
local | |
this.ResultValue:="",this.Doc.GetElementsByTagName("Button").Item[Default-1].Focus(),Text:=this.GetID("Text"),Mon:=this.Monitor(),this.Name:=Name?Name:this.Name,(TT:=this.Doc.GetElementById("Title")).InnerText:=this.Name | |
Gui,% this.Win ":Show",w0 h0 Hide | |
Ico:=this.Doc.GetElementById("Icon"),IcoWidth:=Ico.ScrollWidth,IcoHeight:=Ico.ScrollHeight,this.Doc.GetElementById("Header").Style.Height:=TT.ScrollHeight,ButtonWidth:=0,Height:=[],Sub:=0 | |
for a,b in [Close:=this.GetID("Close"),Settings:=this.GetID("Settings")] | |
Obj:=this.Doc.GetElementById(b),Sub+=Obj.ClientWidth | |
Title:=this.GetID("Title"),this.SetCSS({"Header":{Height:Title.ScrollHeight}}) | |
for a,b in this.TabOrder | |
Rect:=b.Obj.GetBoundingClientRect(),ButtonWidth+=Ceil(Rect.Right-Rect.Left),Height[Ceil(Rect.Height)]:=1 | |
if(ButtonWidth>Mon.W) | |
return this.SetCSS({"Button":{Size:20}}),this.Show(Name) | |
MaxW:=W:=A_ScreenWidth-100,MaxH:=H:=A_ScreenHeight-100,HH:=Height.MaxIndex(),AddW:=Text.OffSetWidth-Text.ClientWidth,AddH:=Text.OffSetHeight-Text.ClientHeight | |
if((NH:=Text.ScrollHeight+Title.ScrollHeight+HH+AddH)<Mon.H) | |
H:=NH,AddW:=0 | |
if((NH:=IcoHeight+Title.ScrollHeight+HH+AddH)>H) | |
H:=NH | |
if((NW:=Text.ScrollWidth+IcoWidth+AddW)<Mon.W) | |
W:=NW | |
if(W<ButtonWidth) | |
W:=ButtonWidth | |
Width:=Floor(Close.ScrollWidth/2),Close.Style.PaddingLeft:=Width,Close.Style.PaddingRight:=Width | |
if(W<Settings.ScrollWidth+Close.ScrollWidth) | |
return this.SetCSS({"Header":{Size:30,Height:""}}),this.Show(Name) | |
Gui,% this.Win ":Show",xCenter yCenter w%W% h%H% | |
ButtonWidth:=0 | |
for a,b in this.TabOrder | |
Rect:=b.Obj.GetBoundingClientRect(),ButtonWidth+=Ceil(Rect.Right-Rect.Left),Height[Ceil(Rect.Height)]:=1 | |
if(ButtonWidth>Mon.W) | |
return this.SetCSS({"Button":{Size:20}}),this.Show(Name) | |
if(W<ButtonWidth) | |
Gui,% this.Win ":Show",xCenter yCenter w%ButtonWidth% h%H% | |
Gui,% this.Win ":+Owner" this.Owner " +MinSize" ButtonWidth "x" TT.ScrollHeight+Height.MaxIndex()+10 | |
while(!this.ResultValue) | |
Sleep,400 | |
if(this.ResultValue="ClipExit"){ | |
Clipboard:=Trim(RegExReplace(this.Doc.GetElementById("Text").InnerText,"\<\/?br\>","`r`n"),"`r`n") | |
ExitApp | |
} | |
if(this.ResultValue="FileDump"){ | |
x:=ComObjActive("{DBD5A90A-A85C-11E4-B0C7-43449580656B}") | |
Text:=Trim(RegExReplace(this.Doc.GetElementById("Text").InnerText,"\<\/?br\>","`r`n"),"`r`n") | |
x.TempFile(Text) | |
ExitApp | |
} | |
this.ResultValue:=this.ResultValue=Chr(127)?"":this.ResultValue | |
if(this.ResultValue="Clipboard"){ | |
Clipboard:=Trim(RegExReplace(this.Doc.GetElementById("Text").InnerText,"\<\/?br\>","`r`n"),"`r`n") | |
Gui,% this.Win ":Destroy" | |
return "Clipboard" | |
}else if(this.ResultValue="ExitApp") | |
ExitApp | |
else if(this.ResultValue="Studio"){ | |
if(x:=ComObjActive("{DBD5A90A-A85C-11E4-B0C7-43449580656B}")) | |
x.DebugWindow(Trim(RegExReplace(this.Doc.GetElementById("Text").InnerText,"\<\/?br\>","`r`n"),"`r`n")) | |
ExitApp | |
}Gui,% this.Win ":Hide" | |
return this.ResultValue | |
}Size(a:="",W:="",H:=""){ | |
local Settings,Close,Height,Title | |
static Pos:=[] | |
this:=IsObject(this)?this:MsgBox.Keep[this] | |
WinGet,Style,Style,% this.ID | |
if(!W||!H) | |
W:=Pos.W,H:=Pos.H | |
Pos:={W:W,H:H},Close:=this.GetID("Close"),Settings:=this.GetID("Settings"),Border:=Style&0x40000!=0?this.Border:0 | |
ControlMove,,%Border%,%Border%,%W%,%H%,% "ahk_id" this.HWND | |
Close.Style.Right:="0" | |
Settings.Style.Right:=Close.ClientWidth | |
Pos1:=Close.GetBoundingClientRect() | |
this.Doc.GetElementById("Title").Style.Width:=W-(Close.ScrollWidth+Settings.ScrollWidth) | |
Height:=this.Doc.GetElementsByTagName("Button").Item[0].OffSetHeight | |
Title:=this.GetID("Title").ScrollHeight | |
this.Doc.GetElementById("Icon").Style.Height:=H-Height-Title | |
this.Doc.GetElementById("Text").Style.Height:=H-Height-Title | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment