summaryrefslogtreecommitdiff
path: root/iup/srcconsole/console3.lua
diff options
context:
space:
mode:
authorPixel <pixel@nobis-crew.org>2009-11-04 11:56:41 -0800
committerPixel <pixel@nobis-crew.org>2009-11-04 11:59:33 -0800
commitd577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch)
tree590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /iup/srcconsole/console3.lua
Initial import. Contains the im, cd and iup librairies, and a "working" Makefile for them under linux.
Diffstat (limited to 'iup/srcconsole/console3.lua')
-rwxr-xr-xiup/srcconsole/console3.lua181
1 files changed, 181 insertions, 0 deletions
diff --git a/iup/srcconsole/console3.lua b/iup/srcconsole/console3.lua
new file mode 100755
index 0000000..2e35abd
--- /dev/null
+++ b/iup/srcconsole/console3.lua
@@ -0,0 +1,181 @@
+-- Utilities
+
+-- Dummy require
+function require()
+end
+
+function printvars()
+ local n,v = nextvar(nil)
+ print("--printvars Start--")
+ while n ~= nil do
+ print(tostring(n).."="..tostring(v))
+ n,v = nextvar(n)
+ end
+ print("--printvars End--")
+end
+
+function printtable(t)
+ local n,v = next(t, nil)
+ print("--printtable Start--")
+ while n ~= nil do
+ print(tostring(n).."="..tostring(v))
+ n,v = next(t, n)
+ end
+ print("--printtable End--")
+end
+
+function print_version_info()
+ print(_VERSION .. " " .. iup._LUA_COPYRIGHT)
+ if (im) then print(im._VERSION .. " " .. im._COPYRIGHT) end
+ if (cd and cd._VERSION) then print(cd._VERSION .. " " .. cd._COPYRIGHT) end
+ print(iup._VERSION .. " " .. iup._COPYRIGHT)
+ print("")
+ print("IUP Info")
+ print(" System: " .. iup.GetGlobal("SYSTEM"))
+ print(" System Version: " .. iup.GetGlobal("SYSTEMVERSION"))
+ local mot = iup.GetGlobal("MOTIFVERSION")
+ if (mot) then print(" Motif Version: ", mot) end
+ print(" Screen Size: " .. iup.GetGlobal("SCREENSIZE"))
+ print(" Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))
+ if (iup.GL_VENDOR) then print(" OpenGL Vendor: " .. iup.GL_VENDOR) end
+ if (iup.GL_RENDERER) then print(" OpenGL Renderer: " .. iup.GL_RENDERER) end
+ if (iup.GL_VERSION) then print(" OpenGL Version: " .. iup.GL_VERSION) end
+end
+
+-- IUPLUA Full Application
+
+lastfile = nil -- Last file open
+
+mulCommands = iupmultiline{expand=IUP_YES, size="200x120", font="COURIER_NORMAL_10"}
+poslabel = iuplabel{title="0:0", size="50x"}
+filelabel = iuplabel{title="", size="50x", expand="HORIZONTAL"}
+
+mulCommands.caretcb = function(self, lin, col)
+ poslabel.title = lin..":"..col
+end
+
+butExecute = iupbutton{size="50x15", title = "Execute", action="dostring(mulCommands.value)"}
+butClearCommands = iupbutton{size="50x15", title = "Clear", action = "mulCommands.value = '' filelabel.title = '' lastfile = nil"}
+butLoadFile = iupbutton{size="50x15", title = "Load..."}
+butSaveasFile = iupbutton{size="50x15", title = "Save As..."}
+butSaveFile = iupbutton{size="50x15", title = "Save"}
+
+function butSaveFile:action()
+ if (lastfile == nil) then
+ butSaveasFile:action()
+ else
+ novoarq = openfile (lastfile, "w+")
+ if (novoarq ~= nil) then
+ write (novoarq,mulCommands.value)
+ closefile (novoarq)
+ else
+ error ("Cannot Save file "..filename)
+ end
+ end
+end
+
+function butSaveasFile:action()
+ local filedlg = iupfiledlg{dialogtype = "SAVE", title = "Save File", filter = "*.wlua", filterinfo = "Lua files",allownew=yes}
+ IupPopup(filedlg,IUP_LEFT, IUP_LEFT)
+ local status = filedlg.status
+ lastfile = filedlg.value
+ filelabel.title = lastfile
+ IupDestroy(filedlg)
+ if status ~= "-1" then
+ if (lastfile == nil) then
+ error ("Cannot Save file "..lastfile)
+ end
+ local novoarq = openfile (lastfile, "w+")
+ if (novoarq ~= nil) then
+ write (novoarq,mulCommands.value)
+ closefile (novoarq)
+ else
+ error ("Cannot Save file")
+ end
+ end
+end
+
+function butLoadFile:action()
+ local filedlg = iupfiledlg{dialogtype="OPEN", title="Load File", filter="*.wlua", filterinfo="Lua Files", allownew="NO"}
+ filedlg:popup(IUP_CENTER, IUP_CENTER)
+ local status = filedlg.status
+ local newfile = filedlg.value
+ IupDestroy(filedlg)
+ if (status == "-1") or (status == "1") then
+ if (status == "1") then
+ error ("Cannot load file "..newfile)
+ end
+ else
+ local fp = openfile (newfile, "r")
+ if (fp == nil) then
+ error ("Cannot load file "..newfile)
+ else
+ mulCommands.value = read (fp,"*a")
+ closefile (fp)
+ lastfile = newfile
+ filelabel.title = lastfile
+ end
+ end
+end
+
+vbxConsole = iupvbox
+{
+ iupframe{iuphbox{iupvbox{butLoadFile, butSaveFile, butSaveasFile, butClearCommands, butExecute; margin="0x0", gap="10"}, iupvbox{filelabel, mulCommands, poslabel; alignment="ARIGHT"}; alignment="ATOP"}; title="Commands"}
+ ;alignment="ACENTER", margin="5x5", gap="5"
+}
+
+-- Main Menu Definition.
+
+mnuMain = iupmenu
+{
+ iupsubmenu
+ {
+ iupmenu
+ {
+ iupitem{title="Exit", action="return IUP_CLOSE"}
+ }; title="File"
+ },
+ iupsubmenu{iupmenu
+ {
+ iup.item{title="Print Version Info...", action=print_version_info},
+ iupitem{title="About...", action="dlgAbout:popup(IUP_CENTER, IUP_CENTER)"}
+ };title="Help"}
+}
+
+-- Main Dialog Definition.
+
+dlgMain = iupdialog{vbxConsole; title="Complete IupLua3 Interpreter", menu=mnuMain, close_cb = "return IUP_CLOSE"}
+
+-- About Dialog Definition.
+
+dlgAbout = iupdialog
+{
+ iupvbox
+ {
+ iuplabel{title="Complete IupLua3 Interpreter"},
+ iupfill{size="5"},
+ iupfill{size="5"},
+ iupframe
+ {
+ iupvbox
+ {
+ iuplabel{title="Tecgraf/PUC-Rio"},
+ iuplabel{title="Mark/Ovídio/Scuri"},
+ iuplabel{title="iup@tecgraf.puc-rio.br"}
+ }
+ },
+ iupfill{size="5"},
+ iupbutton{title="OK", action="return IUP_CLOSE", size="50X20"}
+ ;margin="10x10", alignment="ACENTER"
+ }
+ ;maxbox=IUP_NO, minbox=IUP_NO, resize=IUP_NO, title="About"
+}
+
+-- Displays the Main Dialog
+
+dlgMain:show()
+
+IupMainLoop()
+
+IupDestroy(dlgMain)
+IupDestroy(dlgAbout)