; #Include st.ahk
#NoEnv

SendMode Input

SetWorkingDir %A_ScriptDir%


;Declare our new stack
ST_Dim(Script)

;Create our sample gui, which adds entrys to the stack
Gui, 1:+ToolWindow

   Gui, 1:Add, Edit, x5 y5 w350 h20 vEdit
  Gui, 1:Add, Edit, x5 y30 w350 h65 +ReadOnly vAll
   Gui, 1:Add, Text, x5 y105 w100 h15 vCount
  Gui, 1:Add, Button, x250 y105 w50 h20 gRun, Show
   Gui, 1:Add, Button, x305 y105 w50 h20 gAdd, Add

  Gui, 1:Show, w360 h130, Stack Example
   Return

Add:
  ;Retrieve edit content
  GuiControlGet, Edit, 1:
   ;Clear edit
  GuiControl, 1:, Edit,
   ;Add to stack
  ST_Push(Script,Edit)
  ;Update count text
  GuiControl, 1:, Count, % ST_Len(Script)
   Return

Run:
  ;Loop trough the stack
  Loop, % ST_Len(Script) {
     ;Retrieve current contents
    GuiControlGet, All, 1:
     ;Add new value to old contents
    GuiControl, 1:, All, % All . ST_Pop(Script) . "`n"
     ;Update count text
    GuiControl, 1:, Count, % ST_Len(Script)
   }
  Return

GuiClose:
  ExitApp