I am not a C++ programmer, but most of my time is C/ObjC and scripting languages. However, I want to port a program from Windows to the Mac and it was developed using JUCE, so it seems it should be workable.
I checked out a copy of JUCE and have run into some errors that I need help understanding.
The first, which has several variants, but is like this:
/JUCE/src/gui/components/properties/juce_TextPropertyComponent.h: In constructor 'EPC_Text::EPC_Text(const juce::String&, int, int, EditorProperty::EType)': /JUCE/src/gui/components/properties/juce_TextPropertyComponent.h:92: error: 'juce::Label* juce::TextPropertyComponent::textEditor' is private /APP/EditorPropComps.cpp:112: error: within this context
Line 112 of EditorPropComps.cpp is:
I can “fix” this by making a change to juce_TextPropertyComponent.h by putting this line in the public section instead of private:
There are others:
error: 'juce::ComboBox* juce::ChoicePropertyComponent::comboBox' is private error: 'double juce::Slider::constrainedValue(double) const' is private
And, one other type of error… This one:
error: 'juce::ComboBoxListener' is an inaccessible base of 'EPC_Choice'
Because EPC_Choice is declare as:
class EPC_Choice : public EditorProperty, public ChoicePropertyComponent
But apparently from “ChoicePropertyComponent”, the inheritance of the needed class “ComboBoxListener” is private, and thus is not available to EPC_Choice when it tries to do an ->addListner(this). I can “fix” this error by making the inheritance of ComboBoxListener Public in ChoicePropertyComponent.
I hope this makes sense. I am sure there are reasons in the JUCE framework for these changes (assuming it has changed from the version the author used), or that it is a difference between using Microsoft’s compiler versus g++ as I am on the Mac.
Anyone able to shed some light on this for me? And what is the best way to resolve these issues?