00001
00002
00003
00004
00005
00006 #ifndef BALL_VIEW_WIDGETS_GENERICCONTROL_H
00007 #define BALL_VIEW_WIDGETS_GENERICCONTROL_H
00008
00009 #ifndef BALL_VIEW_WIDGETS_DOCKWIDGET_H
00010 # include <BALL/VIEW/WIDGETS/dockWidget.h>
00011 #endif
00012
00013 #include <QtGui/QKeyEvent>
00014 #include <QtGui/QTreeWidget>
00015 #include <QtGui/QTreeWidgetItem>
00016 #include <QtCore/QList>
00017
00018 namespace BALL
00019 {
00020 namespace VIEW
00021 {
00025 class TreeWidget
00026 : public QTreeWidget
00027 {
00028 public:
00029
00031 TreeWidget(QWidget* parent = 0);
00032
00034 void selectItems(const list<QTreeWidgetItem*>& items);
00035 };
00036
00050 class BALL_VIEW_EXPORT GenericControl
00051 : public DockWidget
00052 {
00053 Q_OBJECT
00054
00055 public:
00056
00058 typedef QList<QTreeWidgetItem*> ItemList;
00059
00063
00066 BALL_EMBEDDABLE(GenericControl,DockWidget)
00067
00068
00072
00081 GenericControl(QWidget* parent = 0, const char* name = 0);
00082
00085 virtual ~GenericControl();
00086
00087 ItemList getSelectedItems();
00088
00090 QTreeWidgetItem* addRow(const QStringList& entries);
00091
00098 virtual void onNotify(Message *message);
00099
00107 virtual void initializeWidget(MainControl& main_control);
00108
00110
00111 public slots:
00112
00114 virtual void deleteCurrentItems(){};
00115
00116 protected slots:
00117
00118 virtual void deselectOtherControls_();
00119
00120
00121
00122
00123 virtual void updateSelection();
00124
00125 virtual void onItemClicked(QTreeWidgetItem*, int) {};
00126
00127 protected:
00128
00129 virtual void removeItem_(QTreeWidgetItem* item);
00130
00131 QTreeWidgetItem* context_item_;
00132 TreeWidget* listview;
00133 bool checkable_;
00134 };
00135
00136 } }
00137 #endif // BALL_VIEW_WIDGETS_GENERICCONTROL_H