Browse Source

Expose virtual keyboard functions to GDScript

Johan Manuel 9 years ago
parent
commit
ec8c6e2c7c
4 changed files with 38 additions and 4 deletions
  1. 14 0
      core/bind/core_bind.cpp
  2. 4 0
      core/bind/core_bind.h
  3. 1 4
      core/os/os.cpp
  4. 19 0
      doc/base/classes.xml

+ 14 - 0
core/bind/core_bind.cpp

@@ -894,6 +894,17 @@ void _OS::print_resources_by_type(const Vector<String>& p_types) {
 
 };
 
+bool _OS::has_virtual_keyboard() const {
+	return OS::get_singleton()->has_virtual_keyboard();
+}
+
+void _OS::show_virtual_keyboard(const String& p_existing_text) {
+	OS::get_singleton()->show_virtual_keyboard(p_existing_text, Rect2());
+}
+
+void _OS::hide_virtual_keyboard() {
+	OS::get_singleton()->hide_virtual_keyboard();
+}
 
 void _OS::print_all_resources(const String& p_to_file ) {
 
@@ -1117,6 +1128,9 @@ void _OS::_bind_methods() {
 
 	ObjectTypeDB::bind_method(_MD("dump_memory_to_file","file"),&_OS::dump_memory_to_file);
 	ObjectTypeDB::bind_method(_MD("dump_resources_to_file","file"),&_OS::dump_resources_to_file);
+	ObjectTypeDB::bind_method(_MD("has_virtual_keyboard"),&_OS::has_virtual_keyboard);
+	ObjectTypeDB::bind_method(_MD("show_virtual_keyboard", "existing_text"),&_OS::show_virtual_keyboard,DEFVAL(""));
+	ObjectTypeDB::bind_method(_MD("hide_virtual_keyboard"),&_OS::hide_virtual_keyboard);
 	ObjectTypeDB::bind_method(_MD("print_resources_in_use","short"),&_OS::print_resources_in_use,DEFVAL(false));
 	ObjectTypeDB::bind_method(_MD("print_all_resources","tofile"),&_OS::print_all_resources,DEFVAL(""));
 

+ 4 - 0
core/bind/core_bind.h

@@ -204,6 +204,10 @@ public:
 	void dump_memory_to_file(const String& p_file);
 	void dump_resources_to_file(const String& p_file);
 
+	bool has_virtual_keyboard() const;
+	void show_virtual_keyboard(const String& p_existing_text="");
+	void hide_virtual_keyboard();
+
 	void print_resources_in_use(bool p_short=false);
 	void print_all_resources(const String& p_to_file);
 	void print_all_textures_by_size();

+ 1 - 4
core/os/os.cpp

@@ -209,18 +209,15 @@ bool OS::has_virtual_keyboard() const {
 
 	return false;
 }
-void OS::show_virtual_keyboard(const String& p_existing_text,const Rect2& p_screen_rect) {
-
 
+void OS::show_virtual_keyboard(const String& p_existing_text,const Rect2& p_screen_rect) {
 
 }
 
 void OS::hide_virtual_keyboard(){
 
-
 }
 
-
 void OS::print_all_resources(String p_to_file) {
 
 	ERR_FAIL_COND(p_to_file!="" && _OSPRF);

+ 19 - 0
doc/base/classes.xml

@@ -22721,6 +22721,18 @@
 			<description>
 			</description>
 		</method>
+		<method name="has_virtual_keyboard" qualifiers="const">
+			<return type="bool">
+			</return>
+			<description>
+				Returns true if the platform has a virtual keyboard, false otherwise.
+			</description>
+		</method>
+		<method name="hide_virtual_keyboard">
+			<description>
+				Hides the virtual keyboard if it is shown, does nothing otherwise.
+			</description>
+		</method>
 		<method name="is_debug_build" qualifiers="const">
 			<return type="bool">
 			</return>
@@ -23033,6 +23045,13 @@
 			<description>
 			</description>
 		</method>
+		<method name="show_virtual_keyboard">
+			<argument index="0" name="existing_text" type="String">
+			</argument>
+			<description>
+				Shows the virtual keyboard if the platform has one. The [i]existing_text[/i] parameter is useful for implementing your own LineEdit, as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions).
+			</description>
+		</method>
 	</methods>
 	<constants>
 		<constant name="DAY_SUNDAY" value="0">