Add Tooltip support to TreeTable.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2009, Ingo Weinhold, [email protected].
|
* Copyright 2009, Ingo Weinhold, [email protected].
|
||||||
|
* Copyright 2012, Rene Gollent, [email protected].
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -226,6 +227,14 @@ TreeTableModel::NotifyNodesChanged(const TreeTablePath& path, int32 childIndex,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - TreeTableToolTipProvider
|
||||||
|
|
||||||
|
|
||||||
|
TreeTableToolTipProvider::~TreeTableToolTipProvider()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - TreeTableListener
|
// #pragma mark - TreeTableListener
|
||||||
|
|
||||||
|
|
||||||
@@ -650,6 +659,7 @@ TreeTable::TreeTable(const char* name, uint32 flags, border_style borderStyle,
|
|||||||
:
|
:
|
||||||
AbstractTable(name, flags, borderStyle, showHorizontalScrollbar),
|
AbstractTable(name, flags, borderStyle, showHorizontalScrollbar),
|
||||||
fModel(NULL),
|
fModel(NULL),
|
||||||
|
fToolTipProvider(NULL),
|
||||||
fRootNode(NULL),
|
fRootNode(NULL),
|
||||||
fSelectionModel(this),
|
fSelectionModel(this),
|
||||||
fIgnoreSelectionChange(0)
|
fIgnoreSelectionChange(0)
|
||||||
@@ -731,6 +741,13 @@ TreeTable::SetTreeTableModel(TreeTableModel* model)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
TreeTable::SetToolTipProvider(TreeTableToolTipProvider* toolTipProvider)
|
||||||
|
{
|
||||||
|
fToolTipProvider = toolTipProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
TreeTableSelectionModel*
|
TreeTableSelectionModel*
|
||||||
TreeTable::SelectionModel()
|
TreeTable::SelectionModel()
|
||||||
{
|
{
|
||||||
@@ -810,6 +827,31 @@ TreeTable::RemoveTreeTableListener(TreeTableListener* listener)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
TreeTable::GetToolTipAt(BPoint point, BToolTip** _tip)
|
||||||
|
{
|
||||||
|
if (fToolTipProvider == NULL)
|
||||||
|
return AbstractTable::GetToolTipAt(point, _tip);
|
||||||
|
|
||||||
|
// get the table row
|
||||||
|
BRow* row = RowAt(point);
|
||||||
|
if (row == NULL)
|
||||||
|
return AbstractTable::GetToolTipAt(point, _tip);
|
||||||
|
|
||||||
|
TreeTableRow* treeRow = dynamic_cast<TreeTableRow*>(row);
|
||||||
|
// get the table column
|
||||||
|
BColumn* column = ColumnAt(point);
|
||||||
|
|
||||||
|
int32 columnIndex = column != NULL ? column->LogicalFieldNum() : -1;
|
||||||
|
|
||||||
|
TreeTablePath path;
|
||||||
|
_GetPathForNode(treeRow->Node(), path);
|
||||||
|
|
||||||
|
return fToolTipProvider->GetToolTipForTablePath(path, columnIndex,
|
||||||
|
_tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TreeTable::SelectionChanged()
|
TreeTable::SelectionChanged()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2009, Ingo Weinhold, [email protected].
|
* Copyright 2009, Ingo Weinhold, [email protected].
|
||||||
|
* Copyright 2012, Rene Gollent, [email protected].
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
#ifndef TREE_TABLE_H
|
#ifndef TREE_TABLE_H
|
||||||
@@ -122,6 +123,17 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class TreeTableToolTipProvider {
|
||||||
|
public:
|
||||||
|
virtual ~TreeTableToolTipProvider();
|
||||||
|
|
||||||
|
virtual bool GetToolTipForTablePath(
|
||||||
|
const TreeTablePath& path,
|
||||||
|
int32 columnIndex, BToolTip** _tip) = 0;
|
||||||
|
// columnIndex can be -1, if not in a column
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class TreeTableListener {
|
class TreeTableListener {
|
||||||
public:
|
public:
|
||||||
virtual ~TreeTableListener();
|
virtual ~TreeTableListener();
|
||||||
@@ -157,6 +169,11 @@ public:
|
|||||||
bool SetTreeTableModel(TreeTableModel* model);
|
bool SetTreeTableModel(TreeTableModel* model);
|
||||||
TreeTableModel* GetTreeTableModel() const { return fModel; }
|
TreeTableModel* GetTreeTableModel() const { return fModel; }
|
||||||
|
|
||||||
|
void SetToolTipProvider(
|
||||||
|
TreeTableToolTipProvider* toolTipProvider);
|
||||||
|
TreeTableToolTipProvider* ToolTipProvider() const
|
||||||
|
{ return fToolTipProvider; }
|
||||||
|
|
||||||
TreeTableSelectionModel* SelectionModel();
|
TreeTableSelectionModel* SelectionModel();
|
||||||
|
|
||||||
void SelectNode(const TreeTablePath& path,
|
void SelectNode(const TreeTablePath& path,
|
||||||
@@ -177,6 +194,8 @@ public:
|
|||||||
TreeTableListener* listener);
|
TreeTableListener* listener);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual bool GetToolTipAt(BPoint point, BToolTip** _tip);
|
||||||
|
|
||||||
virtual void SelectionChanged();
|
virtual void SelectionChanged();
|
||||||
|
|
||||||
virtual AbstractColumn* CreateColumn(TableColumn* column);
|
virtual AbstractColumn* CreateColumn(TableColumn* column);
|
||||||
@@ -226,6 +245,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
TreeTableModel* fModel;
|
TreeTableModel* fModel;
|
||||||
|
TreeTableToolTipProvider* fToolTipProvider;
|
||||||
TreeTableNode* fRootNode;
|
TreeTableNode* fRootNode;
|
||||||
TreeTableSelectionModel fSelectionModel;
|
TreeTableSelectionModel fSelectionModel;
|
||||||
ListenerList fListeners;
|
ListenerList fListeners;
|
||||||
|
|||||||
Reference in New Issue
Block a user