Custom UI

Where i can change color from widgets, buttons and panels ? Where i am to able to change in source code ? in folder editors or windowmanager ?

File / User Preferences / Themes

No i mean to programming in C, how to do it to make look and feel ?

Thank you.

I am studying the exact same thing and I am still on my first steps, region.c seems to have a lot of functionality with drawing including regions that contain the GUI. GHOST is the main API that sits on top of OpenGL and draws the GUI.

The rest is the usual suspects if you ever done this from Python, spaces, windowsmager , windows etc. All those are internal to Blender and are found in intern folder.

I suggest starting your debugger after you add a breakpoint in WM_MAIN.c which basically contains the infinite loop for the windows manager that handles the events (mouse, keyboard etc) and drawing and then step into the functions that you may suspect are related to drawing , the code is very big but is not that hard to figure out.

Although , as its more than often is the case, it could use more comments to help beginners like us.

But so far, building in Visual Studio and using its debugger has proven very helpful, make sure you also examine the variables and watch how they change.

The GUI is not designed to accommodate for high customisation , apart from themes and the usual user customsiation. So dont expect much. But obviously like anything can be extended , which is what I plan to do with my own fork of Blender.

OK thank you kilon, i will study this code from Blender UI, there are folder editors and windowmanager work on UI too.

Good luck for your fork, what is your plan ? are you more specific or more general change other UI based on your “stuff” ?

I try to think small cause coding usually takes more time that one would expect.

So far my goal is to introduce a very simplified UI that will be based loosely on the concept of pie menus. That’s the short term goal , the long term goal is to make Blender overall much easier to use and making it fully operable from only the viewport. Including things usually not related to the Viewport like image editing etc. All that under the scope of reducing the UI which means sacrificing features and power for the shake of ease of usage.

Of course I wont be replacing anything, I will keep Blender as is, I will just introduce additional ways to work with it. This way the user could drop down to his or her normal Blender usage when the simplified UI does not cut the cake.

Basically an addon like fork. Small, elegant and useful. So essentially a mini fork :slight_smile: