summaryrefslogtreecommitdiff
path: root/src/drivers/WinAPI
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-04-09 15:15:33 +0000
committerManolo Gouy <Manolo>2016-04-09 15:15:33 +0000
commit8b672ee655aaee8e8a2002643846147997a8eaf8 (patch)
tree1fd6d1e4d47273cf4a022f69f466d3bd7aa59a91 /src/drivers/WinAPI
parentd98a8e13e6eff36e3b428b5e5cb93019e23d644b (diff)
Rewrite fl_open_uri.cxx under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11563 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/WinAPI')
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_System_Driver.H1
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H
index 3e5f06d39..6079b0721 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H
+++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H
@@ -75,6 +75,7 @@ public:
virtual int filename_isdir(const char* n);
virtual int filename_isdir_quick(const char* n);
virtual const char *filename_ext(const char *buf);
+ virtual int open_uri(const char *uri, char *msg, int msglen);
};
#endif // FL_WINAPI_SYSTEM_DRIVER_H
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
index 246a26521..95d94dfca 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
+++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <windows.h>
+#include <shellapi.h>
#include <wchar.h>
#include <process.h>
#include <locale.h>
@@ -658,6 +659,12 @@ const char *Fl_WinAPI_System_Driver::filename_ext(const char *buf) {
return q ? q : p;
}
+int Fl_WinAPI_System_Driver::open_uri(const char *uri, char *msg, int msglen)
+{
+ if (msg) snprintf(msg, msglen, "open %s", uri);
+ return (int)(ShellExecute(HWND_DESKTOP, "open", uri, NULL, NULL, SW_SHOW) > (void *)32);
+}
+
//
// End of "$Id$".
//