X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FGUI%2Fdialog.hxx;h=749c355cbdd6f215e75e7b5441e95cac783016db;hb=1ae2b59333dc914d10bcc726bc94e71cbf3e411e;hp=6430b75cdb9923955194189b59ae892d9aecf434;hpb=059c906be55fb060ba70231912cbf96f37fc7290;p=flightgear.git diff --git a/src/GUI/dialog.hxx b/src/GUI/dialog.hxx index 6430b75cd..749c355cb 100644 --- a/src/GUI/dialog.hxx +++ b/src/GUI/dialog.hxx @@ -8,24 +8,20 @@ #endif #include -#include #include // for SG_USING_STD #include #include -#undef PUCLASS_LIST -#include "puList.hxx" - #include -SG_USING_STD(vector); +using std::vector; -// ugly temproary workaround for plib's lack of user defined class ids FIXME +// ugly temporary workaround for plib's lack of user defined class ids FIXME #define FGCLASS_LIST 0x00000001 #define FGCLASS_AIRPORTLIST 0x00000002 #define FGCLASS_PROPERTYLIST 0x00000004 -class GUI_ID { public: GUI_ID(int id) : id(id) {} int id; }; +class GUI_ID { public: GUI_ID(int id) : id(id) {} virtual ~GUI_ID() {} int id; }; @@ -178,16 +174,25 @@ private: // class fgPopup : public puPopup { public: - fgPopup(int x, int y, bool d = true) : puPopup(x, y) { _dragging = false; _draggable = d;} + fgPopup(int x, int y, bool r = true, bool d = true) : + puPopup(x, y), _draggable(d), _resizable(r), _dragging(false) + {} int checkHit(int b, int up, int x, int y); int checkKey(int key, int updown); int getHitObjects(puObject *, int x, int y); puObject *getKeyObject(puObject *, int key); puObject *getActiveInputField(puObject *); + void applySize(puObject *); private: + enum { LEFT = 1, RIGHT = 2, TOP = 4, BOTTOM = 8 }; bool _draggable; + bool _resizable; bool _dragging; - int _dX, _dY; + int _resizing; + int _start_cursor; + int _cursor; + int _dlgX, _dlgY, _dlgW, _dlgH; + int _startX, _startY; }; @@ -207,10 +212,10 @@ private: }; -class fgList : public fgValueList, public puList, public GUI_ID { +class fgList : public fgValueList, public puaList, public GUI_ID { public: fgList(int x1, int y1, int x2, int y2, SGPropertyNode *p, int sw) : - fgValueList(p), puList(x1, y1, x2, y2, _list, sw), GUI_ID(FGCLASS_LIST) {} + fgValueList(p), puaList(x1, y1, x2, y2, _list, sw), GUI_ID(FGCLASS_LIST) {} void update(); };