void MultiChoicePropertyComponent::resized() { auto bounds = getLookAndFeel().getPropertyComponentContentPosition (*this); bounds.removeFromBottom (5); auto buttonSlice = bounds.removeFromBottom (10); expandButton.setSize (10, 10); expandButton.setCentrePosition (buttonSlice.getCentre()); numHidden = 0; for (auto* b : choiceButtons) { if (bounds.getHeight() >= 25) { b->setVisible (true); b->setBounds (bounds.removeFromTop (25).reduced (5, 2)); } else { b->setVisible (false); ++numHidden; } } }
void CabbagePluginListComponent::resized() { auto r = getLocalBounds().reduced (2); optionsButton.setBounds (r.removeFromBottom (24)); optionsButton.changeWidthToFitText (24); r.removeFromBottom (3); table.setBounds (r); }
void DropShadow::drawForRectangle (Graphics& g, const Rectangle<int>& targetArea) const { ColourGradient cg (colour, 0, 0, colour.withAlpha (0.0f), 0, 0, false); for (float i = 0.05f; i < 1.0f; i += 0.1f) cg.addColour (1.0 - i, colour.withMultipliedAlpha (i * i)); const float radiusInset = radius / 2.0f; const float expandedRadius = radius + radiusInset; auto area = targetArea.toFloat().reduced (radiusInset) + offset.toFloat(); auto r = area.expanded (expandedRadius); auto top = r.removeFromTop (expandedRadius); auto bottom = r.removeFromBottom (expandedRadius); drawShadowSection (g, cg, top.removeFromLeft (expandedRadius), true, 1.0f, 1.0f, 0, 1.0f); drawShadowSection (g, cg, top.removeFromRight (expandedRadius), true, 0, 1.0f, 1.0f, 1.0f); drawShadowSection (g, cg, top, false, 0, 1.0f, 0, 0); drawShadowSection (g, cg, bottom.removeFromLeft (expandedRadius), true, 1.0f, 0, 0, 0); drawShadowSection (g, cg, bottom.removeFromRight (expandedRadius), true, 0, 0, 1.0f, 0); drawShadowSection (g, cg, bottom, false, 0, 0, 0, 1.0f); drawShadowSection (g, cg, r.removeFromLeft (expandedRadius), false, 1.0f, 0, 0, 0); drawShadowSection (g, cg, r.removeFromRight (expandedRadius), false, 0, 0, 1.0f, 0); g.setColour (colour); g.fillRect (area); }
void TrackComponent::resized() { // update the bounds of the regions to the values in the _posX container for(size_t current = 0; current < _regions.size(); ++current) { auto r(getLocalBounds().reduced(4)); r.setX((int)_posX.at(current)); int64 lengthSeconds = samplesToSeconds(_sizeSamps.at(current), _sampleRate); r.setWidth((int)lengthSeconds * (int)_pixelsPerClip); r.removeFromBottom(6); _regionComponents.at(current)->setBounds(r.removeFromBottom(90)); } // set the track mixer bounds _trackMixer->setBounds(0, 0, (int)_mixerOffset, getParentHeight()); repaint(); }
void JucerTreeViewBase::paintItem (Graphics& g, int width, int height) { ignoreUnused (width, height); auto bounds = g.getClipBounds().withY (0).withHeight (height).toFloat(); g.setColour (getOwnerView()->findColour (treeIconColourId).withMultipliedAlpha (0.4f)); g.fillRect (bounds.removeFromBottom (0.5f).reduced (5, 0)); }
//============================================================================== void ResizableWindow::activeWindowStatusChanged() { auto border = getContentComponentBorder(); auto area = getLocalBounds(); repaint (area.removeFromTop (border.getTop())); repaint (area.removeFromLeft (border.getLeft())); repaint (area.removeFromRight (border.getRight())); repaint (area.removeFromBottom (border.getBottom())); }
void ResourceEditorPanel::resized() { auto bounds = getLocalBounds(); auto buttonSlice = bounds.removeFromBottom (40).reduced (5, 5); addButton.setBounds (buttonSlice.removeFromLeft (125)); buttonSlice.removeFromLeft (10); reloadAllButton.setBounds (buttonSlice.removeFromLeft (125)); delButton.setBounds (buttonSlice.removeFromRight (125)); listBox->setBounds (bounds); }
void ProjectContentComponent::resized() { auto r = getLocalBounds(); r.removeFromRight (10); r.removeFromLeft (15); r.removeFromBottom (40); r.removeFromTop (5); if (header != nullptr) header->setBounds (r.removeFromTop (40)); r.removeFromTop (10); auto sidebarArea = r.removeFromLeft (sidebarTabs.getWidth() != 0 ? sidebarTabs.getWidth() : r.getWidth() / 4); if (sidebarTabs.isVisible()) sidebarTabs.setBounds (sidebarArea); if (resizerBar != nullptr) resizerBar->setBounds (r.withWidth (4)); if (auto* h = dynamic_cast<HeaderComponent*> (header.get())) { h->sidebarTabsWidthChanged (sidebarTabs.getWidth()); r.removeFromRight (h->getUserButtonWidth()); } if (contentView != nullptr) { if (fileNameLabel != nullptr && fileNameLabel->isVisible()) fileNameLabel->setBounds (r.removeFromTop (15)); contentView->setBounds (r); } if (logo != nullptr) logo->setBounds (r.reduced (r.getWidth() / 6, r.getHeight() / 6)); }
//====================================================================== void HeaderComponent::resized() { auto bounds = getLocalBounds(); configLabel.setFont ({ bounds.getHeight() / 3.0f }); //====================================================================== { auto headerBounds = bounds.removeFromLeft (tabsWidth); const int buttonSize = 25; auto buttonBounds = headerBounds.removeFromRight (buttonSize); projectSettingsButton->setBounds (buttonBounds.removeFromBottom (buttonSize).reduced (2)); juceIcon->setBounds (headerBounds.removeFromLeft (headerBounds.getHeight()).reduced (2)); headerBounds.removeFromRight (5); projectNameLabel.setBounds (headerBounds); } //====================================================================== auto exporterWidth = jmin (400, bounds.getWidth() / 2); Rectangle<int> exporterBounds (0, 0, exporterWidth, bounds.getHeight()); exporterBounds.setCentre (bounds.getCentre()); runAppButton->setBounds (exporterBounds.removeFromRight (exporterBounds.getHeight()).reduced (2)); saveAndOpenInIDEButton->setBounds (exporterBounds.removeFromRight (exporterBounds.getHeight()).reduced (2)); exporterBounds.removeFromRight (5); exporterBox.setBounds (exporterBounds.removeFromBottom (roundToInt (exporterBounds.getHeight() / 1.8f))); configLabel.setBounds (exporterBounds); bounds.removeFromRight (5); userSettingsButton->setBounds (bounds.removeFromRight (bounds.getHeight()).reduced (2)); }
void ProjucerLookAndFeel::layoutFileBrowserComponent (FileBrowserComponent& browserComp, DirectoryContentsDisplayComponent* fileListComponent, FilePreviewComponent* previewComp, ComboBox* currentPathBox, TextEditor* filenameBox, Button* goUpButton) { const auto sectionHeight = 22; const auto buttonWidth = 50; auto b = browserComp.getLocalBounds().reduced (20, 5); auto topSlice = b.removeFromTop (sectionHeight); auto bottomSlice = b.removeFromBottom (sectionHeight); currentPathBox->setBounds (topSlice.removeFromLeft (topSlice.getWidth() - buttonWidth)); currentPathBox->setColour (ComboBox::backgroundColourId, findColour (backgroundColourId)); currentPathBox->setColour (ComboBox::textColourId, findColour (defaultTextColourId)); currentPathBox->setColour (ComboBox::arrowColourId, findColour (defaultTextColourId)); topSlice.removeFromLeft (6); goUpButton->setBounds (topSlice); bottomSlice.removeFromLeft (50); filenameBox->setBounds (bottomSlice); filenameBox->setColour (TextEditor::backgroundColourId, findColour (backgroundColourId)); filenameBox->setColour (TextEditor::textColourId, findColour (defaultTextColourId)); filenameBox->setColour (TextEditor::outlineColourId, findColour (defaultTextColourId)); filenameBox->applyFontToAllText (filenameBox->getFont()); if (previewComp != nullptr) previewComp->setBounds (b.removeFromRight (b.getWidth() / 3)); if (auto listAsComp = dynamic_cast<Component*> (fileListComponent)) listAsComp->setBounds (b.reduced (0, 10)); }
void MidiKeyboardComponent::resized() { auto w = getWidth(); auto h = getHeight(); if (w > 0 && h > 0) { if (orientation != horizontalKeyboard) std::swap (w, h); auto kx2 = getKeyPos (rangeEnd).getEnd(); if ((int) firstKey != rangeStart) { auto kx1 = getKeyPos (rangeStart).getStart(); if (kx2 - kx1 <= w) { firstKey = (float) rangeStart; sendChangeMessage(); repaint(); } } scrollDown->setVisible (canScroll && firstKey > (float) rangeStart); xOffset = 0; if (canScroll) { auto scrollButtonW = jmin (scrollButtonWidth, w / 2); auto r = getLocalBounds(); if (orientation == horizontalKeyboard) { scrollDown->setBounds (r.removeFromLeft (scrollButtonW)); scrollUp ->setBounds (r.removeFromRight (scrollButtonW)); } else if (orientation == verticalKeyboardFacingLeft) { scrollDown->setBounds (r.removeFromTop (scrollButtonW)); scrollUp ->setBounds (r.removeFromBottom (scrollButtonW)); } else { scrollDown->setBounds (r.removeFromBottom (scrollButtonW)); scrollUp ->setBounds (r.removeFromTop (scrollButtonW)); } auto endOfLastKey = getKeyPos (rangeEnd).getEnd(); float mousePositionVelocity; auto spaceAvailable = w; auto lastStartKey = remappedXYToNote ({ endOfLastKey - spaceAvailable, 0 }, mousePositionVelocity) + 1; if (lastStartKey >= 0 && ((int) firstKey) > lastStartKey) { firstKey = (float) jlimit (rangeStart, rangeEnd, lastStartKey); sendChangeMessage(); } xOffset = getKeyPos ((int) firstKey).getStart(); } else { firstKey = (float) rangeStart; } scrollUp->setVisible (canScroll && getKeyPos (rangeEnd).getStart() > w); repaint(); } }