00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _OSBPOPUP_H_
00031 #define _OSBPOPUP_H_
00032
00033
00034
00035
00036
00037
00038 #include <qwidget.h>
00039 #include <qlineedit.h>
00040
00041
00042
00043
00044
00045
00046
00047
00048 namespace OSB_GUI {
00049
00050
00051
00052
00053
00054
00055
00056
00057
00061 class Popup : public QWidget {
00062 Q_OBJECT
00063 public:
00070 explicit Popup(
00071 QWidget* parent,
00072 const char* name,
00073 WFlags flags = Qt::WType_Popup
00074 );
00076 virtual ~Popup() = 0;
00077 public:
00083 void popup(QWidget* served);
00090 void popup(
00091 QWidget* served,
00092 const QPoint& pos
00093 );
00099 bool result() const;
00101 bool keyClosed() const;
00103 QWidget* prevServed() const;
00105 void resetPrevServed();
00106 signals:
00113 void sigClosed(bool result);
00114 protected:
00116 virtual void closeEvent(QCloseEvent* event);
00123 virtual void keyPressEvent(QKeyEvent* event);
00124 private:
00126 bool result_;
00128 QWidget* served_;
00130 QWidget* prevServed_;
00139 bool keyClosed_;
00140 };
00141
00145 class LePopup : public QLineEdit {
00146 Q_OBJECT
00147 public:
00149 explicit LePopup(
00150 QWidget* parent,
00151 const char* name = "leSe_"
00152 );
00153 public:
00155 void setPopup(Popup* popup);
00156 protected:
00158 virtual void focusInEvent(QFocusEvent* event);
00160 virtual void keyPressEvent(QKeyEvent* event);
00162 virtual void mousePressEvent(QMouseEvent* event);
00163 private slots:
00165 virtual void popup();
00167 virtual void popupClosed(bool result);
00168 private:
00170 Popup* popup_;
00171 };
00172 }
00173
00174
00175
00176 namespace OSB_GUI {
00177 }
00178 #endif // #ifndef _OSBPOPUP_H_