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>
223 public enum InputHints
248 /// Enumeration for the BiDirection.
250 /// <since_tizen> 4 </since_tizen>
251 public enum BiDirection
272 /// Enumeration for the InputPanel language.
274 /// <since_tizen> 4 </since_tizen>
275 public enum InputPanelLanguage
292 /// This class represents the context of the InputMethodEditor.
294 /// <since_tizen> 4 </since_tizen>
295 public class InputMethodContext
297 private IntPtr _handle;
298 internal InputMethodContext(IntPtr handle)
304 /// Gets the layout information.
306 /// <since_tizen> 4 </since_tizen>
307 public InputPanelLayout Layout
311 InputPanelLayout layout;
312 ErrorCode error = ImeContextGetLayout(_handle, out layout);
313 if (error != ErrorCode.None)
315 Log.Error(LogTag, "GetLayout Failed with error " + error);
316 return InputPanelLayout.Undefined;
323 /// Gets the layout variation information.
325 /// <since_tizen> 4 </since_tizen>
326 public LayoutVariation LayoutVariation
330 LayoutVariation layoutVariation;
331 ErrorCode error = ImeContextGetLayoutVariation(_handle, out layoutVariation);
332 if (error != ErrorCode.None)
334 Log.Error(LogTag, "GetLayoutVariation Failed with error " + error);
335 return LayoutVariation.Undefined;
337 return layoutVariation;
342 /// Gets the cursor position information.
344 /// <since_tizen> 4 </since_tizen>
345 public int CursorPosition
350 ErrorCode error = ImeContextGetCursorPosition(_handle, out cursorPosition);
351 if (error != ErrorCode.None)
353 Log.Error(LogTag, "GetCursorPosition Failed with error " + error);
356 return cursorPosition;
361 /// Gets the autocapital type information.
363 /// <since_tizen> 4 </since_tizen>
364 public AutoCapitalization AutoCapitalization
368 AutoCapitalization autoCapitalType;
369 ErrorCode error = ImeContextGetAutocapitalType(_handle, out autoCapitalType);
370 if (error != ErrorCode.None)
372 Log.Error(LogTag, "GetAutoCapitalization Failed with error " + error);
373 return AutoCapitalization.Undefined;
375 return autoCapitalType;
380 /// Gets the Return key label type information.
382 /// <since_tizen> 4 </since_tizen>
383 public InputPanelReturnKey ReturnKey
387 InputPanelReturnKey returnKeyType;
388 ErrorCode error = ImeContextGetReturnKey(_handle, out returnKeyType);
389 if (error != ErrorCode.None)
391 Log.Error(LogTag, "GetReturnKey Failed with error " + error);
392 return InputPanelReturnKey.Undefined;
394 return returnKeyType;
399 /// Gets the Return key state information.
401 /// <since_tizen> 4 </since_tizen>
402 public bool ReturnKeyState
407 ErrorCode error = ImeContextGetReturnKeyState(_handle, out returnKeyState);
408 if (error != ErrorCode.None)
410 Log.Error(LogTag, "GetReturnKeyState Failed with error " + error);
413 return returnKeyState;
418 /// Gets the prediction mode information.
420 /// <since_tizen> 4 </since_tizen>
421 public bool PredictionMode
426 ErrorCode error = ImeContextGetPredictionMode(_handle, out predictionMode);
427 if (error != ErrorCode.None)
429 Log.Error(LogTag, "GetPredictionMode Failed with error " + error);
432 return predictionMode;
437 /// Gets the password mode information.
439 /// <since_tizen> 4 </since_tizen>
440 public bool PasswordMode
445 ErrorCode error = ImeContextGetPasswordMode(_handle, out passwordMode);
446 if (error != ErrorCode.None)
448 Log.Error(LogTag, "GetPasswordMode Failed with error " + error);
456 /// Gets the input hint information.
458 /// <since_tizen> 4 </since_tizen>
459 public InputHints InputHint
463 InputHints inputHint;
464 ErrorCode error = ImeContextGetInputHint(_handle, out inputHint);
465 if (error != ErrorCode.None)
467 Log.Error(LogTag, "GetInputHint Failed with error " + error);
468 return InputHints.Undefined;
475 /// Gets the text bidirectional information.
477 /// <since_tizen> 4 </since_tizen>
478 public BiDirection BiDirection
482 BiDirection biDiDirection;
483 ErrorCode error = ImeContextGetBidiDirection(_handle, out biDiDirection);
484 if (error != ErrorCode.None)
486 Log.Error(LogTag, "GetBiDirection Failed with error " + error);
487 return BiDirection.Undefined;
489 return biDiDirection;
494 /// Gets the preferred language information.
496 /// <since_tizen> 4 </since_tizen>
497 public InputPanelLanguage Language
501 InputPanelLanguage langauge;
502 ErrorCode error = ImeContextGetLanguage(_handle, out langauge);
503 if (error != ErrorCode.None)
505 Log.Error(LogTag, "GetLanguage Failed with error " + error);
506 return InputPanelLanguage.Undefined;