#include <simgear/compiler.h> // for SG_USING_STD
#include <simgear/props/props.hxx>
#include <simgear/misc/sg_path.hxx>
#include <simgear/compiler.h> // for SG_USING_STD
#include <simgear/props/props.hxx>
#include <simgear/misc/sg_path.hxx>
+using std::vector;
+
+
+// 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) {} virtual ~GUI_ID() {} int id; };
+
+
+
+ class ConditionalObject : public SGConditional
+ {
+ public:
+ ConditionalObject(const std::string& aName, puObject* aPu) :
+ _name(aName),
+ _pu(aPu)
+ { ; }
+
+ void update(FGDialog* aDlg);
+
+ private:
+ const std::string _name;
+ puObject* _pu;
+ };
+
+ typedef SGSharedPtr<ConditionalObject> ConditionalObjectRef;
+ vector<ConditionalObjectRef> _conditionalObjects;
- 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 *);
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 *);
public:
fgList(int x1, int y1, int x2, int y2, SGPropertyNode *p, int sw) :
public:
fgList(int x1, int y1, int x2, int y2, SGPropertyNode *p, int sw) :
- fgValueList(p), puList(x1, y1, x2, y2, _list, sw) {}
- virtual void update();
- virtual const char *getTypeString() { return "fgList"; }
+ fgValueList(p), puaList(x1, y1, x2, y2, _list, sw), GUI_ID(FGCLASS_LIST) {}
+ void update();
};
class fgComboBox : public fgValueList, public puaComboBox {
public:
fgComboBox(int x1, int y1, int x2, int y2, SGPropertyNode *p, bool editable) :
fgValueList(p), puaComboBox(x1, y1, x2, y2, _list, editable) {}
};
class fgComboBox : public fgValueList, public puaComboBox {
public:
fgComboBox(int x1, int y1, int x2, int y2, SGPropertyNode *p, bool editable) :
fgValueList(p), puaComboBox(x1, y1, x2, y2, _list, editable) {}