well, I've been playing around with xDCS recently and I came up with this idea here so tell me what you think. If you want to help me with this it would be great.
also, I came up with a program that I might use for resizing the window you are adding to the GUI, this is the source:

Code:
:"XDCS
:real(10,0,0
:20→X:20→Y
:1→S
:While 1
:real(0
:{1,0,0,X,Y,1,2,0,1→L1
:" →Str0
:prgmXTEMP000
:0
:Repeat Ans
:real(8
:End
:Ans→K
:X+S(K=3 or K=8 or K=6)-S(K=2 or K=7 or K=5→X
:Y-S(K=4 or K=7 or K=8)+S(K=1 or K=5 or K=6→Y
:S+(K=10)-(K=11→S
:If K=9:Then
:real(10,2
:ClrDraw
:Return
:End:End

(I know that it isn't the best set-up with the labels and such, but I hadn't gotten around to optimizing yet)
I also have a little text wrapping program that I might use as well, it wraps text on the graph screen inside an invisible box between 2 coordinates.
this is the code

Code:
:If L1(1
:Then
:DelVar CFor(A,L1(3),L1(5),6)
:For(B,L1(2),L1(4),4)
:C+1→C
:If C<239 and C≤length(Str0
:Then
:Text(A,B,sub(Str0,C,1
:End:End:End
:If not(L1(1
:Then
:For(A,L1(3),L1(5),6)
:For(B,L1(2),L1(4),4)
:If A<55
:Text(A,B,"     "
:End:End:End

it also clears the box if you want to clear a certain area of the screen
Good idea! I'll be glad to work with you!
However, I strongly recommend to never use Labels in programs as they might result in memory leaks.

And the text wrapping program has a problem: the small font characters have different widths. So the text will be wrapped too early or too late. It is possible to use a table that determines the width of each character, but that would result in very low speeds and high program size.

EDIT: and it's xDCS not XDCS.
Ah, very nice, I look forward to seeing where you go with this, and perhaps even incorporating your ideas into the actual DCS 6 GUI system if you come up with something cool. Smile
thanks, Kerm.

@ZagorNBK: I only use labels for making rough programs, then I start changing them to if statements or while loops. and my text wrapper is suppose to take into account the different lengths, which is why it displays each character one at a time, giving them all the same amount of space. I'll upload a screenshot of it if you want.
@KermMartian: At the moment, I'm only trying to mimic the DCS6 GUI, not add new functions that havn't been integrated to DCS.

@Eeems: The text wrapper sounds cool, but it I think that it will display the text too slowly. But it's still better than Kerm's BASIC DocDE3 (or whatever the n°). Razz
And I'll start working on the GUI Creator on these holidays, which means tommorow! I'll be using the CelticIII program to make it easier to insert the code into programs.
hmm, Celtic III program or app? the app would be better, but for some reason xDCS isn't compatible with it. and, I was looking at my text wrapper, the only 2 characters that wont work right are the lower case 'm' and 'w'...unless you include 'real(' and such. I've also made some improvements to the programs, so I will update the code soon. I'll also make a usage guide for the text wrapper and the resizer.

Edit: I've uploaded the new code: and the controls are as follows;

Resizer::
  • arrows---resize
  • enter---finish resizing
  • plus and minus---change resize speed

(arrows support multiple key presses)

Text Wrap:: uses a list setup
  • {function,X1,Y1,X2,Y2}->L1
  • "string"->Str0
It's the CelticIII program (not app) that I'll use. The app doesn't work with xLIB programs, but I hope that in the future it will.

And today I've come up with an even better idea.
Currently, xDCS is pretty slow as it has to read data from a lot of variables. And it always updates the screen after it draws a window or a button, resulting in a not-very-esthetic progressive loading.
My idea is to create an editor that will create a unique code to use in your programs, meaning shorter loading times, simultaneous displaying and no additional programs: all code is intergated into your own program. All you'll have to do is to "Recall String1" where you want it to be in your program. That's it!
And I might make it "pluggable" into LunarIDE 1(if Zaphod Beeblebrox will accept) by slightly modifying LunarIDE 1 itself. The reason why I want it be integrated to LunarIDE 1 and not 2 is because the 2nd version will use the CelticIII app, which doesn't work with xDCS.
sounds good, but two questions; why recall Str1? couldn't we write directly to a program with Celtic III?
and could you try to make a Celtic III Compatible xDCS?
oh yeah, I made a quick starting page for the GUI creator just for fun, I'll upload it in a sec so you can take a look if you want.

EDIT: you can download the files here:
empforum.freehostia.com/Resources/GUI.zip
ZagorNBK wrote:
It's the CelticIII program (not app) that I'll use. The app doesn't work with xLIB programs, but I hope that in the future it will.


It does. (I used it, but I only do asm at the moment)
so how's it coming ZagorNBK? What should I do?

also, I had a thought; what if you redesigned xDCS in a way that it would only update the screen after you finished defining the GUI? would that even be possible? I'm actually going to try and do that myself if it's ok with you. I also might add the text functions to it as well. after I go through the code and figure it out I may also try to make it Celtic III app compatible.
@ Mapar007: Even though CelticIII is supposed to work with xLIB, in reality it has a lot of problems doing so.

@ Eeems: Actually, I've decided to stop using the xDCS program. Instead, as I said previously, an editing program will generate the code needed for a DCS6-like GUI and insert it into the program of your choice. This has several advantages, including the fact that it will be able to update the screen after the GUI is fully drawn.
EDIT: Updates - The editing program stores the "project" into an appvar for long-term storage. Screenies will soon be posted...
hmm, sounds good ZagorNBK. Can I play around with the xDCS code though, because it's really gotten me interested in making subroutines.
Also, I've gotten some ideas that I'm going to fully document before I post about them so in a few days I'll share the rest of my ideas.
Of course you can mess about with the routines! Wink
I'm waiting impatiently for your new ideas...
ZagorNBK wrote:
Of course you can mess about with the routines!

thanks!
ZagorNBK wrote:
I'm waiting impatiently for your new ideas...

sorry but I haven't really had time to type them up, but I guess I'll type them up now...wiat for the edit

EDIT: ok here they are...
  1. the GUI is in a separate file, like an appvar
  2. Completely customizable GUIs (allow to change the look of the corners and such(maybe in Hex?))
  3. Separate Renderer (the appvar is read by it, then drawn, screen is updated and the text is added in)
  4. maybe an image renderer ( assembly (we might have to ask somebody else to make it, unless you know assembly))
  5. include a mouse editor for the xDCS creator program (much like DCS6 has)
  6. create an icon manager for file managers (transparency?? (make a file manager routine?)
  7. scrollbar (handles scrolling while in mouse mode?)
  8. skinnable xDCS GUI creator??
  9. other window like features you want to add.
ok, so I know some of these are horrible ideas, but hey, they're ideas..
Eeems wrote:

  1. the GUI is in a separate file, like an appvar
    I would prefer to have everything in one single program, so as to be independant of renderers.
  2. Completely customizable GUIs (allow to change the look of the corners and such(maybe in Hex?))
    Difficult to do. And for the moment I'm focusing on just making a DCS-like GUI.
  3. Separate Renderer (the appvar is read by it, then drawn, screen is updated and the text is added in)
    Like I said before, it would be better to not be dependant on a renderer program.
  4. maybe an image renderer ( assembly (we might have to ask somebody else to make it, unless you know assembly))
    What do really mean by "image renderer"?
  5. include a mouse editor for the xDCS creator program (much like DCS6 has)
    I was already thinking to do that.
  6. create an icon manager for file managers (transparency?? (make a file manager routine?)
    Useless, as users will prefer shells to file managers.
  7. scrollbar (handles scrolling while in mouse mode?)
    I wanted to include that function in the program submitted to the contest, but it was much too difficult to implement in such a small amount of time.
  8. skinnable xDCS GUI creator??
    As I said before, too difficult and not what xDCS was really made for.
  9. other window like features you want to add.
    I was thinking to add checkboxes...
ok, so I know some of these are horrible ideas, but hey, they're ideas..
Ideas are never horrible. Razz
ZagorNBK wrote:

  1. the GUI is in a separate file, like an appvar
    I would prefer to have everything in one single program, so as to be independant of renderers.
    ah, but if we do it this way, multiple programs can use the same GUI, but I see your point
  2. Completely customizable GUIs (allow to change the look of the corners and such(maybe in Hex?))
    Difficult to do. And for the moment I'm focusing on just making a DCS-like GUI.
    I know, but maybe in the future
  3. Separate Renderer (the appvar is read by it, then drawn, screen is updated and the text is added in)
    Like I said before, it would be better to not be dependant on a renderer program.
  4. maybe an image renderer ( assembly (we might have to ask somebody else to make it, unless you know assembly))
    What do really mean by "image renderer"?
    [you give it the hex, the dimensions, and the location and it drows the image there, kind of like a sprite program[/i]
  5. include a mouse editor for the xDCS creator program (much like DCS6 has)
    I was already thinking to do that.
    great minds think alike!
  6. create an icon manager for file managers (transparency?? (make a file manager routine?)
    Useless, as users will prefer shells to file managers.
    what I meant, was like for opening programs (IDE), loading external levels (games), choosing programs to parse (parsers, and compilers and such)
  7. scrollbar (handles scrolling while in mouse mode?)
    I wanted to include that function in the program submitted to the contest, but it was much too difficult to implement in such a small amount of time.
    ah, well we can work on that then
  8. skinnable xDCS GUI creator??
    As I said before, too difficult and not what xDCS was really made for.
    not the xDCS developed programs, but the xDCS creator, you know like how you can skin Firefox, but not the pages
  9. other window like features you want to add.
    I was thinking to add checkboxes...
    how about text input fields and such?
ok, so I know some of these are horrible ideas, but hey, they're ideas..
Ideas are never horrible. Razz
unless they just fail...which I've only seen once
Zagor, I think I might be able to write an xDCS skinning program that would also work with Eeem's work; find/replace routines from the ide i'm working on could quite easily make it possible to create and implement custom xDCS variants... for example, it could let a user change the look and feel of someone else's program that used xDCS. This would be better than the appvar idea for two reasons;
1.) It would be faster. Much faster. reading from an appvar, or calculating new values while a program is running is simply extra lag =D
2.) It would be easily switchable; sharing a program is faster

Also, I was wondering if you mind me writing an altered version with "background-tasking", thus enabling such things as notifications and hovertext....
"Zagor, I think I might be able to write an xDCS skinning program that would also work with Eeem's work; find/replace routines from the ide i'm working on could quite easily make it possible to create and implement custom xDCS variants... for example, it could let a user change the look and feel of someone else's program that used xDCS. This would be better than the appvar idea for two reasons;
1.) It would be faster. Much faster. reading from an appvar, or calculating new values while a program is running is simply extra lag =D
2.) It would be easily switchable; sharing a program is faster"
Mmmmhh... I didn't think about doing that. Great idea!
"Also, I was wondering if you mind me writing an altered version with "background-tasking", thus enabling such things as notifications and hovertext...."
Are you talking of the current xDCS? Either way, you're of course authorized to do it...
thanks! I have two nifty ideas =D
1.) an "addon" that can bring the cursor to a pre-designated point-of-interest. Basically, it will make it really easy to click even tiny buttons
2.) another "addon" that will change the cursor icon based on where the cursor is...

I'm just saying that those two things should be possible, though I'm no where near that stage...
hmm, they look interesting, actually I was thinking about adding he second one, but I hadn't done anything yet
  
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
Page 1 of 2
» 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