-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|466|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
SoCoder -> Showcase Home -> Functions Libraries

HoboBen
Created : 09 March 2008
Edited : 09 March 2008
System : Windows
Language : Cobra

Limpet GUI Demo

A GUI for Cobra

Limpet GUI Demo v0.1.0.1 (20080309) 1.4MB
Screenshots
My server has the hiccups today, so you can also download this from SoCoder limpet_0-1-0-1_20080309 (hope Jay has room - it's only a bit over one MB)

Just a quick demo - supports multiple windows, text (with wrapping), balloon help, and buttons. Haven't yet done drop downs, text areas or anything.

Works with the keyboard too - Left Ctrl + Left Shift to swap through windows, tab to swap through window controls, enter to activate a control... Or just click it.

Still responsive with over 200 windows and 500 buttons, with anti-aliasing on text, window rotations, and full transparency. (Though that takes it right up to 150MB of RAM!)

To check out the window management, hit D a few times (generates four windows) and then hit T to tile, H to hide, L to list, F2 to fade and F3 to fade all but current.

The balloon help messages are a bit intrusive, but I'll sort them out eventually.

Instead of retileing theme images every time that a window is redrawn, images are tiled to a cache image, which is used instead - this really pays off when you use several windows of the same size, but even when you use odd shaped windows it still works quite well.

Everything is fully themeable, if you feel brave enough.

If you're interested in how well things perform on your computer, edit Limpet\init.myprogram.bsd and change the LIMPET_SET values for log_verbose and log_verbose to TRUE. Next time you run the program, there should be a nice detailed log file in Limpet\Logs

It's designed so that several separate programs using the Limpet GUI can share the same directory, and share the same common Limpet files (like the themes)

So, opinions?

Comments


Sunday, 09 March 2008, 06:23
Jayenkai
Nice. Seems to work really well.
When I hit the F4 key, the spin did work, except for it's lack of contents, and the framerate plummeting! But, that could just be my naff onboard gfx doing that.

Also, You should probably store the values of where exactly MouseX and Y are holding the window, and compare the new values to those... Whereas (I'm assuming, here!) you're currently just checking speed, and moving the window by that..
If you grab a window, move up outside the window, then move back down, the window comes down with it.
That's just me being picky, though!
Sunday, 09 March 2008, 06:31
HoboBen
To give your graphics card some credit, that rotation is not hardware accelerated at all - so it's really not too fast. Cobra2D (the hardware accelerated version, as opposed to Pure2d, the software version) handles rotations perfectly, but I had an issue with the sprite z-indexing there, so I need to fix that first... As for the lack of contents when the windows rotate, I couldn't be bothered to work out rotation maths for the controls in the window, so I just hid them!

I see what you mean about the window offset when you move out of the screen... I didn't think it mattered, but as you noticed it, I guess I should tweak it

Cheers
Sunday, 13 April 2008, 19:40
HoboBen
New news: I've been tinkering a bit, and I still haven't added textboxes that you can type in yet (it's partially done), but I've worked on the scripting side of things, and it's got a really neat calculator that is entirely loaded from a text file and is only 200 lines, including layout!



The syntax of the scripts might look slightly cryptic:

(I really need to do functions at some point!)

But I've got like three versions of every command - the shorthand like "iNew", the longhand "NewInt" and the even-longer-hand "DeclareInteger", which look a bit more pleasant.

And cause it's a scripting engine, you don't have to write any code for the arithmetic: just chuck the string back into the engine, and let that do the work:



I also fixed a nasty bug with the word wrapper, which I'm surprised worked at all considering how blatantly stupid the error was.

I'm nearly done with this now
Monday, 14 April 2008, 03:50
Jayenkai
Looking good! Keep it up!
Monday, 14 April 2008, 08:41
mike_g
Yeah, looks very nice. Maybe you could turn it into your own window manager for Linux.
Tuesday, 15 April 2008, 08:22
HoboBen
Cheers both

I can't compete with Linux's GNOME though
Monday, 12 May 2008, 13:48
HoboBen
Bah, humbug.

There's some bugs I can't squish, so I'm taking a few months break from this...

I think I might just cheat, and do away with windows, and just write a nice buttons/checkboxes/drop-down-box library instead. Tedious, but it would be cake, really... and it would fill about 99% of my needs from a GUI anyway.

If anyone wants to take over the project, here's some sauce.

I need to get some games written, instead.