Jamba C++ API 7.5.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/controls/ccontrol.h>
22#include <vstgui4/vstgui/lib/cdrawcontext.h>
24#include "CustomControlView.h"
25
27
28using namespace VSTGUI;
29
50{
51public:
62public:
63 explicit StepButtonView(const CRect &iSize) : CustomDiscreteControlView(iSize)
64 {
65 }
66
67 // draw => does the actual drawing job
68 void draw(CDrawContext *iContext) override;
69
70 // called to display the "held" button state
71 virtual void drawHeldButton(CDrawContext *iContext);
72
73 // called to display the "released" button state
74 virtual void drawReleasedButton(CDrawContext *iContext);
75
76 // input events (mouse/keyboard)
77 CMouseEventResult onMouseDown(CPoint &where, const CButtonState &buttons) override;
78 CMouseEventResult onMouseUp(CPoint &where, const CButtonState &buttons) override;
79 CMouseEventResult onMouseCancel() override;
80 int32_t onKeyDown(VstKeyCode &keyCode) override;
81 int32_t onKeyUp(VstKeyCode &keyCode) override;
82
83 // true if held
84 bool isHeld() const { return fHeld; }
85
87 inline CColor const &getHeldColor() const { return fHeldColor; }
88 void setHeldColor(CColor const &iColor) { fHeldColor = iColor; markDirty(); }
89
91 inline CColor const &getReleasedColor() const { return fReleasedColor; }
92 void setReleasedColor(CColor const &iColor) { fReleasedColor = iColor; markDirty(); }
93
107 BitmapPtr getImage() const { return fImage; }
108
110 void setImage(BitmapPtr iImage) { fImage = iImage; markDirty(); }
111
115 int32 getStepIncrement() const { return fStepIncrement; }
116
120 void setStepIncrement(int32 iStepIncrement) { fStepIncrement = iStepIncrement; fButtonPolygon = nullptr; }
121
127
131 void setShiftStepIncrement(int32 iStepIncrement) { fShiftStepIncrement = iStepIncrement; }
132
136 inline bool getWrap() const { return fWrap; }
137 void setWrap(bool iFlag) { fWrap = iFlag; markDirty(); }
138
144
146 void setArrowDirection(EArrowDirection iArrowDirection) { fArrowDirection = iArrowDirection; fButtonPolygon = nullptr; markDirty(); }
147
148protected:
149 // registerParameters
150 void registerParameters() override;
151
157 virtual int32 computeNextValue(int32 iIncrement) const;
158
162 virtual CDrawContext::PointList *getButtonPolygon();
163
164 // setViewSize
165 void setViewSize(const CRect &rect, bool invalid) override;
166
167protected:
171 bool fHeld{false};
172
175 bool fWrap{false};
176 CColor fHeldColor{kRedCColor};
177 CColor fReleasedColor{kGreyCColor};
179
181 std::unique_ptr<CDrawContext::PointList> fButtonPolygon{};
182
183public:
208};
209
210}
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:1318
void markDirty()
Marks this view dirty which will (at the appropriate time in the rendering lifecycle) trigger a call ...
Definition CustomView.h:178
Creator(char const *iViewName=nullptr, char const *iDisplayName=nullptr)
Definition StepButtonView.h:187
EArrowDirection fArrowDirection
Definition StepButtonView.h:180
bool fWrap
Definition StepButtonView.h:175
int32 fStepIncrement
Definition StepButtonView.h:173
int32 fShiftStepIncrement
Definition StepButtonView.h:174
CColor fReleasedColor
Definition StepButtonView.h:177
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:181
CMouseEventResult onMouseUp(CPoint &where, const CButtonState &buttons) override
Definition StepButtonView.cpp:146
void setArrowDirection(EArrowDirection iArrowDirection)
Attribute arrow-direction.
Definition StepButtonView.h:146
void setWrap(bool iFlag)
Definition StepButtonView.h:137
int32 getStepIncrement() const
Value by which this button will increment (positive) or decrement (negative) the parameter.
Definition StepButtonView.h:115
virtual void drawReleasedButton(CDrawContext *iContext)
Definition StepButtonView.cpp:62
void setHeldColor(CColor const &iColor)
Definition StepButtonView.h:88
CColor fHeldColor
Definition StepButtonView.h:176
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:110
bool fHeld
State of the button (true for held, false for released).
Definition StepButtonView.h:171
void setReleasedColor(CColor const &iColor)
Definition StepButtonView.h:92
CMouseEventResult onMouseCancel() override
Definition StepButtonView.cpp:161
BitmapPtr getImage() const
The image for the button.
Definition StepButtonView.h:107
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:136
void setStepIncrement(int32 iStepIncrement)
Definition StepButtonView.h:120
BitmapSPtr fImage
Definition StepButtonView.h:178
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:126
EArrowDirection
Represents the direction of the arrow (if not using an image).
Definition StepButtonView.h:55
CColor const & getHeldColor() const
Color to use when the button is held and no image is provided.
Definition StepButtonView.h:87
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:143
bool isHeld() const
Definition StepButtonView.h:84
StepButtonView(const CRect &iSize)
Definition StepButtonView.h:63
CColor const & getReleasedColor() const
Color to use when the button is not held and no image is provided.
Definition StepButtonView.h:91
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:131
void registerColorAttribute(std::string const &iName, typename ColorAttribute::Getter iGetter, typename ColorAttribute::Setter iSetter)
Definition CustomViewCreator.h:952
void registerBitmapAttribute(std::string const &iName, typename BitmapAttribute::Getter iGetter, typename BitmapAttribute::Setter iSetter)
Definition CustomViewCreator.h:972
void registerIntegerAttribute(std::string const &iName, typename IntegerAttribute< TInt >::Getter iGetter, typename IntegerAttribute< TInt >::Setter iSetter)
Definition CustomViewCreator.h:1060
void registerBooleanAttribute(std::string const &iName, typename BooleanAttribute::Getter iGetter, typename BooleanAttribute::Setter iSetter)
Definition CustomViewCreator.h:1100
void registerListAttribute(std::string const &iName, typename ListAttribute< T >::Getter iGetter, typename ListAttribute< T >::Setter iSetter, AttrValInitList< T > const &iAttributeValues)
Definition CustomViewCreator.h:1038
Definition CustomController.h:25
CBitmap * BitmapPtr
Definition Types.h:50
SharedPointer< CBitmap > BitmapSPtr
Definition Types.h:51