Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / TopGUI - Open source immediate mode GUI

Author
Message
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 12th Jul 2011 01:55 Edited at: 18th Feb 2012 23:43
TopGUI - Open source immediate mode GUI for DBPro




Supported controls:
- Button
- Picture button      *Rich Dersheimer*
- Checkbox
- Label
- Shadow label      *Rich Dersheimer*
- Listbox
- Combobox
- Radiobutton
- Scrollbar
- Tabs
- Textbox
- Window
- Scrollable window
- Menus
- Context menus
- Menu items
- Splitter menu items
- Checkbox menu items
- Radiobutton menu items
- Panel
- Scrollable panel
- Slider
- Spinner
- Textarea
- Game
- Modal dialogs
- Message box
- Progress bar
- Groupbox
- Password box
- Treeview
- Text button
- Message dialog
- Open file dialog
- Save file dialog

Supported layouts:
- Default layout
- Dock layout
- Flow layout
- Grid layout

Features:
- Completely accessible from the keyboard
- Supports semitransparent controls
- Child controls automatically clipped to the client area of the parent
- It takes mere minutes to get a complicated UI working in your application
- Supports complex drag-drop interactions
- Fast!
- 35 built in controls and counting...

The GUI is very simple to use. Instead of having to mess around creating and deleting controls, you simply call a function in your main loop and the control appears!

For example, to create a button and do something when it's clicked:

This button would be at position (20, 20), have a size of 200x50 pixels and contain the text "Click me!".

To compile the code, you need only IanM's Matrix1Utils plugins, and my Advanced2D plugin.

Click here to download the files.

If you know how to use SVN, you can also checkout a copy of the code. The latest stable release is revision 54.

Instructions:
To use TopGUI in your own projects, add all the .dba files except for "Tester.dba" to your project. "Tester.dba" has examples of every control currently available.

