rhodes 3.1.0.beta.2 → 3.1.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/CHANGELOG +1 -1
  2. data/Manifest.txt +26 -1
  3. data/Rakefile +12 -12
  4. data/doc/connect-to-web-services.txt +7 -1
  5. data/doc/css-framework.txt +3 -3
  6. data/doc/device-caps.txt +24 -23
  7. data/doc/generator.txt +4 -2
  8. data/doc/standard-css.txt +17 -42
  9. data/doc/tutorial.txt +23 -29
  10. data/doc/ui.txt +99 -79
  11. data/lib/extensions/barcode/Android.mk +17 -0
  12. data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +27 -11
  13. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/CaptureActivity.java +2 -1
  14. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +5 -6
  15. data/lib/extensions/nfc/Android.mk +18 -0
  16. data/lib/extensions/nfc/ext/nfc/platform/android/jni/src/nfc.cpp +9 -16
  17. data/platform/android/Rhodes/jni/Android.mk +25 -314
  18. data/platform/android/Rhodes/jni/rainbow_stab.cpp +31 -0
  19. data/platform/android/Rhodes/jni/src/bluetooth.cpp +5 -9
  20. data/platform/android/Rhodes/jni/src/camera.cpp +5 -12
  21. data/platform/android/Rhodes/jni/src/fileapi.cpp +8 -7
  22. data/platform/android/Rhodes/jni/src/mapview.cpp +29 -13
  23. data/platform/android/Rhodes/jni/src/nativebar.cpp +3 -2
  24. data/platform/android/Rhodes/jni/src/webview.cpp +2 -2
  25. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +2 -0
  26. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +8 -2
  27. data/platform/android/build/android.rake +1 -1
  28. data/platform/android/build/androidcommon.rb +12 -1
  29. data/platform/iphone/Classes/Bluetooth/Bluetooth.m +6 -2
  30. data/platform/iphone/Classes/Camera/PickImageDelegate.m +3 -3
  31. data/platform/iphone/Classes/DateTimePickerDelegate.m +3 -1
  32. data/platform/iphone/Classes/MapView/MapAnnotation.m +2 -1
  33. data/platform/iphone/Classes/SplitView/RightViewController.m +3 -1
  34. data/platform/iphone/Classes/TabbedMainView.m +3 -1
  35. data/platform/iphone/rbuild/iphone.rake +5 -3
  36. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +2 -4
  37. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
  38. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib +0 -0
  39. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqgenericbearer.dylib +0 -0
  40. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqcncodecs.dylib +0 -0
  41. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqjpcodecs.dylib +0 -0
  42. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqkrcodecs.dylib +0 -0
  43. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqtwcodecs.dylib +0 -0
  44. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/graphicssystems/libqtracegraphicssystem.dylib +0 -0
  45. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/phonon_backend/libphonon_qt7.dylib +0 -0
  46. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libtcpserver.dylib +0 -0
  47. data/platform/shared/common/Android.mk +35 -0
  48. data/platform/shared/common/RhodesApp.cpp +17 -14
  49. data/platform/shared/common/map/ESRIMapEngine.cpp +4 -1
  50. data/platform/shared/curl/Android.mk +88 -0
  51. data/platform/shared/db/Android.mk +12 -0
  52. data/platform/shared/db/DBResult.h +1 -1
  53. data/platform/shared/json/Android.mk +18 -0
  54. data/platform/shared/logging/Android.mk +13 -0
  55. data/platform/shared/logging/RhoLogConf.cpp +1 -3
  56. data/platform/shared/net/Android.mk +19 -0
  57. data/platform/shared/qt/rhodes/QtMainWindow.cpp +7 -2
  58. data/platform/shared/qt/rhodes/QtMainWindow.h +1 -0
  59. data/platform/shared/qt/rhodes/QtMainWindow.ui +12 -0
  60. data/platform/shared/qt/rhodes/RhoSimulator.h +33 -0
  61. data/platform/shared/qt/rhodes/rhodes.pro +134 -133
  62. data/platform/shared/ruby/Android.mk +118 -0
  63. data/platform/shared/rubyext/Android.mk +15 -0
  64. data/platform/shared/sqlite/Android.mk +9 -0
  65. data/platform/shared/statistic/Android.mk +9 -0
  66. data/platform/shared/sync/Android.mk +14 -0
  67. data/platform/shared/unzip/Android.mk +9 -0
  68. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  69. data/platform/wm/build/wm.rake +1 -1
  70. data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +3 -1
  71. data/rakefile.rb +12 -12
  72. data/res/generators/templates/application/app/Settings/login.erb +2 -2
  73. data/res/generators/templates/application/app/index.bb.erb +12 -17
  74. data/res/generators/templates/application/app/layout.erb +1 -15
  75. data/res/generators/templates/application/public/css/blackberry.css +17 -17
  76. data/res/generators/templates/application/public/css/jqmobile-patch.css +22 -0
  77. data/res/generators/templates/application/public/js/jqmobile-patch.js +28 -14
  78. data/res/generators/templates/model/edit.erb +1 -1
  79. data/res/generators/templates/model/new.erb +1 -1
  80. data/rhodes.gemspec +2 -2
  81. metadata +34 -25
  82. data/platform/android/Rhodes/AndroidManifest.full.xml +0 -101
