LMMS
Loading...
Searching...
No Matches
juce_LookAndFeel_V1.cpp
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
47
51
52//==============================================================================
53void LookAndFeel_V1::drawButtonBackground (Graphics& g, Button& button, const Colour& backgroundColour,
54 bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown)
55{
56 const int width = button.getWidth();
57 const int height = button.getHeight();
58
59 const float indent = 2.0f;
60 const int cornerSize = jmin (roundToInt ((float) width * 0.4f),
61 roundToInt ((float) height * 0.4f));
62
63 Path p;
64 p.addRoundedRectangle (indent, indent,
65 (float) width - indent * 2.0f,
66 (float) height - indent * 2.0f,
67 (float) cornerSize);
68
69 Colour bc (backgroundColour.withMultipliedSaturation (0.3f));
70
71 if (shouldDrawButtonAsHighlighted)
72 {
73 if (shouldDrawButtonAsDown)
74 bc = bc.brighter();
75 else if (bc.getBrightness() > 0.5f)
76 bc = bc.darker (0.1f);
77 else
78 bc = bc.brighter (0.1f);
79 }
80
81 g.setColour (bc);
82 g.fillPath (p);
83
84 g.setColour (bc.contrasting().withAlpha ((shouldDrawButtonAsHighlighted) ? 0.6f : 0.4f));
85 g.strokePath (p, PathStrokeType ((shouldDrawButtonAsHighlighted) ? 2.0f : 1.4f));
86}
87
89 float x, float y, float w, float h,
90 const bool ticked,
91 const bool isEnabled,
92 const bool /*shouldDrawButtonAsHighlighted*/,
93 const bool shouldDrawButtonAsDown)
94{
95 Path box;
96 box.addRoundedRectangle (0.0f, 2.0f, 6.0f, 6.0f, 1.0f);
97
98 g.setColour (isEnabled ? Colours::blue.withAlpha (shouldDrawButtonAsDown ? 0.3f : 0.1f)
99 : Colours::lightgrey.withAlpha (0.1f));
100
101 AffineTransform trans (AffineTransform::scale (w / 9.0f, h / 9.0f).translated (x, y));
102
103 g.fillPath (box, trans);
104
105 g.setColour (Colours::black.withAlpha (0.6f));
106 g.strokePath (box, PathStrokeType (0.9f), trans);
107
108 if (ticked)
109 {
110 Path tick;
111 tick.startNewSubPath (1.5f, 3.0f);
112 tick.lineTo (3.0f, 6.0f);
113 tick.lineTo (6.0f, 0.0f);
114
115 g.setColour (isEnabled ? Colours::black : Colours::grey);
116 g.strokePath (tick, PathStrokeType (2.5f), trans);
117 }
118}
119
120void LookAndFeel_V1::drawToggleButton (Graphics& g, ToggleButton& button, bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown)
121{
122 if (button.hasKeyboardFocus (true))
123 {
124 g.setColour (button.findColour (TextEditor::focusedOutlineColourId));
125 g.drawRect (0, 0, button.getWidth(), button.getHeight());
126 }
127
128 const int tickWidth = jmin (20, button.getHeight() - 4);
129
130 drawTickBox (g, button, 4.0f, (float) (button.getHeight() - tickWidth) * 0.5f,
131 (float) tickWidth, (float) tickWidth,
132 button.getToggleState(),
133 button.isEnabled(),
134 shouldDrawButtonAsHighlighted,
135 shouldDrawButtonAsDown);
136
137 g.setColour (button.findColour (ToggleButton::textColourId));
138 g.setFont (jmin (15.0f, (float) button.getHeight() * 0.6f));
139
140 if (! button.isEnabled())
141 g.setOpacity (0.5f);
142
143 const int textX = tickWidth + 5;
144
145 g.drawFittedText (button.getButtonText(),
146 textX, 4,
147 button.getWidth() - textX - 2, button.getHeight() - 8,
149}
150
152 int width, int height,
153 double progress, const String& textToShow)
154{
155 if (progress < 0 || progress >= 1.0)
156 {
157 LookAndFeel_V2::drawProgressBar (g, progressBar, width, height, progress, textToShow);
158 }
159 else
160 {
161 const Colour background (progressBar.findColour (ProgressBar::backgroundColourId));
162 const Colour foreground (progressBar.findColour (ProgressBar::foregroundColourId));
163
164 g.fillAll (background);
165 g.setColour (foreground);
166
167 g.fillRect (1, 1,
168 jlimit (0, width - 2, roundToInt (progress * (width - 2))),
169 height - 2);
170
171 if (textToShow.isNotEmpty())
172 {
173 g.setColour (Colour::contrasting (background, foreground));
174 g.setFont ((float) height * 0.6f);
175
176 g.drawText (textToShow, 0, 0, width, height, Justification::centred, false);
177 }
178 }
179}
180
182 int width, int height, int buttonDirection,
183 bool isScrollbarVertical,
184 bool shouldDrawButtonAsHighlighted,
185 bool shouldDrawButtonAsDown)
186{
187 if (isScrollbarVertical)
188 width -= 2;
189 else
190 height -= 2;
191
192 Path p;
193
194 const auto w = (float) width;
195 const auto h = (float) height;
196
197 if (buttonDirection == 0)
198 p.addTriangle (w * 0.5f, h * 0.2f,
199 w * 0.1f, h * 0.7f,
200 w * 0.9f, h * 0.7f);
201 else if (buttonDirection == 1)
202 p.addTriangle (w * 0.8f, h * 0.5f,
203 w * 0.3f, h * 0.1f,
204 w * 0.3f, h * 0.9f);
205 else if (buttonDirection == 2)
206 p.addTriangle (w * 0.5f, h * 0.8f,
207 w * 0.1f, h * 0.3f,
208 w * 0.9f, h * 0.3f);
209 else if (buttonDirection == 3)
210 p.addTriangle (w * 0.2f, h * 0.5f,
211 w * 0.7f, h * 0.1f,
212 w * 0.7f, h * 0.9f);
213
214 if (shouldDrawButtonAsDown)
215 g.setColour (Colours::white);
216 else if (shouldDrawButtonAsHighlighted)
217 g.setColour (Colours::white.withAlpha (0.7f));
218 else
219 g.setColour (bar.findColour (ScrollBar::thumbColourId).withAlpha (0.5f));
220
221 g.fillPath (p);
222
223 g.setColour (Colours::black.withAlpha (0.5f));
224 g.strokePath (p, PathStrokeType (0.5f));
225}
226
228 int x, int y, int width, int height,
229 bool isScrollbarVertical, int thumbStartPosition, int thumbSize,
230 bool isMouseOver, bool isMouseDown)
231{
233
234 g.setColour (bar.findColour (ScrollBar::thumbColourId)
235 .withAlpha ((isMouseOver || isMouseDown) ? 0.4f : 0.15f));
236
237 if ((float) thumbSize > 0.0f)
238 {
239 Rectangle<int> thumb;
240
241 if (isScrollbarVertical)
242 {
243 width -= 2;
244 g.fillRect (x + roundToInt ((float) width * 0.35f), y,
245 roundToInt ((float) width * 0.3f), height);
246
247 thumb.setBounds (x + 1, thumbStartPosition,
248 width - 2, thumbSize);
249 }
250 else
251 {
252 height -= 2;
253 g.fillRect (x, y + roundToInt ((float) height * 0.35f),
254 width, roundToInt ((float) height * 0.3f));
255
256 thumb.setBounds (thumbStartPosition, y + 1,
257 thumbSize, height - 2);
258 }
259
260 g.setColour (bar.findColour (ScrollBar::thumbColourId)
261 .withAlpha ((isMouseOver || isMouseDown) ? 0.95f : 0.7f));
262
263 g.fillRect (thumb);
264
265 g.setColour (Colours::black.withAlpha ((isMouseOver || isMouseDown) ? 0.4f : 0.25f));
266 g.drawRect (thumb.getX(), thumb.getY(), thumb.getWidth(), thumb.getHeight());
267
268 if (thumbSize > 16)
269 {
270 for (int i = 3; --i >= 0;)
271 {
272 const float linePos = (float) thumbStartPosition + (float) thumbSize * 0.5f + (float) (i - 1) * 4.0f;
273 g.setColour (Colours::black.withAlpha (0.15f));
274
275 if (isScrollbarVertical)
276 {
277 g.drawLine ((float) x + (float) width * 0.2f, linePos, (float) width * 0.8f, linePos);
278 g.setColour (Colours::white.withAlpha (0.15f));
279 g.drawLine ((float) width * 0.2f, linePos - 1.0f, (float) width * 0.8f, linePos - 1.0f);
280 }
281 else
282 {
283 g.drawLine (linePos, (float) height * 0.2f, linePos, (float) height * 0.8f);
284 g.setColour (Colours::white.withAlpha (0.15f));
285 g.drawLine (linePos - 1.0f, (float) height * 0.2f, linePos - 1.0f, (float) height * 0.8f);
286 }
287 }
288 }
289 }
290}
291
296
297
298//==============================================================================
300{
302
303 g.setColour (Colours::black.withAlpha (0.6f));
304 g.drawRect (0, 0, width, height);
305}
306
307void LookAndFeel_V1::drawMenuBarBackground (Graphics& g, int /*width*/, int /*height*/, bool, MenuBarComponent& menuBar)
308{
309 g.fillAll (menuBar.findColour (PopupMenu::backgroundColourId));
310}
311
312
313//==============================================================================
315{
316 if (textEditor.isEnabled())
317 {
318 g.setColour (textEditor.findColour (TextEditor::outlineColourId));
319 g.drawRect (0, 0, width, height);
320 }
321}
322
323//==============================================================================
325 const bool isButtonDown,
326 int buttonX, int buttonY, int buttonW, int buttonH,
327 ComboBox& box)
328{
329 g.fillAll (box.findColour (ComboBox::backgroundColourId));
330
331 g.setColour (box.findColour ((isButtonDown) ? ComboBox::buttonColourId
333 g.fillRect (buttonX, buttonY, buttonW, buttonH);
334
335 g.setColour (box.findColour (ComboBox::outlineColourId));
336 g.drawRect (0, 0, width, height);
337
338 const float arrowX = 0.2f;
339 const float arrowH = 0.3f;
340
341 const auto x = (float) buttonX;
342 const auto y = (float) buttonY;
343 const auto w = (float) buttonW;
344 const auto h = (float) buttonH;
345
346 if (box.isEnabled())
347 {
348 Path p;
349 p.addTriangle (x + w * 0.5f, y + h * (0.45f - arrowH),
350 x + w * (1.0f - arrowX), y + h * 0.45f,
351 x + w * arrowX, y + h * 0.45f);
352
353 p.addTriangle (x + w * 0.5f, y + h * (0.55f + arrowH),
354 x + w * (1.0f - arrowX), y + h * 0.55f,
355 x + w * arrowX, y + h * 0.55f);
356
357 g.setColour (box.findColour ((isButtonDown) ? ComboBox::backgroundColourId
359 g.fillPath (p);
360 }
361}
362
364{
365 Font f (jmin (15.0f, (float) box.getHeight() * 0.85f));
366 f.setHorizontalScale (0.9f);
367 return f;
368}
369
370//==============================================================================
371static void drawTriangle (Graphics& g, float x1, float y1, float x2, float y2, float x3, float y3, Colour fill, Colour outline)
372{
373 Path p;
374 p.addTriangle (x1, y1, x2, y2, x3, y3);
375 g.setColour (fill);
376 g.fillPath (p);
377
378 g.setColour (outline);
379 g.strokePath (p, PathStrokeType (0.3f));
380}
381
383 int x, int y, int w, int h,
384 float sliderPos, float minSliderPos, float maxSliderPos,
386 Slider& slider)
387{
388 g.fillAll (slider.findColour (Slider::backgroundColourId));
389
391 {
392 g.setColour (slider.findColour (Slider::thumbColourId));
393 g.fillRect (x, y, (int) sliderPos - x, h);
394
395 g.setColour (slider.findColour (Slider::textBoxTextColourId).withMultipliedAlpha (0.5f));
396 g.drawRect (x, y, (int) sliderPos - x, h);
397 }
398 else
399 {
400 g.setColour (slider.findColour (Slider::trackColourId)
401 .withMultipliedAlpha (slider.isEnabled() ? 1.0f : 0.3f));
402
403 if (slider.isHorizontal())
404 {
405 g.fillRect (x, y + roundToInt ((float) h * 0.6f),
406 w, roundToInt ((float) h * 0.2f));
407 }
408 else
409 {
410 g.fillRect (x + roundToInt ((float) w * 0.5f - jmin (3.0f, (float) w * 0.1f)), y,
411 jmin (4, roundToInt ((float) w * 0.2f)), h);
412 }
413
414 float alpha = 0.35f;
415
416 if (slider.isEnabled())
417 alpha = slider.isMouseOverOrDragging() ? 1.0f : 0.7f;
418
419 const Colour fill (slider.findColour (Slider::thumbColourId).withAlpha (alpha));
420 const Colour outline (Colours::black.withAlpha (slider.isEnabled() ? 0.7f : 0.35f));
421
423 {
425 (float) x + (float) w * 0.5f + jmin (4.0f, (float) w * 0.3f), minSliderPos,
426 (float) x + (float) w * 0.5f - jmin (8.0f, (float) w * 0.4f), minSliderPos - 7.0f,
427 (float) x + (float) w * 0.5f - jmin (8.0f, (float) w * 0.4f), minSliderPos,
428 fill, outline);
429
431 (float) x + (float) w * 0.5f + jmin (4.0f, (float) w * 0.3f), maxSliderPos,
432 (float) x + (float) w * 0.5f - jmin (8.0f, (float) w * 0.4f), maxSliderPos,
433 (float) x + (float) w * 0.5f - jmin (8.0f, (float) w * 0.4f), maxSliderPos + 7.0f,
434 fill, outline);
435 }
437 {
439 minSliderPos, (float) y + (float) h * 0.6f - jmin (4.0f, (float) h * 0.3f),
440 minSliderPos - 7.0f, (float) y + (float) h * 0.9f,
441 minSliderPos, (float) y + (float) h * 0.9f,
442 fill, outline);
443
445 maxSliderPos, (float) y + (float) h * 0.6f - jmin (4.0f, (float) h * 0.3f),
446 maxSliderPos, (float) y + (float) h * 0.9f,
447 maxSliderPos + 7.0f, (float) y + (float) h * 0.9f,
448 fill, outline);
449 }
450
452 {
454 sliderPos, (float) y + (float) h * 0.9f,
455 sliderPos - 7.0f, (float) y + (float) h * 0.2f,
456 sliderPos + 7.0f, (float) y + (float) h * 0.2f,
457 fill, outline);
458 }
460 {
462 (float) x + (float) w * 0.5f - jmin (4.0f, (float) w * 0.3f), sliderPos,
463 (float) x + (float) w * 0.5f + jmin (8.0f, (float) w * 0.4f), sliderPos - 7.0f,
464 (float) x + (float) w * 0.5f + jmin (8.0f, (float) w * 0.4f), sliderPos + 7.0f,
465 fill, outline);
466 }
467 }
468}
469
471{
472 if (isIncrement)
473 return new ArrowButton ("u", 0.75f, Colours::white.withAlpha (0.8f));
474
475 return new ArrowButton ("d", 0.25f, Colours::white.withAlpha (0.8f));
476}
477
482
484{
485 return 8;
486}
487
488//==============================================================================
489void LookAndFeel_V1::drawCornerResizer (Graphics& g, int w, int h, bool isMouseOver, bool isMouseDragging)
490{
491 g.setColour ((isMouseOver || isMouseDragging) ? Colours::lightgrey
493
494 const float lineThickness = (float) jmin (w, h) * 0.1f;
495
496 for (float i = 0.0f; i < 1.0f; i += 0.3f)
497 {
498 g.drawLine ((float) w * i,
499 (float) h + 1.0f,
500 (float) w + 1.0f,
501 (float) h * i,
502 lineThickness);
503 }
504}
505
506//==============================================================================
508{
509 Path shape;
510
511 if (buttonType == DocumentWindow::closeButton)
512 {
513 shape.addLineSegment (Line<float> (0.0f, 0.0f, 1.0f, 1.0f), 0.35f);
514 shape.addLineSegment (Line<float> (1.0f, 0.0f, 0.0f, 1.0f), 0.35f);
515
516 ShapeButton* const b = new ShapeButton ("close",
517 Colour (0x7fff3333),
518 Colour (0xd7ff3333),
519 Colour (0xf7ff3333));
520
521 b->setShape (shape, true, true, true);
522 return b;
523 }
524 else if (buttonType == DocumentWindow::minimiseButton)
525 {
526 shape.addLineSegment (Line<float> (0.0f, 0.5f, 1.0f, 0.5f), 0.25f);
527
530 dp.setPath (shape);
531 dp.setFill (Colours::black.withAlpha (0.3f));
532 b->setImages (&dp);
533 return b;
534 }
535 else if (buttonType == DocumentWindow::maximiseButton)
536 {
537 shape.addLineSegment (Line<float> (0.5f, 0.0f, 0.5f, 1.0f), 0.25f);
538 shape.addLineSegment (Line<float> (0.0f, 0.5f, 1.0f, 0.5f), 0.25f);
539
542 dp.setPath (shape);
543 dp.setFill (Colours::black.withAlpha (0.3f));
544 b->setImages (&dp);
545 return b;
546 }
547
549 return nullptr;
550}
551
553 int titleBarX, int titleBarY, int titleBarW, int titleBarH,
554 Button* minimiseButton,
555 Button* maximiseButton,
556 Button* closeButton,
557 bool positionTitleBarButtonsOnLeft)
558{
559 titleBarY += titleBarH / 8;
560 titleBarH -= titleBarH / 4;
561
562 const int buttonW = titleBarH;
563
564 int x = positionTitleBarButtonsOnLeft ? titleBarX + 4
565 : titleBarX + titleBarW - buttonW - 4;
566
567 if (closeButton != nullptr)
568 {
569 closeButton->setBounds (x, titleBarY, buttonW, titleBarH);
570 x += positionTitleBarButtonsOnLeft ? buttonW + buttonW / 5
571 : -(buttonW + buttonW / 5);
572 }
573
574 if (positionTitleBarButtonsOnLeft)
575 std::swap (minimiseButton, maximiseButton);
576
577 if (maximiseButton != nullptr)
578 {
579 maximiseButton->setBounds (x, titleBarY - 2, buttonW, titleBarH);
580 x += positionTitleBarButtonsOnLeft ? buttonW : -buttonW;
581 }
582
583 if (minimiseButton != nullptr)
584 minimiseButton->setBounds (x, titleBarY - 2, buttonW, titleBarH);
585}
586
587} // namespace juce
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
static void drawTriangle(const Point< T > &pos1, const Point< T > &pos2, const Point< T > &pos3, const bool outline)
Definition OpenGL.cpp:214
int dp
Definition Spc_Cpu.h:149
Definition juce_AffineTransform.h:43
static AffineTransform scale(float factorX, float factorY) noexcept
Definition juce_AffineTransform.cpp:141
Definition juce_ArrowButton.h:38
Definition juce_Button.h:43
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
JUCE_NODISCARD Colour contrasting(float amount=1.0f) const noexcept
Definition juce_Colour.cpp:491
Definition juce_ComboBox.h:49
@ outlineColourId
Definition juce_ComboBox.h:358
@ buttonColourId
Definition juce_ComboBox.h:359
@ backgroundColourId
Definition juce_ComboBox.h:356
Definition juce_Component.h:36
void setBounds(int x, int y, int width, int height)
Definition juce_Component.cpp:1147
Colour findColour(int colourID, bool inheritFromParent=false) const
Definition juce_Component.cpp:2219
bool isEnabled() const noexcept
Definition juce_Component.cpp:3104
Definition juce_DocumentWindow.h:55
@ closeButton
Definition juce_DocumentWindow.h:66
@ maximiseButton
Definition juce_DocumentWindow.h:65
@ minimiseButton
Definition juce_DocumentWindow.h:64
Definition juce_DrawableButton.h:41
@ ImageFitted
Definition juce_DrawableButton.h:46
Definition juce_DrawablePath.h:40
Definition juce_Font.h:42
Definition juce_GraphicsContext.h:45
Definition juce_ImageEffectFilter.h:43
@ centred
Definition juce_Justification.h:138
@ centredLeft
Definition juce_Justification.h:143
Definition juce_Line.h:47
@ outlineColourId
Definition juce_ListBox.h:496
void drawPopupMenuBackground(Graphics &, int width, int height) override
Definition juce_LookAndFeel_V1.cpp:299
void drawMenuBarBackground(Graphics &, int width, int height, bool isMouseOverBar, MenuBarComponent &) override
Definition juce_LookAndFeel_V1.cpp:307
void drawTickBox(Graphics &, Component &, float x, float y, float w, float h, bool ticked, bool isEnabled, bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown) override
Definition juce_LookAndFeel_V1.cpp:88
void drawCornerResizer(Graphics &, int w, int h, bool isMouseOver, bool isMouseDragging) override
Definition juce_LookAndFeel_V1.cpp:489
void drawToggleButton(Graphics &, ToggleButton &, bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown) override
Definition juce_LookAndFeel_V1.cpp:120
LookAndFeel_V1()
Definition juce_LookAndFeel_V1.cpp:29
void drawScrollbarButton(Graphics &, ScrollBar &, int width, int height, int buttonDirection, bool isScrollbarVertical, bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown) override
Definition juce_LookAndFeel_V1.cpp:181
void drawButtonBackground(Graphics &, Button &, const Colour &backgroundColour, bool shouldDrawButtonAsHighlighted, bool shouldDrawButtonAsDown) override
Definition juce_LookAndFeel_V1.cpp:53
void positionDocumentWindowButtons(DocumentWindow &, int titleBarX, int titleBarY, int titleBarW, int titleBarH, Button *minimiseButton, Button *maximiseButton, Button *closeButton, bool positionTitleBarButtonsOnLeft) override
Definition juce_LookAndFeel_V1.cpp:552
~LookAndFeel_V1() override
Definition juce_LookAndFeel_V1.cpp:48
DropShadowEffect scrollbarShadow
Definition juce_LookAndFeel_V1.h:100
Button * createDocumentWindowButton(int buttonType) override
Definition juce_LookAndFeel_V1.cpp:507
void drawComboBox(Graphics &, int width, int height, bool isButtonDown, int buttonX, int buttonY, int buttonW, int buttonH, ComboBox &) override
Definition juce_LookAndFeel_V1.cpp:324
int getSliderThumbRadius(Slider &) override
Definition juce_LookAndFeel_V1.cpp:483
Button * createSliderButton(Slider &, bool isIncrement) override
Definition juce_LookAndFeel_V1.cpp:470
ImageEffectFilter * getSliderEffect(Slider &) override
Definition juce_LookAndFeel_V1.cpp:478
Font getComboBoxFont(ComboBox &) override
Definition juce_LookAndFeel_V1.cpp:363
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_V1.cpp:382
void drawTextEditorOutline(Graphics &, int width, int height, TextEditor &) override
Definition juce_LookAndFeel_V1.cpp:314
void drawProgressBar(Graphics &, ProgressBar &, int width, int height, double progress, const String &textToShow) override
Definition juce_LookAndFeel_V1.cpp:151
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_V1.cpp:227
ImageEffectFilter * getScrollbarEffect() override
Definition juce_LookAndFeel_V1.cpp:292
void drawProgressBar(Graphics &, ProgressBar &, int width, int height, double progress, const String &textToShow) override
Definition juce_LookAndFeel_V2.cpp:559
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_MenuBarComponent.h:40
Definition juce_Path.h:65
void startNewSubPath(float startX, float startY)
Definition juce_Path.cpp:216
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
Definition juce_Point.h:42
@ highlightedTextColourId
Definition juce_PopupMenu.h:767
@ backgroundColourId
Definition juce_PopupMenu.h:760
@ highlightedBackgroundColourId
Definition juce_PopupMenu.h:765
Definition juce_ProgressBar.h:51
@ backgroundColourId
Definition juce_ProgressBar.h:95
@ foregroundColourId
Definition juce_ProgressBar.h:96
Definition juce_Rectangle.h:67
ValueType getHeight() const noexcept
Definition juce_Rectangle.h:136
ValueType getX() const noexcept
Definition juce_Rectangle.h:127
ValueType getWidth() const noexcept
Definition juce_Rectangle.h:133
ValueType getY() const noexcept
Definition juce_Rectangle.h:130
void setBounds(ValueType newX, ValueType newY, ValueType newWidth, ValueType newHeight) noexcept
Definition juce_Rectangle.h:191
Definition juce_ScrollBar.h:54
@ thumbColourId
Definition juce_ScrollBar.h:295
@ backgroundColourId
Definition juce_ScrollBar.h:294
Definition juce_ShapeButton.h:38
Definition juce_Slider.h:54
SliderStyle
Definition juce_Slider.h:62
@ ThreeValueHorizontal
Definition juce_Slider.h:82
@ TwoValueHorizontal
Definition juce_Slider.h:77
@ LinearBar
Definition juce_Slider.h:65
@ LinearHorizontal
Definition juce_Slider.h:63
@ LinearVertical
Definition juce_Slider.h:64
@ ThreeValueVertical
Definition juce_Slider.h:85
@ TwoValueVertical
Definition juce_Slider.h:79
@ textBoxTextColourId
Definition juce_Slider.h:873
@ textBoxOutlineColourId
Definition juce_Slider.h:876
@ 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
@ buttonColourId
Definition juce_TextButton.h:73
Definition juce_TextEditor.h:43
@ outlineColourId
Definition juce_TextEditor.h:223
@ focusedOutlineColourId
Definition juce_TextEditor.h:226
Definition juce_ToggleButton.h:41
@ textColourId
Definition juce_ToggleButton.h:74
UINT_D64 w
Definition inflate.c:942
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned x[BMAX+1]
Definition inflate.c:1586
unsigned f
Definition inflate.c:1572
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
#define jassertfalse
static const SerdStyle style
Definition sratom.c:36
const Colour transparentBlack
Definition juce_Colours.h:40
const Colour lightgrey
Definition juce_Colours.h:111
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 green
Definition juce_Colours.h:94
const Colour white
Definition juce_Colours.h:180
const Colour blue
Definition juce_Colours.h:52
Definition carla_juce.cpp:31
constexpr Type jmin(Type a, Type b)
Definition juce_MathsFunctions.h:106
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
@ slider
Definition juce_AccessibilityRole.h:43
@ menuBar
Definition juce_AccessibilityRole.h:48
@ progressBar
Definition juce_AccessibilityRole.h:60
@ button
Definition juce_AccessibilityRole.h:38
Definition jquant2.c:258
Definition juce_DropShadowEffect.h:36
uch * p
Definition crypt.c:594
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
b
Definition crypt.c:628