5 #ifndef __cdatabrowser__ 6 #define __cdatabrowser__ 9 #include "cscrollview.h" 28 virtual bool dbGetColumnDescription (int32_t index, CCoord& minWidth, CCoord& maxWidth,
CDataBrowser* browser) {
return false; }
54 virtual void dbOnDragExitBrowser (IDataPackage* drag, CDataBrowser* browser) {}
55 virtual void dbOnDragEnterCell (int32_t row, int32_t column,
const CPoint& where, IDataPackage* drag, CDataBrowser* browser) {}
56 virtual void dbOnDragMoveInCell (int32_t row, int32_t column,
const CPoint& where, IDataPackage* drag, CDataBrowser* browser) {}
57 virtual void dbOnDragExitCell (int32_t row, int32_t column, IDataPackage* drag, CDataBrowser* browser) {}
58 virtual bool dbOnDropInCell (int32_t row, int32_t column,
const CPoint& where, IDataPackage* drag, CDataBrowser* browser) {
return false; }
67 virtual void dbCellTextChanged (int32_t row, int32_t column, UTF8StringPtr newText, CDataBrowser* browser) {}
83 class CDataBrowserView;
84 class CDataBrowserHeader;
96 kDrawRowLinesFlag = kLastScrollViewStyleFlag,
99 kMultiSelectionStyleFlag
105 enum CDataBrowserStyle
108 kDrawRowLines = 1 << kDrawRowLinesFlag,
109 kDrawColumnLines = 1 << kDrawColumnLinesFlag,
110 kDrawHeader = 1 << kDrawHeaderFlag,
111 kMultiSelectionStyle = 1 << kMultiSelectionStyleFlag
125 Cell (int32_t row, int32_t column) : row (row), column (column) {}
126 bool isValid ()
const {
return row > -1 && column > -1; }
129 using Selection = std::vector<int32_t>;
144 virtual void setSelectedRow (int32_t row,
bool makeVisible =
false);
151 virtual void beginTextEdit (
const Cell& cell, UTF8StringPtr initialText);
164 void valueChanged (
CControl *pControl) override;
165 CMessageResult notify (
CBaseObject* sender, IdStringPtr message) override;
170 void recalculateSubViews () override;
171 void validateSelection ();
174 CDataBrowserView* dbView;
175 CDataBrowserHeader* dbHeader;
195 using StringVector = std::vector<UTF8String>;
200 void setStringList (
const StringVector* stringList);
201 const StringVector* getStringList ()
const {
return stringList; }
203 void setupUI (
const CColor& selectionColor,
const CColor& fontColor,
const CColor& rowlineColor,
const CColor& rowBackColor,
const CColor& rowAlteranteBackColor,
CFontRef font =
nullptr, int32_t rowHeight = -1, CCoord textInset = 2.);
211 bool dbGetColumnDescription (int32_t index, CCoord& minWidth, CCoord& maxWidth,
CDataBrowser* browser)
override{
return false; }
212 CCoord dbGetCurrentColumnWidth (int32_t index,
CDataBrowser* browser)
override;
215 bool dbGetLineWidthAndColor (CCoord& width,
CColor& color,
CDataBrowser* browser)
override;
224 void dbSelectionChanged (
CDataBrowser* browser)
override;
234 CMessageResult notify (
CBaseObject* sender, IdStringPtr message)
override;
236 const StringVector* stringList;
242 CColor rowAlternateBackColor;
244 CHoriTxtAlign textAlignment;
250 std::string keyDownFindString;
virtual void dbCellSetupTextEdit(int32_t row, int32_t column, CTextEdit *textEditControl, CDataBrowser *browser)
beginTextEdit calls this, so you can setup the textedit control
Definition: cdatabrowser.h:69
virtual void dbSelectionChanged(CDataBrowser *browser)
the selection of the db changed
Definition: cdatabrowser.h:63
CMouseEventResult dbOnMouseMoved(const CPoint &where, const CButtonState &buttons, int32_t row, int32_t column, CDataBrowser *browser) override
mouse was moved over a cell
Definition: cdatabrowser.h:221
virtual CCoord dbGetCurrentColumnWidth(int32_t index, CDataBrowser *browser)=0
return current width of index column
virtual Cell getCellAt(const CPoint &where) const
get the cell at position where
Definition: cdatabrowser.cpp:525
void invalid() override
mark whole view as invalid
Definition: cviewcontainer.cpp:618
Container Class of CView objects.
Definition: cviewcontainer.h:52
virtual CMouseEventResult dbOnMouseUp(const CPoint &where, const CButtonState &buttons, int32_t row, int32_t column, CDataBrowser *browser)
mouse button was released on a cell
Definition: cdatabrowser.h:48
bool attached(CView *parent) override
view is attached to a parent view
Definition: cdatabrowser.cpp:144
virtual void invalidateRow(int32_t row)
invalidates a complete row
Definition: cdatabrowser.cpp:349
void setViewSize(const CRect &size, bool invalid) override
set views size
Definition: cdatabrowser.cpp:119
font class
Definition: cfont.h:31
Rect structure.
Definition: crect.h:17
bool removed(CView *parent) override
view is removed from parent view
Definition: cdatabrowser.cpp:156
void dbCellTextChanged(int32_t row, int32_t column, UTF8StringPtr newText, CDataBrowser *browser) override
the text of the cell changed beginTextEdit was called for
Definition: cdatabrowser.h:226
Definition: vstkeycode.h:12
CDataBrowser(const CRect &size, IDataBrowserDelegate *db, int32_t style=0, CCoord scrollbarWidth=16, CBitmap *pBackground=nullptr)
Definition: cdatabrowser.cpp:88
Definition: vstguibase.h:299
virtual CRect getCellBounds(const Cell &cell)
get bounds of a cell
Definition: cdatabrowser.cpp:496
virtual void dbAttached(CDataBrowser *browser)
databrowser view was attached to a parent
Definition: cdatabrowser.h:34
A drawing context encapsulates the drawing context of the underlying OS.
Definition: cdrawcontext.h:29
CMouseEventResult onMouseDown(CPoint &where, const CButtonState &buttons) override
called when a mouse down event occurs
Definition: cdatabrowser.cpp:170
Base Object with reference counter.
Definition: vstguibase.h:276
RGBA Color structure.
Definition: ccolor.h:15
DataBrowser view.
Definition: cdatabrowser.h:91
virtual int32_t getSelectedRow() const
get first selected row
Definition: cdatabrowser.cpp:407
virtual void dbSetCurrentColumnWidth(int32_t index, const CCoord &width, CDataBrowser *browser)
the width of a column has changed
Definition: cdatabrowser.h:30
virtual void makeRowVisible(int32_t row)
scrolls the scrollview so that row is visible
Definition: cdatabrowser.cpp:358
virtual CCoord dbGetHeaderHeight(CDataBrowser *browser)
return height of header
Definition: cdatabrowser.h:32
virtual CCoord dbGetRowHeight(CDataBrowser *browser)=0
return height of one row
Generic string list data browser source.
Definition: cdatabrowser.h:192
virtual void unselectRow(int32_t row)
remove row from selection
Definition: cdatabrowser.cpp:436
virtual CMouseEventResult dbOnMouseMoved(const CPoint &where, const CButtonState &buttons, int32_t row, int32_t column, CDataBrowser *browser)
mouse was moved over a cell
Definition: cdatabrowser.h:47
virtual bool dbGetLineWidthAndColor(CCoord &width, CColor &color, CDataBrowser *browser)
return the line width and color
Definition: cdatabrowser.h:33
virtual void recalculateLayout(bool rememberSelection=false)
trigger recalculation, call if numRows or numColumns changed
Definition: cdatabrowser.cpp:232
Encapsulates various platform depended kinds of bitmaps.
Definition: cbitmap.h:21
CMouseEventResult dbOnMouseUp(const CPoint &where, const CButtonState &buttons, int32_t row, int32_t column, CDataBrowser *browser) override
mouse button was released on a cell
Definition: cdatabrowser.h:222
Definition: customcontrols.cpp:8
DataBrowser Interface.
Definition: cdatabrowser.h:21
base class of all VSTGUI controls
Definition: ccontrol.h:76
void dbSetCurrentColumnWidth(int32_t index, const CCoord &width, CDataBrowser *browser) override
the width of a column has changed
Definition: cdatabrowser.h:213
Definition: cdatabrowser.h:181
const Selection & getSelection() const
get all selected rows
Definition: cdatabrowser.h:146
Base Class of all view objects.
Definition: cview.h:44
interface for drag&drop and clipboard data
Definition: idatapackage.h:15
void dbCellSetupTextEdit(int32_t row, int32_t column, CTextEdit *textEditControl, CDataBrowser *browser) override
beginTextEdit calls this, so you can setup the textedit control
Definition: cdatabrowser.h:227
virtual int32_t dbGetNumRows(CDataBrowser *browser)=0
return number of rows for CDataBrowser browser
virtual void dbCellTextChanged(int32_t row, int32_t column, UTF8StringPtr newText, CDataBrowser *browser)
the text of the cell changed beginTextEdit was called for
Definition: cdatabrowser.h:68
virtual void setSelectedRow(int32_t row, bool makeVisible=false)
set the exclusive selected row
Definition: cdatabrowser.cpp:369
bool wantsFocus() const override
check if view supports focus
Definition: cdatabrowser.cpp:138
virtual void dbDrawHeader(CDrawContext *context, const CRect &size, int32_t column, int32_t flags, CDataBrowser *browser)=0
draw the db header
virtual int32_t dbGetNumColumns(CDataBrowser *browser)=0
return number of columns for CDataBrowser browser
virtual void selectRow(int32_t row)
add row to selection
Definition: cdatabrowser.cpp:415
int32_t onKeyDown(VstKeyCode &keyCode) override
called if a key down event occurs and this view has focus
Definition: cdatabrowser.cpp:164
virtual void invalidate(const Cell &cell)
invalidates an individual cell
Definition: cdatabrowser.cpp:340
virtual void unselectAll()
empty selection
Definition: cdatabrowser.cpp:457
void setAutosizeFlags(int32_t flags) override
set autosize flags
Definition: cdatabrowser.cpp:113
virtual void dbDrawCell(CDrawContext *context, const CRect &size, int32_t row, int32_t column, int32_t flags, CDataBrowser *browser)=0
draw a db cell
virtual CMouseEventResult dbOnMouseDown(const CPoint &where, const CButtonState &buttons, int32_t row, int32_t column, CDataBrowser *browser)
mouse button was pressed on a cell
Definition: cdatabrowser.h:46
int32_t dbGetNumColumns(CDataBrowser *browser) override
return number of columns for CDataBrowser browser
Definition: cdatabrowser.h:210
IDataBrowserDelegate * getDelegate() const
get delegate object
Definition: cdatabrowser.h:153
Point structure.
Definition: cpoint.h:17
CDataBrowser Cell position description.
Definition: cdatabrowser.h:120
virtual void dbRemoved(CDataBrowser *browser)
databrowser view will be removed from its parent
Definition: cdatabrowser.h:35
a text edit control
Definition: ctextedit.h:21
virtual void beginTextEdit(const Cell &cell, UTF8StringPtr initialText)
starts a text edit for a cell
Definition: cdatabrowser.cpp:544
void setWantsFocus(bool state) override
set focus support on/off
Definition: cdatabrowser.cpp:129