Home | Reviews | GUIpedia | Forum | Fun500


pharoahThe first GUI ever to include a QML reader is...
Go ahead, fill in the blank. I'm looking to write a QGET based QML reader (yes there is now a DOS version) for a GUI with a working scripting language. All you need to do is to send me your GUI and some info on the language, and to make yourself a QML home page for your GUI/projects and I'll write you a reader if the language permits it. I have already started writing one for Brandon, but since that will be in Qbasic it will be more feature rich and take a bit longer to write. In the meantime, I want to do a few quicker projects. This offer is good for as many GUIs as I can handle, but on a first come, first serve basis.
2009-03-305:37 PM

agumaRe:The first GUI ever to include a QML reader is...
...Spark If you need any more commands, I'm still adding a bunch more, so just tell me. Download the kernel + documentation here: [file name=spark-07b302819acff4d125105118961eef0e.zip size=128282]http://theguiblog.com/images/fbfiles/files/spark-07b302819acff4d125105118961eef0e.zip[/file] By the way, it's not really complete yet, I'm still working on it. :P That's why there are still a bunch of half-finished programs :laugh:
2009-03-305:41 PM

pharoahRe:The first GUI ever to include a QML reader is...
I will need to be able to shell a URL that will change as the program runs. Can you make SHELL / instead of :?
2009-03-305:55 PM

agumaRe:The first GUI ever to include a QML reader is...
Okay. [file name=spark-1d248e6ce0ae1abcd08a7d5ad6c0d856.zip size=128322]http://theguiblog.com/images/fbfiles/files/spark-1d248e6ce0ae1abcd08a7d5ad6c0d856.zip[/file]
2009-03-306:04 PM

ksrRe:The first GUI ever to include a QML reader is...
I will be starting work on a QML reader in TNT as soon as the string manip. functions are completed, as everything else is there, although it'd be cool if you could write one too :)
2009-03-306:06 PM

BrandonRe:The first GUI ever to include a QML reader is...
Fun500 4? Its a scripted GUI.
2009-03-306:15 PM

pharoahRe:The first GUI ever to include a QML reader is...
I've hit some little walls in Spark: How do I throw away a string from the top of the stack? How about a number? How do I swap positions of a number and a string instead of 2 strings or 2 numbers? Edit: Have you considered just making the stack elements all strings, and having numbers be stored as str() and math functions use val()?
2009-03-309:34 PM

agumaRe:The first GUI ever to include a QML reader is...
I'll fix that.
2009-03-309:48 PM

agumaRe:The first GUI ever to include a QML reader is...
New commands: POP - "Deletes" a value from the top of the stack POPSTR - Like POP but uses a string SWAPSN - Swaps with a string on the bottom and a number on the top SWAPNS - Vice versa or SWAPSN Also, everything in the stack is a string now. However there's still stuff like POP/POPSTR because that fits the coding style of the rest of it. [file name=spark-9f60368a421ea104a53a2b54d1e0b6bb.zip size=250861]http://theguiblog.com/images/fbfiles/files/spark-9f60368a421ea104a53a2b54d1e0b6bb.zip[/file]
2009-03-3010:09 PM

Re:The first GUI ever to include a QML reader is...
So,to be clear, variables can store strings, RAM is still allocated in 4 byte chunks, and I could usePSTR instead of PUSH
2009-03-3110:20 AM

pharoahRe:The first GUI ever to include a QML reader is...
Oh... I hate to keep posting random thoughts but one thing you might appreciate adding would be a call stack. The way it works is that, when you do a GOTO or one of the conditionals, the position of the statement after your GOTO is pushed onto a stack and execution is moved to the new label. Then you have a RETURN statement which causes the last GOTO location to be popped off of the stack and returned to. This is how GOSUB/RETURN works in Qbasic (as opposed to GOTOS) and was an early innovation allowing modular programming because the same bit of code could be called as a sub from anywhere in the program. The only difference between old GOSUB/RETURN and modern SUB/END SUB is the newer use of local vs. global variables. Still working on your QML reader, only a bit of a setback because I dropped my EEEPC and will need to get the hinge repaired :).
2009-03-3112:06 PM

agumaRe:The first GUI ever to include a QML reader is...
Well variables can store strings if you put a dollar sign ($) at the end of their names. RAM isn't (never has been) allocated in four byte chunks...I'm not quite sure what you mean by that. And you could technically use all string or all number functions, but I wouldn't recommend it. About the call stack, I think it's a good idea but would one variable for the last CALL be enough? Because it's sort of tiring to keep adding things and having to rewrite everything again. EDIT: New version of Spark coming soon, with updated commands that can use both numbers and strings! Also a really stupid error in COMPILE was fixed. You might have to revise just about your entire program, but it's faster and more concise. (Less in the loop! Thx Brandon for your amazingly helpful advice to put less in the loop! lol)
2009-03-311:12 PM

