/* ============================================================================== This file is part of the JUCE 6 technical preview. Copyright (c) 2017 - ROLI Ltd. You may use this code under the terms of the GPL v3 (see www.gnu.org/licenses). For this technical preview, this file is not subject to commercial licensing. JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE DISCLAIMED. ============================================================================== */ #pragma once //============================================================================== class ProjucerLookAndFeel : public LookAndFeel_V4 { public: ProjucerLookAndFeel(); ~ProjucerLookAndFeel() override; void drawTabButton (TabBarButton& button, Graphics&, bool isMouseOver, bool isMouseDown) override; int getTabButtonBestWidth (TabBarButton&, int tabDepth) override; void drawTabAreaBehindFrontButton (TabbedButtonBar&, Graphics&, int, int) override {} void drawPropertyComponentBackground (Graphics&, int, int, PropertyComponent&) override {} void drawPropertyComponentLabel (Graphics&, int width, int height, PropertyComponent&) override; Rectangle getPropertyComponentContentPosition (PropertyComponent&) override; void drawButtonBackground (Graphics&, Button&, const Colour& backgroundColour, bool isMouseOverButton, bool isButtonDown) override; void drawButtonText (Graphics&, TextButton&, bool isMouseOverButton, bool isButtonDown) override; void drawToggleButton (Graphics&, ToggleButton&, bool isMouseOverButton, bool isButtonDown) override; void drawTextEditorOutline (Graphics&, int, int, TextEditor&) override {} void fillTextEditorBackground (Graphics&, int width, int height, TextEditor&) override; void layoutFileBrowserComponent (FileBrowserComponent&, DirectoryContentsDisplayComponent*, FilePreviewComponent*, ComboBox* currentPathBox, TextEditor* filenameBox,Button* goUpButton) override; void drawFileBrowserRow (Graphics&, int width, int height, const File&, const String& filename, Image* icon, const String& fileSizeDescription, const String& fileTimeDescription, bool isDirectory, bool isItemSelected, int itemIndex, DirectoryContentsDisplayComponent&) override; void drawCallOutBoxBackground (CallOutBox&, Graphics&, const Path&, Image&) override; void drawMenuBarBackground (Graphics&, int width, int height, bool isMouseOverBar, MenuBarComponent&) override; void drawMenuBarItem (Graphics&, int width, int height, int itemIndex, const String& itemText, bool isMouseOverItem, bool isMenuOpen, bool isMouseOverBar, MenuBarComponent&) override; void drawResizableFrame (Graphics&, int w, int h, const BorderSize&) override; void drawComboBox (Graphics&, int width, int height, bool isButtonDown, int buttonX, int buttonY, int buttonW, int buttonH, ComboBox&) override; void drawTreeviewPlusMinusBox (Graphics&, const Rectangle& area, Colour backgroundColour, bool isItemOpen, bool isMouseOver) override; void drawProgressBar (Graphics&, ProgressBar&, int width, int height, double progress, const String& textToShow) override; //============================================================================== static Path getArrowPath (Rectangle arrowZone, const int direction, const bool filled, const Justification justification); static Path getChoiceComponentArrowPath (Rectangle arrowZone); static Font getPropertyComponentFont() { return { 14.0f, Font::FontStyleFlags::bold }; } static int getTextWidthForPropertyComponent (PropertyComponent* pp) { return jmin (200, pp->getWidth() / 2); } static ColourScheme getProjucerDarkColourScheme() { return { 0xff323e44, 0xff263238, 0xff323e44, 0xff8e989b, 0xffffffff, 0xffa45c94, 0xffffffff, 0xff181f22, 0xffffffff }; } //============================================================================== void setupColours(); private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjucerLookAndFeel) };