LMMS
Loading...
Searching...
No Matches
juce_ArrowButton.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
29ArrowButton::ArrowButton (const String& name, float arrowDirectionInRadians, Colour arrowColour)
30 : Button (name), colour (arrowColour)
31{
32 path.addTriangle (0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.5f);
33 path.applyTransform (AffineTransform::rotation (MathConstants<float>::twoPi * arrowDirectionInRadians, 0.5f, 0.5f));
34}
35
37
38void ArrowButton::paintButton (Graphics& g, bool /*shouldDrawButtonAsHighlighted*/, bool shouldDrawButtonAsDown)
39{
40 Path p (path);
41
42 const float offset = shouldDrawButtonAsDown ? 1.0f : 0.0f;
43 p.applyTransform (path.getTransformToScaleToFit (offset, offset, (float) getWidth() - 3.0f, (float) getHeight() - 3.0f, false));
44
45 DropShadow (Colours::black.withAlpha (0.3f), shouldDrawButtonAsDown ? 2 : 4, Point<int>()).drawForPath (g, p);
46
47 g.setColour (colour);
48 g.fillPath (p);
49}
50
51} // namespace juce
static AffineTransform rotation(float angleInRadians) noexcept
Definition juce_AffineTransform.cpp:106
ArrowButton(const String &buttonName, float arrowDirection, Colour arrowColour)
Definition juce_ArrowButton.cpp:29
~ArrowButton() override
Definition juce_ArrowButton.cpp:36
Colour colour
Definition juce_ArrowButton.h:59
Path path
Definition juce_ArrowButton.h:60
void paintButton(Graphics &, bool, bool) override
Definition juce_ArrowButton.cpp:38
Button(const String &buttonName)
Definition juce_Button.cpp:76
Definition juce_Colour.h:38
int getHeight() const noexcept
Definition juce_Component.h:274
int getWidth() const noexcept
Definition juce_Component.h:271
Definition juce_GraphicsContext.h:45
Definition juce_Path.h:65
Definition juce_Point.h:42
Definition juce_String.h:53
int g
Definition inflate.c:1573
static const char * name
Definition pugl.h:1582
const Colour black
Definition juce_Colours.h:50
Definition carla_juce.cpp:31
Definition juce_DropShadowEffect.h:36
void drawForPath(Graphics &g, const Path &path) const
Definition juce_DropShadowEffect.cpp:92
static constexpr FloatType twoPi
Definition juce_MathsFunctions.h:385
uch * p
Definition crypt.c:594