aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/bada/form.h
diff options
context:
space:
mode:
authorChris Warren-Smith2011-08-07 21:33:32 +1000
committerChris Warren-Smith2011-08-21 16:37:06 +1000
commit59739a7a0e3e4826ba7b27d5270a8d7a26b787ef (patch)
treedcf98438157963eabd0ca4499b7794548b08f5fa /backends/platform/bada/form.h
parentf705a9b2865a3379b3423c7cc929086eee17a4f1 (diff)
downloadscummvm-rg350-59739a7a0e3e4826ba7b27d5270a8d7a26b787ef.tar.gz
scummvm-rg350-59739a7a0e3e4826ba7b27d5270a8d7a26b787ef.tar.bz2
scummvm-rg350-59739a7a0e3e4826ba7b27d5270a8d7a26b787ef.zip
BADA: Initial BADA port implementation
Diffstat (limited to 'backends/platform/bada/form.h')
-rwxr-xr-xbackends/platform/bada/form.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h
new file mode 100755
index 0000000000..157cc8e365
--- /dev/null
+++ b/backends/platform/bada/form.h
@@ -0,0 +1,108 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * 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 (at your option) 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_FORM_H
+#define BADA_FORM_H
+
+#include <FApp.h>
+#include <FUi.h>
+#include <FSystem.h>
+#include <FBase.h>
+#include <FUiITouchEventListener.h>
+#include <FUiITextEventListener.h>
+
+#include "config.h"
+#include "common/scummsys.h"
+#include "common/events.h"
+#include "common/queue.h"
+#include "common/mutex.h"
+
+//
+// BadaAppForm
+//
+class BadaAppForm : public Osp::Ui::Controls::Form,
+ public Osp::Ui::IOrientationEventListener,
+ public Osp::Ui::ITouchEventListener,
+ public Osp::Ui::IKeyEventListener,
+ public Osp::Base::Runtime::IRunnable {
+public:
+ BadaAppForm();
+ ~BadaAppForm();
+
+ result Construct();
+ bool pollEvent(Common::Event &event);
+ bool isClosing() { return _state == ClosingState; }
+ void pushKey(Common::KeyCode keycode);
+ void exitSystem();
+
+private:
+ Object *Run();
+ result OnInitializing(void);
+ result OnDraw(void);
+ void OnOrientationChanged(const Osp::Ui::Control &source,
+ Osp::Ui::OrientationStatus orientationStatus);
+ void OnTouchDoublePressed(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchFocusIn(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchFocusOut(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchLongPressed(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchMoved(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchPressed(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchReleased(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnKeyLongPressed(const Osp::Ui::Control &source,
+ Osp::Ui::KeyCode keyCode);
+ void OnKeyPressed(const Osp::Ui::Control &source,
+ Osp::Ui::KeyCode keyCode);
+ void OnKeyReleased(const Osp::Ui::Control &source,
+ Osp::Ui::KeyCode keyCode);
+
+ void pushEvent(Common::EventType type,
+ const Osp::Graphics::Point &currentPosition);
+ void terminate();
+ void setVolume(bool up, bool minMax);
+ int getShortcutIndex();
+
+ // event handling
+ Osp::Base::Runtime::Thread *_gameThread;
+ Osp::Base::Runtime::Mutex *_eventQueueLock;
+ Common::Queue<Common::Event> _eventQueue;
+ enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state;
+ enum {LeftButton, RightButtonOnce, RightButton} _buttonState;
+ uint32 _shortcutTimer;
+ int _shortcutIndex;
+ int _touchCount;
+};
+
+#endif