Jamba C++ API 8.0.0
Loading...
Searching...
No Matches
StepButtonView.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019-2020 pongasoft
3 *
4 * Licensed under the Apache License, Version 2.0 or the MIT license,
5 * at your option. You may not use this file except in compliance with
6 * one of these licenses. You may obtain copies of the licenses at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 * https://opensource.org/licenses/MIT
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 *
17 * @author Yan Pujante
18 */
19#pragma once
20
21#include <vstgui4/vstgui/lib/cdrawcontext.h>
22#include "CustomControlView.h"
23
25
26using namespace VSTGUI;
27
48{
49public:
60public:
61 explicit StepButtonView(const CRect &iSize) : CustomDiscreteControlView(iSize)
62 {
63 }
64
65 // draw => does the actual drawing job
66 void draw(CDrawContext *iContext) override;
67
68 // called to display the "held" button state
69 virtual void drawHeldButton(CDrawContext *iContext);
70
71 // called to display the "released" button state
72 virtual void drawReleasedButton(CDrawContext *iContext);
73
74 // input events (mouse/keyboard)
75 CMouseEventResult onMouseDown(CPoint &where, const CButtonState &buttons) override;
76 CMouseEventResult onMouseUp(CPoint &where, const CButtonState &buttons) override;
77 CMouseEventResult onMouseCancel() override;
78 int32_t onKeyDown(VstKeyCode &keyCode) override;
79 int32_t onKeyUp(VstKeyCode &keyCode) override;
80
81 // true if held
82 bool isHeld() const { return fHeld; }
83
85 CColor const &getHeldColor() const { return fHeldColor; }
86 void setHeldColor(CColor const &iColor) { fHeldColor = iColor; markDirty(); }
87
89 CColor const &getReleasedColor() const { return fReleasedColor; }
90 void setReleasedColor(CColor const &iColor) { fReleasedColor = iColor; markDirty(); }
91
105 BitmapPtr getImage() const { return fImage; }
106
108 void setImage(BitmapPtr iImage) { fImage = iImage; markDirty(); }
109
113 int32 getStepIncrement() const { return fStepIncrement; }
114
118 void setStepIncrement(int32 iStepIncrement) { fStepIncrement = iStepIncrement; fButtonPolygon = nullptr; }
119
125
129 void setShiftStepIncrement(int32 iStepIncrement) { fShiftStepIncrement = iStepIncrement; }
130
134 bool getWrap() const { return fWrap; }
135 void setWrap(bool iFlag) { fWrap = iFlag; markDirty(); }
136
142
144 void setArrowDirection(EArrowDirection iArrowDirection) { fArrowDirection = iArrowDirection; fButtonPolygon = nullptr; markDirty(); }
145
146protected:
147 // registerParameters
148 void registerParameters() override;
149
155 virtual int32 computeNextValue(int32 iIncrement) const;
156
160 virtual CDrawContext::PointList *getButtonPolygon();
161
162 // setViewSize
163 void setViewSize(const CRect &rect, bool invalid) override;
164
165protected:
169 bool fHeld{false};
170
173 bool fWrap{false};
174 CColor fHeldColor{kRedCColor};
175 CColor fReleasedColor{kGreyCColor};
177
179 std::unique_ptr<CDrawContext::PointList> fButtonPolygon{};
180
181public:
206};
207
208}
CustomDiscreteControlView(const CRect &iSize)
Definition CustomControlView.h:157
CustomViewCreator(char const *iViewName=nullptr, char const *iDisplayName=nullptr, char const *iBaseViewName=VSTGUI::UIViewCreator::kCView)
Definition CustomViewCreator.h:1330
void markDirty()
Marks this view dirty which will (at the appropriate time in the rendering lifecycle) trigger a call ...
Definition CustomView.h:177
Creator(char const *iViewName=nullptr, char const *iDisplayName=nullptr)
Definition StepButtonView.h:185
EArrowDirection fArrowDirection
Definition StepButtonView.h:178
bool fWrap
Definition StepButtonView.h:173
int32 fStepIncrement
Definition StepButtonView.h:171
int32 fShiftStepIncrement
Definition StepButtonView.h:172
CColor fReleasedColor
Definition StepButtonView.h:175
void registerParameters() override
Registers the optional parameter using getControlTag() as its id.
Definition StepButtonView.cpp:207
virtual CDrawContext::PointList * getButtonPolygon()
Definition StepButtonView.cpp:79
std::unique_ptr< CDrawContext::PointList > fButtonPolygon
Definition StepButtonView.h:179
CMouseEventResult onMouseUp(CPoint &where, const CButtonState &buttons) override
Definition StepButtonView.cpp:146
void setArrowDirection(EArrowDirection iArrowDirection)
Attribute arrow-direction.
Definition StepButtonView.h:144
void setWrap(bool iFlag)
Definition StepButtonView.h:135
int32 getStepIncrement() const
Value by which this button will increment (positive) or decrement (negative) the parameter.
Definition StepButtonView.h:113
virtual void drawReleasedButton(CDrawContext *iContext)
Definition StepButtonView.cpp:62
void setHeldColor(CColor const &iColor)
Definition StepButtonView.h:86
CColor fHeldColor
Definition StepButtonView.h:174
CMouseEventResult onMouseDown(CPoint &where, const CButtonState &buttons) override
Definition StepButtonView.cpp:132
void draw(CDrawContext *iContext) override
Definition StepButtonView.cpp:30
void setImage(BitmapPtr iImage)
Attribute button-image.
Definition StepButtonView.h:108
bool fHeld
State of the button (true for held, false for released).
Definition StepButtonView.h:169
void setReleasedColor(CColor const &iColor)
Definition StepButtonView.h:90
CMouseEventResult onMouseCancel() override
Definition StepButtonView.cpp:161
BitmapPtr getImage() const
The image for the button.
Definition StepButtonView.h:105
void setViewSize(const CRect &rect, bool invalid) override
Definition StepButtonView.cpp:232
virtual void drawHeldButton(CDrawContext *iContext)
Definition StepButtonView.cpp:45
bool getWrap() const
Defines what happens when the value reaches its end of range after being incremented (resp.
Definition StepButtonView.h:134
void setStepIncrement(int32 iStepIncrement)
Definition StepButtonView.h:118
BitmapSPtr fImage
Definition StepButtonView.h:176
int32_t onKeyDown(VstKeyCode &keyCode) override
Definition StepButtonView.cpp:172
int32 getShiftStepIncrement() const
Value by which this button will increment (positive) or decrement (negative) the parameter when the s...
Definition StepButtonView.h:124
EArrowDirection
Represents the direction of the arrow (if not using an image).
Definition StepButtonView.h:53
CColor const & getHeldColor() const
Color to use when the button is held and no image is provided.
Definition StepButtonView.h:85
EArrowDirection getArrowDirection() const
Used only when no bitmap provided in order to draw an arrow pointing in the direction defined by this...
Definition StepButtonView.h:141
bool isHeld() const
Definition StepButtonView.h:82
StepButtonView(const CRect &iSize)
Definition StepButtonView.h:61
CColor const & getReleasedColor() const
Color to use when the button is not held and no image is provided.
Definition StepButtonView.h:89
virtual int32 computeNextValue(int32 iIncrement) const
Adds the increment to the current value and wrap if necessary.
Definition StepButtonView.cpp:224
int32_t onKeyUp(VstKeyCode &keyCode) override
Definition StepButtonView.cpp:189
void setShiftStepIncrement(int32 iStepIncrement)
Definition StepButtonView.h:129
void registerBitmapAttribute(std::string const &iName, BitmapAttribute::Getter iGetter, BitmapAttribute::Setter iSetter)
Definition CustomViewCreator.h:986
void registerBooleanAttribute(std::string const &iName, BooleanAttribute::Getter iGetter, BooleanAttribute::Setter iSetter)
Definition CustomViewCreator.h:1114
void registerColorAttribute(std::string const &iName, ColorAttribute::Getter iGetter, ColorAttribute::Setter iSetter)
Definition CustomViewCreator.h:966
void registerIntegerAttribute(std::string const &iName, IntegerAttribute< TInt >::Getter iGetter, IntegerAttribute< TInt >::Setter iSetter)
Definition CustomViewCreator.h:1074
void registerListAttribute(std::string const &iName, ListAttribute< T >::Getter iGetter, ListAttribute< T >::Setter iSetter, AttrValInitList< T > const &iAttributeValues)
Definition CustomViewCreator.h:1052
Definition CustomController.h:26
CBitmap * BitmapPtr
Definition Types.h:48
SharedPointer< CBitmap > BitmapSPtr
Definition Types.h:49