summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Darwin/Fl_Darwin_System_Driver.H2
-rw-r--r--src/drivers/Darwin/Fl_Darwin_System_Driver.cxx17
-rw-r--r--src/drivers/Posix/Fl_Posix_System_Driver.H2
-rw-r--r--src/drivers/Posix/Fl_Posix_System_Driver.cxx17
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx5
5 files changed, 42 insertions, 1 deletions
diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.H b/src/drivers/Darwin/Fl_Darwin_System_Driver.H
index edba76686..a95bac019 100644
--- a/src/drivers/Darwin/Fl_Darwin_System_Driver.H
+++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.H
@@ -41,6 +41,8 @@
class Fl_Darwin_System_Driver : public Fl_System_Driver
{
public:
+ virtual int single_arg(const char *arg);
+ virtual int arg_and_value(const char *name, const char *value);
};
#endif // FL_DARWIN_SYSTEM_DRIVER_H
diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx
index fa6893784..bbab50be9 100644
--- a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx
+++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx
@@ -19,6 +19,7 @@
#include "../../config_lib.h"
#include "Fl_Darwin_System_Driver.H"
+#include <string.h>
//const char* fl_local_alt = "\xe2\x8c\xa5\\"; // U+2325 (option key)
const char* fl_local_alt = "⌥\\"; // U+2325 (option key)
@@ -29,6 +30,22 @@ const char* fl_local_meta = "⌘\\"; // U+2318 (place of interest sign)
//const char* fl_local_shift = "\xe2\x87\xa7\\"; // U+21E7 (upwards white arrow)
const char* fl_local_shift = "⇧\\"; // U+21E7 (upwards white arrow)
+Fl_System_Driver *Fl_System_Driver::driver() {
+ static Fl_System_Driver *d = new Fl_Darwin_System_Driver();
+ return d;
+}
+
+int Fl_Darwin_System_Driver::single_arg(const char *arg) {
+ // The Finder application in MacOS X passes the "-psn_N_NNNNN" option to all apps.
+ return (strncmp(arg, "psn_", 4) == 0);
+}
+
+int Fl_Darwin_System_Driver::arg_and_value(const char *name, const char *value) {
+ // Xcode in MacOS X may pass "-NSDocumentRevisionsDebugMode YES"
+ return strcmp(name, "NSDocumentRevisionsDebugMode") == 0;
+}
+
+
//
// End of "$Id$".
//
diff --git a/src/drivers/Posix/Fl_Posix_System_Driver.H b/src/drivers/Posix/Fl_Posix_System_Driver.H
index 9a1ca7d1d..c18e3be0e 100644
--- a/src/drivers/Posix/Fl_Posix_System_Driver.H
+++ b/src/drivers/Posix/Fl_Posix_System_Driver.H
@@ -41,6 +41,8 @@
class Fl_Posix_System_Driver : public Fl_System_Driver
{
public:
+ virtual void display_arg(const char *arg);
+ virtual int XParseGeometry(const char*, int*, int*, unsigned int*, unsigned int*);
};
#endif // FL_POSIX_SYSTEM_DRIVER_H
diff --git a/src/drivers/Posix/Fl_Posix_System_Driver.cxx b/src/drivers/Posix/Fl_Posix_System_Driver.cxx
index 886397b35..16c71f56e 100644
--- a/src/drivers/Posix/Fl_Posix_System_Driver.cxx
+++ b/src/drivers/Posix/Fl_Posix_System_Driver.cxx
@@ -17,8 +17,9 @@
//
-#include "../../config_lib.h"
#include "Fl_Posix_System_Driver.H"
+#include <FL/Fl.H>
+
// Pointers you can use to change FLTK to a foreign language.
// Note: Similar pointers are defined in FL/fl_ask.H and src/fl_ask.cxx
@@ -27,6 +28,20 @@ const char* fl_local_ctrl = "Ctrl";
const char* fl_local_meta = "Meta";
const char* fl_local_shift = "Shift";
+Fl_System_Driver *Fl_System_Driver::driver() {
+ static Fl_System_Driver *d = new Fl_Posix_System_Driver();
+ return d;
+}
+
+void Fl_Posix_System_Driver::display_arg(const char *arg) {
+ Fl::display(arg);
+}
+
+int Fl_Posix_System_Driver::XParseGeometry(const char* string, int* x, int* y,
+ unsigned int* width, unsigned int* height) {
+ return ::XParseGeometry(string, x, y, width, height);
+}
+
//
// End of "$Id$".
//
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
index 1a59a2c05..b3678c097 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
+++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
@@ -27,6 +27,11 @@ const char* fl_local_meta = "Meta";
const char* fl_local_shift = "Shift";
#endif
+Fl_System_Driver *Fl_System_Driver::driver() {
+ static Fl_System_Driver *d = new Fl_WinAPI_System_Driver();
+ return d;
+}
+
//
// End of "$Id$".
//