LookAndFeel requests

http://www.rawmaterialsoftware.com/viewtopic.php?f=2&t=6082

I need a configurable ToggleButton::tickColourID , because with a dark background i doesn’t look good.

[attachment=0]tickColour.png[/attachment]

I am trying to use the Look and Feel classes to draw a custom knob on a slider (currently vertical only). The problem I am experiencing is that the button I will use is graphically larger than the circle button used in the standard slider. When it is moved to it’s top position (and at the bottom too) the button overshoots the external bounding box of the slider. I would be really useful to be able to specify a margin to create this extra space rather than have the slider just expand to fill the available space.

Ha, Ha, in the process of writing this it hit me!

L+F::getSliderThumbRadius is there specifically for this. Solved, but I’ll leave this here for others to stumble upon. Calling it a radius threw me as my graphical object is not round and I was thinking in boxy terms.

[attachment=0]sliders.png[/attachment]

There should be a setting that sets native window title bars for dialogs and document windows as a general L&F preference. Just the same way as it works for alert windows.

IMO it is a general UI design decision whether to use native window decorations, or custom frames. Mixing them in the same app does not make sense.

As C++ does not allow the extension or modification of existing classes, I find it quite frustrating to copy/paste a lot of Juce GUI code (entire classes at times) into my project, just to be able to force native window decoration.

Hi Jules,

As we operate in many os. Some work in Windows Xp , vista , 7 and in mac as well. Also with different themes. Its very difficult to create widget lookand feel for individual os and themes. Like simple button looks the same in all os.
My request would be to change the look and feel to support native look and feel. For all the themes available for setting up the look and feel.
So need to code for different os and themes. Application appear as per the os and theme.

Whats ur input on this?? I guess many would like to have this feature to come up??

regards,
Happy

Hi Jules,

Any Update on this. The feature will be similar to the following image. It shows the text button in Juce. The code should generate the button UI according to the OS.

This is just an example for button. Similarly we have to do it for combobox and other controls.

Yeah, that’s a very big ask! I am working towards a much more flexible look+feel system, as I’ve mentioned elsewhere, which will make it easier to build whatever skins you want, but until that’s ready I’ve no plans to spend any time changing the existing l+f code.

+1 for this request :slight_smile:

Two small requests for ComboBox, one L+F and one related…

  1. Is it possible to add a ComboBox::focusedOutlineColourId to change the outline color?

I’ve gotten around this in my CustomLookAndFeel right now by overriding LookAndFeel::drawComboBox and changing the first few lines from:

if (box.isEnabled() && box.hasKeyboardFocus (false))
    {
        g.setColour (box.findColour (TextButton::buttonColourId));
        g.drawRect (0, 0, width, height, 2);
    }
    else
    {
        g.setColour (box.findColour (ComboBox::outlineColourId));
        g.drawRect (0, 0, width, height);
    }

to:

if (box.isEnabled() && box.hasKeyboardFocus (false))
    {
        g.setColour (box.findColour (ComboBox::outlineColourId));
        g.drawRect (0, 0, width, height);
    }
    else
    {
        g.setColour (box.findColour (ComboBox::outlineColourId));
        g.drawRect (0, 0, width, height);
    }

In this way, the comboBox doesn’t highlight at all when clicked. The 2nd request (also changed above) is to stop the border thickness from changing as well… Is there already a way for me to achieve this that I’ve overlooked? It would be nice to not have to override this method in my L+F and just do simple setColour’s in my L+F. Thanks! drawComboBox is also dependent on LookAndFeelHelpers so it would be nice not to have to include that in my custom L+F as well… cheers!

Just like LookAndFeel:: setUsingNativeAlertWindows (), TopLevelWindow:: setUsingNativeTitleBar (), I think many people need these functions in LookAndFeel or other concerned classes.

setUsingNativeTextAppearance ();
setUsingNativeTextRendering();
setUsingNativeDefaultTypeface();
setFontSizeOfAllGUI (float scaleOfDefaultSize);
//...
setUsingNativeButton ();
setUsingNativeLable ();
setUsingNativeMenubar ();
setUsingNativeComboBox ();
setUsingNativeListBox ();
setUsingNativeToolBar ();
setUsingNativeScorllBar ();
setUsingNativeTextEditor ();

etc…

or derive a new class: NativeLookAndFeel.
//==========================================
About Slider class, should provide a function:

void setAppearance(
                const Path thumbShape, 
                const Colour tColour, 
                int tWidth = 10, 
                int tHeight = 20, 
                bool tShadow = true, 
                const Colour = Colours::black, 
                bool hasMesal = true,
                int slotWidth = 2, 
                bool hasScale = true, 
                int scaleInterval = 5, 
                Slider::scalePosOnRight );

Or decomposition into many small function.

Good request - but adding support for all those native widgets on all platforms would take weeks (or even months!) for me to do! So probably not something you can expect to see any time soon!

Hi Jules,

I would like to make the corners of my TabbedComponent more round.
Could you add something for this in LnF?

I suppose I will have to tune the paint routine of all the contentComponents it owns as well?

Hello Jules,
do you think you could add a DrawableButton::textOnColourId to the DrawableButton class to match the existing backgroundOnColourId?

Thanks!

Yes, will do.

This thread is getting a bit tired now, I think I’ll lock it down - please post any requests on new threads!