5 #ifndef CNOID_BODY_PLUGIN_LINK_TREE_WIDGET_H 6 #define CNOID_BODY_PLUGIN_LINK_TREE_WIDGET_H 9 #include <cnoid/Signal> 10 #include <cnoid/ComboBox> 11 #include <cnoid/TreeWidget> 12 #include <boost/dynamic_bitset.hpp> 21 class LinkTreeWidgetImpl;
28 inline int rowIndex()
const {
return rowIndex_; }
30 inline const std::string&
name()
const {
return name_; }
31 inline const QString&
nameText()
const {
return nameText_; }
32 inline const Link*
link()
const {
return link_; }
36 virtual QVariant data(
int column,
int role)
const;
37 virtual void setData(
int column,
int role,
const QVariant& value);
50 friend class LinkTreeWidgetImpl;
63 void setDefaultExpansionLevel(
int level);
64 void enableCache(
bool on);
67 LINK_LIST, LINK_TREE, JOINT_LIST, JOINT_TREE, PART_TREE };
71 void fixListingMode(
bool on =
true);
75 void setBodyItem(
BodyItem* bodyItem);
78 typedef boost::function<void(const LinkTreeItem* item, int role, QVariant& out_value)>
ColumnDataFunction;
82 int setNumColumns(
int n);
84 int addColumn(
const QString& headerText);
85 void setColumnStretchResizeMode(
int column);
86 void setColumnInteractiveResizeMode(
int column);
87 void setColumnResizeToContentsMode(
int column);
89 void setColumnDataFunction(
int column, ColumnDataFunction func);
90 void setColumnSetDataFunction(
int column, ColumnSetDataFunction func);
91 void setColumnWidgetFunction(
int column, ColumnWidgetFunction func);
92 void moveVisualColumnIndex(
int column,
int visualIndex);
96 void setNameColumnMarginEnabled(
bool on);
98 void setAlignedItemWidget(
LinkTreeItem* item,
int column, QWidget* widget, Qt::Alignment alignment = Qt::AlignCenter);
99 QWidget* alignedItemWidget(
LinkTreeItem* item,
int column);
105 int numLinkTreeItems();
110 int selectedLinkIndex()
const;
111 const std::vector<int>& selectedLinkIndices();
112 const boost::dynamic_bitset<>& linkSelection();
117 int selectedLinkIndex(
BodyItem* bodyItem)
const;
119 const std::vector<int>& selectedLinkIndices(
BodyItem* bodyItem);
121 const boost::dynamic_bitset<>& linkSelection(
BodyItem* bodyItem);
125 bool makeSingleSelection(
BodyItem* bodyItem,
int linkIndex);
127 void enableArchiveOfCurrentBodyItem(
bool on);
128 bool storeState(
Archive& archive);
129 bool restoreState(
const Archive& archive);
132 virtual void changeEvent(QEvent* event);
135 void onItemChanged(QTreeWidgetItem* item,
int column);
136 void onSelectionChanged();
137 void onCustomContextMenuRequested(
const QPoint& pos);
138 void onItemExpanded(QTreeWidgetItem* treeWidgetItem);
139 void onItemCollapsed(QTreeWidgetItem* treeWidgetItem);
140 void onHeaderSectionResized();
144 LinkTreeWidgetImpl* impl;
Definition: LinkGroup.h:21
const Link * link() const
Definition: LinkTreeWidget.h:32
const QString & nameText() const
Definition: LinkTreeWidget.h:31
Definition: LinkTreeWidget.h:23
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: ComboBox.h:14
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
const std::string & name() const
Definition: LinkTreeWidget.h:30
Definition: BodyItem.h:31
Link * link()
Definition: LinkTreeWidget.h:33
int rowIndex() const
Definition: LinkTreeWidget.h:28
bool isLinkGroup() const
Definition: LinkTreeWidget.h:34