LinearBarVertical fill gradient is a vertical gradient (same orientation as the horizontal bar) which gives not the intended visual effect
POSTED http://www.juce.com/forum/topic/combobox-dropdown-x-error
when ComboBox dropdown options are dismissed i see the following error in terminal:
ERROR: X returned BadMatch (invalid parameter attributes) for operation X_ConfigureWindow
this occurs only if the dropdown options are dismissed by clicking elsewhere (not selecting an option) - the ESC key similarly dismisses the dropdown but does not produce ther error - this is reproducable 100% of the time
however there seems to be no ill effects of this
POSTED http://www.juce.com/forum/topic/documentation-error-array-class
PR https://github.com/julianstorer/JUCE/pull/24
documentation for Array::removeAllInstancesOf() is identical to Array::removeFirstMatchingValue() http://www.juce.com/api/classArray.html#adb629ebfbcba98f1f5e1ca47ccca594e
:::PR
documentation for void Desktop::addFocusChangeListener()
"Registers a MouseListener ... "<-- should be FocusChangeListener()
documentation for enum Component::FocusChangeType
"Enumeration used by the focusChanged() and focusLost() methods."
focusChanged() is not a link as is focusLost() - doxygen lists no such 'focusChanged' entity
however this enum is referenced by these methods (perhaps others?)
* virtual void Component::focusGained (FocusChangeType cause)
* virtual void Component::focusOfChildComponentChanged (FocusChangeType cause)
post
:::keyboard focus and desktop focus issues
right-click a textbox with right-click menu enabled gives the editor focus but does not present the menu unless the textbox already had keyboard focus
so that when the textbox does not already have keyboard focus the menu requires two right-clicks
a read-only textbox however does present the right-click menu on the first clcik
the expected behaviour with most text editors is to both give focus and present the menu for pasting - this is typically true even if the application itself does not have desktop focus
it seems that juce does not give keyboard focus to the editor even with a left click unless the juce application already has desktop focus - so that when using another applicattion then clicking into a textbox of the juce application give that appl desktop focus but the textbox does not get keyyboard focus and usually neither does the read-only textbox present the right-click menu in this case
the last behaviour ive noticed to be sporadic - sometimes the read-only textbox does indeed present the right-click menu when the app does not have desktop focus and sometimes it does not -and when it does not it sometimes actually gives keyboard focus to a sibling write-able textbox
post
the String(var) extraction operator does not compile on linux
considering a line such as:
String a_string = String(a_valuetree[an_identifier]) ;
this works properly on windows - execution goes through juce_Variant.cpp:486
var::operator String() const // juce_Variant.cpp:486
but on linux this is interpreted as a String class constructor and produces compile error "no valid conversion for String(var)" -
and suggest candidates such as String(w_char) - the .toString() method must be used instead in order to compile and get the string out of the var - but this is inconsistent with extraction of the other var types
String a_string = a_valuetree[an_identifier].toString() ;
i mention this because i assume this is intended to work on all platforms - as there are no corresponding .toBool(), .toInt(), etc i am using this macro for consistency
#ifndef _WIN32
# define str(a_var) a_var.toString()
#endif // _WIN32
post
error C2446 for Component in ternary expression
// win-> Error 17 error C2446: ':' : no conversion from 'juce::ScopedPointer<objecttype>' to 'juce::ScopedPointer<objecttype>'
Component component1 = (true) ? Gui->chat :
(true) ? Gui->login :
Gui->background ;
Component component2 = ((true) ? Gui->chat :
((true) ? Gui->login :
Gui->background)) ;
Component component3 = (Component) ((true) ? Gui->chat :
((true) ? Gui->login :
Gui->background)) ;
Component component4 = ((Component) ((true) ? Gui->chat :
((true) ? Gui->login :
Gui->background))) ;
Component component5 = (true) ? Gui->chat :
(true) ? Gui->login :
(Component)Gui->background ;
``
* post
unfocused juce app window intermittently steals focus away from other desktop apps (not yet determined which specific events cause this - if this occurs when the JUCE app is maximized it is brought to front of others - if this occurs when the JUCE app is not maximized it does not appear in front of others but nonetheless grabs keyboard focus - as a possibly related side note ive also noticed that when JUCE app is maximized it is in front of the LXDE taskbar and i must un-maximize it in order to see or access the taskbar</objecttype></objecttype>
post
howto set color of ComboBox dropdown options , "text when none selected" , and "text when no items" - none of the 5 ComboBox::ColourIds have an effect on them (backgroundColourId , textColourId , outlineColourId , buttonColourId , arrowColourId) - the documentation for ComboBox::ColourIds ends abruptly with "To change the colours of the menu that pops up ..." http://www.juce.com/api/classComboBox.html#aa2eff88125f77f8e278374e716202e6e
post
i had this strange memory alignment issue that took me a while to solve and was solved with some advice i got in the juce channel on freenode and i was asked to post it here on this forum in case it may be useful to jules
when calling a public getter methods in a library - the return value was that of the a different private member - specifically the one declared just before it (ints)
ive verified that the correct getter was being called but it really was returning the value at one int previous
there is a standard app that uses the same library that is behaved correctly when calling the same getters so i knew the problem was not with the library
after exhausting my personal c debugging faculties i decided to ask for help in some irc channels - i found the juce channels on freenode and although i did not suspect this as a juce issue i asked in there anyways and a user "pi-" suggested that i scrutinize the makefile of the standard client for this lbrary to note any flags that conflict with or were absent in the juce makefile and i found the solution therein - of all the channels i asked in i must give props to "pi-" because no one else suggested looking at the compiler flags
the makefile for the original client app had a check for 64bit like:
ifeq ($(MACH), x86_64)
OPTFLAGS += -fPIC
else
OPTFLAGS += -malign-double
endif
the word "align" there looked suspicious so i added -malign-double to the juce makefile and the external library then behaved correctly
// scrollbar snippets
ScrollBar scrollbar ;
void scrollBarMoved(ScrollBar* scrollBarThatHasMoved , double newRangeStart) override ;
addAndMakeVisible (this->scrollbar = new ScrollBar) ;
this->scrollbar.setRangeLimits (visibleRange) ;
this->scrollbar.setAutoHide(false) ;
this->scrollbar.addListener(this) ;
this->scrollbar.setBounds(getLocalBounds().removeFromBottom(14).reduced(2)) ;
void scrollBarMoved(ScrollBar* scrollBarThatHasMoved , double newRangeStart) override ;
void MixerComponent::scrollBarMoved(ScrollBar* scrollBarThatHasMoved , double newRangeStart)
{
if (scrollBarThatHasMoved == &scrollbar)
setRange (visibleRange.movedToStartAt (newRangeStart));
}