5 #ifndef __csegmentbutton__ 6 #define __csegmentbutton__ 9 #include "../cdrawmethods.h" 10 #include "../cbitmap.h" 11 #include "../cgradient.h" 12 #include "../cstring.h" 13 #include "../ccolor.h" 37 mutable CDrawMethods::IconPosition iconPosition;
41 using Segments = std::vector<Segment>;
42 static uint32_t kPushBack;
50 void addSegment (
Segment segment, uint32_t index = kPushBack);
51 void removeSegment (uint32_t index);
52 void removeAllSegments ();
53 const Segments& getSegments ()
const {
return segments; }
55 void setSelectedSegment (uint32_t index);
56 uint32_t getSelectedSegment ()
const;
63 void setStyle (Style newStyle);
64 Style getStyle ()
const {
return style; }
66 void setTextTruncateMode (CDrawMethods::TextTruncateMode mode);
67 CDrawMethods::TextTruncateMode getTextTruncateMode ()
const {
return textTruncateMode; }
69 void setGradient (CGradient* newGradient);
70 CGradient* getGradient ()
const {
return gradient; }
72 void setGradientHighlighted (CGradient* newGradient);
73 CGradient* getGradientHighlighted ()
const {
return gradientHighlighted; }
75 void setRoundRadius (CCoord newRoundRadius);
76 CCoord getRoundRadius ()
const {
return roundRadius; }
78 void setFont (CFontRef font);
79 CFontRef getFont ()
const {
return font; }
81 void setTextAlignment (CHoriTxtAlign alignment);
82 CHoriTxtAlign getTextAlignment ()
const {
return textAlignment; }
84 void setTextMargin (CCoord newMargin);
85 CCoord getTextMargin ()
const {
return textMargin; }
87 void setTextColor (CColor newColor);
88 CColor getTextColor ()
const {
return textColor; }
90 void setTextColorHighlighted (CColor newColor);
91 CColor getTextColorHighlighted ()
const {
return textColorHighlighted; }
93 void setFrameColor (CColor newColor);
94 CColor getFrameColor ()
const {
return frameColor; }
96 void setFrameWidth (CCoord newWidth);
97 CCoord getFrameWidth ()
const {
return frameWidth; }
101 bool attached (CView *parent)
override;
103 CMouseEventResult
onMouseDown (CPoint& where,
const CButtonState& buttons)
override;
105 void draw (CDrawContext* pContext)
override;
106 void drawRect (CDrawContext* pContext,
const CRect& dirtyRect)
override;
110 CLASS_METHODS(CSegmentButton, CControl)
112 void updateSegmentSizes ();
113 uint32_t getSegmentIndex (
float value)
const;
116 SharedPointer<CGradient> gradient;
117 SharedPointer<CGradient> gradientHighlighted;
118 SharedPointer<CFontDesc> font;
119 CColor textColor {kBlackCColor};
120 CColor textColorHighlighted {kWhiteCColor};
121 CColor frameColor {kBlackCColor};
122 CHoriTxtAlign textAlignment {kCenterText};
123 CCoord textMargin {0.};
124 CCoord roundRadius {5.};
125 CCoord frameWidth {1.};
126 Style style {kHorizontal};
127 CDrawMethods::TextTruncateMode textTruncateMode {CDrawMethods::kTextTruncateNone};
132 #endif // __csegmentbutton__
Rect structure.
Definition: crect.h:17
Definition: xmlparse.c:181
Definition: vstkeycode.h:12
Definition: vstguibase.h:299
Definition: customcontrols.cpp:8
base class of all VSTGUI controls
Definition: ccontrol.h:76
holds an UTF8 encoded string and a platform representation of it
Definition: cstring.h:56
virtual void invalid()
mark whole view as invalid
Definition: cview.h:63
Definition: icontrollistener.h:14