Shop OBEX P1 Docs P2 Docs Learn Events
VisualSpin: GUI manager for VGA, TV, LCD — Parallax Forums

VisualSpin: GUI manager for VGA, TV, LCD

RaymanRayman Posts: 14,889
edited 2010-07-22 15:08 in Propeller 1
I've started working on a development studio to manage GUI assets in a more convenient way...

I have a couple example GUI programs on my website.· But, managing large amounts of forms is inconvienient.
Hopefully, VisualSpin will make it very easy.

I'm starting out targeting XGA but will hope to adapt to TV and LCD later.

Maybe I'll have different styles of GUI at some point, but right now, I'm using the ROM font...

I think you can tell how it's going to work for this screenshot:

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
1565 x 1111 - 117K
«1

Comments

  • Bill HenningBill Henning Posts: 6,445
    edited 2010-07-19 18:04
    Looks great, but I could not find it on your site [noparse]:([/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 18:07
    It'll probably be a few weeks before it even marginally works...

    Or, it may never get done...

    It's a nice idea though, isn't it?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-07-19 18:16
    I for one really like the idea.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • jazzedjazzed Posts: 11,803
    edited 2010-07-19 18:18
    It's a great idea of course.

    I stalled with PropGuiMaker last year on trying to decide whether to use a proprietary GUI designer or a more common interface interface builder which emits xml.

    Considering how hard it is to get an html/xml terminal working, I think the proprietary GUI designer is the way to go.

    That being said, It would be really nice if there was an easy way to plug in the spin code. I started using the widgets I made for my TvFavorites interface, but those are targeted more for 3D effects on a device having separate video memory.

    What will your Spin widget library look like?

    Thanks,
    --Steve

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Pages: Propeller JVM
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 18:20
    Bill Henning said...
    Looks great, but I could not find it on your site [noparse]:([/noparse]

    Ok, I see what you mean now...· Here's an example of the working GUI:
    http://www.rayslogic.com/propeller/Programming/ADC.htm

    I think I have a "Basic Form Demo" somewhere there too...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 18:25
    jazzed said...

    What will your Spin widget library look like?
    Here are the form objects that I intend to start with:

    "Button";"Text";"Group";"Option";"Check";"Number";"1BitBitmap";"2BitBitmap";

    I like the idea of a progress bar though, I'll have to think about that...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • jazzedjazzed Posts: 11,803
    edited 2010-07-19 18:39
    That's a good list. Since several of us are obviously interested in this sort of thing it would be great to share ideas and maybe pool resources. Working as a team helps getting things done as long as players are flexible.

    I was wondering what an object or a method with all those positioning/look&feel etc "properties" would look like. I'm attaching an object that abstracts "button" ... it's where I was going before I started doing JVM stuff again. It would be easy to have an object per widget (N buttons), but it costs memory with getters/setters. What do you think would be best?

    Cheers,
    --Steve

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Pages: Propeller JVM
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2010-07-19 18:50
    Excellent Rayman! This will be a very useful tool indeed!

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Feature Projects: PropellerPowered.com
    Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 19:02
    jazzed said...
    Since several of us are obviously interested in this sort of thing it would be great to share ideas and maybe pool resources. Working as a team helps getting things done as long as players are flexible.
    Steve, I usually keep Windows source code to myself.· But, VisualSpin will generate SPIN code to be compiled by either Propellant or Spin Tool.
    People could always add in their own stuff to the generated SPIN code...·

    I could add an "owner draw" object to VisualSpin so that people could easily add their own things...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • jazzedjazzed Posts: 11,803
    edited 2010-07-19 19:33
    I was hoping you would be able to define the form of the spin code this is generated.
    That has general use for a broader audience. It's up to you.

    I'm not asking for your source, but it will likely be available the moment you post a binary.

    Cheers,
    --Steve
    Rayman said...
    jazzed said...

    Since several of us are obviously interested in this sort of thing it would be great to share ideas and maybe pool resources. Working as a team helps getting things done as long as players are flexible.
    Steve, I usually keep Windows source code to myself. But, VisualSpin will generate SPIN code to be compiled by either Propellant or Spin Tool.
    People could always add in their own stuff to the generated SPIN code...


    I could add an "owner draw" object to VisualSpin so that people could easily add their own things...
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Pages: Propeller JVM
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 20:50
    Just got a PM from a Microsoft employee. That was nice. But now, I'm wondering if perhaps "Visual Spin" is not the best name choice... I think I'm too microscopic for MS lawyers to care about, but you never know, they have a lot of lawyers!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • wjsteelewjsteele Posts: 697
    edited 2010-07-19 21:03
    I don't think they'll have a problem with it, it can't be confused with anything we make, as it targets an entirely different platform.

    In fact, Micro Focus has a product called "Visual COBOL" and AutoDesk Corp has "Visual Lisp."

    Bill
  • wjsteelewjsteele Posts: 697
    edited 2010-07-19 21:06
    One thought is to make it extensible, like the old VB OCX style controls. That way, someone could write a new control and use a Text Template to generate the SPIN. We could then start writing OBEX objects for VisualSpin... that would be so cool. Drag a "Servo Control" out and set a few properties, and viola... magic!

    Bill
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 21:35
    Ok, I'll keep some kind of "plug-in" option in mind... But, this is just a baby program right now and it will be a while before it does anything useful. Plus, there's been a lot of infant mortality in my projects...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • KyeKye Posts: 2,200
    edited 2010-07-19 22:36
    Mmm I am very interested in this Rayman. I've made a 1 cog GUI base VGA object that is just a PITA to program the row and column cordinances in for windows and such.

    My GUI driver works differently than your but in less code I can support all the features you have. Mine isn't really that great for text however as it only supports 40x15 characters on screen (internal ROM font at 640x480).

    But, I have a real mouse cursor in my object. =). Attached is the code. I'll have it up in the obex once I finish a human interface device driver for PS2 mouses and keyboards that supports event driven programing so that I can make a GUI demo.

    ·...

    Microsoft doesn't own the "Visual" keyword nor does it own "Visual SPIN". I think its a perfect name. If its made using their software I don't think they will care much.


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,
  • jazzedjazzed Posts: 11,803
    edited 2010-07-19 23:15
    Rayman said...
    Plus, there's been a lot of infant mortality in my projects...
    Teamwork is good for solving this kind of problem as the dog-days of summer wear on.
    I would release the source I have, but it seems few here would appreciate such an offering.

    @wjsteele, drag and drop an object sounds cool.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Pages: Propeller JVM
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 23:43
    Kye said...

    But, I have a real mouse cursor in my object. =). Attached is the code. I'll have it up in the obex once I finish a human interface device driver for PS2 mouses and keyboards that supports event driven programing so that I can make a GUI demo.

    Microsoft doesn't own the "Visual" keyword nor does it own "Visual SPIN". I think its a perfect name. If its made using their software I don't think they will care much.

    I'm glad to hear I can use "Visual Spin" and not get in trouble because I really like it [noparse]:)[/noparse]· My current GUI is also a knock-off of the old VBDOS look...·· But, maybe that's not too obvious.

    Kye, I'll have to check out your code, but I think by "real" you mean it draws a graphical cursor?· Is this all in one cog?· Chip's XGA driver does include a "real" mouse driver, but that uses an extra cog.· For my apps, with XGA already using 2 cogs and mouse using one and keyboard using one, I didn't want to use a cog just to do the mouse...· If you have VGA and mouse all in one cog, that's definitely worth a look.· But, I really did pick XGA as a balance between the amount of text I can show and cog usage.

    BTW:· I have a "real" real mouse showcased in my chess program that·is white with a·black border.· This turns out to be very difficult to do.· That code is an absolute mess, but I hope to clean it up and add it to Visual Spin for those that can affort to lose a cog for a nice cursor...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • RaymanRayman Posts: 14,889
    edited 2010-07-19 23:57
    jazzed said...

    Teamwork is good for solving this kind of problem as the dog-days of summer wear on.
    I would release the source I have, but it seems few here would appreciate such an offering.
    jazzed,
    Just as an aside, I think your kind of GUI is also very interesting, where, If I understand it, the Prop talks to a PC running the GUI over a serial link...

    I've also thought it would be neat to run a Javascript GUI over a web enabled Prop...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • jazzedjazzed Posts: 11,803
    edited 2010-07-20 00:16
    Rayman that's another project but certaily related. I started doing this VisualSpin thing last year (PropGuiMaker) and put it aside for other things like the JVM which will allow 128K+ Java programs to run on Propeller. GUI maker is just part of the "solution."Here's a sample image:

    attachment.php?attachmentid=61338

    Cheers.
    --Steve

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Pages: Propeller JVM
  • KyeKye Posts: 2,200
    edited 2010-07-20 00:18
    Here's a small tester program i've been using to develope my HID code. The HID driver is not done however. I have to figure out the scan code mappings for the keyboard still.

    The code is demo board compatible.

    The HID driver + VGA driver use two cogs in total. The new thing about the HID driver (its a combo PS2 Mouse and keyboard driver) is that it stores mouse and keyboard events in queues. This makes doing GUI stuff easy.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,

    Post Edited (Kye) : 7/20/2010 12:27:41 AM GMT
  • RaymanRayman Posts: 14,889
    edited 2010-07-20 13:00
    I would very much like a combo keyboard&mouse driver. I've seen one in the past, but it sounded it wasn't proven to be 100%...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-07-20 14:13
    I am greedy [noparse]:)[/noparse]

    I'd like to see a combo keyboard, mouse and serial driver!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • KyeKye Posts: 2,200
    edited 2010-07-20 15:11
    I found alot of bugs in the parallax drivers. There is are some reasons why they don't work with every keyboard and mouse. I don't know if mine work with every keyboard or mouse either but I've made my code alot more robust thatn the parallax drivers.

    @Bill Henning - You can add that if you want to your own version. The serial throughput would be horrible.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-07-20 15:57
    Kye,

    That is on my long TODO list [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • wjsteelewjsteele Posts: 697
    edited 2010-07-20 18:52
    You know, I've been thinking more and more about this. Ray, this would be a great project to complete and use in the education market. Think of it... Parallax could give (sell) every student a Prop Demo Board, or something like the Propeller Platform!!! They could then build a quick and easy course around taking this step by step through the most advanced scenerios.

    I think "VisualSpin" should also include a simple "PASM Block" control that includes ASM that can be called directly. Maybe based on "trigger" events, like your Button being pressed, etc.

    This takes me back... way back. wink.gif

    Bill
  • KyeKye Posts: 2,200
    edited 2010-07-20 19:32
    @wjsteele - That's what I've been writting all my drivers for.

    However, I have not the time to go market with my driver software. Sometimes I wish I could get paid what I've written...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,
  • wjsteelewjsteele Posts: 697
    edited 2010-07-20 19:58
    It kind of reminds me of Hanno's 12 Blocks... but is closer to "real" programming than to the lego style builder he has. Don't get me wrong, I'm not saying there is anything wrong with 12 Blocks, not by any stretch, but nothing beats a good old graphical UI desginer to get quick code out the door. wink.gif
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2010-07-20 22:10
    Nice concept! Could a UI like this fit in with the Prop II built in development environment? (or do we want to stick to a serial terminal?)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tom Talbot
    New Market, MD, USA
  • RaymanRayman Posts: 14,889
    edited 2010-07-21 00:39
    Just to clarify... The Prop will show these forms with it's VGA connector. It runs independent of a PC. This PC software is just to help write the SPIN code...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Apps:· http://www.rayslogic.com/propeller/Programming/Programming.htm

    My Prop Info: ·http://www.rayslogic.com/propeller/propeller.htm
    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • wjsteelewjsteele Posts: 697
    edited 2010-07-21 02:07
    I think it should be adapted to show on VGA or TV... just flip a switch and all the "objects" will know. wink.gif

    Bill
Sign In or Register to comment.