1c29fa5a6Sopenharmony_ci/* 2c29fa5a6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at 6c29fa5a6Sopenharmony_ci * 7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c29fa5a6Sopenharmony_ci * 9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and 13c29fa5a6Sopenharmony_ci * limitations under the License. 14c29fa5a6Sopenharmony_ci */ 15c29fa5a6Sopenharmony_ci 16c29fa5a6Sopenharmony_ci#ifndef MMI_VKEYBOARD_H 17c29fa5a6Sopenharmony_ci#define MMI_VKEYBOARD_H 18c29fa5a6Sopenharmony_ci#include <string> 19c29fa5a6Sopenharmony_ci 20c29fa5a6Sopenharmony_cinamespace OHOS { 21c29fa5a6Sopenharmony_cinamespace MMI { 22c29fa5a6Sopenharmony_ciusing namespace std; 23c29fa5a6Sopenharmony_cistruct TOUCHPOINT 24c29fa5a6Sopenharmony_ci{ 25c29fa5a6Sopenharmony_ci /// <summary> 26c29fa5a6Sopenharmony_ci /// Button name. 27c29fa5a6Sopenharmony_ci /// </summary> 28c29fa5a6Sopenharmony_ci string ButtonName; 29c29fa5a6Sopenharmony_ci 30c29fa5a6Sopenharmony_ci /// <summary> 31c29fa5a6Sopenharmony_ci /// Button width. 32c29fa5a6Sopenharmony_ci /// </summary> 33c29fa5a6Sopenharmony_ci double ButtonWidth = 0.0; 34c29fa5a6Sopenharmony_ci 35c29fa5a6Sopenharmony_ci /// <summary> 36c29fa5a6Sopenharmony_ci /// Button height. 37c29fa5a6Sopenharmony_ci /// </summary> 38c29fa5a6Sopenharmony_ci double ButtonHeight = 0.0; 39c29fa5a6Sopenharmony_ci 40c29fa5a6Sopenharmony_ci /// <summary> 41c29fa5a6Sopenharmony_ci /// touch area width (0 if not supported). 42c29fa5a6Sopenharmony_ci /// </summary> 43c29fa5a6Sopenharmony_ci int Width = 0; 44c29fa5a6Sopenharmony_ci 45c29fa5a6Sopenharmony_ci /// <summary> 46c29fa5a6Sopenharmony_ci /// touch area height (0 if not supported). 47c29fa5a6Sopenharmony_ci /// </summary> 48c29fa5a6Sopenharmony_ci int Height = 0; 49c29fa5a6Sopenharmony_ci 50c29fa5a6Sopenharmony_ci /// <summary> 51c29fa5a6Sopenharmony_ci /// raw touch x. (previous lower case x). 52c29fa5a6Sopenharmony_ci /// </summary> 53c29fa5a6Sopenharmony_ci int RawX = 0; 54c29fa5a6Sopenharmony_ci 55c29fa5a6Sopenharmony_ci /// <summary> 56c29fa5a6Sopenharmony_ci /// raw touch y. (previous lower case y). 57c29fa5a6Sopenharmony_ci /// </summary> 58c29fa5a6Sopenharmony_ci int RawY = 0; 59c29fa5a6Sopenharmony_ci 60c29fa5a6Sopenharmony_ci /// <summary> 61c29fa5a6Sopenharmony_ci /// canvas max x. 62c29fa5a6Sopenharmony_ci /// </summary> 63c29fa5a6Sopenharmony_ci int MaxX = 0; 64c29fa5a6Sopenharmony_ci 65c29fa5a6Sopenharmony_ci /// <summary> 66c29fa5a6Sopenharmony_ci /// canvas max y. 67c29fa5a6Sopenharmony_ci /// </summary> 68c29fa5a6Sopenharmony_ci int MaxY = 0; 69c29fa5a6Sopenharmony_ci 70c29fa5a6Sopenharmony_ci /// <summary> 71c29fa5a6Sopenharmony_ci /// canvas min x. 72c29fa5a6Sopenharmony_ci /// </summary> 73c29fa5a6Sopenharmony_ci int MinX = 0; 74c29fa5a6Sopenharmony_ci 75c29fa5a6Sopenharmony_ci /// <summary> 76c29fa5a6Sopenharmony_ci /// canvas min y. 77c29fa5a6Sopenharmony_ci /// </summary> 78c29fa5a6Sopenharmony_ci int MinY = 0; 79c29fa5a6Sopenharmony_ci 80c29fa5a6Sopenharmony_ci /// <summary> 81c29fa5a6Sopenharmony_ci /// scaled screen x. (previous upper case X). 82c29fa5a6Sopenharmony_ci /// </summary> 83c29fa5a6Sopenharmony_ci double ScreenX = 0.0; 84c29fa5a6Sopenharmony_ci 85c29fa5a6Sopenharmony_ci /// <summary> 86c29fa5a6Sopenharmony_ci /// scaled screen y. (previous upper case Y). 87c29fa5a6Sopenharmony_ci /// </summary> 88c29fa5a6Sopenharmony_ci double ScreenY = 0.0; 89c29fa5a6Sopenharmony_ci 90c29fa5a6Sopenharmony_ci /// <summary> 91c29fa5a6Sopenharmony_ci /// if the touch inside the keyboard. 92c29fa5a6Sopenharmony_ci /// </summary> 93c29fa5a6Sopenharmony_ci bool InKeyboard; 94c29fa5a6Sopenharmony_ci 95c29fa5a6Sopenharmony_ci /// <summary> 96c29fa5a6Sopenharmony_ci /// if the touch inside the trackpad. 97c29fa5a6Sopenharmony_ci /// </summary> 98c29fa5a6Sopenharmony_ci bool InTrackpad; 99c29fa5a6Sopenharmony_ci 100c29fa5a6Sopenharmony_ci /// <summary> 101c29fa5a6Sopenharmony_ci /// touch id. 102c29fa5a6Sopenharmony_ci /// </summary> 103c29fa5a6Sopenharmony_ci int TouchId = 0; 104c29fa5a6Sopenharmony_ci 105c29fa5a6Sopenharmony_ci /// <summary> 106c29fa5a6Sopenharmony_ci /// true - touch down; false - touch up. 107c29fa5a6Sopenharmony_ci /// </summary> 108c29fa5a6Sopenharmony_ci bool TipDown; 109c29fa5a6Sopenharmony_ci 110c29fa5a6Sopenharmony_ci /// <summary> 111c29fa5a6Sopenharmony_ci /// if Bayesian model effective. 112c29fa5a6Sopenharmony_ci /// </summary> 113c29fa5a6Sopenharmony_ci bool IsBayesian; 114c29fa5a6Sopenharmony_ci 115c29fa5a6Sopenharmony_ci /// <summary> 116c29fa5a6Sopenharmony_ci /// If Palm is Detected. (not implemented). 117c29fa5a6Sopenharmony_ci /// </summary> 118c29fa5a6Sopenharmony_ci bool IsPalmDetected; 119c29fa5a6Sopenharmony_ci}; 120c29fa5a6Sopenharmony_ci 121c29fa5a6Sopenharmony_cistruct MMITouchpoint 122c29fa5a6Sopenharmony_ci{ 123c29fa5a6Sopenharmony_ci int PointerId; 124c29fa5a6Sopenharmony_ci double X; 125c29fa5a6Sopenharmony_ci double Y; 126c29fa5a6Sopenharmony_ci string ButtonName; 127c29fa5a6Sopenharmony_ci}; 128c29fa5a6Sopenharmony_ci 129c29fa5a6Sopenharmony_cienum StateMachineMessageType 130c29fa5a6Sopenharmony_ci{ 131c29fa5a6Sopenharmony_ci NoMessage = -1, 132c29fa5a6Sopenharmony_ci KeyPressed = 0, 133c29fa5a6Sopenharmony_ci CombinationKeyPressed, 134c29fa5a6Sopenharmony_ci ButtonSound, 135c29fa5a6Sopenharmony_ci TogglePinOn, 136c29fa5a6Sopenharmony_ci TogglePinOff, 137c29fa5a6Sopenharmony_ci DisableProtection, 138c29fa5a6Sopenharmony_ci BuildButtonMotionSpace, 139c29fa5a6Sopenharmony_ci ButtonHaptic, 140c29fa5a6Sopenharmony_ci EnableTrackpadSeparator, 141c29fa5a6Sopenharmony_ci DisableTrackpadSeparator, 142c29fa5a6Sopenharmony_ci ShowTaskbar, 143c29fa5a6Sopenharmony_ci SetButtonContent, 144c29fa5a6Sopenharmony_ci StartBackspace, 145c29fa5a6Sopenharmony_ci StopBackspace, 146c29fa5a6Sopenharmony_ci ResetButtonColor, 147c29fa5a6Sopenharmony_ci DelayUpdateButtonTouchDownVisual, 148c29fa5a6Sopenharmony_ci StartLongPressControl, 149c29fa5a6Sopenharmony_ci StopLongPressControl, 150c29fa5a6Sopenharmony_ci SwitchLayout, 151c29fa5a6Sopenharmony_ci SwipeUp, 152c29fa5a6Sopenharmony_ci BackSwipeLeft, 153c29fa5a6Sopenharmony_ci BackSwipeRight, 154c29fa5a6Sopenharmony_ci BackspaceSwipeRelease, 155c29fa5a6Sopenharmony_ci}; 156c29fa5a6Sopenharmony_ci 157c29fa5a6Sopenharmony_ciclass StateMachineMessage 158c29fa5a6Sopenharmony_ci{ 159c29fa5a6Sopenharmony_cipublic: 160c29fa5a6Sopenharmony_ci StateMachineMessageType type; 161c29fa5a6Sopenharmony_ci string buttonName; 162c29fa5a6Sopenharmony_ci string toggleButtonName; 163c29fa5a6Sopenharmony_ci int buttonMode = 0; 164c29fa5a6Sopenharmony_ci string RestList; 165c29fa5a6Sopenharmony_ci double interval = 0.0; 166c29fa5a6Sopenharmony_ci double locX = 0.0; 167c29fa5a6Sopenharmony_ci double locY = 0.0; 168c29fa5a6Sopenharmony_ci}; 169c29fa5a6Sopenharmony_ci 170c29fa5a6Sopenharmony_cienum class MotionSpaceType : int32_t { 171c29fa5a6Sopenharmony_ci // Full keyboard with narrow key gap. 172c29fa5a6Sopenharmony_ci NARROW = 0, 173c29fa5a6Sopenharmony_ci // Full keyboard with wide key gap. 174c29fa5a6Sopenharmony_ci WIDE = 1, 175c29fa5a6Sopenharmony_ci // Floating keyboard 176c29fa5a6Sopenharmony_ci FLOATING = 2, 177c29fa5a6Sopenharmony_ci // Trackpad UI-related motion space. 178c29fa5a6Sopenharmony_ci TRACKPAD = 3, 179c29fa5a6Sopenharmony_ci // Init value. 180c29fa5a6Sopenharmony_ci OTHERS = 10, 181c29fa5a6Sopenharmony_ci}; 182c29fa5a6Sopenharmony_ci 183c29fa5a6Sopenharmony_ciclass MotionSpacePatternIndex { 184c29fa5a6Sopenharmony_cipublic: 185c29fa5a6Sopenharmony_ci // Access to inside values from IPC package motion space pattern. 186c29fa5a6Sopenharmony_ci // Top left x. 187c29fa5a6Sopenharmony_ci static const int PATTERN_X = 0; 188c29fa5a6Sopenharmony_ci // Top left y. 189c29fa5a6Sopenharmony_ci static const int PATTERN_Y = 1; 190c29fa5a6Sopenharmony_ci // Width. 191c29fa5a6Sopenharmony_ci static const int PATTERN_WIDTH = 2; 192c29fa5a6Sopenharmony_ci // Height. 193c29fa5a6Sopenharmony_ci static const int PATTERN_HEIGHT = 3; 194c29fa5a6Sopenharmony_ci // Key code. 195c29fa5a6Sopenharmony_ci static const int PATTERN_KEYCODE = 4; 196c29fa5a6Sopenharmony_ci // Motion space type id. 197c29fa5a6Sopenharmony_ci static const int PATTERN_MST_ID = 5; 198c29fa5a6Sopenharmony_ci // Page type id. 199c29fa5a6Sopenharmony_ci static const int PATTERN_PT_ID = 6; 200c29fa5a6Sopenharmony_ci // Size of the entire motion space pattern. 201c29fa5a6Sopenharmony_ci static const size_t PATTERN_SIZE = 7; 202c29fa5a6Sopenharmony_ci}; 203c29fa5a6Sopenharmony_ci 204c29fa5a6Sopenharmony_cienum TouchMode { 205c29fa5a6Sopenharmony_ci NO_TOUCH = 0, 206c29fa5a6Sopenharmony_ci TOUCH_ENTER_MODE = 1, 207c29fa5a6Sopenharmony_ci LIGHT_TOUCH_MODE = 2, 208c29fa5a6Sopenharmony_ci HEAVY_TOUCH_MODE = 3, 209c29fa5a6Sopenharmony_ci REST_TOUCH_MODE = 4, 210c29fa5a6Sopenharmony_ci ANCHORING_MODE = 5, 211c29fa5a6Sopenharmony_ci FITTING_MODE = 6, 212c29fa5a6Sopenharmony_ci LEAVE_SCREEN_MODE = 7, 213c29fa5a6Sopenharmony_ci MULTI_TOUCH_MODE = 8, 214c29fa5a6Sopenharmony_ci}; 215c29fa5a6Sopenharmony_ci 216c29fa5a6Sopenharmony_ci/// <summary> 217c29fa5a6Sopenharmony_ci/// GestureMode stands for a working pattern of gesture in a given time duration 218c29fa5a6Sopenharmony_ci/// </summary> 219c29fa5a6Sopenharmony_cienum class VGestureMode : int32_t { 220c29fa5a6Sopenharmony_ci NO_GESTURE = 0, 221c29fa5a6Sopenharmony_ci // Generic mode 222c29fa5a6Sopenharmony_ci MOTION_MODE = 1, 223c29fa5a6Sopenharmony_ci // Gestures in detailed defines 224c29fa5a6Sopenharmony_ci // Gtart of window operation gesture 225c29fa5a6Sopenharmony_ci WINDOW_GESTURE_BEGIN = 2, 226c29fa5a6Sopenharmony_ci ONE_HAND_TAP = 2, 227c29fa5a6Sopenharmony_ci ONE_HAND_UP = 3, 228c29fa5a6Sopenharmony_ci ONE_HAND_DOWN = 4, 229c29fa5a6Sopenharmony_ci TWO_HANDS_LOWER_TAP = 5, 230c29fa5a6Sopenharmony_ci TWO_HANDS_UPPER_TAP = 6, 231c29fa5a6Sopenharmony_ci TWO_HANDS_UP = 7, 232c29fa5a6Sopenharmony_ci TWO_HANDS_DOWN = 8, 233c29fa5a6Sopenharmony_ci TWO_HANDS_INWARDS = 9, 234c29fa5a6Sopenharmony_ci TWO_HANDS_OUTWARDS = 10, 235c29fa5a6Sopenharmony_ci // End of window operation gesture 236c29fa5a6Sopenharmony_ci WINDOW_GESTURE_END = 10, 237c29fa5a6Sopenharmony_ci PINCHING_MODE = 11, 238c29fa5a6Sopenharmony_ci PANNING_MODE = 12, 239c29fa5a6Sopenharmony_ci SWIPING_MODE = 13, 240c29fa5a6Sopenharmony_ci SWIPE_BACKSPACE_LEFT = 14, 241c29fa5a6Sopenharmony_ci SWIPE_BACKSPACE_RIGHT = 15, 242c29fa5a6Sopenharmony_ci}; 243c29fa5a6Sopenharmony_ci} // namespace MMI 244c29fa5a6Sopenharmony_ci} // namespace OHOS 245c29fa5a6Sopenharmony_ci#endif // MMI_VKEYBOARD_H 246