diff options
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Darwin/Fl_Darwin_System_Driver.cxx | 12 | ||||
| -rw-r--r-- | src/drivers/Posix/Fl_Posix_System_Driver.cxx | 11 | ||||
| -rw-r--r-- | src/drivers/PostScript/Fl_PostScript.cxx | 2 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 12 |
4 files changed, 26 insertions, 11 deletions
diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx index d28c8f516..3740e55cf 100644 --- a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx +++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx @@ -40,9 +40,15 @@ 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; + +/** + Creates a driver that manages all screen and display related calls. + + This function must be implemented once for every platform. + */ +Fl_System_Driver *Fl_System_Driver::newSystemDriver() +{ + return new Fl_Darwin_System_Driver(); } Fl_Darwin_System_Driver::Fl_Darwin_System_Driver() { diff --git a/src/drivers/Posix/Fl_Posix_System_Driver.cxx b/src/drivers/Posix/Fl_Posix_System_Driver.cxx index de156e422..dffedeb93 100644 --- a/src/drivers/Posix/Fl_Posix_System_Driver.cxx +++ b/src/drivers/Posix/Fl_Posix_System_Driver.cxx @@ -30,9 +30,14 @@ 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; +/** + Creates a driver that manages all screen and display related calls. + + This function must be implemented once for every platform. + */ +Fl_System_Driver *Fl_System_Driver::newSystemDriver() +{ + return new Fl_Posix_System_Driver(); } void Fl_Posix_System_Driver::display_arg(const char *arg) { diff --git a/src/drivers/PostScript/Fl_PostScript.cxx b/src/drivers/PostScript/Fl_PostScript.cxx index d25915a5a..cd5e7d4a1 100644 --- a/src/drivers/PostScript/Fl_PostScript.cxx +++ b/src/drivers/PostScript/Fl_PostScript.cxx @@ -145,7 +145,7 @@ int Fl_PostScript_Graphics_Driver::clocale_printf(const char *format, ...) { va_list args; va_start(args, format); - int retval = Fl_System_Driver::driver()->clocale_printf(output, format, args); + int retval = Fl::system_driver()->clocale_printf(output, format, args); va_end(args); return retval; } diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index 9f7693da0..3a0b94fc5 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -39,10 +39,14 @@ static wchar_t *mbwbuf = NULL; static wchar_t *wbuf = NULL; static wchar_t *wbuf1 = NULL; - -Fl_System_Driver *Fl_System_Driver::driver() { - static Fl_System_Driver *d = new Fl_WinAPI_System_Driver(); - return d; +/** + Creates a driver that manages all screen and display related calls. + + This function must be implemented once for every platform. + */ +Fl_System_Driver *Fl_System_Driver::newSystemDriver() +{ + return new Fl_WinAPI_System_Driver(); } void Fl_WinAPI_System_Driver::warning(const char *format, va_list args) { |
