summaryrefslogtreecommitdiff
path: root/shared/help_provider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shared/help_provider.cpp')
-rw-r--r--shared/help_provider.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/shared/help_provider.cpp b/shared/help_provider.cpp
new file mode 100644
index 00000000..0110934c
--- /dev/null
+++ b/shared/help_provider.cpp
@@ -0,0 +1,46 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
+#include "help_provider.h"
+#include <wx/help.h>
+#include "standard_paths.h"
+#include <wx/image.h>
+
+namespace
+{
+class HelpProvider
+{
+public:
+ HelpProvider()
+ {
+ controller.Initialize(ffs3::getResourceDir() +
+#ifdef FFS_WIN
+ wxT("FreeFileSync.chm"));
+#elif defined FFS_LINUX
+ wxT("Help/FreeFileSync.hhp"));
+
+ wxImage::AddHandler(new wxJPEGHandler); //ownership passed; display .jpg files correctly in Linux
+#endif
+ }
+
+ void showHelp(const wxString& section)
+ {
+ if (section.empty())
+ controller.DisplayContents();
+ else
+ controller.DisplaySection(section);
+ }
+
+private:
+ wxHelpController controller;
+};
+}
+
+void ffs3::displayHelpEntry(const wxString& section)
+{
+ static HelpProvider provider;
+ provider.showHelp(section);
+}
bgstack15