1) Dashboard for DCS7
Think of the dashboard in MacOSX; clicking an icon would bring up a scrolling bar of draggable widgets. I could implement DarkFire-style task switching to get a couple small widgets running effectively. Plus, I could make it such that clicking on a widget brings up a normal DCS program (ex; clicking an animated clock brings up a window through which you could set the time and such, through standard DCS gui)
2) Simplified GUI creation
For those who are new to the calculator programming scene, jumping into DCS7 GUI might be a little daunting. There are a two ways (that I see) to approach this problem.
a) completely automated TIBasic to TIB+DCS7 parser. Think of something along the lines of this Menu( parser I wrote a bit back.
Rather than just replacing Menu(, it could replace Input, Prompt, Output(, and Disp as well. The only problem is that bringing a terminal-style UI to button based GUI is a bit challenging. For example, say we had a simple program like this
Code:
Simple enough, right? The resulting DCS program would have to allow the user to go back and edit the values of A and B on the fly; just imagine how complicated updating multiple variables could become!
b) GUI creatorWith some sort of visual ide, users could create input-fields, place then where they wanted, and then assign some block of code to run whenever any one of them were updated (if button1 is pressed, do this. if text field 1 is updated, do this... etc...) While this is an attractive option, it would make it difficult to create dynamic GUIs (say, where a button pops up only when it is applicable)...
3) Automated Memory Management
Probably the simplest of the three. Simply put, it would add code to the start (but below the header) of all/user-selected TIBasic programs, allowing my program to a) check for new programs, and add the same header to those, b) track usage, and c) automatically archive programs that aren't run very often.
There are a couple of problems though. First off, for programmers, such a program would make sharing difficult-- you would have to remove my additional code from your programs to be able to share them, or specifically blacklist your new programs. Second, it could periodically dramatically increase the amount of time it takes to open a program. Sure, this could be handled by an alert of some sort, but even that would be annoying. Third, it would come within a stone's throw of a virus.
Anyways, these are just some ideas I'm mulling over that I wanted to share. Feel free to "steal" them from me; I probably won't have time to get to them anyways (I'm moving! woohoo!), and I would love to see someone else's take-on/implementation-of them.
Think of the dashboard in MacOSX; clicking an icon would bring up a scrolling bar of draggable widgets. I could implement DarkFire-style task switching to get a couple small widgets running effectively. Plus, I could make it such that clicking on a widget brings up a normal DCS program (ex; clicking an animated clock brings up a window through which you could set the time and such, through standard DCS gui)
2) Simplified GUI creation
For those who are new to the calculator programming scene, jumping into DCS7 GUI might be a little daunting. There are a two ways (that I see) to approach this problem.
a) completely automated TIBasic to TIB+DCS7 parser. Think of something along the lines of this Menu( parser I wrote a bit back.
rthprog wrote:
So based on Swivel's idea, I wrote a pretty simple Celtic3 based program that swaps your Menu( with a graphscreen version.
Based on the amount of content, it decides to lay your Menu out either horizontally or vertically, though you can change this manually.
Look at the ReadMe for more details.
Get it here http://ow.ly/1ZL1u
http://cemetech.net/forum/viewtopic.php?t=4619
Based on the amount of content, it decides to lay your Menu out either horizontally or vertically, though you can change this manually.
Look at the ReadMe for more details.
Get it here http://ow.ly/1ZL1u
Rather than just replacing Menu(, it could replace Input, Prompt, Output(, and Disp as well. The only problem is that bringing a terminal-style UI to button based GUI is a bit challenging. For example, say we had a simple program like this
Code:
:Input A
:A-->C
:Input B
:B-->A
:C-->A
:Disp A, B
Simple enough, right? The resulting DCS program would have to allow the user to go back and edit the values of A and B on the fly; just imagine how complicated updating multiple variables could become!
b) GUI creatorWith some sort of visual ide, users could create input-fields, place then where they wanted, and then assign some block of code to run whenever any one of them were updated (if button1 is pressed, do this. if text field 1 is updated, do this... etc...) While this is an attractive option, it would make it difficult to create dynamic GUIs (say, where a button pops up only when it is applicable)...
3) Automated Memory Management
Probably the simplest of the three. Simply put, it would add code to the start (but below the header) of all/user-selected TIBasic programs, allowing my program to a) check for new programs, and add the same header to those, b) track usage, and c) automatically archive programs that aren't run very often.
There are a couple of problems though. First off, for programmers, such a program would make sharing difficult-- you would have to remove my additional code from your programs to be able to share them, or specifically blacklist your new programs. Second, it could periodically dramatically increase the amount of time it takes to open a program. Sure, this could be handled by an alert of some sort, but even that would be annoying. Third, it would come within a stone's throw of a virus.
Anyways, these are just some ideas I'm mulling over that I wanted to share. Feel free to "steal" them from me; I probably won't have time to get to them anyways (I'm moving! woohoo!), and I would love to see someone else's take-on/implementation-of them.