namespace flightgear
{
+ /**
+ * return the default platform dependant download directory.
+ * This must be a user-writeable location, the question is if it should
+ * be a user visible location. On Windows we default to a subdir of
+ * Documents (FlightGear), on Unixes we default to FG_HOME, which is
+ * typically invisible.
+ */
+ std::string defaultDownloadDir();
+
/// option processing can have various result values
/// depending on what the user requested. Note processOptions only
/// returns a subset of these.
* This can be used to inject option values, eg based upon environment variables
*/
int addOption(const std::string& key, const std::string& value);
-
+
+ /**
+ * set an option, overwriting any existing value which might be set
+ */
+ int setOption(const std::string& key, const std::string& value);
+
+ void clearOption(const std::string& key);
+
/**
* apply option values to the simulation state
* (set properties, etc).
* Used by early startup code before Options object is created
*/
static bool checkForArg(int argc, char* argv[], const char* arg);
+
+ std::string platformDefaultRoot() const;
private:
void showUsage() const;
* to help the user our (finding a base package), and hence need to init Qt.
*/
void setupRoot(int argc, char **argv);
-
- std::string platformDefaultRoot() const;
+
class OptionsPrivate;
std::auto_ptr<OptionsPrivate> p;