/* * Copyright (c) 2010 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #ifndef SWIFT_QtStatusWidget_H #define SWIFT_QtStatusWidget_H #include "Swiften/Elements/StatusShow.h" #include #include #include class QComboBox; class QLabel; class QStackedWidget; class QLineEdit; class QListWidget; class QListWidgetItem; namespace Swift { class QtStatusWidget : public QWidget { Q_OBJECT public: QtStatusWidget(QWidget *parent); ~QtStatusWidget(); StatusShow::Type getSelectedStatusShow(); void setStatusType(StatusShow::Type type); signals: void onChangeStatusRequest(StatusShow::Type showType, const QString& text); public slots: void setStatusText(const QString& text); private slots: void generateList(); void handleClicked(); void handleEditComplete(); void handleEditCancelled(); void handleApplicationFocusChanged(QWidget* old, QWidget* now); protected slots: virtual void mousePressEvent(QMouseEvent* event); void handleItemClicked(QListWidgetItem* item); private: void viewMode(); //QComboBox *types_; QStackedWidget* stack_; QLabel* statusIcon_; QLabel* statusTextLabel_; QLineEdit* statusEdit_; QString statusText_; QMap icons_; StatusShow::Type selectedStatusType_; bool isClicking_; QListWidget* menu_; QCursor editCursor_; QCursor viewCursor_; }; } #endif