33 const Colour textButtonColour (0xffeeeeff);
54 bool isMouseOver,
bool isMouseDragging)
56 if (isMouseOver || isMouseDragging)
61 bool isScrollbarVertical,
int thumbStartPosition,
int thumbSize,
bool isMouseOver,
bool isMouseDown)
67 const float thumbIndent = (float) (isScrollbarVertical ?
width :
height) * 0.25f;
68 const float thumbIndentx2 = thumbIndent * 2.0f;
70 if (isScrollbarVertical)
71 thumbPath.
addRoundedRectangle ((
float)
x + thumbIndent, (
float) thumbStartPosition + thumbIndent,
72 (
float)
width - thumbIndentx2, (
float) thumbSize - thumbIndentx2, ((
float)
width - thumbIndentx2) * 0.5f);
74 thumbPath.
addRoundedRectangle ((
float) thumbStartPosition + thumbIndent, (
float)
y + thumbIndent,
75 (
float) thumbSize - thumbIndentx2, (
float)
height - thumbIndentx2, ((
float)
height - thumbIndentx2) * 0.5f);
80 if (isMouseOver || isMouseDown)
83 g.setColour (thumbCol);
84 g.fillPath (thumbPath);
86 g.setColour (thumbCol.
contrasting ((isMouseOver || isMouseDown) ? 0.2f : 0.1f));
91 bool isMouseOver,
bool ,
116 g.fillPath (outline);
118 g.setColour (
Colours::white.withAlpha (0.4f * mainAlpha * mainBrightness * mainBrightness));
127 bool shouldDrawButtonAsHighlighted,
bool shouldDrawButtonAsDown)
132 if (shouldDrawButtonAsDown || shouldDrawButtonAsHighlighted)
133 baseColour = baseColour.
contrasting (shouldDrawButtonAsDown ? 0.2f : 0.1f);
135 const bool flatOnLeft =
button.isConnectedOnLeft();
136 const bool flatOnRight =
button.isConnectedOnRight();
137 const bool flatOnTop =
button.isConnectedOnTop();
138 const bool flatOnBottom =
button.isConnectedOnBottom();
140 const float width = (float)
button.getWidth() - 1.0f;
145 const float cornerSize = 4.0f;
149 ! (flatOnLeft || flatOnTop),
150 ! (flatOnRight || flatOnTop),
151 ! (flatOnLeft || flatOnBottom),
152 ! (flatOnRight || flatOnBottom));
163 g.setColour (outlineColour);
164 g.fillRect (
r.removeFromBottom (1));
169 g.setColour (outlineColour);
181 Font font (depth * 0.5f);
186 s.append (
button.getButtonText().trim(), font, colour);
199 if (
button.getToggleState())
220 g.fillRect (activeArea);
231 const float alpha =
button.isEnabled() ? ((isMouseOver || isMouseDown) ? 1.0f : 0.8f) : 0.3f;
240 if (bar->isColourSpecified (colID))
241 col = bar->findColour (colID);
251 if (
button.getTabbedButtonBar().isVertical())
252 std::swap (
length, depth);
274 const float shadowSize = 0.15f;
284 gradient.
point2.
x = (float)
w * (1.0f - shadowSize);
290 gradient.
point2.
x = (float)
w * shadowSize;
297 gradient.
point2.
y = (float)
h * (1.0f - shadowSize);
303 gradient.
point2.
y = (float)
h * shadowSize;
311 g.setGradientFill (gradient);
336 Colour backgroundColour,
bool isOpen,
bool isMouseOver)
339 p.addTriangle (0.0f, 0.0f, 1.0f, isOpen ? 0.0f : 0.5f, isOpen ? 0.5f : 0.0f, 1.0f);
356 int buttonX,
int buttonY,
int buttonW,
int buttonH,
ComboBox&
box)
360 if (
box.isEnabled() &&
box.hasKeyboardFocus (
false))
371 const float arrowX = 0.3f;
372 const float arrowH = 0.2f;
374 const auto x = (float) buttonX;
375 const auto y = (float) buttonY;
376 const auto w = (float) buttonW;
377 const auto h = (float) buttonH;
380 p.addTriangle (
x +
w * 0.5f,
y +
h * (0.45f - arrowH),
381 x +
w * (1.0f - arrowX),
y +
h * 0.45f,
382 x +
w * arrowX,
y +
h * 0.45f);
384 p.addTriangle (
x +
w * 0.5f,
y +
h * (0.55f + arrowH),
385 x +
w * (1.0f - arrowX),
y +
h * 0.55f,
386 x +
w * arrowX,
y +
h * 0.55f);
393 float sliderPos,
float minSliderPos,
float maxSliderPos,
400 const float fx = (float)
x, fy = (
float)
y, fw = (float)
width, fh = (
float)
height;
405 p.addRectangle (fx, sliderPos, fw, 1.0f + fh - sliderPos);
407 p.addRectangle (fx, fy, sliderPos - fx, fh);
410 .withMultipliedSaturation (
slider.isEnabled() ? 1.0f : 0.5f)
411 .withMultipliedAlpha (0.8f);
414 baseColour.darker (0.08f), (
float)
height));
417 g.setColour (baseColour.darker (0.2f));
420 g.fillRect (fx, sliderPos, fw, 1.0f);
422 g.fillRect (sliderPos, fy, 1.0f, fh);
444 if (
slider.isHorizontal())
446 auto iy = (float)
y + (
float)
height * 0.5f - sliderRadius * 0.5f;
450 indent.addRoundedRectangle ((
float)
x - sliderRadius * 0.5f, iy, (
float)
width + sliderRadius, sliderRadius, 5.0f);
454 auto ix = (float)
x + (
float)
width * 0.5f - sliderRadius * 0.5f;
458 indent.addRoundedRectangle (ix, (
float)
y - sliderRadius * 0.5f, sliderRadius, (
float)
height + sliderRadius, 5.0f);
485 g.setColour (colour.contrasting (0.15f));
486 g.fillRect (
r.removeFromTop (1));
487 g.fillRect (
r.removeFromBottom (1));
496 const Colour textColour (
button.findColour (0x100ad01 ,
true));
503 g.fillRoundedRectangle (
button.getLocalBounds().toFloat(), 4.0f);
504 g.drawRoundedRectangle (
button.getLocalBounds().toFloat(), 4.0f, 1.0f);
507 g.setColour (textColour);
508 g.setFont ((
float)
height * 0.6f);
513 const float thickness = 7.0f;
514 const float indent = 22.0f;
517 p.addEllipse (0.0f, 0.0f, 100.0f, 100.0f);
518 p.addRectangle (indent, 50.0f - thickness, 100.0f - indent * 2.0f, thickness * 2.0f);
519 p.addRectangle (50.0f - thickness, indent, thickness * 2.0f, 50.0f - indent - thickness);
520 p.addRectangle (50.0f - thickness, 50.0f + thickness, thickness * 2.0f, 50.0f - indent - thickness);
521 p.setUsingNonZeroWinding (
false);
524 g.fillPath (
p,
p.getTransformToScaleToFit (2.0f, 2.0f, (
float)
width - 4.0f, (
float)
height - 4.0f,
true));
527 if (
button.hasKeyboardFocus (
false))
548 background = rw->getBackgroundColour();
551 const float diam =
jmin (cx, cy) * (shouldDrawButtonAsDown ? 0.60f : 0.65f);
553 g.setColour (background);
554 g.fillEllipse (cx - diam, cy - diam, diam * 2.0f, diam * 2.0f);
559 c =
c.withAlpha (0.6f);
560 else if (shouldDrawButtonAsHighlighted)
564 g.drawEllipse (cx - diam, cy - diam, diam * 2.0f, diam * 2.0f, diam * 0.2f);
569 g.fillPath (
p,
p.getTransformToScaleToFit (cx - diam * scale, cy - diam * scale,
570 diam * 2.0f * scale, diam * 2.0f * scale,
true));
583 const float crossThickness = 0.25f;
605 Path fullscreenShape;
607 fullscreenShape.
lineTo (0.0f, 100.0f);
608 fullscreenShape.
lineTo (0.0f, 0.0f);
609 fullscreenShape.
lineTo (100.0f, 0.0f);
610 fullscreenShape.
lineTo (100.0f, 45.0f);
611 fullscreenShape.
addRectangle (45.0f, 45.0f, 100.0f, 100.0f);
623 static const unsigned char pathData[]
624 = { 110,109,32,210,202,64,126,183,148,64,108,39,244,247,64,245,76,124,64,108,178,131,27,65,246,76,252,64,108,175,242,4,65,246,76,252,
625 64,108,236,5,68,65,0,0,160,180,108,240,150,90,65,21,136,52,63,108,48,59,16,65,0,0,32,65,108,32,210,202,64,126,183,148,64, 99,101,0,0 };
628 p.loadPathFromData (pathData,
sizeof (pathData));
635 static const unsigned char pathData[]
636 = { 110,109,88,57,198,65,29,90,171,65,108,63,53,154,65,8,172,126,65,108,76,55,198,65,215,163,38,65,108,141,151,175,65,82,184,242,64,108,117,147,131,65,90,100,81,65,108,184,30,47,65,82,184,242,64,108,59,223,1,65,215,163,38,65,108,84,227,89,65,8,172,126,65,
637 108,35,219,1,65,29,90,171,65,108,209,34,47,65,231,251,193,65,108,117,147,131,65,207,247,149,65,108,129,149,175,65,231,251,193,65,99,101,0,0 };
640 p.loadPathFromData (pathData,
sizeof (pathData));
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
float normal(const fft_t *freqs, off_t x)
Definition OscilGen.cpp:46
Definition juce_AttributedString.h:47
@ backgroundColourId
Definition juce_BubbleComponent.h:142
Definition juce_ColourGradient.h:38
static ColourGradient horizontal(Colour colour1, float x1, Colour colour2, float x2)
Definition juce_ColourGradient.cpp:90
Point< float > point2
Definition juce_ColourGradient.h:195
static ColourGradient vertical(Colour colour1, float y1, Colour colour2, float y2)
Definition juce_ColourGradient.cpp:85
Point< float > point1
Definition juce_ColourGradient.h:195
Definition juce_Colour.h:38
Colour withAlpha(uint8 newAlpha) const noexcept
Definition juce_Colour.cpp:317
JUCE_NODISCARD Colour brighter(float amountBrighter=0.4f) const noexcept
Definition juce_Colour.cpp:461
JUCE_NODISCARD Colour withMultipliedSaturation(float multiplier) const noexcept
Definition juce_Colour.cpp:432
JUCE_NODISCARD Colour darker(float amountDarker=0.4f) const noexcept
Definition juce_Colour.cpp:472
float getBrightness() const noexcept
Definition juce_Colour.cpp:405
static JUCE_NODISCARD Colour greyLevel(float brightness) noexcept
Definition juce_Colour.cpp:484
Colour withMultipliedAlpha(float alphaMultiplier) const noexcept
Definition juce_Colour.cpp:333
float getFloatAlpha() const noexcept
Definition juce_Colour.cpp:384
JUCE_NODISCARD Colour contrasting(float amount=1.0f) const noexcept
Definition juce_Colour.cpp:491
Colour overlaidWith(Colour foregroundColour) const noexcept
Definition juce_Colour.cpp:343
Definition juce_ComboBox.h:49
@ arrowColourId
Definition juce_ComboBox.h:360
@ outlineColourId
Definition juce_ComboBox.h:358
@ focusedOutlineColourId
Definition juce_ComboBox.h:361
@ buttonColourId
Definition juce_ComboBox.h:359
@ backgroundColourId
Definition juce_ComboBox.h:356
Definition juce_Component.h:36
int getHeight() const noexcept
Definition juce_Component.h:274
bool hasKeyboardFocus(bool trueIfChildIsFocused) const
Definition juce_Component.cpp:3086
TargetClass * findParentComponentOfClass() const
Definition juce_Component.h:813
Colour findColour(int colourID, bool inheritFromParent=false) const
Definition juce_Component.cpp:2219
int getWidth() const noexcept
Definition juce_Component.h:271
bool isEnabled() const noexcept
Definition juce_Component.cpp:3104
Rectangle< int > getLocalBounds() const noexcept
Definition juce_Component.cpp:2283
String getName() const noexcept
Definition juce_Component.h:76
Definition juce_ConcertinaPanel.h:40
@ closeButton
Definition juce_DocumentWindow.h:66
@ maximiseButton
Definition juce_DocumentWindow.h:65
@ minimiseButton
Definition juce_DocumentWindow.h:64
Definition juce_Font.h:42
void setUnderline(bool shouldBeUnderlined)
Definition juce_Font.cpp:723
JUCE_NODISCARD Font boldened() const
Definition juce_Font.cpp:702
Definition juce_GraphicsContext.h:45
@ centred
Definition juce_Justification.h:138
@ centredLeft
Definition juce_Justification.h:143
Definition juce_Line.h:47
int getSliderThumbRadius(Slider &) override
Definition juce_LookAndFeel_V2.cpp:1523
void drawLinearSliderThumb(Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider &) override
Definition juce_LookAndFeel_V2.cpp:1401
void drawTextEditorOutline(Graphics &, int width, int height, TextEditor &) override
Definition juce_LookAndFeel_V3.cpp:318
void drawButtonBackground(Graphics &, Button &, const Colour &backgroundColour, bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown) override
Definition juce_LookAndFeel_V3.cpp:126
void drawConcertinaPanelHeader(Graphics &, const Rectangle< int > &area, bool isMouseOver, bool isMouseDown, ConcertinaPanel &, Component &) override
Definition juce_LookAndFeel_V3.cpp:90
void drawTreeviewPlusMinusBox(Graphics &, const Rectangle< float > &area, Colour backgroundColour, bool isOpen, bool isMouseOver) override
Definition juce_LookAndFeel_V3.cpp:335
void drawLinearSlider(Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider &) override
Definition juce_LookAndFeel_V3.cpp:392
void drawMenuBarBackground(Graphics &, int width, int height, bool, MenuBarComponent &) override
Definition juce_LookAndFeel_V3.cpp:478
bool areLinesDrawnForTreeView(TreeView &) override
Definition juce_LookAndFeel_V3.cpp:345
void drawTabAreaBehindFrontButton(TabbedButtonBar &bar, Graphics &g, int w, int h) override
Definition juce_LookAndFeel_V3.cpp:272
bool areScrollbarButtonsVisible() override
Definition juce_LookAndFeel_V3.cpp:51
void drawLinearSliderBackground(Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider &) override
Definition juce_LookAndFeel_V3.cpp:431
void drawTabButton(TabBarButton &, Graphics &, bool isMouseOver, bool isMouseDown) override
Definition juce_LookAndFeel_V3.cpp:191
void drawStretchableLayoutResizerBar(Graphics &, int w, int h, bool isVerticalBar, bool isMouseOver, bool isMouseDragging) override
Definition juce_LookAndFeel_V3.cpp:53
~LookAndFeel_V3() override
Definition juce_LookAndFeel_V3.cpp:49
void drawComboBox(Graphics &, int width, int height, bool isButtonDown, int buttonX, int buttonY, int buttonW, int buttonH, ComboBox &box) override
Definition juce_LookAndFeel_V3.cpp:355
int getTreeViewIndentSize(TreeView &) override
Definition juce_LookAndFeel_V3.cpp:350
int getTabButtonOverlap(int tabDepth) override
Definition juce_LookAndFeel_V3.cpp:175
static void createTabTextLayout(const TabBarButton &button, float length, float depth, Colour colour, TextLayout &)
Definition juce_LookAndFeel_V3.cpp:178
void drawKeymapChangeButton(Graphics &, int width, int height, Button &button, const String &keyDescription) override
Definition juce_LookAndFeel_V3.cpp:493
void drawScrollbar(Graphics &, ScrollBar &, int x, int y, int width, int height, bool isScrollbarVertical, int thumbStartPosition, int thumbSize, bool isMouseOver, bool isMouseDown) override
Definition juce_LookAndFeel_V3.cpp:60
int getTabButtonSpaceAroundImage() override
Definition juce_LookAndFeel_V3.cpp:176
LookAndFeel_V3()
Definition juce_LookAndFeel_V3.cpp:29
Button * createDocumentWindowButton(int buttonType) override
Definition juce_LookAndFeel_V3.cpp:580
Path getTickShape(float height) override
Definition juce_LookAndFeel_V3.cpp:621
void drawPopupMenuBackground(Graphics &, int width, int height) override
Definition juce_LookAndFeel_V3.cpp:467
Path getCrossShape(float height) override
Definition juce_LookAndFeel_V3.cpp:633
void drawTableHeaderBackground(Graphics &, TableHeaderComponent &) override
Definition juce_LookAndFeel_V3.cpp:158
bool isColourSpecified(int colourId) const noexcept
Definition juce_LookAndFeel.cpp:100
void setColour(int colourId, Colour colour) noexcept
Definition juce_LookAndFeel.cpp:89
Colour findColour(int colourId) const noexcept
Definition juce_LookAndFeel.cpp:77
Definition juce_Path.h:65
void addRoundedRectangle(float x, float y, float width, float height, float cornerSize)
Definition juce_Path.cpp:412
void startNewSubPath(float startX, float startY)
Definition juce_Path.cpp:216
void addRectangle(float x, float y, float width, float height)
Definition juce_Path.cpp:323
void lineTo(float endX, float endY)
Definition juce_Path.cpp:233
void addLineSegment(Line< float > line, float lineThickness)
Definition juce_Path.cpp:581
Definition juce_PathStrokeType.h:42
void createStrokedPath(Path &destPath, const Path &sourcePath, const AffineTransform &transform=AffineTransform(), float extraAccuracy=1.0f) const
Definition juce_PathStrokeType.cpp:655
Definition juce_Point.h:42
constexpr Point< float > toFloat() const noexcept
Definition juce_Point.h:234
ValueType y
Definition juce_Point.h:247
ValueType x
Definition juce_Point.h:246
Definition juce_Rectangle.h:67
ValueType getRight() const noexcept
Definition juce_Rectangle.h:139
JUCE_NODISCARD Rectangle withTop(ValueType newTop) const noexcept
Definition juce_Rectangle.h:279
Rectangle removeFromRight(ValueType amountToRemove) noexcept
Definition juce_Rectangle.h:542
Point< ValueType > getBottomLeft() const noexcept
Definition juce_Rectangle.h:176
Point< ValueType > getTopLeft() const noexcept
Definition juce_Rectangle.h:170
ValueType getHeight() const noexcept
Definition juce_Rectangle.h:136
JUCE_NODISCARD Rectangle withHeight(ValueType newHeight) const noexcept
Definition juce_Rectangle.h:248
ValueType getBottom() const noexcept
Definition juce_Rectangle.h:142
ValueType getX() const noexcept
Definition juce_Rectangle.h:127
Point< ValueType > getTopRight() const noexcept
Definition juce_Rectangle.h:173
ValueType getWidth() const noexcept
Definition juce_Rectangle.h:133
Rectangle reduced(ValueType deltaX, ValueType deltaY) const noexcept
Definition juce_Rectangle.h:485
ValueType getY() const noexcept
Definition juce_Rectangle.h:130
Rectangle expanded(ValueType deltaX, ValueType deltaY) const noexcept
Definition juce_Rectangle.h:451
void setBounds(ValueType newX, ValueType newY, ValueType newWidth, ValueType newHeight) noexcept
Definition juce_Rectangle.h:191
Definition juce_ResizableWindow.h:52
Definition juce_Slider.h:54
SliderStyle
Definition juce_Slider.h:62
@ LinearBarVertical
Definition juce_Slider.h:66
@ LinearBar
Definition juce_Slider.h:65
@ trackColourId
Definition juce_Slider.h:869
@ backgroundColourId
Definition juce_Slider.h:866
@ thumbColourId
Definition juce_Slider.h:867
Definition juce_String.h:53
bool isNotEmpty() const noexcept
Definition juce_String.h:316
@ outlineColourId
Definition juce_TabbedComponent.h:189
@ buttonColourId
Definition juce_TextButton.h:73
@ buttonOnColourId
Definition juce_TextButton.h:76
Definition juce_TextEditor.h:43
@ outlineColourId
Definition juce_TextEditor.h:223
@ focusedOutlineColourId
Definition juce_TextEditor.h:226
bool isReadOnly() const noexcept
Definition juce_TextEditor.cpp:1042
Definition juce_TextLayout.h:41
void draw(Graphics &, Rectangle< float > area) const
Definition juce_TextLayout.cpp:197
void createLayout(const AttributedString &, float maxWidth)
Definition juce_TextLayout.cpp:243
Definition juce_TreeView.h:657
@ selectedItemBackgroundColourId
Definition juce_TreeView.h:873
UINT_D64 w
Definition inflate.c:942
struct huft * t
Definition inflate.c:943
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
static const char * name
Definition pugl.h:1582
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
const Colour transparentBlack
Definition juce_Colours.h:40
const Colour grey
Definition juce_Colours.h:93
const Colour black
Definition juce_Colours.h:50
const Colour darkgrey
Definition juce_Colours.h:67
const Colour white
Definition juce_Colours.h:180
const Colour yellow
Definition juce_Colours.h:182
Definition carla_juce.cpp:31
static void drawButtonShape(Graphics &g, const Path &outline, Colour baseColour, float height)
Definition juce_LookAndFeel_V3.cpp:109
void ignoreUnused(Types &&...) noexcept
Definition juce_MathsFunctions.h:333
@ slider
Definition juce_AccessibilityRole.h:43
@ menuBar
Definition juce_AccessibilityRole.h:48
@ button
Definition juce_AccessibilityRole.h:38
png_uint_32 length
Definition png.c:2247
static constexpr FloatType pi
Definition juce_MathsFunctions.h:382
uch * p
Definition crypt.c:594
return c
Definition crypt.c:175
int r
Definition crypt.c:458
uch h[RAND_HEAD_LEN]
Definition crypt.c:459