Why not just use a single string for all the tabs, and instead use a list of numeric offsets to the start of each tab within the string? That would allow a theoretically unlimited number of tabs.
I thought about that but I figured it would cause a slow down because the longer the list is the slow comands like sub( and instring( are, and it woulf most likely break his find command, at least it would require modification.
TheStorm wrote:
I thought about that but I figured it would cause a slow down because the longer the list is the slow comands like sub( and instring( are, and it woulf most likely break his find command, at least it would require modification.


Switching tabs by allocating one string per tab would require you to manually enter "if T=1 then Str1-->Str0: End: If T=2 then Str2-->Str0: End.... etc...

And I'm not using any find commands except for when you make a new tab, because all it's doing is remembering which tab its on (1,2,3... etc...)
Therefore, I maintain that that offset method would be the best. Agreed?
In anycase, back to Lunar IDE... a few updates (not much)

Because my TI-83+ linkport that has not (yet) been remedied, and all my files are on that calculator, I've started delving into a few things I haven't spent much time on. Namely, rejuvinating the auto complete feature and rewriting the editting interface.

* Auto-Complete is fully functional, fast with a complete list of functions and variables for its use in stock! Out the ~370 functions and variables accessible on the calculator, 80% have a unique 3-5 starting letters and there for are accessible via auto-complete. The 3-5 starting letters are carefully picked to balance the most commands and variables accessed against the overall speed of the autocomplete method.
* Camel case helper is installed. Basically if you type a capital letter and caps lock isn't on, it will switch to lowercase. This is mainly because most commands on the calculator are camel-cased and therefore this minimizes usage of the [ALPHA] key.
* Caps lock is fully functional I have designated the [TRACE] key to it. In the screen shot below, there is an empty bracket pair ("[ ]"). If you press [TRACE] an upward thick arrow will appear although, switching cases via [ALPHA] or going to numeric mode through [2nd] will make the arrow disappear.
* The editting interface has been mostly reworked. Screenshot below:


Also, I have sprites for many of the functions in Lunar IDE 2. Here is the sprite sheet:

In order, from left to right, top to bottom: New, Open, Scraps, History, Search, Goto line, Execute program, Edit icon, (Un)Lock, Power off, Help, Quit, Moon symbol, Stat information, Delete line, Insert Line above (current line), Insert line below (current line), Speed (deprecated), Auto-complete switch (deprecated), Recall program, Execute subroutine, Symbols matrix, Custom menu, contrast.

The ones in italics need work, so if you have any ideas, please say.
Very nice! Are you settled on those 7x7 icons? If not, I'd be interested in trying out some 7x7 or 8x8 icons for comparison. Smile
I'm fairly settled but not completely. The advantage is, that they are a lot easier to output in a single row. If you'd like to make some in 8x8, I'd be willing to look.

KermMartian wrote:
Very nice! Are you settled on those 7x7 icons? If not, I'd be interested in trying out some 7x7 or 8x8 icons for comparison. Smile

They are 7x7 icons. Razz
Zaphod Beeblebrox wrote:
I'm fairly settled but not completely. The advantage is, that they are a lot easier to output in a single row. If you'd like to make some in 8x8, I'd be willing to look.

KermMartian wrote:
Very nice! Are you settled on those 7x7 icons? If not, I'd be interested in trying out some 7x7 or 8x8 icons for comparison. Smile

They are 7x7 icons. Razz
Are you settled on those 7x7 icons? I was saying I would be interested in trying to make alternative ones. Razz
Go ahead, if I like them better, I'll take them.
Zaphod Beeblebrox wrote:
Go ahead, if I like them better, I'll take them.


how about editable sprites? such as expanding them?
I'm not exactly sure what you mean... you mean two sets of sprites and the option to switch between them?
Zaphod Beeblebrox wrote:
I'm not exactly sure what you mean... you mean two sets of sprites and the option to switch between them?
It almost sounded to me like he meant the ability to make the spritesheet user-editable, which it sounded like you were going to essentially have anyway.
Well, the picture is going to be on the calculator and archived. I suppose it wouldn't bee difficult to unarchive the picture and edit it. I wasn't specifically allow the editting of icons from with in the program, but I suppose I could if I worked on it.
ok so I'm considering a system which would let someone interject code in many places of the program, in order to say add menu items, add commands, tweak the interface, etc... by running their program at multiple points and identifying the current point through a common variable, like theta. For example, if theta=1 then it should edit the line viewer screen, if theta=2 it should edit the contextual menu, if theta=3 then it should edit the soft-key menu, etc.... thus allowing users to write their own tools to add to the IDE. For example, it would become a simple matter to create a regularly updated clock, a function that would re-skin the IDE, or say a function that would allow a specific type of editing (template for example)

however a potential problem is that someone could write a fairly nasty bit of code that could do something like replace all programs with crap, or use celtic2 to mess with the calculator in general by using a list input....
That's an interesting idea, rthprog. I think it would be a nice idea to have a basic plugin system, where there could be a menu of plugins and when you select one, it'll be passed control, so it can insert something into the code, run a utility, etc. However, what you're describing sounds too complex for this language, IMHO. That sort of plugin interface requires a great deal of abstraction - something TI-BASIC entirely lacks. If this was attempted at such a large scale, I suspect the code would be very hackish, difficult to write for, difficult to maintain compatibility with, etc. I could be wrong, but I think that if this idea were attempted, it should at least start with my more modest proposal above.
Yeah that is a cool idea, I could definitely integrate support for that in my own IDE... Yeah especially because the subroutine system I use is incredibly flexible, the plug-ins can be archived and extremely easily run through an automated system.
magicdanw wrote:
I suspect the code would be very hackish, difficult to write for, difficult to maintain compatibility with, etc.


This is how I'm hoping to implement this:
The IDE will run all of the addons time to time, identifying the current location in the program through ANS. For example, a clock "widget" could be like this


Code:

:If Ans = 1
:Then
:[code to add command "clock" to the main menu module]
:Else
:If Ans = 2
:"Then
:[code that displays the clock on the graphscreen]
:Else
:If Ans = 3
:Then
:[code that is part of the command interpreter module, aka whatever you want it to do when you select "clock" from the menu]
:End
:End
:End


its kinda hard to explain, but by keeping it this way I can expand the number of locations from where addons are run, so that compatibility, etc... shouldnt be too much of a problem.

Currently I have set up the line viewer to run the addons every 10 seconds of inactivity or so and when the screen needs to be refreshed. I'm also considering requiring a header that identifies addons as addons, as well as telling the IDE when they need to be run. Finally, I'm considering putting a system that automatically removes addons which "stop" due to errors and breaks...
Updates!
I've had a couple cool ideas recently:
* "Gray" backgrounds when menus are opened, not techinically gray but it looks really nice and makes the menu pop and is not at all time consuming. See screenshot below.
* Reverse auto-compete. I had this idea yesterday and was able to implement it very quickly. Basically if you type in the letters "Gar" which then get converted to "GarbageCollect" as a token and then press delete, it will be reverted back to "Gar" as letters. Really helps if you didn't intend something to be a token (if you forgot to turn auto-complete off).
* Preferences menu, see screenshot below. Most of the options work at this point a little less than half don't.
* Some other cool stuff which I won't bore you with now.
Ooooh. Neat!
Nifty indeed, those are quite logical features. Thanks for flattering me by using my checkbox. Smile

You should really consider porting this to ASM; I might help.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
» Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
» View previous topic :: View next topic  
Page 6 of 9
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement