this is probably just a quick and easy question. i have a sub class of component with its own overriden paint function drawing an image. this sub class also contains a label which i have called addAndMakeVisible, but it doesn’t show up. do I need to explicitly call its paint function in the paint function of the component sublcass that owns it?
some code in case i havent explained it well.
#ifndef _AUROROTARY_
#define _AUROROTARY_
#include "../JuceLibraryCode/JuceHeader.h"
class AuroRotary: public Component
{
public:
AuroRotary(){}
AuroRotary(String name);
void mouseDown(const MouseEvent &event);
void mouseDoubleClick (const MouseEvent& event);
void paint(Graphics &g);
void resized();
private:
Label valuebox;
Font testFont;
};
#endif
#include "AuroRotary.h"
AuroRotary::AuroRotary(String name):Component(name),valuebox("","slider")
{
int i = 0;
testFont.setTypefaceName("Arial");
testFont.setHeight(12);
valuebox.setFont(testFont);
valuebox.setColour(Label::ColourIds::textColourId, Colours::white);
valuebox.setEditable(true);
addAndMakeVisible(&valuebox);
}
void AuroRotary::resized()
{
valuebox.setBounds(20,20,50,50);
}
void AuroRotary::paint(Graphics &g)
{
Image myStrip = ImageCache::getFromMemory (BinaryData::knob2w65horiz_png, BinaryData::knob2w65horiz_pngSize);
g.drawImage(myStrip, 0, 0, 64, 64, 0, 0, 64, 64);
}
class SlidersAudioProcessorEditor : public AudioProcessorEditor
{
private:
AuroRotary testRotary;
...
};
#include "PluginProcessor.h"
#include "PluginEditor.h"
//==============================================================================
SlidersAudioProcessorEditor::SlidersAudioProcessorEditor (SlidersAudioProcessor* ownerFilter)
: AudioProcessorEditor (ownerFilter)//,valuebox("","sliders")
{
setSize (400, 300);
addAndMakeVisible(&testRotary);
}
void SlidersAudioProcessorEditor::resized()
{
testRotary.setBounds(0,0,65,65);
}
//==============================================================================
void SlidersAudioProcessorEditor::paint (Graphics& g)
{
g.fillAll (Colours::white);
g.setColour (Colours::black);
g.setFont (15.0f);
}