summaryrefslogtreecommitdiff
path: root/tests/examplefiles/demo.ahk
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examplefiles/demo.ahk')
-rw-r--r--tests/examplefiles/demo.ahk181
1 files changed, 181 insertions, 0 deletions
diff --git a/tests/examplefiles/demo.ahk b/tests/examplefiles/demo.ahk
new file mode 100644
index 00000000..a75a8bf6
--- /dev/null
+++ b/tests/examplefiles/demo.ahk
@@ -0,0 +1,181 @@
+/*
+multiline comment
+msgbox(comment)
+*/
+send, key[pgdn]
+string := "hello" . x . "world!"
+string := "hello ""world""! "
+string := "hello `"world""! "
+; single line comment1
+;;; single line comment2
+
+::stopi::viper_off()
+
+a::send, ^a
+mylabel:send, ^{space} ;; set mark
+e::send, ^e
+n::
+ send, ^n
+ return
+!i::
+viper("iviper") ; stdlib
+x = "viper"" " ; escaped quote
+Return
+#If WinExist("iviper" )
+indexdir = %A_ScriptDir%\%dir%
+FileCreateDir, % indexdir
+fileindex = %indexdir%\_files
+FileSelectFile, file,,, Select an image:, Images (*.gif; *.jpg; *.bmp; *.png; *.tif; *.ico; *.cur; *.ani; *.exe; *.dll)
+
+; viper
+
+
+i::viper_off()
+#If
+
+;; keybindings
+#If WinExist("iviper") and WinActive("ahk_class Emacs")
+
+p::
+k::
+send, ^p
+return
+,::send, +!, ;; beginning of page
+.::send, +!. ;; end of page
+[::send, !a
+]::send, !e
+d:: ^k ;; kill line
+x:: send ^d
+\:: ^!k ;; kill next word or sexp
+
+
+#IfWinActive
+#Persistent
+
+F2:: ;; hotkey
+start: ;; label
+start2: ; label
+ ppm := ppm_new(50, 50, 255)
+ ppm_fill(ppm, 80, 90, 95)
+ msgbox % getPixel(ppm, 1, 1)
+ setPixel(90, 90, 90, ppm, 1, 1)
+ msgbox % getPixel(ppm, 1, 1)
+ ListVars ; command
+ msgbox % ppm
+ return
+
+
+ ppm_read(file)
+ {
+ fileread, ppm, % file
+ return ppm
+}
+
+::hotstring::
+::hot3::
+ppm_width(ppm)
+{
+ regexmatch(ppm, "\R(\d+)\s(\d+)", dim)
+ return dim1
+}
+ppm_height(ppm)
+{
+ regexmatch(ppm, "\R(\d+)\s(\d+)", dim)
+ return dim2
+}
+
+ppm_colors(ppm)
+{
+regexmatch(ppm, "\R(\d+)\D*\R", colors) ; \R stands for any
+return colors1
+}
+
+ppm_data(ppm)
+{
+pos := regexmatch(ppm, "\R(\d+)\D*\R", colors) ; \R stands for any newline
+stringtrimleft, data, ppm, pos + strlen(colors1)
+return data
+}
+ppm_header(ppm)
+{
+pos := regexmatch(ppm, "\R(\d+)\D*\R", colors) ; \R stands for any newline
+stringleft, header, ppm, pos + strlen(colors1)
+return header
+}
+
+ppm_fill(ByRef ppm, r, g, b)
+{
+ width := ppm_width(ppm)
+ height := ppm_height(ppm)
+ header := ppm_header(ppm)
+ headerLength := strlen(header)
+ varsetcapacity(data, width * height, 0)
+ loop, % (width * height)
+ {
+ if r
+ numput(r, data, (A_Index - 1) * 3, "uchar")
+ if g
+ numput(g, data, (A_Index - 1) * 3 + 1, "uchar")
+ if b
+ numput(b, data, (A_Index - 1) * 3 + 2, "uchar")
+}
+VarCopy(&ppm + headerLength, &data, width * height)
+
+}
+
+ppm_new(width, height, colors)
+{
+ header = P6`n%width% %height%`n%colors%`n
+ headerLength := strlen(header)
+ varsetcapacity(ppm, width * height + headerLength, 1)
+ varsetcapacity(data, width * height, 0)
+ VarCopy(&ppm, &header, headerLength)
+ VarCopy(&ppm + headerLength, &data, width * height)
+ return ppm
+}
+
+heredoc =
+(
+ P6
+ # lasdjkf
+ 87 09
+ 255
+ color data...
+)
+
+; Example: Simple image viewer:
+
+Gui, +Resize
+Gui, Add, Button, default, &Load New Image
+Gui, Add, Radio, ym+5 x+10 vRadio checked, Load &actual size
+Gui, Add, Radio, ym+5 x+10, Load to &fit screen
+Gui, Add, Pic, xm vPic
+Gui, Show
+return
+
+ButtonLoadNewImage:
+FileSelectFile, file,,, Select an image:, Images (*.gif; *.jpg; *.bmp; *.png; *.tif; *.ico; *.cur; *.ani; *.exe; *.dll)
+if file =
+ return
+Gui, Submit, NoHide ; Save the values of the radio buttons.
+if Radio = 1 ; Display image at its actual size.
+{
+ Width = 0
+ Height = 0
+}
+else ; Second radio is selected: Resize the image to fit the screen.
+{
+ Width := A_ScreenWidth - 28 ; Minus 28 to allow room for borders and margins inside.
+ Height = -1 ; "Keep aspect ratio" seems best.
+}
+GuiControl,, Pic, *w%width% *h%height% %file% ; Load the image.
+Gui, Show, xCenter y0 AutoSize, %file% ; Resize the window to match the picture size.
+return
+
+GuiClose:
+ExitApp
+; Example: Simple text editor with menu bar.
+
+; Create the sub-menus for the menu bar:
+Menu, FileMenu, Add, &New, FileNew
+