You will notice that every control requires an ID. In most cases you can simply type "GEN_ID" and the system will automatically generate one.
There are two exceptions. One is when you are creating controls in a loop (the main loop doesn't count). In that case, you should use INDEX_ID(index) instead, where index is the current loop number. For example:


The second exception is when you are opening a modal dialog using guiOpenModal. GEN_ID will still work in most cases, but if you call guiOpenModal again from the same piece of code before the dialog has closed, it will break the system. Using RND_ID instead will cause it to open a new dialog each time.

FAQ
Quote: "
- Different fonts?
You can use "guiSetFont" at any time to change the current font ID. Font IDs are obtained through Advanced2D by calling a2CreateFont.

- Is xxxx control going to be added?
I have these controls on my to-do list:
Buffered container, toolbar, grid view.
If you need a control which is not on the list, suggest it to me and I might add it.

- How can I change the way a control looks/behaves?
For a simple colour change, you can make a new theme. Take a look in TopGui_Theme.dba for an example of how to make a theme. Use guiSetTheme to activate it.
The drawing and the logic for the UI is separated in the code. Drawing takes place in functions ending in "Draw" and logic takes place in functions ending in "Logic". This way you can easily change the way a control looks without rewriting all its code.

- Modal dialogs?
Use guiOpenModal or guiOpenModalName passing in a pointer to or name of a function which takes a single integer argument. In this function you can use TopGui commands as usual to design the modal dialog. The single argument is one when the dialog is first opened, allowing you to do any initialisation you need to. Call guiCloseModal from inside this function when you want the dialog to close.
"


[b]

Attachments

Login to view attachments
Balid
20
Years of Service
User Offline
Joined: 21st Nov 2003
Location: MI, USA
Posted: 12th Jul 2011 05:56 Edited at: 12th Jul 2011 06:08
Diggsey,

That looks great. I think I can scrap the gui I've been working on.

All the best,

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 12th Jul 2011 14:30
@ Diggsey,

This is amazingly useful - thx v much!

Any chance / does it / will it support textured panels, different fonts, menus?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 12th Jul 2011 15:19 Edited at: 12th Jul 2011 15:29
@Balid
Thanks

@Duffer
It already supports different fonts, you can use "guiSetFont" at any time to change the current font. I'll add this info to the top post.

Textured panels can be done just by calling a2DrawImage with an image ID and a position on the screen, but I've added panels to the to-do list anyway.

Menus are also on my to-do list

[b]
Jimmy
20
Years of Service
User Offline
Joined: 20th Aug 2003
Location: Back in the USA
Posted: 12th Jul 2011 16:51
Another excellent release by the Digg-man. The GUI is crisp and your code is very clean. Jimmy likey.

However, I am not a huge fan of the immediate mode method. It's great for creating GUI elements on the fly, but it quickly becomes a performance hit as all the little 2d draw calls add up. For example, when I take out two of the windows in your Tester program, it jumps up from ~300 FPS to ~800 FPS. I know it can be optimized, but, with this method, the more you optimize, the more it becomes a non-immediate solution. Don't get me wrong, I love the idea. I've been down the "immediate" road with my own GUI system, but when it came down to performance I had to revert to the old ways.

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 12th Jul 2011 17:01 Edited at: 12th Jul 2011 17:07
@Jimmy
That's still less than 3 milliseconds for the whole UI.

And your logic is flawed: the gui takes the same number of draw calls regardless of whether it is immediate mode or not. The only way to reduce it is to only redraw the changed regions like windows does, but windows uses GDI which for the most part is not even hardware accelerated.

If you want any sort of transparency in the UI you have to redraw the whole lot every frame anyway.

Quote: "the more you optimize, the more it becomes a non-immediate solution"


Immediate mode refers to the way it is called, not the way it is implemented. There are immediate mode GUIs which do only redraw changed regions, it doesn't make them any less an immediate mode GUI.

[b]
Jimmy
20
Years of Service
User Offline
Joined: 20th Aug 2003
Location: Back in the USA
Posted: 12th Jul 2011 17:46
Quote: "Immediate mode refers to the way it is called, not the way it is implemented. There are immediate mode GUIs which do only redraw changed regions, it doesn't make them any less an immediate mode GUI."


I understand that. I'm just going off of the definition of immediate mode given in the video you shared on the google code page. His intent was to create a system that eliminated init-time GUI creation and callbacks, and I assumed that was your goal with this project based on the way it was coded.

Quote: "And your logic is flawed: the gui takes the same number of draw calls regardless of whether it is immediate mode or not. The only way to reduce it is to only redraw the changed regions like windows does, but windows uses GDI which for the most part is not even hardware accelerated."


Right, and that is what I was getting at. Redrawing only the changed regions, or just the active window as I do in my GUI system, is faster than what I thought was intended by your system. Just some confusion regarding intent, that's all

Quote: "If you want any sort of transparency in the UI you have to redraw the whole lot every frame anyway."


Not true if your render target is an image.

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 12th Jul 2011 20:17
I've made it cache all the text in images now, reducing the time for the UI from ~2.5ms to ~1.5ms.

[b]
Gil Galvanti
19
Years of Service
User Offline
Joined: 22nd Dec 2004
Location: Texas, United States
Posted: 13th Jul 2011 04:02
Looks really nice, about to download it and try it out. I've been writing my own GUI toolset for internal use with my engine/editor, but it's not near as nice or as featured as yours (only has button, label, inputbox, checkbox, and tree so far), but I'll download yours and see if I can steal any good ideas from it .


WLGfx
16
Years of Service
User Offline
Joined: 1st Nov 2007
Location: NW United Kingdom
Posted: 13th Jul 2011 05:15 Edited at: 13th Jul 2011 05:17
Looks brilliant!

Will you be implementing a spinner control and a buddy control similar to the WinApi Spinner control? It would be great if that was implemented. Even if not then the slider/scrollbar controls and a tad more code would do the job.

Warning! May contain Nuts!
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 13th Jul 2011 12:12
Looking good Diggsey. My new motto is Don't Make Games, Make GUIs (Gameworld User Interactivity Systems).

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 13th Jul 2011 16:31
Added spinners to the to-do list

[b]
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 15th Jul 2011 09:39
@ Diggsey,

Good to hear about textured panels and then menus...

I was thinking about combo boxes as well as list boxes - but really they aren't a biggy. What would be really good would be say TreeView panel but with small 'icons' for each node - was thinking how helpful that might be for RTS or RPG among other things....

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Shando69
FPSC Reloaded TGC Backer
14
Years of Service
User Offline
Joined: 3rd Jan 2010
Location: Redland Bay, QLD, Australia
Posted: 15th Jul 2011 10:33
Hi Diggsey,

Great looking stuff

Just wondering how easy it would be to have vertical scrolling text in a window?

Thanks & keep up the good work

Shando

Love Hope Strength (Further details: http://www.lovehopestrength.co.uk/)

One Cancer Centre in every Country, One Concert at a Time
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 15th Jul 2011 14:03 Edited at: 15th Jul 2011 17:49
@Duffer
A treeview would be quite a lot of work. I'll leave that until I've done the more basic controls.

@Shando69
You can already make a scrollable window with a label on. Labels can have multi-line word-wrapped text already. Just set the client size of the scrollable window to the height of the text.

I've nearly finished comboboxes. They've been a bit more work because I've had to add a new system called "overlays" which appear above everything else. It's used for the drop-down part of a combobox and will be very useful for menus and things.

It works by drawing to a separate image and then drawing those images to the screen in guiUpdate. This has the added benefit of allowing fade-in or expand animations on drop downs and menus.

edit:
Updated first post. Comboboxes are now supported

[b]
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 15th Jul 2011 21:07
@ Diggsey,

Fair 'nough re treeview - any anyway this is an excellent piece of kit as it is. Thanks for combo boxes.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Shando69
FPSC Reloaded TGC Backer
14
Years of Service
User Offline
Joined: 3rd Jan 2010
Location: Redland Bay, QLD, Australia
Posted: 16th Jul 2011 00:11
@ Diggsey,

OK, I'll give it a go

Thanks

Shando

Love Hope Strength (Further details: http://www.lovehopestrength.co.uk/)

One Cancer Centre in every Country, One Concert at a Time
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 16th Jul 2011 19:34 Edited at: 16th Jul 2011 19:56
I've encountered a bit of a snag. After loading all the .dba files except tester.dba, I put this code in my program...



When I compile, I get the error "Runtime Error 118 - Array does not exist or array subscript out of bounds at line 471" with line 431 of TopGui.dba highlighted.



Is there other code I need to add besides just calling guiButton()?

EDIT: After looking through TopGUI.dbpro, I added



and now the error highlighted is



so I'm sure I'm not doing it right.

Further EDIT: Okay, I'll put in the update command, thanks!

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 16th Jul 2011 19:43
You need to call guiInit() before any other command, and you need to call guiUpdate() immediately before the sync.

[b]
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 16th Jul 2011 20:15
Meh, still not working. Here's the sum of my code...



Still throwing the error on that line in my above post.

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 16th Jul 2011 20:34
Add these lines to guiInit:


I hadn't tested something that simple before

[b]
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 16th Jul 2011 20:40
Thanks, that did the trick!

Onward!

BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 17th Jul 2011 20:37
This looks like a fantastic addition to my own GUI, thanks Diggsey. Although I am going to have to mutilate your code - I already use guiInit() and guiUpdate() for my own

Can I add my support for the slider request please!

Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 18th Jul 2011 07:48 Edited at: 20th Jul 2011 15:48
Diggsey - I'm trying to understand each GUI control by itself, before I start putting them all together. How does one get the selected button for a set of radio buttons?

EDIT: Bypassing GEN_ID and using hard values seems to work, but is that the way to do this?



This also seems to work, and may be more in keeping how TopGUI operates...



Quote: "You can do that. Alternatively you can put the IDs in a variable first and then compare against those variables."


HAH! I really did think of that before you mentioned it, but you ninja'd in before I could edit!

I like the part about subtracting the first index to get the button though!

So it becomes:



Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 18th Jul 2011 15:17 Edited at: 18th Jul 2011 15:22
You can do that. Alternatively you can put the IDs in a variable first and then compare against those variables.

Possibly the best way is to use GEN_ID to generate an ID and store it in a variable, then use increments of that value for the successive IDs. That way you can simply subtract the original ID to get the index of the selected control.

GEN_ID works by finding the address in memory of the current assembly instruction and shifting it left by 12 bits. That way the same GEN_ID will always return the same value, but each one is guaranteed to be unique. INDEX_ID works the same as GEN_ID but adds an index.

CHILD_ID and CHILD_INDEX_ID work similarly, but they also incorporate a parent ID into the value. They are usually not needed, but would be used if a control needs to use another control as part of itself, without the calling code supplying another ID. (For example the scrollbars on a scrollable window, listbox or combobox)

[b]
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 19th Jul 2011 04:00
Feature request: how about another parameter for the textBox... password. Zero for normal text box, one means everything you type is displayed as asterisks. Also maybe a third type, where the last leter is displayed, but all the previous are asterisks. Like if you're typing abcdef it displays as a, then *b, then **c, then ***d, then ****e, then *****f, like that.

Blobby 101
17
Years of Service
User Offline
Joined: 17th Jun 2006
Location: England, UK
Posted: 19th Jul 2011 23:15
I get an Array out of Bounds or Array does not exist error when compiling, it points to this line in the TopGUI.dba file:


any ideas?

Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 19th Jul 2011 23:29
Blobby 101 - read the whole thread. Try the answer Diggsey posted up above.

Blobby 101
17
Years of Service
User Offline
Joined: 17th Jun 2006
Location: England, UK
Posted: 19th Jul 2011 23:32 Edited at: 19th Jul 2011 23:49
Ahh, thanks - I looked through the thread briefly but missed that - thanks!

One more thing, the buttons flicker - Is that normal?

EDIT: nevermind, I fixed the flickering

Stormwire
13
Years of Service
User Offline
Joined: 3rd Sep 2010
Location:
Posted: 20th Jul 2011 04:42 Edited at: 20th Jul 2011 04:43
This is excellent thanks! I have been messing with it for awhile now and it is very easy to get buttons up without too much code. Really handy
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 20th Jul 2011 12:55
Sorry for so few updates recently, but I'm going away for a week for the IOI, and have been busy practising and getting ready. Anyone else from these forums going?

[b]
Blobby 101
17
Years of Service
User Offline
Joined: 17th Jun 2006
Location: England, UK
Posted: 20th Jul 2011 13:46 Edited at: 20th Jul 2011 14:53
This is really good, just wondering if there's a command list or and kind of documentation for this?

edit: or if not, what should I be using for the callbackptr in textboxes? I can't get them to let me type in them.

Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 20th Jul 2011 15:23 Edited at: 20th Jul 2011 15:28
I've been playing with each TopGUI element, and writing a sort of mini-user-guide as I go along. If it's okay with Diggsey, I'll post it here when I've got it ready. As far as textboxes, here's a basic example....



@Diggsey - good luck at the IOI, and the "tasks which will squeeze the last drop of ability from your brains."

I've also been playing around with different logo treatments for TopGUI, just for fun. Here's one of them...




Attachments

Login to view attachments
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 21st Jul 2011 00:38
@ Rich,

As with the Advanced2D v grateful if you create .ini/help files to accompany the dbas/functions on TopGUI.

Wouldn't mind seeing some panels with textures etc. Will have a go myself tomorrow...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 21st Jul 2011 22:22
Since Diggsey made TopGUI so easy to mod, here's a control called "PicButton" that makes a button with a picture on it.



A DBPro project is attached.

Attachments

Login to view attachments
Shando69
FPSC Reloaded TGC Backer
14
Years of Service
User Offline
Joined: 3rd Jan 2010
Location: Redland Bay, QLD, Australia
Posted: 22nd Jul 2011 09:10
@ Diggsey,

Is there any way that I can create a Label with specific text & background colours?

The reason I ask is that each player in my game has their own colour and I would like the scores to be displayed in boxes with the Players' colours as the background.

Thanks

Shando

Love Hope Strength (Further details: http://www.lovehopestrength.co.uk/)

One Cancer Centre in every Country, One Concert at a Time
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 22nd Jul 2011 14:25 Edited at: 22nd Jul 2011 20:38
Shando69 - you can draw a box behind a label in any color you like, either with DBPro's native box command, or with Advanced 2D's a2Box and a2FillBox commands. And the guiLabel function includes a parameter for the text color of the label. But, unless you are putting the labels in a window, you can also just use the a2D text commands.

Here's an example with TopGUI



and here's a very basic scoreboard display...



Left-click to drag the scoreboard around, right-click to change up the scores.

Shando69
FPSC Reloaded TGC Backer
14
Years of Service
User Offline
Joined: 3rd Jan 2010
Location: Redland Bay, QLD, Australia
Posted: 23rd Jul 2011 00:46
@ Rich,

Thanks for that buddy It's just what I'm looking for.....

I haven't really delved into the Advanced2D stuff, so I think I'd better take a good look now to see what else I've missed out on

Regards

Shando

Love Hope Strength (Further details: http://www.lovehopestrength.co.uk/)

One Cancer Centre in every Country, One Concert at a Time
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 26th Jul 2011 01:49
Here's another mod - this one is for text with shadows. The project files are attached.



Attachments

Login to view attachments
Stab in the Dark software
Valued Member
21
Years of Service
User Offline
Joined: 12th Dec 2002
Playing: Badges, I don't need no stinkin badges
Posted: 29th Jul 2011 23:57 Edited at: 5th Sep 2011 05:46
Very Nicely Done Diggsey

[img][/img]


WindowsXP SP1,Vista,Windows 7 DBpro v7.61
Stab In The Dark Editor
The coffee is lovely dark and deep,and I have code to write before I sleep.
thenerd
15
Years of Service
User Offline
Joined: 9th Mar 2009
Location: Boston, USA
Posted: 30th Jul 2011 01:25 Edited at: 30th Jul 2011 01:26
Very nice! I'm using top-gui to make a level editor:



Attachments

Login to view attachments
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 30th Jul 2011 21:32
@Rich Dersheimer
Nice contributions I've added your improvements to the button and label files. I changed PicButton to call ButtonLogic rather than PicButtonLogic since the logic should be the same.

@thenerd
It looks very professional so far Are you finding it easy to use?

[b]
Shando69
FPSC Reloaded TGC Backer
14
Years of Service
User Offline
Joined: 3rd Jan 2010
Location: Redland Bay, QLD, Australia
Posted: 31st Jul 2011 00:41
@Diggsey,

So far I've found it very easy to use (I'm using it in conjunction with Advanced2D to build my HUDs)

The only thing that I would really like to see is oval/circular buttons which would greatly improve my in-game HUD

I'll hopefully post some screenshots later.

Keep up the great work.

Shando

Love Hope Strength (Further details: http://www.lovehopestrength.co.uk/)

One Cancer Centre in every Country, One Concert at a Time
thenerd
15
Years of Service
User Offline
Joined: 9th Mar 2009
Location: Boston, USA
Posted: 31st Jul 2011 16:55
@Diggsey,

Definitely... it's very simple, which helps a lot. Now I can actually focus on coding the actual editor, rather than the UI.

I really can't think of anything that could be added at the moment...

Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 3rd Aug 2011 19:59
Welcome back Diggsey! How was IOI?

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 4th Aug 2011 02:16
IOI was good (although not as fun as last year). Got another bronze medal I was hoping for a silver but I completely messed up on the first day. I came in the top 60 on the second day though and so just managed to scrape a medal...

[b]
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 4th Aug 2011 23:52
The latest stable release is now revision 25!

This update includes the picture buttons and shadow labels created by Rich Dersheimer, as well as context menus! Context menus are really easy to use, and they can be used for drop downs on buttons and things as well as for right-click menus.

Normal menus are on the way

[b]
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 5th Aug 2011 01:02 Edited at: 5th Aug 2011 01:03
Quote: "Got another bronze medal"


Grats!

Quote: "The latest stable release is now revision 25!"


I just tried a context menu, and it didn't seem to work very well. I right clicked while running the new project, and I can see the shadow of the menu, but no background color or text on it.

Anyway, I'm using TopGUI on a WIP right now, and it's saving me a ton of time. Here's a sneak-peek screenshot, I'll put up a video in the WIP thread soon.



Attachments

Login to view attachments
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 5th Aug 2011 03:15
Quote: "I just tried a context menu, and it didn't seem to work very well. I right clicked while running the new project, and I can see the shadow of the menu, but no background color or text on it."


Does the context menu work in Tester.dba?

Nice screenshot, I see you've changed the colours. I should probably put the colour values in constants so they can be changed more easily.

[b]
Rich Dersheimer
AGK Developer
14
Years of Service
User Offline
Joined: 1st Jul 2009
Location: Inside the box
Posted: 5th Aug 2011 04:35 Edited at: 5th Aug 2011 04:42
Quote: "Does the context menu work in Tester.dba?"


That's what I tested, and I just see the shadow. I'm not entirely sure I have a clean install, though, so I'll try again.

Quote: "I should probably put the colour values in constants so they can be changed more easily"


Yah, that's what I did, at the start of TopGui.dba - is that the best place?

EDIT: here's a screenie of what I'm seeing - this is with a clean unpack of TopGui_r25.zip. It looks the same if I right click on any of the window areas or the background.



Attachments

Login to view attachments

Login to post a reply

Server time is: 2024-04-16 23:20:26
Your offset time is: 2024-04-16 23:20:26