|
Brac
|
 |
« on: May 25, 2010, 10:11:23 AM » |
|
SQUID is a GUI System SDK for .NET languages and it's completely FREE! Recommended programming skill: ADVANCEDDownload here: www.ionstar.org Discuss here: Support Center SQUID Demo Application:- shows sample ISquidRenderer implementation using Truevision3D - shows (almost) all standard controls in action - shows how to define styles - shows how to easily pack your GUI textures into a single file and apply it - shows how to build more complex controls using SQUID (see SampleWindow.cs, ChatWindow.cs) - includes a simple XNA style game framework SQUID features are:- scale9 texture grid! - docking and anchoring with margin and padding - z-order, clipping, scissoring - hierarchical opacity - event handlers for mouse/keyboard input - international keyboard support - snapping windows - custom mouse cursors - control state fading - easy skinning via styles - texture UV mapping, texture packing - full scissoring control - automatic batching - it's fast! SQUID is a GUI blackbox, because:- it is engine independent - it doesn't draw anything, you do! (check the ISquidRenderer interface) Standard controls:- Button - CheckBox - ComboBox - FlowLayoutFrame - Frame - Label - ListBox - Resizer - Slider - SplitContainer - TextArea - TextBox - TreeView - VScrollbar - Window General Information:SQUID is essentially the next generation of what was formerly known as nUI. There is a whole pack of advanced features waiting to be enabled soon: - WYSIWYG editor and stylebuilder that loads/saves xml and can generate C# and VB.NET sourcecode - gui to render target (for display and interaction in 3D) - modal windows - tab index - cursors - tooltips - context menus - drag & drop Some of these are just fluff, simply because you could already implement them yourself. The API design is easy and straight forward: SQUID will remain free for non-commercial use!
|
|
|
|
« Last Edit: June 24, 2010, 01:40:42 PM by Brac »
|
Logged
|
|
|
|
allexandr
Community Member

Posts: 9
|
 |
« Reply #1 on: May 25, 2010, 11:10:41 AM » |
|
Nice  Where i can find manual about Squid? sorry for my bad english
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #2 on: May 25, 2010, 11:20:36 AM » |
|
Nice  Where i can find manual about Squid? sorry for my bad english The demo application sourcecode provides everything you need to get started. A full API documentation is not going to be available for some time. I will probably set up a Wiki instead.
|
|
|
|
|
Logged
|
|
|
|
Lenn
Customers
Community Member
    
Posts: 876
+/-
|
 |
« Reply #3 on: May 25, 2010, 12:32:45 PM » |
|
Looks great! And multiplatform, wow?  Thats a great feature set in the list but I only tested the login window and the listbox and node window. Having made a GUI myself i was bound to find some bugs.  -When you have multiple spaces in the text input box (ie "usern ame" instead of "username", when you press ctrl+left it stops at each space and not beginning of the word. -The checkbox highlighted and checked (on mousedown) is without an "X" whereas if you drag the mouse away and let it, it reappears. -If you make window1 resizable, and you drag the right side to be X = > text input box X and X < text input box X of beginning of text, the "username" is actually drawn outside of the window and floats out. These are really minor things tho, I just point them out in case you care. Otherwise, I wish you made this earlier, because if it supports skinning and image buttons I wouldn't have had to make my own.  Edit: I read the readme, and it's not exactly free?
|
|
|
|
« Last Edit: May 25, 2010, 12:40:25 PM by Lenn »
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #4 on: May 25, 2010, 12:35:36 PM » |
|
Will fix bug 1#
bug #2 is not a bug. when you mouseDown, drag away and release, the checkbox wont change state. that is working as intended (same with every control). the style for CheckedPressed is the same as UncheckedPressed for the checkbox (lazy me) btw, so its just a visual thing
bug #3 is also not a bug. if you want the window to scissor text, set the Scissor property to true.
SQUID is free for non-commercial use
Edit: Nevermind, bug#3 is valid. Fixing.
|
|
|
|
« Last Edit: May 25, 2010, 12:46:46 PM by Brac »
|
Logged
|
|
|
|
Lenn
Customers
Community Member
    
Posts: 876
+/-
|
 |
« Reply #5 on: May 25, 2010, 12:46:16 PM » |
|
Re #2, No I mean, the X is on the checkbox (it is checked) then I click it with mouse down and the X disappears, I drag away the mouse and let it go and the X appears.  It's really a minor thing I think nobody will notice. Oh and I addad a 3rd one in my previous post.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #6 on: May 25, 2010, 01:03:50 PM » |
|
Fixed bug#3, thanks for pointing that out Lenn. Updated archive is online.
|
|
|
|
|
Logged
|
|
|
|
Lenn
Customers
Community Member
    
Posts: 876
+/-
|
 |
« Reply #7 on: May 25, 2010, 01:13:26 PM » |
|
You're welcome. Here's one more  #4 - Docking. If window2 height > window1 height, then window2 will not snap to window1 if window2 Y position is smaller than window1 Y position by amount range from 0 to = window2.height - window1.height. Ie , if window2 is above window1 by any value smaller than their height difference, it wont snap on the side.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #8 on: May 25, 2010, 01:15:40 PM » |
|
You're welcome. Here's one more  #4 - Docking. If window2 height > window1 height, then window2 will not snap to window1 if window2 Y position is smaller than window1 Y position by amount range from 0 to = window2.height - window1.height. Ie , if window2 is above window1 by any value smaller than their height difference, it wont snap on the side. already fixed
|
|
|
|
|
Logged
|
|
|
|
|
Aki
|
 |
« Reply #9 on: May 25, 2010, 02:23:52 PM » |
|
Very cool! If I ever get around to using those types of UI elements, would definitely give it a more thorough look.
Quick (minor) bug:
If Window 2 has focus, and I click on a listbox in Window 1, Window 2 maintains focus, never swapping to Window 1.
Also, I'm sure there's a threshold const for window drag snap, but you might want to turn it down by default.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #10 on: May 25, 2010, 03:04:13 PM » |
|
Very cool! If I ever get around to using those types of UI elements, would definitely give it a more thorough look.
Quick (minor) bug:
If Window 2 has focus, and I click on a listbox in Window 1, Window 2 maintains focus, never swapping to Window 1.
Also, I'm sure there's a threshold const for window drag snap, but you might want to turn it down by default.
Fixed the window problem you described. Lowered snap distance to 12 (can be changed on the window) Changed Window#1 to resizable=true. Anchored the controls in Window#1 to show what it does.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #11 on: May 25, 2010, 06:24:47 PM » |
|
updated the download and first post. added a ChatWindow control to demonstrate how you can build more complex controls using this library.
|
|
|
|
|
Logged
|
|
|
|
allexandr
Community Member

Posts: 9
|
 |
« Reply #12 on: May 26, 2010, 03:48:18 AM » |
|
Very good GUI. Large Live thanks to the author. I hope the project will live:)) And wait WIKI
|
|
|
|
|
Logged
|
|
|
|
allexandr
Community Member

Posts: 9
|
 |
« Reply #13 on: May 26, 2010, 07:23:58 AM » |
|
bug# mouse can not select text in the textbox. Only when you double-click on the button.
|
|
|
|
|
Logged
|
|
|
|
allexandr
Community Member

Posts: 9
|
 |
« Reply #14 on: May 26, 2010, 07:26:36 AM » |
|
Nice GUI, thanks! I was unable to set mouse visible while running in full screen mode  I have this bug too.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #15 on: May 26, 2010, 07:38:12 AM » |
|
Nice GUI, thanks! I was unable to set mouse visible while running in full screen mode  SQUID does not draw any cursor. You can do this yourself easily. Also the windows cursor is invisible in fullscreen in TrueVision3D by default, just enable it again.
|
|
|
|
« Last Edit: May 26, 2010, 07:40:22 AM by Brac »
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #16 on: May 26, 2010, 07:39:23 AM » |
|
bug# mouse can not select text in the textbox. Only when you double-click on the button.
Yes you can select text in the textbox. Only when you first activate the textbox, the first click focuses it and the second click starts the selection. This is by design.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #17 on: May 26, 2010, 08:02:08 AM » |
|
If you are talking about Engine.ShowWinCursor(true) then it's forth to mention, that it actually doesn’t, help.
Well you have some more options. There is a) the SetCursor function in TVScene and b) you can just draw your own cursor. This is what you will eventually end up doing anyways, since the cursor in SQUID is just an integer. I'll add some cursor handling to the example today.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #18 on: May 26, 2010, 09:41:17 AM » |
|
Updated the sample with custom cursors. (see SampleDesktop.cs) Fixed WordWrap to TextWrap, breaking words where needed. Note that you can inherit Cursor and roll your own cursors (for animated cursors for example). The base cursor exposes all the properties needed (texture name, UV coords, hotspot, size) Using the UV coords right, you can also have all cursors in a single texture. It's up to you For those of you with fullscreen problems:If you tested this using the sample application, make sure pass the window handle to the InitFullscreen call. Here is how you do it right: Engine.Init3DFullscreen(1920,1200, 32,true,false, CONST_TV_DEPTHBUFFERFORMAT.TV_DEPTHBUFFER_BESTBUFFER, 1,Window.Handle);
|
|
|
|
« Last Edit: May 26, 2010, 09:52:53 AM by Brac »
|
Logged
|
|
|
|
|
DanDixon
|
 |
« Reply #19 on: May 27, 2010, 01:05:40 PM » |
|
Congrats Brac on this release. While it's not obvious, this is essentially version 2 of his previous and quite excellent UI library nUI. I currently use nUI in Universe Sandbox (which is very UI heavy) and am definitely looking forward upgrading to SQUID in the next few weeks. You can get the free version and a 60 minute trial of the premium version of Universe Sandbox 2 here: http://universesandbox.com/Great work Brac.
|
|
|
|
|
Logged
|
|
|
|
|