UIC Live Stuff

Blitz3D Forums/Blitz3D Programming/UIC Live Stuff

mk2y10(Posted 2013) [#1]
So I have been working on a Blitz3d non-DLL GUI system for, well, prof of concept I guess...

Anyhow I have made small parts of it before using a base idea like so:

The main building blocks are called User Interface Containers (UIC.) They work much like empty containers waiting to be filled with things. Next you have what care called Components. These are either Update Logic or Drawing (sometimes both) based sections that add a property or feature to a UIC. So, here is an example:

[Gadget] = [Component] + [Component] + ...
Button = Pane + Border + Pad + Label

By putting these components together, you get a button:
Pane is the background rectangle that changes color.
Border is a lined effect that adds style and gives the user a position.
Pad is a logic that causes the panel color to change based on the mouse interface.
Label just displays text in the button.

This is still a work in progress, but I thought about posting it for people to download and see. I have it set to use my Google Drive, after I am done adding small changes, it will update automatically, so you can follow the progress with this link:

https://docs.google.com/folder/d/0B6pj3BX41-7-dnhRSUZaUG90Tms/edit

One more note, this system is what I call a smart or hybrid GUI. This means that the gadgets only draw if they need to be drawn. This makes it take 0-1 millisecond (on my machine) to usually draw. There are numbers set up when you run build.bb to show you.

The top number shows you the handle of what UIC the mouse is over.
The middle number shows you how many milliseconds it took to render for that loop.
The last number shows how many UICs are being drawn in that renderUI command.

I will update this post below for more info on what I am doing. I hope to make this cleaner and easier to use, but for now, it remains messy.


virtlands(Posted 2013) [#2]
Hi PaxDragon, I just downloaded and ran your program from the Google
Docs link you provided.

My preview screenshot of running your program:


It looks nice and crisp. I noticed that currently the position
of the "title bar" is not obvious, and one needs to guess at its position.

I don't understand all that complex code you made yet, but it is a great learning experience.

In my case, I made a small alteration so that it would work for me.

Your original code:

;;If you do not have the DLL, just comment these lines out:
Win=SystemProperty("AppHWND")
api_ShowWindow(Win,1)
-------------------------------------------------

;; And here's my adaptation that I added to make it work for me
;; variable v is not used....; I don't know what the "1" is for.
Function api_ShowWindow(Win, v)
ShowWindow(Win)
End Function


mk2y10(Posted 2013) [#3]
lol, I should explain some things, I am just starting a log file that is on the drive now as well. The log updates every time I hit save and I believe you don't need to download it to view it. I will start explaining functions and types slightly and log any active changes and such I am doing. I also think it updated the zip file of my project every time I have a positive test.

Sorry for not commenting the code, once I start I kinda just keep going.

https://docs.google.com/file/d/0B6pj3BX41-7-ZFlFMjgyMUFHWUk/edit


virtlands(Posted 2013) [#4]
I'll be watching this UIC progress.
I think that it is a great project to create a new GUI.

If I ever start on a working GUI of my own, I'll send you a link. ;)

[I trimmed this post on Jan 18,2013 to save some space.]

Last edited 2013