[Bf-interface] GUI redesign - Call for Participation ;)

Campbell Barton ideasman42 at gmail.com
Wed Jun 10 18:15:17 CEST 2015


On Thu, Jun 11, 2015 at 12:12 AM, Julian Eisel <eiseljulian at gmail.com> wrote:
> Hey all!
>
> I guess most of you already noted that I was working on a graphical
> redesign branch for a couple of days now. So far this was mostly
> fooling around since we discussed a lot about many things but didn't
> make many desicions. So currently I've implemented a mixture of
> different proposals/styles.
>
> Main changes so far:
> * "Interface Style" option to toggle between old "Classic" style and
> new "Flat" style
> * Implemented a Sub-Button pipline for widget rollover feedback (Task:
> https://developer.blender.org/T38070) but can be used for much more
> * New panel design (Task: https://developer.blender.org/T41261)
> * Improved Menu/Popup design
> * More flat widget drawing (disabled outlines, emboss and shading -
> Task: https://developer.blender.org/T38037)
> * Increased default DPI to 78 (was 72), decreased font sizes
> * New Area/Region edge design, also added a theme color option for it
> (mainly for testing)
> * Thinner scrollbars
> * Theme option for widget corner roundness (mainly for testing, don't
> think we should have that in master TBH - based on an old patch from
> Pablo)
> * New checkbox button design
>
> Some screenshots of the current state of the branch:
> * Full default screen: https://developer.blender.org/F188930
> * Sub-buttons widget rollover (.gif) https://developer.blender.org/F187781
> * New menu design: https://developer.blender.org/F185707
> * "Interface Style" menu: https://developer.blender.org/F188942
> * "Classic" style: https://developer.blender.org/F188937
>
> Up till now, I've mostly worked on my own, asking Pawel for new ideas,
> feedback and mockups now and then, but think at this point it would be
> good to join forces on this (at least the UI team).
> First some general feedback on status quo would be good, but then we
> should start looking into some details, make desicions and also work
> on the new default theme(s).
> The exact branch name is UI-graphical-redesign btw, but the
> UI-experiments branch is in sync with it.
>
> So! I see this as a good chance to prove (find?) the power of the UI
> team and as a good warm up project for more, hope we can get something
> done :)
>
> Cheers,
> - Julian -

Hi, I checked the branch and the main concern I have with the code so
far is that flat/classic are basically tweaks to the same UI style.

Thats fine if all we want is some subtle variation, on a similar base.

The reason I think this could become a problem is the further we push
each button style with this method, we basically mix all theme code in
the same code-path (with a bunch of conditional checks all over)...
which becomes hard to maintain.
Even if it seems OK for the time being... areas like this tend to grow
over time. (each time adding some button style option seems OK... but
after a year or two we have spaghetti code - where fixing an issue
with one style easily breaks another).


I think it would be better to split the styles up in the code into
distinct types (a little like we have for modifiers, customdata,
DerivedMeshe ... already).

uiWidgetStyle {
    draw_operator();
    draw_number();
    draw_slider();
    draw_text();
    draw_label();
    draw_color();
... etc ...
};

... then each widget can define its own callbacks and they don't have
to share any logic with each-other (they can of course share some
lower level utility functions too if it makes sense).

----

Irrespective if we go ahead with button style code, I think it would
be good to start out with at least 2x extra distinct styles,
(different enough that we can verify the style system works well).

As an example... the Rounded and Minimal styles from 2.4x would be an
OK test-case.
http://download.blender.org/ftp/ideasman42/pics/blender_24_rounded_minimal.png

While you could pick other examples, the point is to show a working
style system. The actual design work can be done separately.


More information about the Bf-interface mailing list