Jump to content
  • entries
    943
  • comments
    5,899
  • views
    924,400

The Amazing Draggable Checkable Multiselectable Multidimensional TreeView with Icons


Josh

7,083 views

 Share

Last week I compiled the engine into a DLL and a static lib. That was pretty painless, and I have the project set up so it's easy to switch back and forth. I still haven't got Code::Blocks compiling right, which I will need for the Linux build. It can't seem to find any libs, but it's not too important yet.

 

After altering the behavior of the MaxGUI canvas slightly, I was able to load the engine DLL in BlitzMax and display 3D rendering on a windowed application. It's very easy to do this in LE3:

gadget:Byte Ptr = CreateWindowsCustomGadget( QueryGadget(canvas,QUERY_HWND) )
context:Byte Ptr = CreateContext( gadget )

Or with C:

Gadget* gadget = CreateWindowsCustomGadget( HWND hwnd );
Context* context = CreateContext( gadget );

The editor is taking shape, though it is still very early. It feels like a cross between Visual Studio and Valve Hammer Editor (Worldcraft) which are both programs I like a lot.

blogentry-1-042685100 1289178915_thumb.jpg

I knew from the beginning the only acceptable way to display assets would be a draggable, multi-select treeview with icons. For the scene hierarchy, I wanted checkboxes and icons. I looked at ways to hack the Windows treeviews and I looked at wxWidgets, and didn't find anything suitable that would work on all platforms. At last resort, I started writing my own custom control on a graphics window, and I'm getting surprisingly good results with that. The behavior is about 60% functional now, and it's faster than the Windows tree view because it's completely hardware accelerated. The only problem is that the FreeType text does not match the Windows GUI font 100% completely, even though it's using the same font and size. I'll see if there's anything I can do to make it match more closely.

 

The reason I am spending so much time on this tree control is because drag and drop is used everywhere in the new editor. You can drag a texture onto a material, drag a material onto a model, rearrange nodes in the scene hierarchy, and even move files around on your hard drive. So it's not surprising if some customization is needed to support this functionality.

 

Knowing the kinds of things people want to do like copy all used assets into a folder ("Publish") and import a bunch of models they downloaded off the internets, it's kind of fun to design interfaces to make development easier. My goal for the LE3 editor is to have more of an established official procedure for everything, along with extensive documentation. I've gotten lots of feedback from some fantastic artists, so I know what will help them get a large project done faster.

 

That's all for now. I've got a lot to do!

 Share

16 Comments


Recommended Comments

It's looking great. I can't wait to get my hands on LE3. Any time frame on when we can expect an early adopter purchase option?

Link to comment

Very curious how smooth Leadwerks will make the process in the end. Will the editor detect changes to model/texture/physics/etc files since the window was last active and update the active world automatically? That would be pretty handy.

Link to comment

Very curious how smooth Leadwerks will make the process in the end. Will the editor detect changes to model/texture/physics/etc files since the window was last active and update the active world automatically? That would be pretty handy.

The editor already detects changes to all asset files in real-time and will reload them automatically.

Link to comment

I'm not a fan of the windows GUI look and prefer a dark theme so my eyes don't get distracted from the viewport or just get tired of the white after looking at the screen for hours.

 

But on the other hand its a good decision from the development point of view. Why invest time into a custom look with colors if there is also a GUI?. :blink:

 

 

I like the overall concept and drag/drop stuff and realtime monitoring of changed assets. This will save me quite some hours in a project or research stage.

Link to comment

Just as an addendum to Michael Betke's comment about a 'dark theme'. Whilst I don't disagree with Michael's point please, for the love of god, do not create some odd-assed custom GUI that doesn't conform the the global theme of an OS. Based on the screenshot it looks like you've already thought of that, but I just want to be sure. :blink:

Link to comment

I agree with DJDD. Nothing is more annoying than an application that a stuff GUI. The default GUI is fine for applications like these.

Link to comment

It will use the native GUI on each OS. If you do not like that, your complaint is with your OS, and you should get a Mac. :blink:

 

Seriously though, back in the XP days I thought for sure the next logical step would be more customization so you can make dark themes that actually look good, and allow each window to control its own colors, but then Steve Ballmer came along and blinged the OS up.

Link to comment

Although...

 

Since the most complex controls have to be created from scratch to get them to do what I want, it would be fairly simple to code the simpler ones like buttons, and have complete control of the color scheme...

Link to comment

The editor already detects changes to all asset files in real-time and will reload them automatically.

Sweet! :blink:

 

So very excited about this, even though my actual game-making skills are very very minimal. I like even just to have such a powerful tool at my fingertips and to explore and play with everything it can do.

 

I can't wait to use the new water & the pathfinding and having my friends join in some silly networked game I make.

Link to comment

Sweet! :blink:

 

So very excited about this, even though my actual game-making skills are very very minimal. I like even just to have such a powerful tool at my fingertips and to explore and play with everything it can do.

 

I can't wait to use the new water & the pathfinding and having my friends join in some silly networked game I make.

 

I'm also excited about this! No more closing the editor to update the files!

Link to comment

Looking good. I once challenged me to try to recreate the ZBrush UI, a real inspiration :blink:. I didn't got far... As for a black theme, I think that isn't a must. Most of your window will be scene (I guess). In 3DsMax, everywhere you look you see GUI. In that case black theme, or let's say dark theme is a good idea.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...