summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/gui/gui.cpp24
-rw-r--r--src/utils/sdlsharedhelper.cpp51
-rw-r--r--src/utils/sdlsharedhelper.h31
5 files changed, 89 insertions, 21 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a6d39bb7c..a03428cac 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1242,6 +1242,8 @@ SET(SRCS
listeners/uploadlistener.cpp
listeners/uploadlistener.h
utils/sdlpixel.h
+ utils/sdlsharedhelper.cpp
+ utils/sdlsharedhelper.h
gui/widgets/widget.h
listeners/weightlistener.h
listeners/widgetlistener.h
diff --git a/src/Makefile.am b/src/Makefile.am
index aa6a254c1..ba54d8d25 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -131,6 +131,8 @@ SRC += events/actionevent.h \
listeners/statlistener.h \
listeners/tablemodellistener.h \
utils/sdlpixel.h \
+ utils/sdlsharedhelper.cpp \
+ utils/sdlsharedhelper.h \
gui/widgets/widget.h \
listeners/weightlistener.h \
listeners/widgetlistener.h \
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index f7878a55f..146558032 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -94,17 +94,11 @@
#include "utils/delete2.h"
#include "utils/langs.h"
+#include "utils/sdlsharedhelper.h"
#include "utils/timer.h"
#include "net/ipc.h"
-#ifdef __native_client__
-#include <ppapi/c/ppb_mouse_cursor.h>
-#include <ppapi/cpp/instance.h>
-#include <ppapi/cpp/mouse_cursor.h>
-#include <ppapi_simple/ps.h>
-#endif
-
#include "debug.h"
Gui *gui = nullptr;
@@ -540,22 +534,10 @@ void Gui::setUseCustomCursor(const bool customCursor)
{
mCustomCursor = customCursor;
-#ifdef __native_client__
- PP_MouseCursor_Type cursor;
- if (mCustomCursor)
- cursor = PP_MOUSECURSOR_TYPE_NONE; // hide cursor
- else
- cursor = PP_MOUSECURSOR_TYPE_POINTER; // show default cursor
-
- pp::MouseCursor::SetCursor(
- pp::InstanceHandle(PSGetInstanceId()),
- cursor);
-#endif
-
if (mCustomCursor)
{
// Hide the SDL mouse cursor
- SDL_ShowCursor(SDL_DISABLE);
+ SDL::showCursor(false);
// Load the mouse cursor
if (mMouseCursors)
@@ -568,7 +550,7 @@ void Gui::setUseCustomCursor(const bool customCursor)
else
{
// Show the SDL mouse cursor
- SDL_ShowCursor(SDL_ENABLE);
+ SDL::showCursor(true);
// Unload the mouse cursor
if (mMouseCursors)
diff --git a/src/utils/sdlsharedhelper.cpp b/src/utils/sdlsharedhelper.cpp
new file mode 100644
index 000000000..4b69c8d24
--- /dev/null
+++ b/src/utils/sdlsharedhelper.cpp
@@ -0,0 +1,51 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2013-2015 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "utils/sdlsharedhelper.h"
+
+#ifdef __native_client__
+#include <ppapi/c/ppb_mouse_cursor.h>
+#include <ppapi/cpp/instance.h>
+#include <ppapi/cpp/mouse_cursor.h>
+#include <ppapi_simple/ps.h>
+#endif
+
+#include <SDL_events.h>
+
+#include "debug.h"
+
+void SDL::showCursor(const bool show)
+{
+#ifdef __native_client__
+ PP_MouseCursor_Type cursor;
+ if (show)
+ cursor = PP_MOUSECURSOR_TYPE_POINTER; // show default cursor
+ else
+ cursor = PP_MOUSECURSOR_TYPE_NONE; // hide cursor
+
+ pp::MouseCursor::SetCursor(
+ pp::InstanceHandle(PSGetInstanceId()),
+ cursor);
+#endif
+ if (show)
+ SDL_ShowCursor(SDL_ENABLE);
+ else
+ SDL_ShowCursor(SDL_DISABLE);
+}
diff --git a/src/utils/sdlsharedhelper.h b/src/utils/sdlsharedhelper.h
new file mode 100644
index 000000000..3963969ea
--- /dev/null
+++ b/src/utils/sdlsharedhelper.h
@@ -0,0 +1,31 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2013-2015 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef UTILS_SDLSHAREDHELPER_H
+#define UTILS_SDLSHAREDHELPER_H
+
+#include "localconsts.h"
+
+namespace SDL
+{
+ void showCursor(const bool show);
+} // namespace SDL
+
+#endif // UTILS_SDLSHAREDHELPER_H