pharoahRe:The first GUI ever to include a QML reader is...
A call stack wouldn't be hard to implement, I can show you how if you want. A single variable won't work because then you can't nest calls. So you can only call from your main function, which doesn't help you refactor. Spark is mult-scripting, right? Here's an example that lets you have multiple scripts, the code is adapted from a precursor to Cobalt I had on my HD [code] redim shared calls() as integer ptr sub pushCall(scriptnum as integer, i as integer) script(scriptnum).calltop += 1 dim p as integer ptr p = reallocate(script(scriptnum).calls, script(scriptnum).calltop * sizeof(integer)) if p = 0 then end script(scriptnum).calls = p script(scriptnum).calls[script(scriptnum).calltop - 1] = i end sub function popCall(scriptnum as integer) as integer if script(scriptnum).calltop = 0 then end script(scriptnum).calltop -= 1 dim p as integer ptr popCall = script(scriptnum).calls[script(scriptnum).calltop - 1] p = reallocate(script(scriptnum).calls, script(scriptnum).calltop * sizeof(integer)) if p = 0 then end script(scriptnum).calls = p end function [/code] What's not here is the code to add a new script to the call array (easy, redim preserve) and there is no code to deallocate the pointers in the integer ptr sub array when you want to close a script. This last thing is important, or you wind up with memory leaks which can cause you to have big chunks of unused memory that fill up your RAM and cause errors. You could really just do this by repeated PopCalls.
2009-03-314:31 PM

agumaRe:The first GUI ever to include a QML reader is...
can I just push it onto the regular stack instead of a call stack? never mind, I've added the call stack, but it's not really a stack in the sense that it doesn't make itself bigger when you reach the top.
2009-03-314:42 PM

pharoahRe:The first GUI ever to include a QML reader is...
Well I'd say about 8-16 levels of nesting should be sufficient, so if you don't want to use my code with it's ever expanding RAM array you can use an array of fixed size arrays like you've probably done. I am holding off on dev until you've finished all your big changes to Spark. The things you are doing will make my job a lot easier it seems, so the product will hopefully be pretty good. In the meantime, Reflow isn't out yet so I'll begin to explore the possibility of a Fun500 GUI 4 QML reader using QGET. I am already familiar with Brandon's language and while it's not easy, it does have enough string functions for me to get started.
2009-03-314:55 PM

ksrRe:The first GUI ever to include a QML reader is...
What QML sites are out there on the web? I remember seeing some sort of chat system.
2009-03-315:08 PM

BrandonRe:The first GUI ever to include a QML reader is...
Cursor, the search engine, there is a forum, and a chatroom. Then my site, pharoah's main page, and I think Jason might have one.
2009-03-315:12 PM

pharoahRe:The first GUI ever to include a QML reader is...
Well there's a QML search engine (only one keyword per search at this time). That's at http://pharoah.xetaspace.net/cursor/search.php There's the old main page for Qbrowse with a lot of links: http://pharoah.xetasapce.net/qbrowse/logo.qml There's Brandon Cornell's page: http://brandoncornell.com/index.qml There's QMLOS, a test of rendering: http://pharoah.xetaspace.net/qmlos.qml There's the simple forum: http://pharoah.xetaspace.net/forum There's is.gd URL shortener (CQML doesn't render right): http://pharoah.xetaspace.net/isgd And a few more. I should really add some links for these from the Qbrowse/QML news page so that CURSOR will index them. Right now Xeta seems to be down for a moment, but it usually comes up in an hour or two. There is also a page Jason made a long time ago which is in Cursor but I can't remember what its URL was. EDIT: Idiot that I am, I forgot to include the chat. You join at: http://pharoah.xetaspce.net/qbrowse/chat/join.qml
2009-03-315:14 PM

ksrRe:The first GUI ever to include a QML reader is...
Thanks Pharaoh!
2009-03-315:33 PM

pharoahRe:The first GUI ever to include a QML reader is...
Tell me if you make a page so I can add it to the index. Also, I have a few great ASCII art tools if you want to make your pages look nice (QMLOS was done using PabloDraw and a converter I wrote).
2009-03-316:24 PM

BrandonRe:The first GUI ever to include a QML reader is...
I'd recommend making a bookmarks.txt file for your browser, with each line being a link, its a feature of CQML, and if all our bookmark config files are the same it will be easy to switch from one to another (and it makes copying links to the browser easier :P)
2009-03-316:56 PM

GUIs


2021 Brandon Cornell