// Copyright (c) 2017 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. // namespace Tizen.NUI { /// /// A class encapsulating the input method map. /// public class InputMethod { private PanelLayoutType? _panelLayout = null; private ActionButtonTitleType? _actionButton = null; private AutoCapitalType? _autoCapital = null; private int? _variation = null; /// /// The default constructor. /// /// 3 public InputMethod() { } /// /// Gets or sets the panel layout. /// /// 3 public PanelLayoutType PanelLayout { get { return _panelLayout ?? PanelLayoutType.Normal; } set { _panelLayout = value; } } /// /// Gets or sets the action button. /// /// 3 public ActionButtonTitleType ActionButton { get { return _actionButton ?? ActionButtonTitleType.Default; } set { _actionButton = value; } } /// /// Gets or sets the auto capital. /// /// 3 public AutoCapitalType AutoCapital { get { return _autoCapital ?? AutoCapitalType.None; } set { _autoCapital = value; } } /// /// Gets or sets the variation. /// /// 3 public int Variation { get { return _variation ?? 0; } set { _variation = value; } } /// /// Gets or sets the variation for normal layout. /// /// 3 public NormalLayoutType NormalVariation { get { return (NormalLayoutType) (_variation ?? 0); } set { _variation = (int)value; } } /// /// Gets or sets the variation for the number only layout. /// /// 3 public NumberOnlyLayoutType NumberOnlyVariation { get { return (NumberOnlyLayoutType) (_variation ?? 0); } set { _variation = (int)value; } } /// /// Gets or sets the variation for the password layout. /// /// 3 public PasswordLayoutType PasswordVariation { get { return (PasswordLayoutType) (_variation ?? 0); } set { _variation = (int)value; } } private PropertyMap ComposingInputMethodMap() { PropertyMap _outputMap = new PropertyMap(); if (_panelLayout != null) { _outputMap.Add("PANEL_LAYOUT", new PropertyValue((int)_panelLayout)); } if (_actionButton != null) { _outputMap.Add("ACTION_BUTTON", new PropertyValue((int)_actionButton)); } if (_autoCapital != null) { _outputMap.Add("AUTO_CAPITALISE", new PropertyValue((int)_autoCapital)); } if (_variation != null) { _outputMap.Add("VARIATION", new PropertyValue((int)_variation)); } return _outputMap; } /// /// Gets the input method map. /// /// 3 public PropertyMap OutputMap { get { return ComposingInputMethodMap(); } } /// /// SetType that can be changed in the system input method. /// /// 3 public enum CategoryType { /// /// Set the keyboard layout. /// PanelLayout, /// /// Set the action button title. /// ActionButtonTitle, /// /// Set the auto capitalise of input. /// AutoCapitalise, /// /// Set the variation. /// Variation } /// /// Autocapitalization Types. /// /// 3 public enum AutoCapitalType { /// /// No auto-capitalization when typing. /// None, /// /// Autocapitalize each word typed. /// Word, /// /// Autocapitalize the start of each sentence. /// Sentence, /// /// Autocapitalize all letters. /// Allcharacter } /// /// Input panel (virtual keyboard) layout types.. /// /// 3 public enum PanelLayoutType { /// /// Default layout. /// Normal, /// /// Number layout. /// Number, /// /// Email layout. /// Email, /// /// URL layout. /// URL, /// /// Phone number layout. /// PhoneNumber, /// /// IP layout. /// IP, /// /// Month layout. /// Month, /// /// Number layout. /// NumberOnly, /// /// Hexadecimal layout. /// HEX, /// /// Command-line terminal layout including Esc, Alt, Ctrl key, and so on (no auto-correct, no auto-capitalization). /// Terminal, /// /// Like normal, but no auto-correct, no auto-capitalization etc. /// Password, /// /// Date and time layout. /// Datetime, /// /// Emoticon layout. /// Emoticon } /// /// Specifies what the Input Method "action" button functionality is set to. /// /// 3 public enum ActionButtonTitleType { /// /// Default action. /// Default, /// /// Done. /// Done, /// /// Go action. /// Go, /// /// Join action. /// Join, /// /// Login action. /// Login, /// /// Next action. /// Next, /// /// Previous action. /// Previous, /// /// Search action. /// Search, /// /// Send action. /// Send, /// /// Sign in action. /// SignIn, /// /// Unspecified action. /// Unspecified, /// /// Nothing to do. /// None } /// /// Available variation for the normal layout. /// /// 3 public enum NormalLayoutType { /// /// The plain normal layout. /// Normal, /// /// Filename layout. sysbols such as '/' should be disabled. /// WithFilename, /// /// The name of a person. /// WithPersonName } /// /// Available variation for the number only layout. /// /// 3 public enum NumberOnlyLayoutType { /// /// The plain normal number layout. /// Normal, /// /// The number layout to allow a positive or negative sign at the start. /// WithSigned, /// /// The number layout to allow decimal point to provide fractional value. /// WithDecimal, /// /// The number layout to allow decimal point and negative sign. /// WithSignedAndDecimal } /// /// Available variation for the password layout. /// /// 3 public enum PasswordLayoutType { /// /// The normal password layout. /// Normal, /// /// The password layout to allow only number. /// WithNumberOnly } } }