1
0
Fork 0
flightgear/src/GUI/dialog.hxx
Richard Harrison 518fb79e01 PUI Dialogs fixes
- fix double zoom on mouse wheel in map
- change getName() to return const char* to see if that fixes the crash in linux.
2018-08-10 02:00:38 +02:00

80 lines
1.9 KiB
C++

// dialog.hxx - XML-configured dialog box.
#ifndef __DIALOG_HXX
#define __DIALOG_HXX 1
#include <string>
// forward decls
class SGPropertyNode;
/**
* An XML-configured dialog box.
*
* The GUI manager stores only the property tree for the dialog
* boxes. This class creates a PUI dialog box on demand from
* the properties in that tree. The manager recreates the dialog
* every time it needs to show it.
*/
class FGDialog
{
public:
/**
* Destructor.
*/
virtual ~FGDialog ();
/**
* Update the values of all GUI objects with a specific name,
* or all if an empty name is given (default).
*
* This method copies values from the FlightGear property tree to
* the GUI object(s).
*
* @param objectName The name of the GUI object(s) to update.
* Use the empty name for all objects.
*/
virtual void updateValues(const std::string& objectName = "") = 0;
/**
* Apply the values of all GUI objects with a specific name,
* or all if an empty name is given (default)
*
* This method copies values from the GUI object(s) to the
* FlightGear property tree.
*
* @param objectName The name of the GUI object(s) to update.
* Use the empty name for all objects.
*/
virtual void applyValues(const std::string& objectName = "") = 0;
/**
* Update state. Called on active dialogs before rendering.
*/
virtual void update () = 0;
virtual const char *getName() { return ""; }
virtual void bringToFront() {}
protected:
/**
* Construct a new GUI widget configured by a property tree.
*
* The configuration properties are not part of the main
* FlightGear property tree; the GUI manager reads them
* from individual configuration files.
*
* @param props A property tree describing the dialog.
*/
FGDialog (SGPropertyNode * props);
private:
};
#endif // __DIALOG_HXX