@@ -6,15 +6,13 @@
6
6
  <string>rho.icns</string>
7
7
  <key>CFBundlePackageType</key>
8
8
  <string>APPL</string>
9
- <key>CFBundleGetInfoString</key>
9
+ <key>CFBundleGetInfoString</key>
10
10
  <string>Created by Qt/QMake</string>
11
11
  <key>CFBundleSignature</key>
12
12
  <string>????</string>
13
13
  <key>CFBundleExecutable</key>
14
14
  <string>RhoSimulator</string>
15
15
  <key>CFBundleIdentifier</key>
16
- <string>com.yourcompany.RhoSimulator</string>
17
- <key>NOTE</key>
18
- <string>This file was generated by Qt/QMake.</string>
16
+ <string>com.rhomobile.RhoSimulator</string>
19
17
  </dict>
20
18
  </plist>
@@ -0,0 +1,35 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := rhomain
6
+ LOCAL_SRC_FILES := RhodesApp.cpp RhodesAppBase.cpp
7
+ LOCAL_C_INCLUDES := $(SHARED_PATH_INC)
8
+
9
+ include $(BUILD_STATIC_LIBRARY)
10
+
11
+ include $(CLEAR_VARS)
12
+
13
+ LOCAL_MODULE := rhocommon
14
+ LOCAL_SRC_FILES := \
15
+ app_build_configs.c \
16
+ AppMenu.cpp \
17
+ map/ESRIMapEngine.cpp \
18
+ map/GoogleMapEngine.cpp \
19
+ map/MapEngine.cpp \
20
+ PosixThreadImpl.cpp \
21
+ RhoConf.cpp \
22
+ RhoFile.cpp \
23
+ RhoMath.cpp \
24
+ rhoparams.cpp \
25
+ RhoThread.cpp \
26
+ SplashScreen.cpp \
27
+ ThreadQueue.cpp \
28
+ Tokenizer.cpp \
29
+ RhoTime.cpp
30
+ LOCAL_C_INCLUDES := $(SHARED_PATH_INC)
31
+ #$(SHARED_PATH_INC)/curl/include
32
+ # $(SHARED_PATH_INC)/ruby/include \
33
+ # $(SHARED_PATH_INC)/ruby/linux
34
+
35
+ include $(BUILD_STATIC_LIBRARY)
@@ -675,10 +675,10 @@ static void callback_getrhomessage(void *arg, String const &strQuery)
675
675
  strMsg = rho_ruby_internal_getErrorText(nError);
676
676
  }else
677
677
  {
678
- size_t nErrorPos = strQuery.find("msgid=");
679
- if ( nErrorPos != String::npos )
678
+ size_t nMsgIdPos = strQuery.find("msgid=");
679
+ if ( nMsgIdPos != String::npos )
680
680
  {
681
- String strName = strQuery.substr(nErrorPos+6);
681
+ String strName = strQuery.substr(nMsgIdPos+6);
682
682
  strMsg = rho_ruby_internal_getMessageText(strName.c_str());
683
683
  }
684
684
  }
@@ -736,9 +736,9 @@ void CRhodesApp::initHttpServer()
736
736
  const char* CRhodesApp::getFreeListeningPort()
