diff options
author | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:56:41 -0800 |
---|---|---|
committer | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:59:33 -0800 |
commit | d577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch) | |
tree | 590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /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-x | iup/srcconsole/console3.lua | 181 |
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) |