2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 using static Interop.InputMethod;
21 namespace Tizen.Uix.InputMethod
24 /// Enumeration for the input panel layout.
26 /// <since_tizen> 4 </since_tizen>
27 public enum InputPanelLayout
96 /// Enumeration for the layout variation.
98 /// <since_tizen> 4 </since_tizen>
99 public enum LayoutVariation
102 /// The plain normal layout.
106 /// Filename layout; symbols such as '/', '\*', '\', '|', '<', '>', '?', '"', and ':' should be disabled.
110 /// The name of a person.
114 /// The plain normal number layout.
116 NumberOnlyNormal = 0,
118 /// The number layout to allow a negative sign.
122 /// The number layout to allow a decimal point to provide fractional value.
126 /// The number layout to allow a decimal point and negative sign.
128 NumberOnlySignedAndDecimal,
130 /// The normal password layout.
134 /// The password layout to allow only a number.
144 /// Enumeration for the AutoCapital types.
146 /// <since_tizen> 4 </since_tizen>
147 public enum AutoCapitalization
172 /// Enumeration for the InputPanel ReturnKey types.
174 /// <since_tizen> 4 </since_tizen>
175 public enum InputPanelReturnKey
220 /// Enumeration for the InputHints.
222 /// <since_tizen> 4 </since_tizen>
224 public enum InputHints
233 AutoComplete = 1 << 0,
237 SensitiveData = 1 << 1,
249 /// Enumeration for the BiDirection.
251 /// <since_tizen> 4 </since_tizen>
252 public enum BiDirection
273 /// Enumeration for the InputPanel language.
275 /// <since_tizen> 4 </since_tizen>
276 public enum InputPanelLanguage
293 /// This class represents the context of the InputMethodEditor.
295 /// <since_tizen> 4 </since_tizen>
296 public class InputMethodContext
298 private IntPtr _handle;
299 internal InputMethodContext(IntPtr handle)
305 /// Gets the layout information.
307 /// <since_tizen> 4 </since_tizen>
308 public InputPanelLayout Layout
312 InputPanelLayout layout;
313 ErrorCode error = ImeContextGetLayout(_handle, out layout);
314 if (error != ErrorCode.None)
316 Log.Error(LogTag, "GetLayout Failed with error " + error);
317 return InputPanelLayout.Undefined;
324 /// Gets the layout variation information.
326 /// <since_tizen> 4 </since_tizen>
327 public LayoutVariation LayoutVariation
331 LayoutVariation layoutVariation;
332 ErrorCode error = ImeContextGetLayoutVariation(_handle, out layoutVariation);
333 if (error != ErrorCode.None)
335 Log.Error(LogTag, "GetLayoutVariation Failed with error " + error);
336 return LayoutVariation.Undefined;
338 return layoutVariation;
343 /// Gets the cursor position information.
345 /// <since_tizen> 4 </since_tizen>
346 public int CursorPosition
351 ErrorCode error = ImeContextGetCursorPosition(_handle, out cursorPosition);
352 if (error != ErrorCode.None)
354 Log.Error(LogTag, "GetCursorPosition Failed with error " + error);
357 return cursorPosition;
362 /// Gets the autocapital type information.
364 /// <since_tizen> 4 </since_tizen>
365 public AutoCapitalization AutoCapitalization
369 AutoCapitalization autoCapitalType;
370 ErrorCode error = ImeContextGetAutocapitalType(_handle, out autoCapitalType);
371 if (error != ErrorCode.None)
373 Log.Error(LogTag, "GetAutoCapitalization Failed with error " + error);
374 return AutoCapitalization.Undefined;
376 return autoCapitalType;
381 /// Gets the Return key label type information.
383 /// <since_tizen> 4 </since_tizen>
384 public InputPanelReturnKey ReturnKey
388 InputPanelReturnKey returnKeyType;
389 ErrorCode error = ImeContextGetReturnKey(_handle, out returnKeyType);
390 if (error != ErrorCode.None)
392 Log.Error(LogTag, "GetReturnKey Failed with error " + error);
393 return InputPanelReturnKey.Undefined;
395 return returnKeyType;
400 /// Gets the Return key state information.
402 /// <since_tizen> 4 </since_tizen>
403 public bool ReturnKeyState
408 ErrorCode error = ImeContextGetReturnKeyState(_handle, out returnKeyState);
409 if (error != ErrorCode.None)
411 Log.Error(LogTag, "GetReturnKeyState Failed with error " + error);
414 return returnKeyState;
419 /// Gets the prediction mode information.
421 /// <since_tizen> 4 </since_tizen>
422 public bool PredictionMode
427 ErrorCode error = ImeContextGetPredictionMode(_handle, out predictionMode);
428 if (error != ErrorCode.None)
430 Log.Error(LogTag, "GetPredictionMode Failed with error " + error);
433 return predictionMode;
438 /// Gets the password mode information.
440 /// <since_tizen> 4 </since_tizen>
441 public bool PasswordMode
446 ErrorCode error = ImeContextGetPasswordMode(_handle, out passwordMode);
447 if (error != ErrorCode.None)
449 Log.Error(LogTag, "GetPasswordMode Failed with error " + error);
457 /// Gets the input hint information.
459 /// <since_tizen> 4 </since_tizen>
460 public InputHints InputHint
464 InputHints inputHint;
465 ErrorCode error = ImeContextGetInputHint(_handle, out inputHint);
466 if (error != ErrorCode.None)
468 Log.Error(LogTag, "GetInputHint Failed with error " + error);
469 return InputHints.Undefined;
476 /// Gets the text bidirectional information.
478 /// <since_tizen> 4 </since_tizen>
479 public BiDirection BiDirection
483 BiDirection biDiDirection;
484 ErrorCode error = ImeContextGetBidiDirection(_handle, out biDiDirection);
485 if (error != ErrorCode.None)
487 Log.Error(LogTag, "GetBiDirection Failed with error " + error);
488 return BiDirection.Undefined;
490 return biDiDirection;
495 /// Gets the preferred language information.
497 /// <since_tizen> 4 </since_tizen>
498 public InputPanelLanguage Language
502 InputPanelLanguage langauge;
503 ErrorCode error = ImeContextGetLanguage(_handle, out langauge);
504 if (error != ErrorCode.None)
506 Log.Error(LogTag, "GetLanguage Failed with error " + error);
507 return InputPanelLanguage.Undefined;