Slider missing


#1

Hey all,

I feel very stupid asking these questions but I can’t see my mistakes. I am new to Juce, my C++ is rusty, and trying to create a simple gain app on my own (recipe for disaster? maybe). I’ve been comparing my code to the JuceDemo and it all “appears” to be similar. However, when I load the plugin into a host prog, all that is displayed is whatever is in the paint() function which is just a background colour right now.

Problem#1:
No slider to be found :frowning:
I used the function : addAndMakeVisible() and nothing is showing up. Is there anything else I should be using to make this visible? I was thinking maybe its under the background somehow?

Problem #2:
I also was having compile problems with this constructor to begin with. The only way this is compiling is if I have the constructor with one param (TestGainAudioProcessor*) which isn’t used in this constructor at all. If I make it a default constructor (zero params) and leave the implementation as follows (minus the param in the brackets and the AudioProcessorEditor constructor call), then I get a compile error = error C2512: ‘juce::AudioProcessorEditor’ : no appropriate default constructor available. Right now to me this seems like a shotty way of getting my project to compile. If anyone may know why I can’t override the default constructor without a problem that would be cool.

[code]TestGainAudioProcessorEditor::TestGainAudioProcessorEditor(TestGainAudioProcessor* ownerFilter)
: AudioProcessorEditor (ownerFilter),
gainSlider(“Volume”),
gainLabel("",“Volume”)
{

addAndMakeVisible (&gainSlider);
gainSlider.setExplicitFocusOrder (2);
gainSlider.setRange (0, 10, 0);
gainSlider.setSliderStyle (Slider::LinearVertical);
gainSlider.setTextBoxStyle (Slider::TextBoxAbove, true, 0, 0);
gainSlider.setColour (Slider::backgroundColourId, Colour (0xa16262));
gainSlider.setColour (Slider::thumbColourId, Colour (0xff242445));
gainSlider.setColour (Slider::trackColourId, Colour (0x7f724a4a));
gainSlider.setColour (Slider::rotarySliderFillColourId, Colour (0x7f4f4fd3));
gainSlider.setColour (Slider::rotarySliderOutlineColourId, Colour (0x70030b41));
gainSlider.setColour (Slider::textBoxBackgroundColourId, Colour (0xff36709c));
gainSlider.setColour (Slider::textBoxHighlightColourId, Colour (0x406969e6));
gainSlider.setColour (Slider::textBoxOutlineColourId, Colour (0xb236129c));
gainSlider.setAlwaysOnTop(true);
gainSlider.addListener (this);

addAndMakeVisible (&gainLabel);
gainLabel.setFont (Font ("Cambria", 20.0000f, Font::plain));
gainLabel.setJustificationType (Justification::centredTop);
gainLabel.setEditable (false, false, false);
gainLabel.setColour (Label::textColourId, Colour (0xfff5f0f0));
gainLabel.setColour (TextEditor::textColourId, Colours::black);
gainLabel.setColour (TextEditor::backgroundColourId, Colour (0x0));
gainLabel.setColour (TextEditor::highlightColourId, Colour (0x40d0d0da));

setSize (150, 290);

/* //OLD CODE

    setSize (150,300);

//add slider
gainSlider.setSliderStyle(Slider::LinearVertical);
gainSlider.addListener(this);
gainSlider.setRange(0.0, 1.0, 0.01);
gainSlider.setVelocityBasedMode(true);
gainSlider.setVelocityModeParameters(1,1,0.0, false);
addAndMakeVisible(&gainSlider, 1);
//add labels for sliders
gainLabel.attachToComponent(&gainSlider, false);
gainLabel.setFont(Font(10.0f));

*/

}
[/code]

I hope I’ve provided enough information. If someone could show me what I’m doing wrong (or not doing at all) that’d be great!
Thanks,


#2

You don’t seem to be giving your slider a size or position…


#3

Thanks!
I was looking in the Slider class and Graphics class for something like that earlier. Didn’t even think about the functions it had by inheritance.
I am a little rusty :frowning: Sorry!

Thanks again! I appreciate it!


#4

Try using the jucer to make some controls, then you can see what it does. Since it generates C++, you don’t need to use the result, you can just copy it or learn from it. Likewise, the jucedemo app.

Bruce