X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fdevel-api%2Fadaptor-framework%2Fwindow-devel.h;h=199dea2010ba867e50f660ee0fc4b06d79bb88cb;hb=ac63e9f54ced9f1ebad3cfbe285d7c29887dd7c2;hp=ea3577a098e038bd7a73f4f863896b2e59652653;hpb=6de43bf6d08325b125c265221934e7f87541d228;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/devel-api/adaptor-framework/window-devel.h b/dali/devel-api/adaptor-framework/window-devel.h index ea3577a..199dea2 100644 --- a/dali/devel-api/adaptor-framework/window-devel.h +++ b/dali/devel-api/adaptor-framework/window-devel.h @@ -2,7 +2,7 @@ #define DALI_WINDOW_DEVEL_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -22,9 +22,9 @@ #include // INTERNAL INCLUDES +#include #include #include -#include namespace Dali { @@ -50,6 +50,8 @@ typedef Signal TransitionEffe typedef Signal KeyboardRepeatSettingsChangedSignalType; ///< Keyboard repeat settings changed signal type +typedef Signal AuxiliaryMessageSignalType; ///< Auxiliary message signal type + /** * @brief Creates an initialized handle to a new Window. * @@ -147,6 +149,19 @@ DALI_ADAPTOR_API TransitionEffectEventSignalType& TransitionEffectEventSignal(Wi DALI_ADAPTOR_API KeyboardRepeatSettingsChangedSignalType& KeyboardRepeatSettingsChangedSignal(Window window); /** + * @brief This signal is emitted when window's auxiliary was changed then display server sent the message. + * + * Auxiliary message is sent by display server. + * When client application added the window's auxiliary hint and if the auxiliary is changed, + * display server send the auxiliary message. + * Auxiliary message has the key, value and options. + * + * @param[in] window The window instance + * @return The signal to connect to + */ +DALI_ADAPTOR_API AuxiliaryMessageSignalType& AuxiliaryMessageSignal(Window window); + +/** * @brief Sets parent window of the window. * * After setting that, these windows do together when raise-up, lower and iconified/deiconified. @@ -159,6 +174,18 @@ DALI_ADAPTOR_API KeyboardRepeatSettingsChangedSignalType& KeyboardRepeatSettings DALI_ADAPTOR_API void SetParent(Window window, Window parent); /** + * @brief Sets parent window of the window. + * + * After setting that, these windows do together when raise-up, lower and iconified/deiconified. + * This function has the additional flag whether the child is located above or below of the parent. + * + * @param[in] window The window instance + * @param[in] parent The parent window instance + * @param[in] belowParent The flag is whether the child is located above or below of the parent. + */ +DALI_ADAPTOR_API void SetParent(Window window, Window parent, bool belowParent); + +/** * @brief Unsets parent window of the window. * * After unsetting, the window is disconnected his parent window. @@ -192,6 +219,20 @@ DALI_ADAPTOR_API Window DownCast(BaseHandle handle); DALI_ADAPTOR_API WindowOrientation GetCurrentOrientation(Window window); /** + * @brief Gets current physical orientation of the window. + * + * It means current physical rotation angle of the window. + * If the height of the display device's area is greater than the width, + * default current orientation is PORTRAIT and current physical orientation angle is 0. + * If the width of the display device's area is greater than the height, + * default current orientation is LANDSCAPE and current physical orientation angle is 0. + * + * @param[in] window The window instance + * @return The current physical orientation degree of the window. It is one of them as 0, 90, 180 and 270. + */ +DALI_ADAPTOR_API int GetPhysicalOrientation(Window window); + +/** * @brief Sets available orientations of the window. * * This API is for setting several orientations one time. @@ -242,6 +283,115 @@ DALI_ADAPTOR_API void AddFrameRenderedCallback(Window window, std::unique_ptr callback, int32_t frameId); +/** + * @brief Sets window position and size for specific orientation. + * This api reserves the position and size per orientation to display server. + * When the device is rotated, the window is moved/resized with the reserved position/size by display server. + * + * @param[in] window The window instance + * @param[in] positionSize The reserved position and size for the orientation + * @param[in] orientation The orientation + * + * @note Currently, it only works when the window's type is WindowType::IME. + * @note To set WindowType::IME, use Application New(... WindowType type), not Window::SetType(). + * @note This function is only useful in Tizen world. + */ +DALI_ADAPTOR_API void SetPositionSizeWithOrientation(Window window, PositionSize positionSize, WindowOrientation orientation); + +/** + * @brief Requests to display server for the window is moved by display server. + * + * This function should be called in mouse down event callback function. + * After this function is called in mouse down event callback function, the window is moved with mouse move event. + * When mouse up event happens, the window moved work is finished. + * + * @param[in] window The window instance + */ +DALI_ADAPTOR_API void RequestMoveToServer(Window window); + +/** + * @brief Requests to display server for the window is resized by display server. + * + * This function should be called in mouse down event callback function. + * After this function is called in mouse down event callback function, the window is resized with mouse move event. + * The direction is selected one of eight ways. + * When mouse up event happens, the window resized work is finished. + * + * @param[in] window The window instance + * @param[in] direction it is indicated the window's side or edge for starting point. + */ +DALI_ADAPTOR_API void RequestResizeToServer(Window window, WindowResizeDirection direction); + +/** + * @brief Enables the floating mode of window. + * + * The floating mode is to support making partial size window easliy. + * It is useful to make popup style window and this window is always upper than the other normal window. + * In addition, it is easy to change between popup style and normal style window. + * + * A special display server(as a Tizen display server) supports this mode. + * + * @param[in] window The window instance. + * @param[in] enable Enable floating mode or not. + */ +DALI_ADAPTOR_API void EnableFloatingMode(Window window, bool enable); + +/** + * @brief Includes input region. + * + * This function inlcudes input regions. + * It can be used multiple times and supports multiple regions. + * It means input region will be extended. + * + * This input is related to mouse and touch event. + * If device has touch screen, this function is useful. + * Otherwise device does not have that, we can use it after connecting mouse to the device. + * + * @param[in] window The window instance. + * @param[in] inputRegion The added region to accept input events. + */ +DALI_ADAPTOR_API void IncludeInputRegion(Window window, const Rect& inputRegion); + +/** + * @brief Excludes input region. + * + * This function excludes input regions. + * It can be used multiple times and supports multiple regions. + * It means input region will be reduced. + * Nofice, should be set input area by IncludeInputRegion() before this function is used. + * + * This input is related to mouse and touch event. + * If device has touch screen, this function is useful. + * Otherwise device does not have that, we can use it after connecting mouse to the device. + * + * @param[in] window The window instance. + * @param[in] inputRegion The subtracted region to except input events. + */ +DALI_ADAPTOR_API void ExcludeInputRegion(Window window, const Rect& inputRegion); + +/** + * @brief Sets the necessary for window rotation Acknowledgement. + * After this function called, SendRotationCompletedAcknowledgement() should be called to complete window rotation. + * + * This function is supprot that application has the window rotation acknowledgement's control. + * It means display server waits when application's rotation work is finished. + * It is useful application has the other rendering engine which works asynchronous. + * For instance, GlView. + * It only works on Tizen device. + * + * @param[in] window The window instance. + * @param[in] needAcknowledgement the flag is true if window rotation acknowledge is sent. + */ +DALI_ADAPTOR_API void SetNeedsRotationCompletedAcknowledgement(Window window, bool needAcknowledgement); + +/** + * @brief send the Acknowledgement to complete window rotation. + * For this function, SetNeedsRotationCompletedAcknowledgement should be already called with true. + * + * @param[in] window The window instance. + */ +DALI_ADAPTOR_API void SendRotationCompletedAcknowledgement(Window window); + } // namespace DevelWindow } // namespace Dali