737
737
  {
738
738
  int sockfd = -1;
739
- struct sockaddr_in serv_addr = {0};
739
+ sockaddr_in serv_addr = sockaddr_in();
740
740
  int noerrors = 1;
741
-
741
+
742
742
  if ( m_strListeningPorts.length() > 0 )
743
743
  return m_strListeningPorts.c_str();
744
744
 
@@ -848,7 +848,7 @@ void CRhodesApp::initAppUrls()
848
848
  {
849
849
  CRhodesAppBase::initAppUrls();
850
850
 
851
- #if defined( OS_WINCE ) || defined( __SYMBIAN32__ )
851
+ #if defined( OS_WINCE ) || defined( __SYMBIAN32__ ) || defined( OS_ANDROID )
852
852
  m_strHomeUrl = "http://localhost:";
853
853
  #else
854
854
  m_strHomeUrl = "http://127.0.0.1:";
@@ -877,7 +877,7 @@ const String& CRhodesApp::getCurrentUrl(int index)
877
877
  {
878
878
  if (index < 0) index = rho_webview_active_tab();
879
879
  if (index < 0) index = 0;
880
- if ( index < m_currentUrls.size() )
880
+ if ( index < static_cast<int>(m_currentUrls.size()) )
881
881
  return m_currentUrls[index];
882
882
 
883
883
  return m_EmptyString;
@@ -888,7 +888,7 @@ const String& CRhodesApp::getAppBackUrl()
888
888
  int index = rho_webview_active_tab();
889
889
  if (index < 0)
890
890
  index = 0;
891
- if ( index < m_arAppBackUrl.size() )
891
+ if ( index < static_cast<int>(m_arAppBackUrl.size()) )
892
892
  return m_arAppBackUrl[index];
893
893
 
894
894
  return m_EmptyString;
@@ -922,12 +922,15 @@ void CRhodesApp::navigateBack()
922
922
  {
923
923
  int nIndex = rho_webview_active_tab();
924
924
 
925
- if ( nIndex < m_arAppBackUrlOrig.size() && m_arAppBackUrlOrig[nIndex].length() > 0 )
925
+ if((nIndex < static_cast<int>(m_arAppBackUrlOrig.size()))
926
+ && (m_arAppBackUrlOrig[nIndex].length() > 0))
927
+ {
926
928
  loadUrl(m_arAppBackUrlOrig[nIndex]);
927
- else if ( strcasecmp(getCurrentUrl(nIndex).c_str(),getStartUrl().c_str()) != 0 )
928
- {
929
+ }
930
+ else if(strcasecmp(getCurrentUrl(nIndex).c_str(),getStartUrl().c_str()) != 0)
931
+ {
929
932
  rho_webview_navigate_back();
930
- }
933
+ }
931
934
  }
932
935
 
933
936
  String CRhodesApp::getAppName()
@@ -1054,9 +1057,9 @@ public:
1054
1057
 
1055
1058
  if (m_strCallback.length() > 0)
1056
1059
  {
1057
- String body = isOK ? "rho_callback=1&status=ok" : "rho_callback=1&status=error";
1060
+ const char* body = isOK ? "rho_callback=1&status=ok" : "rho_callback=1&status=error";
1058
1061
 
1059
- rho_net_request_with_data(rho_http_normalizeurl(m_strCallback.c_str()), body.c_str());
1062
+ rho_net_request_with_data(RHODESAPP().canonicalizeRhoUrl(m_strCallback).c_str(), body);
1060
1063
  }
1061
1064
 
1062
1065
  RHODESAPP().setSendingLog(false);
@@ -473,8 +473,11 @@ ESRIMapView::ESRIMapView(IDrawingDevice *device)
473
473
 
474
474
  ESRIMapView::~ESRIMapView()
475
475
  {
476
- if ( m_map_fetch.get() != 0)
476
+ if ( m_map_fetch.get() != 0) {
477
+ m_map_fetch->cancel();
478
+
477
479
  m_map_fetch->stop(2000);
480
+ }
478
481
 
479
482
  if ( m_cache_update.get() != 0)
480
483
  m_cache_update->stop(2000);
@@ -0,0 +1,88 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := curl
6
+ LOCAL_SRC_FILES := \
7
+ lib/amigaos.c \
8
+ lib/base64.c \
9
+ lib/connect.c \
10
+ lib/content_encoding.c \
11
+ lib/cookie.c \
12
+ lib/curl_addrinfo.c \
13
+ lib/curl_memrchr.c \
14
+ lib/curl_rand.c \
15
+ lib/curl_sspi.c \
16
+ lib/dict.c \
17
+ lib/easy.c \
18
+ lib/escape.c \
19
+ lib/file.c \
20
+ lib/formdata.c \
21
+ lib/ftp.c \
22
+ lib/getenv.c \
23
+ lib/getinfo.c \
24
+ lib/gtls.c \
25
+ lib/hash.c \
26
+ lib/hostares.c \
27
+ lib/hostasyn.c \
28
+ lib/hostip.c \
29
+ lib/hostip4.c \
30
+ lib/hostip6.c \
31
+ lib/hostsyn.c \
32
+ lib/hostthre.c \
33
+ lib/http.c \
34
+ lib/http_chunks.c \
35
+ lib/http_digest.c \
36
+ lib/http_negotiate.c \
37
+ lib/if2ip.c \
38
+ lib/inet_ntop.c \
39
+ lib/inet_pton.c \
40
+ lib/krb4.c \
41
+ lib/krb5.c \
42
+ lib/ldap.c \
43
+ lib/llist.c \
44
+ lib/md5.c \
45
+ lib/memdebug.c \
46
+ lib/mprintf.c \
47
+ lib/multi.c \
48
+ lib/netrc.c \
49
+ lib/nonblock.c \
50
+ lib/nss.c \
51
+ lib/nwlib.c \
52
+ lib/nwos.c \
53
+ lib/parsedate.c \
54
+ lib/progress.c \
55
+ lib/rawstr.c \
56
+ lib/rhossl.c \
57
+ lib/security.c \
58
+ lib/select.c \
59
+ lib/sendf.c \
60
+ lib/share.c \
61
+ lib/slist.c \
62
+ lib/socks.c \
63
+ lib/socks_gssapi.c \
64
+ lib/socks_sspi.c \
65
+ lib/speedcheck.c \
66
+ lib/splay.c \
67
+ lib/ssh.c \
68
+ lib/sslgen.c \
69
+ lib/strdup.c \
70
+ lib/strequal.c \
71
+ lib/strerror.c \
72
+ lib/strtok.c \
73
+ lib/strtoofft.c \
74
+ lib/telnet.c \
75
+ lib/tftp.c \
76
+ lib/timeval.c \
77
+ lib/transfer.c \
78
+ lib/url.c \
79
+ lib/version.c
80
+
81
+ LOCAL_C_INCLUDES := \
82
+ $(LOCAL_PATH)/include \
83
+ $(LOACL_PATH)/lib \
84
+ $(SHARED_PATH_INC)
85
+
86
+ LOCAL_CFLAGS := -DHAVE_CONFIG_H
87
+
88
+ include $(BUILD_STATIC_LIBRARY)
@@ -0,0 +1,12 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := rhodb
6
+ LOCAL_SRC_FILES := \
7
+ DBAdapter.cpp \
8
+ DBAttrManager.cpp \
9
+ DBResult.cpp
10
+ LOCAL_C_INCLUDES := $(LOCAL_PATH)b $(SHARED_PATH_INC) $(SHARED_PATH_INC)/sqlite
11
+
12
+ include $(BUILD_STATIC_LIBRARY)
@@ -111,7 +111,7 @@ public:
111
111
 
112
112
  String getColName(int nCol)
113
113
  {
114
- return sqlite3_column_name(m_dbStatement,nCol);;
114
+ return sqlite3_column_name(m_dbStatement,nCol);
115
115
  }
116
116
 
117
117
  };
@@ -0,0 +1,18 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := json
6
+ LOCAL_SRC_FILES := \
7
+ JSONIterator.cpp \
8
+ RJSONTokener.c \
9
+ arraylist.c \
10
+ json_debug.c \
11
+ json_object.c \
12
+ json_tokener.c \
13
+ json_util.c \
14
+ linkhash.c \
15
+ printbuf.c
16
+ LOCAL_C_INCLUDES := $(LOCAL_PATH) $(SHARED_PATH_INC)
17
+
18
+ include $(BUILD_STATIC_LIBRARY)
@@ -0,0 +1,13 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := rholog
6
+ LOCAL_SRC_FILES := \
7
+ RhoLogConf.cpp \
8
+ RhoLog.cpp \
9
+ RhoLogSink.cpp \
10
+ RhoPlainLog.cpp
11
+ LOCAL_C_INCLUDES := $(SHARED_PATH_INC)
12
+
13
+ include $(BUILD_STATIC_LIBRARY)
@@ -332,9 +332,7 @@ void rho_conf_clean_log()
332
332
  #ifndef RHO_NO_RUBY
333
333
  VALUE rho_conf_get_property_by_name(char* name)
334
334
  {
335
- char* szValue = rho_conf_getString(name);
336
-
337
- return rho_ruby_create_string(szValue);
335
+ return rho_ruby_create_string(RHOCONF().getString(name).c_str());
338
336
  }
339
337
 
340
338
  VALUE rho_conf_get_conflicts()
@@ -0,0 +1,19 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := rhonet
6
+ LOCAL_SRC_FILES := \
7
+ AsyncHttp.cpp \
8
+ CURLNetRequest.cpp \
9
+ HttpServer.cpp \
10
+ ssl.cpp \
11
+ URI.cpp \
12
+ INetRequest.cpp
13
+ LOCAL_C_INCLUDES := \
14
+ $(SHARED_PATH_INC) \
15
+ $(SHARED_PATH_INC)/curl/include
16
+ # $(SHARED_PATH_INC)/ruby/include \
17
+ # $(SHARED_PATH_INC)/ruby/linux
18
+
19
+ include $(BUILD_STATIC_LIBRARY)
@@ -31,6 +31,7 @@
31
31
  #include "QtMainWindow.h"
32
32
  #include "ui_QtMainWindow.h"
33
33
  #include "ExternalWebView.h"
34
+ #include "RhoSimulator.h"
34
35
  #include <QResizeEvent>
35
36
  #include <QWebFrame>
36
37
  #include <QWebSettings>
@@ -477,10 +478,9 @@ void QtMainWindow::on_tabBar_currentChanged(int index)
477
478
  if (tbrp["on_change_tab_callback"].toString().length() > 0) {
478
479
  QString body = QString("&rho_callback=1&tab_index=") + QVariant(index).toString();
479
480
  rho::String* cbStr = new rho::String(tbrp["on_change_tab_callback"].toString().toStdString());
480
- const char* cb = cbStr->c_str();
481
481
  rho::String* bStr = new rho::String(body.toStdString());
482
482
  const char* b = bStr->c_str();
483
- rho_net_request_with_data(rho_http_normalizeurl(cb), b);
483
+ rho_net_request_with_data(RHODESAPP().canonicalizeRhoUrl(*cbStr).c_str(), b);
484
484
  }
485
485
 
486
486
  if (tbrp["reload"].toBool() || (ui->webView && (ui->webView->history()->count()==0))) {
@@ -594,6 +594,11 @@ void QtMainWindow::menuActionEvent(bool checked)
594
594
  cb->onCustomMenuItemCommand(action->data().toInt());
595
595
  }
596
596
 
597
+ void QtMainWindow::on_actionAbout_triggered()
598
+ {
599
+ QMessageBox::about(this, RHOSIMULATOR_NAME, RHOSIMULATOR_NAME " v" RHOSIMULATOR_VERSION);
600
+ }
601
+
597
602
  // slots:
598
603
 
599
604
  void QtMainWindow::exitCommand()
@@ -121,6 +121,7 @@ private slots:
121
121
  void on_actionBack_triggered();
122
122
  void on_tabBar_currentChanged(int index);
123
123
  void on_menuMain_aboutToShow();
124
+ void on_actionAbout_triggered();
124
125
  private slots:
125
126
  void toolbarActionEvent(bool);
126
127
  void menuActionEvent(bool);
@@ -62,8 +62,15 @@
62
62
  </property>
63
63
  <addaction name="actionBack"/>
64
64
  </widget>
65
+ <widget class="QMenu" name="menuHelp">
66
+ <property name="title">
67
+ <string>Help</string>
68
+ </property>
69
+ <addaction name="actionAbout"/>
70
+ </widget>
65
71
  <addaction name="menuMain"/>
66
72
  <addaction name="menuNavigate"/>
73
+ <addaction name="menuHelp"/>
67
74
  </widget>
68
75
  <widget class="QToolBar" name="toolBar">
69
76
  <property name="windowTitle">
@@ -116,6 +123,11 @@
116
123
  <string>Back</string>
117
124
  </property>
118
125
  </action>
126
+ <action name="actionAbout">
127
+ <property name="text">
128
+ <string>About</string>
129
+ </property>
130
+ </action>
119
131
  </widget>
120
132
  <customwidgets>
121
133
  <customwidget>
@@ -0,0 +1,33 @@
1
+ /*------------------------------------------------------------------------
2
+ * (The MIT License)
3
+ *
4
+ * Copyright (c) 2008-2011 Rhomobile, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ * THE SOFTWARE.
23
+ *
24
+ * http://rhomobile.com
25
+ *------------------------------------------------------------------------*/
26
+
27
+ #ifndef RHOSIMULATOR_H
28
+ #define RHOSIMULATOR_H
29
+
30
+ #define RHOSIMULATOR_NAME "RhoSimulator"
31
+ #define RHOSIMULATOR_VERSION "3.1.0"
32
+
33
+ #endif // RHOSIMULATOR_H