--- /dev/null
+/*
+ * Copyright(c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+using System;
+using System.Runtime.InteropServices;
+using System.ComponentModel;
+
+namespace Tizen.NUI
+{
+ internal class ContentReceivedSignalType : global::System.IDisposable
+ {
+ private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+ /// <summary>
+ /// ContentReceivedSignalType
+ /// </summary>
+ protected bool swigCMemOwn;
+
+ internal ContentReceivedSignalType(global::System.IntPtr cPtr, bool cMemoryOwn)
+ {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ }
+
+ internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ContentReceivedSignalType obj)
+ {
+ return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+ }
+
+ //A Flag to check who called Dispose(). (By User or DisposeQueue)
+ private bool isDisposeQueued = false;
+ /// <summary>
+ /// A Flat to check if it is already disposed.
+ /// </summary>
+ protected bool disposed = false;
+
+ /// <summary>
+ /// Dispose
+ /// </summary>
+ ~ContentReceivedSignalType()
+ {
+ if (!isDisposeQueued)
+ {
+ isDisposeQueued = true;
+ DisposeQueue.Instance.Add(this);
+ }
+ }
+
+ /// <summary>
+ /// Dispose
+ /// </summary>
+ public void Dispose()
+ {
+ //Throw excpetion if Dispose() is called in separate thread.
+ if (!Window.IsInstalled())
+ {
+ throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
+ }
+
+ if (isDisposeQueued)
+ {
+ Dispose(DisposeTypes.Implicit);
+ }
+ else
+ {
+ Dispose(DisposeTypes.Explicit);
+ System.GC.SuppressFinalize(this);
+ }
+ }
+
+ /// <summary>
+ /// Dispose
+ /// </summary>
+ protected virtual void Dispose(DisposeTypes type)
+ {
+ if (disposed)
+ {
+ return;
+ }
+
+ if (type == DisposeTypes.Explicit)
+ {
+ //Called by User
+ //Release your own managed resources here.
+ //You should release all of your own disposable objects here.
+
+ }
+
+ //Release your own unmanaged resources here.
+ //You should not access any managed member here except static instance.
+ //because the execution order of Finalizes is non-deterministic.
+ if (swigCPtr.Handle != global::System.IntPtr.Zero)
+ {
+ if (swigCMemOwn)
+ {
+ swigCMemOwn = false;
+ Interop.ContentReceivedSignalType.delete_ContentReceivedSignalType(swigCPtr);
+ }
+ swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+ }
+
+ disposed = true;
+ }
+
+ /// <summary>
+ /// Queries whether there are any connected slots.
+ /// </summary>
+ /// <returns>True if there are any slots connected to the signal</returns>
+ public bool Empty()
+ {
+ bool ret = Interop.ContentReceivedSignalType.ContentReceivedSignalType_Empty(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ /// <summary>
+ /// Queries the number of slots.
+ /// </summary>
+ /// <returns>The number of slots connected to this signal</returns>
+ public uint GetConnectionCount()
+ {
+ uint ret = Interop.ContentReceivedSignalType.ContentReceivedSignalType_GetConnectionCount(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ /// <summary>
+ /// Connects a function.
+ /// </summary>
+ /// <param name="func">The function to connect</param>
+ public void Connect(System.Delegate func)
+ {
+ System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
+ {
+ Interop.ContentReceivedSignalType.ContentReceivedSignalType_Connect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ }
+
+ /// <summary>
+ /// Disconnects a function.
+ /// </summary>
+ /// <param name="func">The function to disconnect</param>
+ public void Disconnect(System.Delegate func)
+ {
+ System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
+ {
+ Interop.ContentReceivedSignalType.ContentReceivedSignalType_Disconnect(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ }
+
+ /// <summary>
+ /// Connects a member function.
+ /// </summary>
+ /// <param name="arg1">The member function to connect</param>
+ /// <param name="arg2">The member function to connect</param>
+ /// <param name="arg3">The member function to connect</param>
+ public void Emit(string arg1, string arg2, string arg3)
+ {
+ Interop.ContentReceivedSignalType.ContentReceivedSignalType_Emit(swigCPtr, arg1, arg2, arg3);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
+ /// <summary>
+ /// The contructor.
+ /// </summary>
+ public ContentReceivedSignalType() : this(Interop.ContentReceivedSignalType.new_ContentReceivedSignalType(), true)
+ {
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
+ }
+
+}
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tizen.NUI
+{
+ internal static partial class Interop
+ {
+ internal static partial class ContentReceivedSignalType
+ {
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ContentReceivedSignalType_Empty")]
+ public static extern bool ContentReceivedSignalType_Empty(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ContentReceivedSignalType_GetConnectionCount")]
+ public static extern uint ContentReceivedSignalType_GetConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ContentReceivedSignalType_Connect")]
+ public static extern void ContentReceivedSignalType_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ContentReceivedSignalType_Disconnect")]
+ public static extern void ContentReceivedSignalType_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ContentReceivedSignalType_Emit")]
+ public static extern void ContentReceivedSignalType_Emit(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4);
+
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_ContentReceivedSignalType")]
+ public static extern global::System.IntPtr new_ContentReceivedSignalType();
+
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_ContentReceivedSignalType")]
+ public static extern void delete_ContentReceivedSignalType(global::System.Runtime.InteropServices.HandleRef jarg1);
+ }
+ }
+}
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_InputMethodContext_GetInputPanelLocale")]
public static extern string InputMethodContext_GetInputPanelLocale(global::System.Runtime.InteropServices.HandleRef jarg1);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_InputMethodContext_SetMIMEType")]
+ public static extern void InputMethodContext_SetMIMEType(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_InputMethodContext_AllowTextPrediction")]
public static extern void InputMethodContext_AllowTextPrediction(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_InputMethodContext_KeyboardTypeChangedSignal")]
public static extern global::System.IntPtr InputMethodContext_KeyboardTypeChangedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_InputMethodContext_ContentReceivedSignal")]
+ public static extern global::System.IntPtr InputMethodContext_ContentReceivedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+
}
}
}
private ResizedEventCallbackType _resizedEventCallback;
private LanguageChangedEventCallbackType _languageChangedEventCallback;
private KeyboardTypeChangedEventCallbackType _keyboardTypeChangedEventCallback;
+ private ContentReceivedCallbackType _contentReceivedEventCallback;
/// <summary>
/// Constructor.<br/>
private delegate void ResizedEventCallbackType(int resized);
private delegate void LanguageChangedEventCallbackType(int languageChanged);
private delegate void KeyboardTypeChangedEventCallbackType(KeyboardType type);
+ private delegate void ContentReceivedCallbackType(string content, string description, string mimeType);
private event EventHandler<ActivatedEventArgs> _activatedEventHandler;
private event EventHandlerWithReturnType<object, EventReceivedEventArgs, CallbackData> _eventReceivedEventHandler;
private event EventHandler<ResizedEventArgs> _resizedEventHandler;
private event EventHandler<LanguageChangedEventArgs> _languageChangedEventHandler;
private event EventHandler<KeyboardTypeChangedEventArgs> _keyboardTypeChangedEventHandler;
+ private event EventHandler<ContentReceivedEventArgs> _contentReceivedEventHandler;
/// <summary>
/// InputMethodContext activated.
}
/// <summary>
+ /// InputMethodContext content received.
+ /// </summary>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<ContentReceivedEventArgs> ContentReceived
+ {
+ add
+ {
+ if (_contentReceivedEventHandler == null)
+ {
+ _contentReceivedEventCallback = OnContentReceived;
+ ContentReceivedSignal().Connect(_contentReceivedEventCallback);
+ }
+
+ _contentReceivedEventHandler += value;
+ }
+ remove
+ {
+ _contentReceivedEventHandler -= value;
+
+ if (_contentReceivedEventHandler == null && _contentReceivedEventCallback != null)
+ {
+ ContentReceivedSignal().Disconnect(_contentReceivedEventCallback);
+ }
+ }
+ }
+
+ /// <summary>
/// The direction of the text.
/// </summary>
/// <since_tizen> 5 </since_tizen>
return ret;
}
+ /// <summary>
+ /// Sets the allowed MIME Type to deliver to the input panel. <br/>
+ /// For example, string mimeType = "text/plain,image/png,image/gif,application/pdf";
+ /// </summary>
+ /// <param name="mimeType">The allowed MIME type.</param>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void SetMIMEType(string mimeType)
+ {
+ Interop.InputMethodContext.InputMethodContext_SetMIMEType(swigCPtr, mimeType);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(InputMethodContext obj)
{
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
return ret;
}
+ internal ContentReceivedSignalType ContentReceivedSignal()
+ {
+ ContentReceivedSignalType ret = new ContentReceivedSignalType(Interop.InputMethodContext.InputMethodContext_ContentReceivedSignal(swigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
/// <summary>
/// You can override it to clean-up your own resources.
/// </summary>
}
}
+ private void OnContentReceived(string content, string description, string mimeType)
+ {
+ ContentReceivedEventArgs e = new ContentReceivedEventArgs();
+ e.Content = content;
+ e.Description = description;
+ e.MimeType = mimeType;
+
+ if (_contentReceivedEventHandler != null)
+ {
+ _contentReceivedEventHandler(this, e);
+ }
+ }
+
/// <summary>
/// This structure is used to pass on data from the IMF regarding predictive text.
/// </summary>
set;
}
}
+
+ /// <summary>
+ /// InputMethodContext content received event arguments.
+ /// </summary>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class ContentReceivedEventArgs : EventArgs
+ {
+ /// <summary>
+ /// The content, such as images, of input method
+ /// </summary>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public string Content
+ {
+ get;
+ set;
+ }
+ /// <summary>
+ /// The description of content
+ /// </summary>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public string Description
+ {
+ get;
+ set;
+ }
+ /// <summary>
+ /// The mime type of content, such as jpg, png, and so on
+ /// </summary>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public string MimeType
+ {
+ get;
+ set;
+ }
+ }
}
}