@@ -55211,8 +55211,6 @@ private: | |||
TreeView::TreeView (const String& componentName) | |||
: Component (componentName), | |||
rootItem (0), | |||
dragInsertPointHighlight (0), | |||
dragTargetGroupHighlight (0), | |||
indentSize (24), | |||
defaultOpenness (false), | |||
needsRecalculating (true), | |||
@@ -55230,8 +55228,6 @@ TreeView::~TreeView() | |||
{ | |||
if (rootItem != 0) | |||
rootItem->setOwnerView (0); | |||
deleteAllChildren(); | |||
} | |||
void TreeView::setRootItem (TreeViewItem* const newRootItem) | |||
@@ -55691,8 +55687,8 @@ void TreeView::showDragHighlight (TreeViewItem* item, int insertIndex, int x, in | |||
void TreeView::hideDragHighlight() throw() | |||
{ | |||
deleteAndZero (dragInsertPointHighlight); | |||
deleteAndZero (dragTargetGroupHighlight); | |||
dragInsertPointHighlight = 0; | |||
dragTargetGroupHighlight = 0; | |||
} | |||
TreeViewItem* TreeView::getInsertPosition (int& x, int& y, int& insertIndex, | |||
@@ -57935,13 +57931,12 @@ FilenameComponent::FilenameComponent (const String& name, | |||
wildcard (fileBrowserWildcard), | |||
enforcedSuffix (enforcedSuffix_) | |||
{ | |||
addAndMakeVisible (filenameBox = new ComboBox ("fn")); | |||
filenameBox->setEditableText (canEditFilename); | |||
filenameBox->addListener (this); | |||
filenameBox->setTextWhenNothingSelected (textWhenNothingSelected); | |||
filenameBox->setTextWhenNoChoicesAvailable (TRANS("(no recently seleced files)")); | |||
addAndMakeVisible (&filenameBox); | |||
filenameBox.setEditableText (canEditFilename); | |||
filenameBox.addListener (this); | |||
filenameBox.setTextWhenNothingSelected (textWhenNothingSelected); | |||
filenameBox.setTextWhenNoChoicesAvailable (TRANS("(no recently seleced files)")); | |||
browseButton = 0; | |||
setBrowseButtonText ("..."); | |||
setCurrentFile (currentFile, true); | |||
@@ -57949,7 +57944,6 @@ FilenameComponent::FilenameComponent (const String& name, | |||
FilenameComponent::~FilenameComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void FilenameComponent::paintOverChildren (Graphics& g) | |||
@@ -57963,7 +57957,7 @@ void FilenameComponent::paintOverChildren (Graphics& g) | |||
void FilenameComponent::resized() | |||
{ | |||
getLookAndFeel().layoutFilenameComponent (*this, filenameBox, browseButton); | |||
getLookAndFeel().layoutFilenameComponent (*this, &filenameBox, browseButton); | |||
} | |||
void FilenameComponent::setBrowseButtonText (const String& newBrowseButtonText) | |||
@@ -57974,7 +57968,7 @@ void FilenameComponent::setBrowseButtonText (const String& newBrowseButtonText) | |||
void FilenameComponent::lookAndFeelChanged() | |||
{ | |||
deleteAndZero (browseButton); | |||
browseButton = 0; | |||
addAndMakeVisible (browseButton = getLookAndFeel().createFilenameComponentBrowseButton (browseButtonText)); | |||
browseButton->setConnectedEdges (Button::ConnectedOnLeft); | |||
@@ -57986,7 +57980,7 @@ void FilenameComponent::lookAndFeelChanged() | |||
void FilenameComponent::setTooltip (const String& newTooltip) | |||
{ | |||
SettableTooltipClient::setTooltip (newTooltip); | |||
filenameBox->setTooltip (newTooltip); | |||
filenameBox.setTooltip (newTooltip); | |||
} | |||
void FilenameComponent::setDefaultBrowseTarget (const File& newDefaultDirectory) | |||
@@ -58044,7 +58038,7 @@ void FilenameComponent::fileDragExit (const StringArray&) | |||
const File FilenameComponent::getCurrentFile() const | |||
{ | |||
File f (filenameBox->getText()); | |||
File f (filenameBox.getText()); | |||
if (enforcedSuffix.isNotEmpty()) | |||
f = f.withFileExtension (enforcedSuffix); | |||
@@ -58066,7 +58060,7 @@ void FilenameComponent::setCurrentFile (File newFile, | |||
if (addToRecentlyUsedList) | |||
addRecentlyUsedFile (newFile); | |||
filenameBox->setText (lastFilename, true); | |||
filenameBox.setText (lastFilename, true); | |||
if (sendChangeNotification) | |||
triggerAsyncUpdate(); | |||
@@ -58075,15 +58069,15 @@ void FilenameComponent::setCurrentFile (File newFile, | |||
void FilenameComponent::setFilenameIsEditable (const bool shouldBeEditable) | |||
{ | |||
filenameBox->setEditableText (shouldBeEditable); | |||
filenameBox.setEditableText (shouldBeEditable); | |||
} | |||
const StringArray FilenameComponent::getRecentlyUsedFilenames() const | |||
{ | |||
StringArray names; | |||
for (int i = 0; i < filenameBox->getNumItems(); ++i) | |||
names.add (filenameBox->getItemText (i)); | |||
for (int i = 0; i < filenameBox.getNumItems(); ++i) | |||
names.add (filenameBox.getItemText (i)); | |||
return names; | |||
} | |||
@@ -58092,10 +58086,10 @@ void FilenameComponent::setRecentlyUsedFilenames (const StringArray& filenames) | |||
{ | |||
if (filenames != getRecentlyUsedFilenames()) | |||
{ | |||
filenameBox->clear(); | |||
filenameBox.clear(); | |||
for (int i = 0; i < jmin (filenames.size(), maxRecentFiles); ++i) | |||
filenameBox->addItem (filenames[i], i + 1); | |||
filenameBox.addItem (filenames[i], i + 1); | |||
} | |||
} | |||
@@ -61606,9 +61600,7 @@ ScrollBar::ScrollBar (const bool vertical_, | |||
minimumDelayInMillisecs (10), | |||
vertical (vertical_), | |||
isDraggingThumb (false), | |||
autohides (true), | |||
upButton (0), | |||
downButton (0) | |||
autohides (true) | |||
{ | |||
setButtonVisibility (buttonsAreVisible); | |||
@@ -61618,7 +61610,8 @@ ScrollBar::ScrollBar (const bool vertical_, | |||
ScrollBar::~ScrollBar() | |||
{ | |||
deleteAllChildren(); | |||
upButton = 0; | |||
downButton = 0; | |||
} | |||
void ScrollBar::setRangeLimits (const Range<double>& newRangeLimit) | |||
@@ -61768,9 +61761,7 @@ void ScrollBar::setOrientation (const bool shouldBeVertical) | |||
void ScrollBar::setButtonVisibility (const bool buttonsAreVisible) | |||
{ | |||
delete upButton; | |||
upButton = 0; | |||
delete downButton; | |||
downButton = 0; | |||
if (buttonsAreVisible) | |||
@@ -62605,8 +62596,7 @@ private: | |||
TabbedButtonBar::TabbedButtonBar (const Orientation orientation_) | |||
: orientation (orientation_), | |||
currentTabIndex (-1), | |||
extraTabsButton (0) | |||
currentTabIndex (-1) | |||
{ | |||
setInterceptsMouseClicks (false, true); | |||
addAndMakeVisible (behindFrontTab = new TabAreaBehindFrontButtonComponent (this)); | |||
@@ -62615,6 +62605,7 @@ TabbedButtonBar::TabbedButtonBar (const Orientation orientation_) | |||
TabbedButtonBar::~TabbedButtonBar() | |||
{ | |||
extraTabsButton = 0; | |||
deleteAllChildren(); | |||
} | |||
@@ -62639,7 +62630,7 @@ void TabbedButtonBar::clearTabs() | |||
tabColours.clear(); | |||
currentTabIndex = -1; | |||
deleteAndZero (extraTabsButton); | |||
extraTabsButton = 0; | |||
removeChildComponent (behindFrontTab); | |||
deleteAllChildren(); | |||
addChildComponent (behindFrontTab); | |||
@@ -62784,7 +62775,7 @@ TabBarButton* TabbedButtonBar::getTabButton (const int index) const | |||
void TabbedButtonBar::lookAndFeelChanged() | |||
{ | |||
deleteAndZero (extraTabsButton); | |||
extraTabsButton = 0; | |||
resized(); | |||
} | |||
@@ -62872,7 +62863,7 @@ void TabbedButtonBar::resized() | |||
} | |||
else | |||
{ | |||
deleteAndZero (extraTabsButton); | |||
extraTabsButton = 0; | |||
} | |||
int pos = 0; | |||
@@ -62936,7 +62927,7 @@ void TabbedButtonBar::setTabBackgroundColour (const int tabIndex, const Colour& | |||
void TabbedButtonBar::buttonClicked (Button* button) | |||
{ | |||
if (extraTabsButton == button) | |||
if (button == extraTabsButton) | |||
{ | |||
PopupMenu m; | |||
@@ -70807,8 +70798,9 @@ BooleanPropertyComponent::BooleanPropertyComponent (const String& name, | |||
onText (buttonTextWhenTrue), | |||
offText (buttonTextWhenFalse) | |||
{ | |||
createButton(); | |||
button->addButtonListener (this); | |||
addAndMakeVisible (&button); | |||
button.setClickingTogglesState (false); | |||
button.addButtonListener (this); | |||
} | |||
BooleanPropertyComponent::BooleanPropertyComponent (const Value& valueToControl, | |||
@@ -70818,31 +70810,25 @@ BooleanPropertyComponent::BooleanPropertyComponent (const Value& valueToControl, | |||
onText (buttonText), | |||
offText (buttonText) | |||
{ | |||
createButton(); | |||
button->setButtonText (buttonText); | |||
button->getToggleStateValue().referTo (valueToControl); | |||
button->setClickingTogglesState (true); | |||
addAndMakeVisible (&button); | |||
button.setClickingTogglesState (false); | |||
button.setButtonText (buttonText); | |||
button.getToggleStateValue().referTo (valueToControl); | |||
button.setClickingTogglesState (true); | |||
} | |||
BooleanPropertyComponent::~BooleanPropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void BooleanPropertyComponent::createButton() | |||
{ | |||
addAndMakeVisible (button = new ToggleButton (String::empty)); | |||
button->setClickingTogglesState (false); | |||
} | |||
void BooleanPropertyComponent::setState (const bool newState) | |||
{ | |||
button->setToggleState (newState, true); | |||
button.setToggleState (newState, true); | |||
} | |||
bool BooleanPropertyComponent::getState() const | |||
{ | |||
return button->getToggleState(); | |||
return button.getToggleState(); | |||
} | |||
void BooleanPropertyComponent::paint (Graphics& g) | |||
@@ -70850,16 +70836,16 @@ void BooleanPropertyComponent::paint (Graphics& g) | |||
PropertyComponent::paint (g); | |||
g.setColour (Colours::white); | |||
g.fillRect (button->getBounds()); | |||
g.fillRect (button.getBounds()); | |||
g.setColour (findColour (ComboBox::outlineColourId)); | |||
g.drawRect (button->getBounds()); | |||
g.drawRect (button.getBounds()); | |||
} | |||
void BooleanPropertyComponent::refresh() | |||
{ | |||
button->setToggleState (getState(), false); | |||
button->setButtonText (button->getToggleState() ? onText : offText); | |||
button.setToggleState (getState(), false); | |||
button.setButtonText (button.getToggleState() ? onText : offText); | |||
} | |||
void BooleanPropertyComponent::buttonClicked (Button*) | |||
@@ -70878,19 +70864,18 @@ ButtonPropertyComponent::ButtonPropertyComponent (const String& name, | |||
const bool triggerOnMouseDown) | |||
: PropertyComponent (name) | |||
{ | |||
addAndMakeVisible (button = new TextButton (String::empty)); | |||
button->setTriggeredOnMouseDown (triggerOnMouseDown); | |||
button->addButtonListener (this); | |||
addAndMakeVisible (&button); | |||
button.setTriggeredOnMouseDown (triggerOnMouseDown); | |||
button.addButtonListener (this); | |||
} | |||
ButtonPropertyComponent::~ButtonPropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void ButtonPropertyComponent::refresh() | |||
{ | |||
button->setButtonText (getButtonText()); | |||
button.setButtonText (getButtonText()); | |||
} | |||
void ButtonPropertyComponent::buttonClicked (Button*) | |||
@@ -70948,7 +70933,6 @@ protected: | |||
ChoicePropertyComponent::ChoicePropertyComponent (const String& name) | |||
: PropertyComponent (name), | |||
comboBox (0), | |||
isCustomClass (true) | |||
{ | |||
} | |||
@@ -70959,7 +70943,6 @@ ChoicePropertyComponent::ChoicePropertyComponent (const Value& valueToControl, | |||
const Array <var>& correspondingValues) | |||
: PropertyComponent (name), | |||
choices (choices_), | |||
comboBox (0), | |||
isCustomClass (false) | |||
{ | |||
// The array of corresponding values must contain one value for each of the items in | |||
@@ -70968,27 +70951,26 @@ ChoicePropertyComponent::ChoicePropertyComponent (const Value& valueToControl, | |||
createComboBox(); | |||
comboBox->getSelectedIdAsValue().referTo (Value (new RemapperValueSource (valueToControl, correspondingValues))); | |||
comboBox.getSelectedIdAsValue().referTo (Value (new RemapperValueSource (valueToControl, correspondingValues))); | |||
} | |||
ChoicePropertyComponent::~ChoicePropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void ChoicePropertyComponent::createComboBox() | |||
{ | |||
addAndMakeVisible (comboBox = new ComboBox()); | |||
addAndMakeVisible (&comboBox); | |||
for (int i = 0; i < choices.size(); ++i) | |||
{ | |||
if (choices[i].isNotEmpty()) | |||
comboBox->addItem (choices[i], i + 1); | |||
comboBox.addItem (choices[i], i + 1); | |||
else | |||
comboBox->addSeparator(); | |||
comboBox.addSeparator(); | |||
} | |||
comboBox->setEditableText (false); | |||
comboBox.setEditableText (false); | |||
} | |||
void ChoicePropertyComponent::setIndex (const int /*newIndex*/) | |||
@@ -71011,13 +70993,13 @@ void ChoicePropertyComponent::refresh() | |||
{ | |||
if (isCustomClass) | |||
{ | |||
if (comboBox == 0) | |||
if (! comboBox.isVisible()) | |||
{ | |||
createComboBox(); | |||
comboBox->addListener (this); | |||
comboBox.addListener (this); | |||
} | |||
comboBox->setSelectedId (getIndex() + 1, true); | |||
comboBox.setSelectedId (getIndex() + 1, true); | |||
} | |||
} | |||
@@ -71025,7 +71007,7 @@ void ChoicePropertyComponent::comboBoxChanged (ComboBox*) | |||
{ | |||
if (isCustomClass) | |||
{ | |||
const int newIndex = comboBox->getSelectedId() - 1; | |||
const int newIndex = comboBox.getSelectedId() - 1; | |||
if (newIndex != getIndex()) | |||
setIndex (newIndex); | |||
@@ -71266,15 +71248,14 @@ PropertyPanel::PropertyPanel() | |||
{ | |||
messageWhenEmpty = TRANS("(nothing selected)"); | |||
addAndMakeVisible (viewport = new Viewport()); | |||
viewport->setViewedComponent (propertyHolderComponent = new PropertyHolderComponent()); | |||
viewport->setFocusContainer (true); | |||
addAndMakeVisible (&viewport); | |||
viewport.setViewedComponent (propertyHolderComponent = new PropertyHolderComponent()); | |||
viewport.setFocusContainer (true); | |||
} | |||
PropertyPanel::~PropertyPanel() | |||
{ | |||
clear(); | |||
deleteAllChildren(); | |||
} | |||
void PropertyPanel::paint (Graphics& g) | |||
@@ -71290,7 +71271,7 @@ void PropertyPanel::paint (Graphics& g) | |||
void PropertyPanel::resized() | |||
{ | |||
viewport->setBounds (0, 0, getWidth(), getHeight()); | |||
viewport.setBounds (0, 0, getWidth(), getHeight()); | |||
updatePropHolderLayout(); | |||
} | |||
@@ -71332,10 +71313,10 @@ void PropertyPanel::addSection (const String& sectionTitle, | |||
void PropertyPanel::updatePropHolderLayout() const | |||
{ | |||
const int maxWidth = viewport->getMaximumVisibleWidth(); | |||
const int maxWidth = viewport.getMaximumVisibleWidth(); | |||
propertyHolderComponent->updateLayout (maxWidth); | |||
const int newMaxWidth = viewport->getMaximumVisibleWidth(); | |||
const int newMaxWidth = viewport.getMaximumVisibleWidth(); | |||
if (maxWidth != newMaxWidth) | |||
{ | |||
// need to do this twice because of scrollbars changing the size, etc. | |||
@@ -71429,7 +71410,7 @@ XmlElement* PropertyPanel::getOpennessState() const | |||
{ | |||
XmlElement* const xml = new XmlElement ("PROPERTYPANELSTATE"); | |||
xml->setAttribute ("scrollPos", viewport->getViewPositionY()); | |||
xml->setAttribute ("scrollPos", viewport.getViewPositionY()); | |||
const StringArray sections (getSectionNames()); | |||
@@ -71458,8 +71439,8 @@ void PropertyPanel::restoreOpennessState (const XmlElement& xml) | |||
e->getBoolAttribute ("open")); | |||
} | |||
viewport->setViewPosition (viewport->getViewPositionX(), | |||
xml.getIntAttribute ("scrollPos", viewport->getViewPositionY())); | |||
viewport.setViewPosition (viewport.getViewPositionX(), | |||
xml.getIntAttribute ("scrollPos", viewport.getViewPositionY())); | |||
} | |||
} | |||
@@ -71491,13 +71472,13 @@ SliderPropertyComponent::SliderPropertyComponent (const String& name, | |||
const double skewFactor) | |||
: PropertyComponent (name) | |||
{ | |||
addAndMakeVisible (slider = new Slider (name)); | |||
addAndMakeVisible (&slider); | |||
slider->setRange (rangeMin, rangeMax, interval); | |||
slider->setSkewFactor (skewFactor); | |||
slider->setSliderStyle (Slider::LinearBar); | |||
slider.setRange (rangeMin, rangeMax, interval); | |||
slider.setSkewFactor (skewFactor); | |||
slider.setSliderStyle (Slider::LinearBar); | |||
slider->addListener (this); | |||
slider.addListener (this); | |||
} | |||
SliderPropertyComponent::SliderPropertyComponent (const Value& valueToControl, | |||
@@ -71508,18 +71489,17 @@ SliderPropertyComponent::SliderPropertyComponent (const Value& valueToControl, | |||
const double skewFactor) | |||
: PropertyComponent (name) | |||
{ | |||
addAndMakeVisible (slider = new Slider (name)); | |||
addAndMakeVisible (&slider); | |||
slider->setRange (rangeMin, rangeMax, interval); | |||
slider->setSkewFactor (skewFactor); | |||
slider->setSliderStyle (Slider::LinearBar); | |||
slider.setRange (rangeMin, rangeMax, interval); | |||
slider.setSkewFactor (skewFactor); | |||
slider.setSliderStyle (Slider::LinearBar); | |||
slider->getValueObject().referTo (valueToControl); | |||
slider.getValueObject().referTo (valueToControl); | |||
} | |||
SliderPropertyComponent::~SliderPropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void SliderPropertyComponent::setValue (const double /*newValue*/) | |||
@@ -71528,18 +71508,18 @@ void SliderPropertyComponent::setValue (const double /*newValue*/) | |||
double SliderPropertyComponent::getValue() const | |||
{ | |||
return slider->getValue(); | |||
return slider.getValue(); | |||
} | |||
void SliderPropertyComponent::refresh() | |||
{ | |||
slider->setValue (getValue(), false); | |||
slider.setValue (getValue(), false); | |||
} | |||
void SliderPropertyComponent::sliderValueChanged (Slider*) | |||
{ | |||
if (getValue() != slider->getValue()) | |||
setValue (slider->getValue()); | |||
if (getValue() != slider.getValue()) | |||
setValue (slider.getValue()); | |||
} | |||
END_JUCE_NAMESPACE | |||
@@ -71836,23 +71816,6 @@ public: | |||
: type (type_), | |||
setup (setup_) | |||
{ | |||
sampleRateDropDown = 0; | |||
sampleRateLabel = 0; | |||
bufferSizeDropDown = 0; | |||
bufferSizeLabel = 0; | |||
outputDeviceDropDown = 0; | |||
outputDeviceLabel = 0; | |||
inputDeviceDropDown = 0; | |||
inputDeviceLabel = 0; | |||
testButton = 0; | |||
inputLevelMeter = 0; | |||
showUIButton = 0; | |||
inputChanList = 0; | |||
outputChanList = 0; | |||
inputChanLabel = 0; | |||
outputChanLabel = 0; | |||
showAdvancedSettingsButton = 0; | |||
if (hideAdvancedOptionsWithButton) | |||
{ | |||
addAndMakeVisible (showAdvancedSettingsButton = new TextButton (TRANS("Show advanced settings..."))); | |||
@@ -71868,17 +71831,6 @@ public: | |||
~AudioDeviceSettingsPanel() | |||
{ | |||
setup.manager->removeChangeListener (this); | |||
deleteAndZero (outputDeviceLabel); | |||
deleteAndZero (inputDeviceLabel); | |||
deleteAndZero (sampleRateLabel); | |||
deleteAndZero (bufferSizeLabel); | |||
deleteAndZero (showUIButton); | |||
deleteAndZero (inputChanLabel); | |||
deleteAndZero (outputChanLabel); | |||
deleteAndZero (showAdvancedSettingsButton); | |||
deleteAllChildren(); | |||
} | |||
void resized() | |||
@@ -72052,7 +72004,7 @@ public: | |||
{ | |||
AudioIODevice* const currentDevice = setup.manager->getCurrentAudioDevice(); | |||
deleteAndZero (showUIButton); | |||
showUIButton = 0; | |||
if (currentDevice != 0 && currentDevice->hasControlPanel()) | |||
{ | |||
@@ -72131,8 +72083,8 @@ public: | |||
} | |||
else | |||
{ | |||
deleteAndZero (outputChanLabel); | |||
deleteAndZero (outputChanList); | |||
outputChanLabel = 0; | |||
outputChanList = 0; | |||
} | |||
if (setup.maxNumInputChannels > 0 | |||
@@ -72151,8 +72103,8 @@ public: | |||
} | |||
else | |||
{ | |||
deleteAndZero (inputChanLabel); | |||
deleteAndZero (inputChanList); | |||
inputChanLabel = 0; | |||
inputChanList = 0; | |||
} | |||
// sample rate.. | |||
@@ -72162,7 +72114,6 @@ public: | |||
addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); | |||
sampleRateDropDown->addListener (this); | |||
delete sampleRateLabel; | |||
sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); | |||
sampleRateLabel->attachToComponent (sampleRateDropDown, true); | |||
} | |||
@@ -72191,7 +72142,6 @@ public: | |||
addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); | |||
bufferSizeDropDown->addListener (this); | |||
delete bufferSizeLabel; | |||
bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); | |||
bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); | |||
} | |||
@@ -72222,10 +72172,10 @@ public: | |||
{ | |||
jassert (setup.manager->getCurrentAudioDevice() == 0); // not the correct device type! | |||
deleteAndZero (sampleRateLabel); | |||
deleteAndZero (bufferSizeLabel); | |||
deleteAndZero (sampleRateDropDown); | |||
deleteAndZero (bufferSizeDropDown); | |||
sampleRateLabel = 0; | |||
bufferSizeLabel = 0; | |||
sampleRateDropDown = 0; | |||
bufferSizeDropDown = 0; | |||
if (outputDeviceDropDown != 0) | |||
outputDeviceDropDown->setSelectedId (-1, true); | |||
@@ -72242,20 +72192,11 @@ private: | |||
AudioIODeviceType* const type; | |||
const AudioIODeviceType::DeviceSetupDetails setup; | |||
ComboBox* outputDeviceDropDown; | |||
ComboBox* inputDeviceDropDown; | |||
ComboBox* sampleRateDropDown; | |||
ComboBox* bufferSizeDropDown; | |||
Label* outputDeviceLabel; | |||
Label* inputDeviceLabel; | |||
Label* sampleRateLabel; | |||
Label* bufferSizeLabel; | |||
Label* inputChanLabel; | |||
Label* outputChanLabel; | |||
TextButton* testButton; | |||
Component* inputLevelMeter; | |||
TextButton* showUIButton; | |||
TextButton* showAdvancedSettingsButton; | |||
ScopedPointer<ComboBox> outputDeviceDropDown, inputDeviceDropDown, sampleRateDropDown, bufferSizeDropDown; | |||
ScopedPointer<Label> outputDeviceLabel, inputDeviceLabel, sampleRateLabel, bufferSizeLabel, inputChanLabel, outputChanLabel; | |||
ScopedPointer<TextButton> testButton; | |||
ScopedPointer<Component> inputLevelMeter; | |||
ScopedPointer<TextButton> showUIButton, showAdvancedSettingsButton; | |||
void showCorrectDeviceName (ComboBox* const box, const bool isInput) | |||
{ | |||
@@ -72553,8 +72494,7 @@ public: | |||
}; | |||
private: | |||
ChannelSelectorListBox* inputChanList; | |||
ChannelSelectorListBox* outputChanList; | |||
ScopedPointer<ChannelSelectorListBox> inputChanList, outputChanList; | |||
AudioDeviceSettingsPanel (const AudioDeviceSettingsPanel&); | |||
AudioDeviceSettingsPanel& operator= (const AudioDeviceSettingsPanel&); | |||
@@ -72572,7 +72512,6 @@ AudioDeviceSelectorComponent::AudioDeviceSelectorComponent (AudioDeviceManager& | |||
: deviceManager (deviceManager_), | |||
deviceTypeDropDown (0), | |||
deviceTypeDropDownLabel (0), | |||
audioDeviceSettingsComp (0), | |||
minOutputChannels (minOutputChannels_), | |||
maxOutputChannels (maxOutputChannels_), | |||
minInputChannels (minInputChannels_), | |||
@@ -72640,7 +72579,6 @@ AudioDeviceSelectorComponent::AudioDeviceSelectorComponent (AudioDeviceManager& | |||
AudioDeviceSelectorComponent::~AudioDeviceSelectorComponent() | |||
{ | |||
deviceManager.removeChangeListener (this); | |||
deleteAllChildren(); | |||
} | |||
void AudioDeviceSelectorComponent::resized() | |||
@@ -72702,7 +72640,7 @@ void AudioDeviceSelectorComponent::comboBoxChanged (ComboBox* comboBoxThatHasCha | |||
if (type != 0) | |||
{ | |||
deleteAndZero (audioDeviceSettingsComp); | |||
audioDeviceSettingsComp = 0; | |||
deviceManager.setCurrentAudioDeviceType (type->getTypeName(), true); | |||
@@ -72726,8 +72664,7 @@ void AudioDeviceSelectorComponent::changeListenerCallback (void*) | |||
|| audioDeviceSettingsCompType != deviceManager.getCurrentAudioDeviceType()) | |||
{ | |||
audioDeviceSettingsCompType = deviceManager.getCurrentAudioDeviceType(); | |||
deleteAndZero (audioDeviceSettingsComp); | |||
audioDeviceSettingsComp = 0; | |||
AudioIODeviceType* const type | |||
= deviceManager.getAvailableDeviceTypes() [deviceTypeDropDown == 0 | |||
@@ -250281,7 +250218,7 @@ const String DSoundAudioIODevice::openDevice (const BigInteger& inputChannels, | |||
enabledInputs.getHighestBit() + 1 - inChannels.size(), | |||
false); | |||
inputBuffers.setSize (enabledInputs.countNumberOfSetBits(), bufferSizeSamples); | |||
inputBuffers.setSize (jmax (1, enabledInputs.countNumberOfSetBits()), bufferSizeSamples); | |||
int i, numIns = 0; | |||
for (i = 0; i <= enabledInputs.getHighestBit(); i += 2) | |||
@@ -250306,7 +250243,7 @@ const String DSoundAudioIODevice::openDevice (const BigInteger& inputChannels, | |||
enabledOutputs.getHighestBit() + 1 - outChannels.size(), | |||
false); | |||
outputBuffers.setSize (enabledOutputs.countNumberOfSetBits(), bufferSizeSamples); | |||
outputBuffers.setSize (jmax (1, enabledOutputs.countNumberOfSetBits()), bufferSizeSamples); | |||
int numOuts = 0; | |||
for (i = 0; i <= enabledOutputs.getHighestBit(); i += 2) | |||
@@ -274893,7 +274830,6 @@ public: | |||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 | |||
audioProcID (0), | |||
#endif | |||
inputDevice (0), | |||
isSlaveDevice (false), | |||
deviceID (id), | |||
started (false), | |||
@@ -274927,7 +274863,6 @@ public: | |||
AudioObjectRemovePropertyListener (deviceID, &pa, deviceListenerProc, this); | |||
stop (false); | |||
delete inputDevice; | |||
} | |||
void allocateTempBuffers() | |||
@@ -275589,7 +275524,7 @@ public: | |||
AudioDeviceIOProcID audioProcID; | |||
#endif | |||
CoreAudioInternal* inputDevice; | |||
ScopedPointer<CoreAudioInternal> inputDevice; | |||
bool isSlaveDevice; | |||
private: | |||
@@ -275689,7 +275624,6 @@ public: | |||
isOpen_ (false), | |||
isStarted (false) | |||
{ | |||
internal = 0; | |||
CoreAudioInternal* device = 0; | |||
if (outputDeviceId == 0 || outputDeviceId == inputDeviceId) | |||
@@ -275729,8 +275663,6 @@ public: | |||
pa.mElement = kAudioObjectPropertyElementWildcard; | |||
AudioObjectRemovePropertyListener (kAudioObjectSystemObject, &pa, hardwareListenerProc, internal); | |||
delete internal; | |||
} | |||
const StringArray getOutputChannelNames() | |||
@@ -275899,7 +275831,7 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
CoreAudioInternal* internal; | |||
ScopedPointer<CoreAudioInternal> internal; | |||
bool isOpen_, isStarted; | |||
String lastError; | |||
@@ -64,7 +64,7 @@ | |||
*/ | |||
#define JUCE_MAJOR_VERSION 1 | |||
#define JUCE_MINOR_VERSION 52 | |||
#define JUCE_BUILDNUMBER 15 | |||
#define JUCE_BUILDNUMBER 16 | |||
/** Current Juce version number. | |||
@@ -34478,8 +34478,8 @@ private: | |||
int initialDelayInMillisecs, repeatDelayInMillisecs, minimumDelayInMillisecs; | |||
bool vertical, isDraggingThumb, autohides; | |||
class ScrollbarButton; | |||
ScrollbarButton* upButton; | |||
ScrollbarButton* downButton; | |||
friend class ScopedPointer<ScrollbarButton>; | |||
ScopedPointer<ScrollbarButton> upButton, downButton; | |||
ListenerList <ScrollBarListener> listeners; | |||
void updateThumbPosition(); | |||
@@ -40731,7 +40731,7 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
Viewport* viewport; | |||
Viewport viewport; | |||
class PropertyHolderComponent; | |||
PropertyHolderComponent* propertyHolderComponent; | |||
String messageWhenEmpty; | |||
@@ -47821,13 +47821,16 @@ private: | |||
friend class TreeViewItem; | |||
friend class TreeViewContentComponent; | |||
class TreeViewport; | |||
TreeViewport* viewport; | |||
CriticalSection nodeAlterationLock; | |||
TreeViewItem* rootItem; | |||
class InsertPointHighlight; | |||
class TargetGroupHighlight; | |||
InsertPointHighlight* dragInsertPointHighlight; | |||
TargetGroupHighlight* dragTargetGroupHighlight; | |||
friend class ScopedPointer<TreeViewport>; | |||
friend class ScopedPointer<InsertPointHighlight>; | |||
friend class ScopedPointer<TargetGroupHighlight>; | |||
ScopedPointer<TreeViewport> viewport; | |||
CriticalSection nodeAlterationLock; | |||
TreeViewItem* rootItem; | |||
ScopedPointer<InsertPointHighlight> dragInsertPointHighlight; | |||
ScopedPointer<TargetGroupHighlight> dragTargetGroupHighlight; | |||
int indentSize; | |||
bool defaultOpenness : 1; | |||
bool needsRecalculating : 1; | |||
@@ -50282,9 +50285,9 @@ public: | |||
private: | |||
ComboBox* filenameBox; | |||
ComboBox filenameBox; | |||
String lastFilename; | |||
Button* browseButton; | |||
ScopedPointer<Button> browseButton; | |||
int maxRecentFiles; | |||
bool isDir, isSaving, isFileDragOver; | |||
String wildcard, enforcedSuffix, browseButtonText; | |||
@@ -51366,7 +51369,7 @@ private: | |||
Array <Colour> tabColours; | |||
int currentTabIndex; | |||
Component* behindFrontTab; | |||
Button* extraTabsButton; | |||
ScopedPointer<Button> extraTabsButton; | |||
TabbedButtonBar (const TabbedButtonBar&); | |||
TabbedButtonBar& operator= (const TabbedButtonBar&); | |||
@@ -54836,11 +54839,9 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
ToggleButton* button; | |||
ToggleButton button; | |||
String onText, offText; | |||
void createButton(); | |||
BooleanPropertyComponent (const BooleanPropertyComponent&); | |||
BooleanPropertyComponent& operator= (const BooleanPropertyComponent&); | |||
}; | |||
@@ -54898,7 +54899,7 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
TextButton* button; | |||
TextButton button; | |||
ButtonPropertyComponent (const ButtonPropertyComponent&); | |||
ButtonPropertyComponent& operator= (const ButtonPropertyComponent&); | |||
@@ -54998,7 +54999,7 @@ protected: | |||
StringArray choices; | |||
private: | |||
ComboBox* comboBox; | |||
ComboBox comboBox; | |||
bool isCustomClass; | |||
class RemapperValueSource; | |||
@@ -55092,7 +55093,7 @@ protected: | |||
Your subclass has access to this in case it needs to customise it in some way. | |||
*/ | |||
Slider* slider; | |||
Slider slider; | |||
SliderPropertyComponent (const SliderPropertyComponent&); | |||
SliderPropertyComponent& operator= (const SliderPropertyComponent&); | |||
@@ -55356,19 +55357,19 @@ public: | |||
private: | |||
AudioDeviceManager& deviceManager; | |||
ComboBox* deviceTypeDropDown; | |||
Label* deviceTypeDropDownLabel; | |||
Component* audioDeviceSettingsComp; | |||
ScopedPointer<ComboBox> deviceTypeDropDown; | |||
ScopedPointer<Label> deviceTypeDropDownLabel; | |||
ScopedPointer<Component> audioDeviceSettingsComp; | |||
String audioDeviceSettingsCompType; | |||
const int minOutputChannels, maxOutputChannels, minInputChannels, maxInputChannels; | |||
const bool showChannelsAsStereoPairs; | |||
const bool hideAdvancedOptionsWithButton; | |||
class MidiInputSelectorComponentListBox; | |||
MidiInputSelectorComponentListBox* midiInputsList; | |||
Label* midiInputsLabel; | |||
ComboBox* midiOutputSelector; | |||
Label* midiOutputLabel; | |||
friend class ScopedPointer<MidiInputSelectorComponentListBox>; | |||
ScopedPointer<MidiInputSelectorComponentListBox> midiInputsList; | |||
ScopedPointer<ComboBox> midiOutputSelector; | |||
ScopedPointer<Label> midiInputsLabel, midiOutputLabel; | |||
AudioDeviceSelectorComponent (const AudioDeviceSelectorComponent&); | |||
AudioDeviceSelectorComponent& operator= (const AudioDeviceSelectorComponent&); | |||
@@ -33,7 +33,7 @@ | |||
*/ | |||
#define JUCE_MAJOR_VERSION 1 | |||
#define JUCE_MINOR_VERSION 52 | |||
#define JUCE_BUILDNUMBER 15 | |||
#define JUCE_BUILDNUMBER 16 | |||
/** Current Juce version number. | |||
@@ -451,8 +451,6 @@ private: | |||
TreeView::TreeView (const String& componentName) | |||
: Component (componentName), | |||
rootItem (0), | |||
dragInsertPointHighlight (0), | |||
dragTargetGroupHighlight (0), | |||
indentSize (24), | |||
defaultOpenness (false), | |||
needsRecalculating (true), | |||
@@ -470,8 +468,6 @@ TreeView::~TreeView() | |||
{ | |||
if (rootItem != 0) | |||
rootItem->setOwnerView (0); | |||
deleteAllChildren(); | |||
} | |||
void TreeView::setRootItem (TreeViewItem* const newRootItem) | |||
@@ -937,8 +933,8 @@ void TreeView::showDragHighlight (TreeViewItem* item, int insertIndex, int x, in | |||
void TreeView::hideDragHighlight() throw() | |||
{ | |||
deleteAndZero (dragInsertPointHighlight); | |||
deleteAndZero (dragTargetGroupHighlight); | |||
dragInsertPointHighlight = 0; | |||
dragTargetGroupHighlight = 0; | |||
} | |||
TreeViewItem* TreeView::getInsertPosition (int& x, int& y, int& insertIndex, | |||
@@ -752,13 +752,16 @@ private: | |||
friend class TreeViewItem; | |||
friend class TreeViewContentComponent; | |||
class TreeViewport; | |||
TreeViewport* viewport; | |||
CriticalSection nodeAlterationLock; | |||
TreeViewItem* rootItem; | |||
class InsertPointHighlight; | |||
class TargetGroupHighlight; | |||
InsertPointHighlight* dragInsertPointHighlight; | |||
TargetGroupHighlight* dragTargetGroupHighlight; | |||
friend class ScopedPointer<TreeViewport>; | |||
friend class ScopedPointer<InsertPointHighlight>; | |||
friend class ScopedPointer<TargetGroupHighlight>; | |||
ScopedPointer<TreeViewport> viewport; | |||
CriticalSection nodeAlterationLock; | |||
TreeViewItem* rootItem; | |||
ScopedPointer<InsertPointHighlight> dragInsertPointHighlight; | |||
ScopedPointer<TargetGroupHighlight> dragTargetGroupHighlight; | |||
int indentSize; | |||
bool defaultOpenness : 1; | |||
bool needsRecalculating : 1; | |||
@@ -50,13 +50,12 @@ FilenameComponent::FilenameComponent (const String& name, | |||
wildcard (fileBrowserWildcard), | |||
enforcedSuffix (enforcedSuffix_) | |||
{ | |||
addAndMakeVisible (filenameBox = new ComboBox ("fn")); | |||
filenameBox->setEditableText (canEditFilename); | |||
filenameBox->addListener (this); | |||
filenameBox->setTextWhenNothingSelected (textWhenNothingSelected); | |||
filenameBox->setTextWhenNoChoicesAvailable (TRANS("(no recently seleced files)")); | |||
addAndMakeVisible (&filenameBox); | |||
filenameBox.setEditableText (canEditFilename); | |||
filenameBox.addListener (this); | |||
filenameBox.setTextWhenNothingSelected (textWhenNothingSelected); | |||
filenameBox.setTextWhenNoChoicesAvailable (TRANS("(no recently seleced files)")); | |||
browseButton = 0; | |||
setBrowseButtonText ("..."); | |||
setCurrentFile (currentFile, true); | |||
@@ -64,7 +63,6 @@ FilenameComponent::FilenameComponent (const String& name, | |||
FilenameComponent::~FilenameComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
//============================================================================== | |||
@@ -79,7 +77,7 @@ void FilenameComponent::paintOverChildren (Graphics& g) | |||
void FilenameComponent::resized() | |||
{ | |||
getLookAndFeel().layoutFilenameComponent (*this, filenameBox, browseButton); | |||
getLookAndFeel().layoutFilenameComponent (*this, &filenameBox, browseButton); | |||
} | |||
void FilenameComponent::setBrowseButtonText (const String& newBrowseButtonText) | |||
@@ -90,7 +88,7 @@ void FilenameComponent::setBrowseButtonText (const String& newBrowseButtonText) | |||
void FilenameComponent::lookAndFeelChanged() | |||
{ | |||
deleteAndZero (browseButton); | |||
browseButton = 0; | |||
addAndMakeVisible (browseButton = getLookAndFeel().createFilenameComponentBrowseButton (browseButtonText)); | |||
browseButton->setConnectedEdges (Button::ConnectedOnLeft); | |||
@@ -102,7 +100,7 @@ void FilenameComponent::lookAndFeelChanged() | |||
void FilenameComponent::setTooltip (const String& newTooltip) | |||
{ | |||
SettableTooltipClient::setTooltip (newTooltip); | |||
filenameBox->setTooltip (newTooltip); | |||
filenameBox.setTooltip (newTooltip); | |||
} | |||
void FilenameComponent::setDefaultBrowseTarget (const File& newDefaultDirectory) | |||
@@ -161,7 +159,7 @@ void FilenameComponent::fileDragExit (const StringArray&) | |||
//============================================================================== | |||
const File FilenameComponent::getCurrentFile() const | |||
{ | |||
File f (filenameBox->getText()); | |||
File f (filenameBox.getText()); | |||
if (enforcedSuffix.isNotEmpty()) | |||
f = f.withFileExtension (enforcedSuffix); | |||
@@ -183,7 +181,7 @@ void FilenameComponent::setCurrentFile (File newFile, | |||
if (addToRecentlyUsedList) | |||
addRecentlyUsedFile (newFile); | |||
filenameBox->setText (lastFilename, true); | |||
filenameBox.setText (lastFilename, true); | |||
if (sendChangeNotification) | |||
triggerAsyncUpdate(); | |||
@@ -192,15 +190,15 @@ void FilenameComponent::setCurrentFile (File newFile, | |||
void FilenameComponent::setFilenameIsEditable (const bool shouldBeEditable) | |||
{ | |||
filenameBox->setEditableText (shouldBeEditable); | |||
filenameBox.setEditableText (shouldBeEditable); | |||
} | |||
const StringArray FilenameComponent::getRecentlyUsedFilenames() const | |||
{ | |||
StringArray names; | |||
for (int i = 0; i < filenameBox->getNumItems(); ++i) | |||
names.add (filenameBox->getItemText (i)); | |||
for (int i = 0; i < filenameBox.getNumItems(); ++i) | |||
names.add (filenameBox.getItemText (i)); | |||
return names; | |||
} | |||
@@ -209,10 +207,10 @@ void FilenameComponent::setRecentlyUsedFilenames (const StringArray& filenames) | |||
{ | |||
if (filenames != getRecentlyUsedFilenames()) | |||
{ | |||
filenameBox->clear(); | |||
filenameBox.clear(); | |||
for (int i = 0; i < jmin (filenames.size(), maxRecentFiles); ++i) | |||
filenameBox->addItem (filenames[i], i + 1); | |||
filenameBox.addItem (filenames[i], i + 1); | |||
} | |||
} | |||
@@ -203,9 +203,9 @@ public: | |||
private: | |||
//============================================================================== | |||
ComboBox* filenameBox; | |||
ComboBox filenameBox; | |||
String lastFilename; | |||
Button* browseButton; | |||
ScopedPointer<Button> browseButton; | |||
int maxRecentFiles; | |||
bool isDir, isSaving, isFileDragOver; | |||
String wildcard, enforcedSuffix, browseButtonText; | |||
@@ -91,9 +91,7 @@ ScrollBar::ScrollBar (const bool vertical_, | |||
minimumDelayInMillisecs (10), | |||
vertical (vertical_), | |||
isDraggingThumb (false), | |||
autohides (true), | |||
upButton (0), | |||
downButton (0) | |||
autohides (true) | |||
{ | |||
setButtonVisibility (buttonsAreVisible); | |||
@@ -103,7 +101,8 @@ ScrollBar::ScrollBar (const bool vertical_, | |||
ScrollBar::~ScrollBar() | |||
{ | |||
deleteAllChildren(); | |||
upButton = 0; | |||
downButton = 0; | |||
} | |||
//============================================================================== | |||
@@ -256,9 +255,7 @@ void ScrollBar::setOrientation (const bool shouldBeVertical) | |||
void ScrollBar::setButtonVisibility (const bool buttonsAreVisible) | |||
{ | |||
delete upButton; | |||
upButton = 0; | |||
delete downButton; | |||
downButton = 0; | |||
if (buttonsAreVisible) | |||
@@ -324,8 +324,8 @@ private: | |||
int initialDelayInMillisecs, repeatDelayInMillisecs, minimumDelayInMillisecs; | |||
bool vertical, isDraggingThumb, autohides; | |||
class ScrollbarButton; | |||
ScrollbarButton* upButton; | |||
ScrollbarButton* downButton; | |||
friend class ScopedPointer<ScrollbarButton>; | |||
ScopedPointer<ScrollbarButton> upButton, downButton; | |||
ListenerList <ScrollBarListener> listeners; | |||
void updateThumbPosition(); | |||
@@ -176,8 +176,7 @@ private: | |||
//============================================================================== | |||
TabbedButtonBar::TabbedButtonBar (const Orientation orientation_) | |||
: orientation (orientation_), | |||
currentTabIndex (-1), | |||
extraTabsButton (0) | |||
currentTabIndex (-1) | |||
{ | |||
setInterceptsMouseClicks (false, true); | |||
addAndMakeVisible (behindFrontTab = new TabAreaBehindFrontButtonComponent (this)); | |||
@@ -186,6 +185,7 @@ TabbedButtonBar::TabbedButtonBar (const Orientation orientation_) | |||
TabbedButtonBar::~TabbedButtonBar() | |||
{ | |||
extraTabsButton = 0; | |||
deleteAllChildren(); | |||
} | |||
@@ -212,7 +212,7 @@ void TabbedButtonBar::clearTabs() | |||
tabColours.clear(); | |||
currentTabIndex = -1; | |||
deleteAndZero (extraTabsButton); | |||
extraTabsButton = 0; | |||
removeChildComponent (behindFrontTab); | |||
deleteAllChildren(); | |||
addChildComponent (behindFrontTab); | |||
@@ -357,7 +357,7 @@ TabBarButton* TabbedButtonBar::getTabButton (const int index) const | |||
void TabbedButtonBar::lookAndFeelChanged() | |||
{ | |||
deleteAndZero (extraTabsButton); | |||
extraTabsButton = 0; | |||
resized(); | |||
} | |||
@@ -445,7 +445,7 @@ void TabbedButtonBar::resized() | |||
} | |||
else | |||
{ | |||
deleteAndZero (extraTabsButton); | |||
extraTabsButton = 0; | |||
} | |||
int pos = 0; | |||
@@ -510,7 +510,7 @@ void TabbedButtonBar::setTabBackgroundColour (const int tabIndex, const Colour& | |||
void TabbedButtonBar::buttonClicked (Button* button) | |||
{ | |||
if (extraTabsButton == button) | |||
if (button == extraTabsButton) | |||
{ | |||
PopupMenu m; | |||
@@ -283,7 +283,7 @@ private: | |||
Array <Colour> tabColours; | |||
int currentTabIndex; | |||
Component* behindFrontTab; | |||
Button* extraTabsButton; | |||
ScopedPointer<Button> extraTabsButton; | |||
TabbedButtonBar (const TabbedButtonBar&); | |||
TabbedButtonBar& operator= (const TabbedButtonBar&); | |||
@@ -39,8 +39,9 @@ BooleanPropertyComponent::BooleanPropertyComponent (const String& name, | |||
onText (buttonTextWhenTrue), | |||
offText (buttonTextWhenFalse) | |||
{ | |||
createButton(); | |||
button->addButtonListener (this); | |||
addAndMakeVisible (&button); | |||
button.setClickingTogglesState (false); | |||
button.addButtonListener (this); | |||
} | |||
BooleanPropertyComponent::BooleanPropertyComponent (const Value& valueToControl, | |||
@@ -50,31 +51,25 @@ BooleanPropertyComponent::BooleanPropertyComponent (const Value& valueToControl, | |||
onText (buttonText), | |||
offText (buttonText) | |||
{ | |||
createButton(); | |||
button->setButtonText (buttonText); | |||
button->getToggleStateValue().referTo (valueToControl); | |||
button->setClickingTogglesState (true); | |||
addAndMakeVisible (&button); | |||
button.setClickingTogglesState (false); | |||
button.setButtonText (buttonText); | |||
button.getToggleStateValue().referTo (valueToControl); | |||
button.setClickingTogglesState (true); | |||
} | |||
BooleanPropertyComponent::~BooleanPropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void BooleanPropertyComponent::createButton() | |||
{ | |||
addAndMakeVisible (button = new ToggleButton (String::empty)); | |||
button->setClickingTogglesState (false); | |||
} | |||
void BooleanPropertyComponent::setState (const bool newState) | |||
{ | |||
button->setToggleState (newState, true); | |||
button.setToggleState (newState, true); | |||
} | |||
bool BooleanPropertyComponent::getState() const | |||
{ | |||
return button->getToggleState(); | |||
return button.getToggleState(); | |||
} | |||
void BooleanPropertyComponent::paint (Graphics& g) | |||
@@ -82,16 +77,16 @@ void BooleanPropertyComponent::paint (Graphics& g) | |||
PropertyComponent::paint (g); | |||
g.setColour (Colours::white); | |||
g.fillRect (button->getBounds()); | |||
g.fillRect (button.getBounds()); | |||
g.setColour (findColour (ComboBox::outlineColourId)); | |||
g.drawRect (button->getBounds()); | |||
g.drawRect (button.getBounds()); | |||
} | |||
void BooleanPropertyComponent::refresh() | |||
{ | |||
button->setToggleState (getState(), false); | |||
button->setButtonText (button->getToggleState() ? onText : offText); | |||
button.setToggleState (getState(), false); | |||
button.setButtonText (button.getToggleState() ? onText : offText); | |||
} | |||
void BooleanPropertyComponent::buttonClicked (Button*) | |||
@@ -89,11 +89,9 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
ToggleButton* button; | |||
ToggleButton button; | |||
String onText, offText; | |||
void createButton(); | |||
BooleanPropertyComponent (const BooleanPropertyComponent&); | |||
BooleanPropertyComponent& operator= (const BooleanPropertyComponent&); | |||
}; | |||
@@ -35,19 +35,18 @@ ButtonPropertyComponent::ButtonPropertyComponent (const String& name, | |||
const bool triggerOnMouseDown) | |||
: PropertyComponent (name) | |||
{ | |||
addAndMakeVisible (button = new TextButton (String::empty)); | |||
button->setTriggeredOnMouseDown (triggerOnMouseDown); | |||
button->addButtonListener (this); | |||
addAndMakeVisible (&button); | |||
button.setTriggeredOnMouseDown (triggerOnMouseDown); | |||
button.addButtonListener (this); | |||
} | |||
ButtonPropertyComponent::~ButtonPropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void ButtonPropertyComponent::refresh() | |||
{ | |||
button->setButtonText (getButtonText()); | |||
button.setButtonText (getButtonText()); | |||
} | |||
void ButtonPropertyComponent::buttonClicked (Button*) | |||
@@ -75,7 +75,7 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
TextButton* button; | |||
TextButton button; | |||
ButtonPropertyComponent (const ButtonPropertyComponent&); | |||
ButtonPropertyComponent& operator= (const ButtonPropertyComponent&); | |||
@@ -77,7 +77,6 @@ protected: | |||
//============================================================================== | |||
ChoicePropertyComponent::ChoicePropertyComponent (const String& name) | |||
: PropertyComponent (name), | |||
comboBox (0), | |||
isCustomClass (true) | |||
{ | |||
} | |||
@@ -88,7 +87,6 @@ ChoicePropertyComponent::ChoicePropertyComponent (const Value& valueToControl, | |||
const Array <var>& correspondingValues) | |||
: PropertyComponent (name), | |||
choices (choices_), | |||
comboBox (0), | |||
isCustomClass (false) | |||
{ | |||
// The array of corresponding values must contain one value for each of the items in | |||
@@ -97,28 +95,27 @@ ChoicePropertyComponent::ChoicePropertyComponent (const Value& valueToControl, | |||
createComboBox(); | |||
comboBox->getSelectedIdAsValue().referTo (Value (new RemapperValueSource (valueToControl, correspondingValues))); | |||
comboBox.getSelectedIdAsValue().referTo (Value (new RemapperValueSource (valueToControl, correspondingValues))); | |||
} | |||
ChoicePropertyComponent::~ChoicePropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
//============================================================================== | |||
void ChoicePropertyComponent::createComboBox() | |||
{ | |||
addAndMakeVisible (comboBox = new ComboBox()); | |||
addAndMakeVisible (&comboBox); | |||
for (int i = 0; i < choices.size(); ++i) | |||
{ | |||
if (choices[i].isNotEmpty()) | |||
comboBox->addItem (choices[i], i + 1); | |||
comboBox.addItem (choices[i], i + 1); | |||
else | |||
comboBox->addSeparator(); | |||
comboBox.addSeparator(); | |||
} | |||
comboBox->setEditableText (false); | |||
comboBox.setEditableText (false); | |||
} | |||
void ChoicePropertyComponent::setIndex (const int /*newIndex*/) | |||
@@ -142,13 +139,13 @@ void ChoicePropertyComponent::refresh() | |||
{ | |||
if (isCustomClass) | |||
{ | |||
if (comboBox == 0) | |||
if (! comboBox.isVisible()) | |||
{ | |||
createComboBox(); | |||
comboBox->addListener (this); | |||
comboBox.addListener (this); | |||
} | |||
comboBox->setSelectedId (getIndex() + 1, true); | |||
comboBox.setSelectedId (getIndex() + 1, true); | |||
} | |||
} | |||
@@ -156,7 +153,7 @@ void ChoicePropertyComponent::comboBoxChanged (ComboBox*) | |||
{ | |||
if (isCustomClass) | |||
{ | |||
const int newIndex = comboBox->getSelectedId() - 1; | |||
const int newIndex = comboBox.getSelectedId() - 1; | |||
if (newIndex != getIndex()) | |||
setIndex (newIndex); | |||
@@ -117,7 +117,7 @@ protected: | |||
StringArray choices; | |||
private: | |||
ComboBox* comboBox; | |||
ComboBox comboBox; | |||
bool isCustomClass; | |||
class RemapperValueSource; | |||
@@ -226,15 +226,14 @@ PropertyPanel::PropertyPanel() | |||
{ | |||
messageWhenEmpty = TRANS("(nothing selected)"); | |||
addAndMakeVisible (viewport = new Viewport()); | |||
viewport->setViewedComponent (propertyHolderComponent = new PropertyHolderComponent()); | |||
viewport->setFocusContainer (true); | |||
addAndMakeVisible (&viewport); | |||
viewport.setViewedComponent (propertyHolderComponent = new PropertyHolderComponent()); | |||
viewport.setFocusContainer (true); | |||
} | |||
PropertyPanel::~PropertyPanel() | |||
{ | |||
clear(); | |||
deleteAllChildren(); | |||
} | |||
//============================================================================== | |||
@@ -251,7 +250,7 @@ void PropertyPanel::paint (Graphics& g) | |||
void PropertyPanel::resized() | |||
{ | |||
viewport->setBounds (0, 0, getWidth(), getHeight()); | |||
viewport.setBounds (0, 0, getWidth(), getHeight()); | |||
updatePropHolderLayout(); | |||
} | |||
@@ -294,10 +293,10 @@ void PropertyPanel::addSection (const String& sectionTitle, | |||
void PropertyPanel::updatePropHolderLayout() const | |||
{ | |||
const int maxWidth = viewport->getMaximumVisibleWidth(); | |||
const int maxWidth = viewport.getMaximumVisibleWidth(); | |||
propertyHolderComponent->updateLayout (maxWidth); | |||
const int newMaxWidth = viewport->getMaximumVisibleWidth(); | |||
const int newMaxWidth = viewport.getMaximumVisibleWidth(); | |||
if (maxWidth != newMaxWidth) | |||
{ | |||
// need to do this twice because of scrollbars changing the size, etc. | |||
@@ -393,7 +392,7 @@ XmlElement* PropertyPanel::getOpennessState() const | |||
{ | |||
XmlElement* const xml = new XmlElement ("PROPERTYPANELSTATE"); | |||
xml->setAttribute ("scrollPos", viewport->getViewPositionY()); | |||
xml->setAttribute ("scrollPos", viewport.getViewPositionY()); | |||
const StringArray sections (getSectionNames()); | |||
@@ -422,8 +421,8 @@ void PropertyPanel::restoreOpennessState (const XmlElement& xml) | |||
e->getBoolAttribute ("open")); | |||
} | |||
viewport->setViewPosition (viewport->getViewPositionX(), | |||
xml.getIntAttribute ("scrollPos", viewport->getViewPositionY())); | |||
viewport.setViewPosition (viewport.getViewPositionX(), | |||
xml.getIntAttribute ("scrollPos", viewport.getViewPositionY())); | |||
} | |||
} | |||
@@ -152,7 +152,7 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
Viewport* viewport; | |||
Viewport viewport; | |||
class PropertyHolderComponent; | |||
PropertyHolderComponent* propertyHolderComponent; | |||
String messageWhenEmpty; | |||
@@ -38,13 +38,13 @@ SliderPropertyComponent::SliderPropertyComponent (const String& name, | |||
const double skewFactor) | |||
: PropertyComponent (name) | |||
{ | |||
addAndMakeVisible (slider = new Slider (name)); | |||
addAndMakeVisible (&slider); | |||
slider->setRange (rangeMin, rangeMax, interval); | |||
slider->setSkewFactor (skewFactor); | |||
slider->setSliderStyle (Slider::LinearBar); | |||
slider.setRange (rangeMin, rangeMax, interval); | |||
slider.setSkewFactor (skewFactor); | |||
slider.setSliderStyle (Slider::LinearBar); | |||
slider->addListener (this); | |||
slider.addListener (this); | |||
} | |||
SliderPropertyComponent::SliderPropertyComponent (const Value& valueToControl, | |||
@@ -55,18 +55,17 @@ SliderPropertyComponent::SliderPropertyComponent (const Value& valueToControl, | |||
const double skewFactor) | |||
: PropertyComponent (name) | |||
{ | |||
addAndMakeVisible (slider = new Slider (name)); | |||
addAndMakeVisible (&slider); | |||
slider->setRange (rangeMin, rangeMax, interval); | |||
slider->setSkewFactor (skewFactor); | |||
slider->setSliderStyle (Slider::LinearBar); | |||
slider.setRange (rangeMin, rangeMax, interval); | |||
slider.setSkewFactor (skewFactor); | |||
slider.setSliderStyle (Slider::LinearBar); | |||
slider->getValueObject().referTo (valueToControl); | |||
slider.getValueObject().referTo (valueToControl); | |||
} | |||
SliderPropertyComponent::~SliderPropertyComponent() | |||
{ | |||
deleteAllChildren(); | |||
} | |||
void SliderPropertyComponent::setValue (const double /*newValue*/) | |||
@@ -75,18 +74,18 @@ void SliderPropertyComponent::setValue (const double /*newValue*/) | |||
double SliderPropertyComponent::getValue() const | |||
{ | |||
return slider->getValue(); | |||
return slider.getValue(); | |||
} | |||
void SliderPropertyComponent::refresh() | |||
{ | |||
slider->setValue (getValue(), false); | |||
slider.setValue (getValue(), false); | |||
} | |||
void SliderPropertyComponent::sliderValueChanged (Slider*) | |||
{ | |||
if (getValue() != slider->getValue()) | |||
setValue (slider->getValue()); | |||
if (getValue() != slider.getValue()) | |||
setValue (slider.getValue()); | |||
} | |||
@@ -102,7 +102,7 @@ protected: | |||
Your subclass has access to this in case it needs to customise it in some way. | |||
*/ | |||
Slider* slider; | |||
Slider slider; | |||
SliderPropertyComponent (const SliderPropertyComponent&); | |||
SliderPropertyComponent& operator= (const SliderPropertyComponent&); | |||
@@ -218,23 +218,6 @@ public: | |||
: type (type_), | |||
setup (setup_) | |||
{ | |||
sampleRateDropDown = 0; | |||
sampleRateLabel = 0; | |||
bufferSizeDropDown = 0; | |||
bufferSizeLabel = 0; | |||
outputDeviceDropDown = 0; | |||
outputDeviceLabel = 0; | |||
inputDeviceDropDown = 0; | |||
inputDeviceLabel = 0; | |||
testButton = 0; | |||
inputLevelMeter = 0; | |||
showUIButton = 0; | |||
inputChanList = 0; | |||
outputChanList = 0; | |||
inputChanLabel = 0; | |||
outputChanLabel = 0; | |||
showAdvancedSettingsButton = 0; | |||
if (hideAdvancedOptionsWithButton) | |||
{ | |||
addAndMakeVisible (showAdvancedSettingsButton = new TextButton (TRANS("Show advanced settings..."))); | |||
@@ -250,17 +233,6 @@ public: | |||
~AudioDeviceSettingsPanel() | |||
{ | |||
setup.manager->removeChangeListener (this); | |||
deleteAndZero (outputDeviceLabel); | |||
deleteAndZero (inputDeviceLabel); | |||
deleteAndZero (sampleRateLabel); | |||
deleteAndZero (bufferSizeLabel); | |||
deleteAndZero (showUIButton); | |||
deleteAndZero (inputChanLabel); | |||
deleteAndZero (outputChanLabel); | |||
deleteAndZero (showAdvancedSettingsButton); | |||
deleteAllChildren(); | |||
} | |||
void resized() | |||
@@ -434,7 +406,7 @@ public: | |||
{ | |||
AudioIODevice* const currentDevice = setup.manager->getCurrentAudioDevice(); | |||
deleteAndZero (showUIButton); | |||
showUIButton = 0; | |||
if (currentDevice != 0 && currentDevice->hasControlPanel()) | |||
{ | |||
@@ -513,8 +485,8 @@ public: | |||
} | |||
else | |||
{ | |||
deleteAndZero (outputChanLabel); | |||
deleteAndZero (outputChanList); | |||
outputChanLabel = 0; | |||
outputChanList = 0; | |||
} | |||
if (setup.maxNumInputChannels > 0 | |||
@@ -533,8 +505,8 @@ public: | |||
} | |||
else | |||
{ | |||
deleteAndZero (inputChanLabel); | |||
deleteAndZero (inputChanList); | |||
inputChanLabel = 0; | |||
inputChanList = 0; | |||
} | |||
// sample rate.. | |||
@@ -544,7 +516,6 @@ public: | |||
addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); | |||
sampleRateDropDown->addListener (this); | |||
delete sampleRateLabel; | |||
sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); | |||
sampleRateLabel->attachToComponent (sampleRateDropDown, true); | |||
} | |||
@@ -573,7 +544,6 @@ public: | |||
addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); | |||
bufferSizeDropDown->addListener (this); | |||
delete bufferSizeLabel; | |||
bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); | |||
bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); | |||
} | |||
@@ -604,10 +574,10 @@ public: | |||
{ | |||
jassert (setup.manager->getCurrentAudioDevice() == 0); // not the correct device type! | |||
deleteAndZero (sampleRateLabel); | |||
deleteAndZero (bufferSizeLabel); | |||
deleteAndZero (sampleRateDropDown); | |||
deleteAndZero (bufferSizeDropDown); | |||
sampleRateLabel = 0; | |||
bufferSizeLabel = 0; | |||
sampleRateDropDown = 0; | |||
bufferSizeDropDown = 0; | |||
if (outputDeviceDropDown != 0) | |||
outputDeviceDropDown->setSelectedId (-1, true); | |||
@@ -624,20 +594,11 @@ private: | |||
AudioIODeviceType* const type; | |||
const AudioIODeviceType::DeviceSetupDetails setup; | |||
ComboBox* outputDeviceDropDown; | |||
ComboBox* inputDeviceDropDown; | |||
ComboBox* sampleRateDropDown; | |||
ComboBox* bufferSizeDropDown; | |||
Label* outputDeviceLabel; | |||
Label* inputDeviceLabel; | |||
Label* sampleRateLabel; | |||
Label* bufferSizeLabel; | |||
Label* inputChanLabel; | |||
Label* outputChanLabel; | |||
TextButton* testButton; | |||
Component* inputLevelMeter; | |||
TextButton* showUIButton; | |||
TextButton* showAdvancedSettingsButton; | |||
ScopedPointer<ComboBox> outputDeviceDropDown, inputDeviceDropDown, sampleRateDropDown, bufferSizeDropDown; | |||
ScopedPointer<Label> outputDeviceLabel, inputDeviceLabel, sampleRateLabel, bufferSizeLabel, inputChanLabel, outputChanLabel; | |||
ScopedPointer<TextButton> testButton; | |||
ScopedPointer<Component> inputLevelMeter; | |||
ScopedPointer<TextButton> showUIButton, showAdvancedSettingsButton; | |||
void showCorrectDeviceName (ComboBox* const box, const bool isInput) | |||
{ | |||
@@ -937,8 +898,7 @@ public: | |||
}; | |||
private: | |||
ChannelSelectorListBox* inputChanList; | |||
ChannelSelectorListBox* outputChanList; | |||
ScopedPointer<ChannelSelectorListBox> inputChanList, outputChanList; | |||
AudioDeviceSettingsPanel (const AudioDeviceSettingsPanel&); | |||
AudioDeviceSettingsPanel& operator= (const AudioDeviceSettingsPanel&); | |||
@@ -958,7 +918,6 @@ AudioDeviceSelectorComponent::AudioDeviceSelectorComponent (AudioDeviceManager& | |||
: deviceManager (deviceManager_), | |||
deviceTypeDropDown (0), | |||
deviceTypeDropDownLabel (0), | |||
audioDeviceSettingsComp (0), | |||
minOutputChannels (minOutputChannels_), | |||
maxOutputChannels (maxOutputChannels_), | |||
minInputChannels (minInputChannels_), | |||
@@ -1026,7 +985,6 @@ AudioDeviceSelectorComponent::AudioDeviceSelectorComponent (AudioDeviceManager& | |||
AudioDeviceSelectorComponent::~AudioDeviceSelectorComponent() | |||
{ | |||
deviceManager.removeChangeListener (this); | |||
deleteAllChildren(); | |||
} | |||
void AudioDeviceSelectorComponent::resized() | |||
@@ -1088,7 +1046,7 @@ void AudioDeviceSelectorComponent::comboBoxChanged (ComboBox* comboBoxThatHasCha | |||
if (type != 0) | |||
{ | |||
deleteAndZero (audioDeviceSettingsComp); | |||
audioDeviceSettingsComp = 0; | |||
deviceManager.setCurrentAudioDeviceType (type->getTypeName(), true); | |||
@@ -1112,8 +1070,7 @@ void AudioDeviceSelectorComponent::changeListenerCallback (void*) | |||
|| audioDeviceSettingsCompType != deviceManager.getCurrentAudioDeviceType()) | |||
{ | |||
audioDeviceSettingsCompType = deviceManager.getCurrentAudioDeviceType(); | |||
deleteAndZero (audioDeviceSettingsComp); | |||
audioDeviceSettingsComp = 0; | |||
AudioIODeviceType* const type | |||
= deviceManager.getAvailableDeviceTypes() [deviceTypeDropDown == 0 | |||
@@ -95,19 +95,19 @@ public: | |||
private: | |||
AudioDeviceManager& deviceManager; | |||
ComboBox* deviceTypeDropDown; | |||
Label* deviceTypeDropDownLabel; | |||
Component* audioDeviceSettingsComp; | |||
ScopedPointer<ComboBox> deviceTypeDropDown; | |||
ScopedPointer<Label> deviceTypeDropDownLabel; | |||
ScopedPointer<Component> audioDeviceSettingsComp; | |||
String audioDeviceSettingsCompType; | |||
const int minOutputChannels, maxOutputChannels, minInputChannels, maxInputChannels; | |||
const bool showChannelsAsStereoPairs; | |||
const bool hideAdvancedOptionsWithButton; | |||
class MidiInputSelectorComponentListBox; | |||
MidiInputSelectorComponentListBox* midiInputsList; | |||
Label* midiInputsLabel; | |||
ComboBox* midiOutputSelector; | |||
Label* midiOutputLabel; | |||
friend class ScopedPointer<MidiInputSelectorComponentListBox>; | |||
ScopedPointer<MidiInputSelectorComponentListBox> midiInputsList; | |||
ScopedPointer<ComboBox> midiOutputSelector; | |||
ScopedPointer<Label> midiInputsLabel, midiOutputLabel; | |||
AudioDeviceSelectorComponent (const AudioDeviceSelectorComponent&); | |||
AudioDeviceSelectorComponent& operator= (const AudioDeviceSelectorComponent&); | |||
@@ -71,7 +71,6 @@ public: | |||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 | |||
audioProcID (0), | |||
#endif | |||
inputDevice (0), | |||
isSlaveDevice (false), | |||
deviceID (id), | |||
started (false), | |||
@@ -105,7 +104,6 @@ public: | |||
AudioObjectRemovePropertyListener (deviceID, &pa, deviceListenerProc, this); | |||
stop (false); | |||
delete inputDevice; | |||
} | |||
void allocateTempBuffers() | |||
@@ -770,7 +768,7 @@ public: | |||
AudioDeviceIOProcID audioProcID; | |||
#endif | |||
CoreAudioInternal* inputDevice; | |||
ScopedPointer<CoreAudioInternal> inputDevice; | |||
bool isSlaveDevice; | |||
private: | |||
@@ -874,7 +872,6 @@ public: | |||
isOpen_ (false), | |||
isStarted (false) | |||
{ | |||
internal = 0; | |||
CoreAudioInternal* device = 0; | |||
if (outputDeviceId == 0 || outputDeviceId == inputDeviceId) | |||
@@ -914,8 +911,6 @@ public: | |||
pa.mElement = kAudioObjectPropertyElementWildcard; | |||
AudioObjectRemovePropertyListener (kAudioObjectSystemObject, &pa, hardwareListenerProc, internal); | |||
delete internal; | |||
} | |||
const StringArray getOutputChannelNames() | |||
@@ -1084,7 +1079,7 @@ public: | |||
juce_UseDebuggingNewOperator | |||
private: | |||
CoreAudioInternal* internal; | |||
ScopedPointer<CoreAudioInternal> internal; | |||
bool isOpen_, isStarted; | |||
String lastError; | |||
@@ -1503,7 +1503,7 @@ const String DSoundAudioIODevice::openDevice (const BigInteger& inputChannels, | |||
enabledInputs.getHighestBit() + 1 - inChannels.size(), | |||
false); | |||
inputBuffers.setSize (enabledInputs.countNumberOfSetBits(), bufferSizeSamples); | |||
inputBuffers.setSize (jmax (1, enabledInputs.countNumberOfSetBits()), bufferSizeSamples); | |||
int i, numIns = 0; | |||
for (i = 0; i <= enabledInputs.getHighestBit(); i += 2) | |||
@@ -1528,7 +1528,7 @@ const String DSoundAudioIODevice::openDevice (const BigInteger& inputChannels, | |||
enabledOutputs.getHighestBit() + 1 - outChannels.size(), | |||
false); | |||
outputBuffers.setSize (enabledOutputs.countNumberOfSetBits(), bufferSizeSamples); | |||
outputBuffers.setSize (jmax (1, enabledOutputs.countNumberOfSetBits()), bufferSizeSamples); | |||
int numOuts = 0; | |||
for (i = 0; i <= enabledOutputs.getHighestBit(); i += 2) | |||