MS Windows - Fix compile errors when debug is enabled.
[platform/core/uifw/dali-adaptor.git] / dali / public-api / adaptor-framework / window.h
1 #ifndef DALI_WINDOW_H
2 #define DALI_WINDOW_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // EXTERNAL INCLUDES
22 #include <string>
23 #include <dali/public-api/math/rect.h>
24 #include <dali/public-api/math/uint-16-pair.h>
25 #include <dali/public-api/math/vector2.h>
26 #include <dali/public-api/math/vector4.h>
27 #include <dali/public-api/object/base-handle.h>
28 #include <dali/public-api/object/any.h>
29 #include <dali/public-api/signals/dali-signal.h>
30
31 // INTERNAL INCLUDES
32 #include <dali/public-api/dali-adaptor-common.h>
33
34 #undef OPAQUE
35 #undef TRANSPARENT
36
37 namespace Dali
38 {
39 /**
40  * @addtogroup dali_adaptor_framework
41  * @{
42  */
43
44 typedef Dali::Rect<int> PositionSize;
45
46 namespace Internal DALI_INTERNAL
47 {
48 namespace Adaptor
49 {
50 class Window;
51 }
52 }
53
54 class DragAndDropDetector;
55 class Orientation;
56 class Actor;
57 class Layer;
58
59 /**
60  * @brief The window class is used internally for drawing.
61  *
62  * A Window has an orientation and indicator properties.
63  * You can get a valid Window handle by calling Dali::Application::GetWindow().
64  * @SINCE_1_0.0
65  */
66 class DALI_ADAPTOR_API Window : public BaseHandle
67 {
68 public:
69
70   typedef Uint16Pair WindowSize;          ///< Window size type @SINCE_1_2.60
71   typedef Uint16Pair WindowPosition;      ///< Window position type @SINCE_1_2.60
72
73   typedef Signal< void (bool) > IndicatorSignalType;  ///< @DEPRECATED_1_4.9 @brief Indicator state signal type @SINCE_1_0.0
74   typedef Signal< void (bool) > FocusSignalType;         ///< @DEPRECATED_1_4.35 @brief Window focus signal type @SINCE_1_2.60
75   typedef Signal< void (WindowSize) > ResizedSignalType; ///< @DEPRECATED_1_4.35 @brief Window resized signal type @SINCE_1_2.60
76   typedef Signal< void (Window,bool) > FocusChangeSignalType;         ///< Window focus signal type @SINCE_1_4.35
77   typedef Signal< void (Window,WindowSize) > ResizeSignalType; ///< Window resized signal type @SINCE_1_4.35
78 public:
79
80   // Enumerations
81
82   /**
83    * @brief Enumeration for orientation of the window is the way in which a rectangular page is oriented for normal viewing.
84    *
85    * This Enumeration is used the available orientation APIs and the preferred orientation.
86    *
87    * @SINCE_1_0.0
88    */
89   enum WindowOrientation
90   {
91     PORTRAIT = 0,  ///< Portrait orientation. The height of the display area is greater than the width. @SINCE_1_0.0
92     LANDSCAPE = 90,  ///< Landscape orientation. A wide view area is needed. @SINCE_1_0.0
93     PORTRAIT_INVERSE = 180,  ///< Portrait inverse orientation @SINCE_1_0.0
94     LANDSCAPE_INVERSE = 270,  ///< Landscape inverse orientation @SINCE_1_0.0
95     NO_ORIENTATION_PREFERENCE = -1 ///< No orientation. It is used to initialize or unset the preferred orientation.  @SINCE_1_4.51
96   };
97
98   /**
99    * @DEPRECATED_1_4.9
100    * @brief Enumeration for opacity of the indicator.
101    * @SINCE_1_0.0
102    */
103   enum IndicatorBgOpacity
104   {
105     OPAQUE = 100, ///< @DEPRECATED_1_4.9 @brief Fully opaque indicator Bg @SINCE_1_0.0
106     TRANSLUCENT = 50, ///< @DEPRECATED_1_4.9 @brief Semi translucent indicator Bg @SINCE_1_0.0
107     TRANSPARENT = 0 ///< @DEPRECATED_1_4.9 @brief Fully transparent indicator Bg @SINCE_1_0.0
108   };
109
110   /**
111    * @DEPRECATED_1_4.9
112    * @brief Enumeration for visible mode of the indicator.
113    * @SINCE_1_0.0
114    */
115   enum IndicatorVisibleMode
116   {
117     INVISIBLE = 0, ///< @DEPRECATED_1_4.9 @brief Hide indicator @SINCE_1_0.0
118     VISIBLE = 1, ///< @DEPRECATED_1_4.9 @brief Show indicator @SINCE_1_0.0
119     AUTO = 2 ///< @DEPRECATED_1_4.9 @brief Hide in default, will show when necessary @SINCE_1_0.0
120   };
121
122   /**
123    * @brief An enum of Window types.
124    * @SINCE_1_2.60
125    */
126   enum Type
127   {
128     NORMAL,           ///< A default window type. Indicates a normal, top-level window. Almost every window will be created with this type. @SINCE_1_2.60
129     NOTIFICATION,     ///< A notification window, like a warning about battery life or a new E-Mail received. @SINCE_1_2.60
130     UTILITY,          ///< A persistent utility window, like a toolbox or palette. @SINCE_1_2.60
131     DIALOG            ///< Used for simple dialog windows. @SINCE_1_2.60
132   };
133
134   /**
135    * @brief An enum of screen mode.
136    * @SINCE_1_2.60
137    */
138   struct NotificationLevel
139   {
140     /**
141      * @brief An enum of screen mode.
142      * @SINCE_1_2.60
143      */
144     enum Type
145     {
146       NONE   = -1,    ///< No notification level. Default level. This value makes the notification window place in the layer of the normal window. @SINCE_1_2.60
147       BASE   = 10,    ///< Base notification level. @SINCE_1_2.60
148       MEDIUM = 20,    ///< Higher notification level than base. @SINCE_1_2.60
149       HIGH   = 30,    ///< Higher notification level than medium. @SINCE_1_2.60
150       TOP    = 40     ///< The highest notification level. @SINCE_1_2.60
151     };
152   };
153
154   /**
155    * @brief An enum of screen mode.
156    * @SINCE_1_2.60
157    */
158   struct ScreenOffMode
159   {
160     /**
161      * @brief An enum of screen mode.
162      * @SINCE_1_2.60
163      */
164     enum Type
165     {
166       TIMEOUT,              ///< The mode which turns the screen off after a timeout. @SINCE_1_2.60
167       NEVER,                ///< The mode which keeps the screen turned on. @SINCE_1_2.60
168     };
169
170     static constexpr Type DEFAULT { TIMEOUT }; ///< The default mode. @SINCE_1_2.60
171   };
172
173   // Methods
174
175   /**
176    * @brief Creates an initialized handle to a new Window.
177    * @SINCE_1_0.0
178    * @param[in] windowPosition The position and size of the Window
179    * @param[in] name The Window title
180    * @param[in] isTransparent Whether Window is transparent
181    * @return A new window
182    * @note This creates an extra window in addition to the default main window
183    */
184   static Window New(PositionSize windowPosition, const std::string& name, bool isTransparent = false);
185
186   /**
187    * @brief Creates an initialized handle to a new Window.
188    * @SINCE_1_0.0
189    * @param[in] windowPosition The position and size of the Window
190    * @param[in] name The Window title
191    * @param[in] className The Window class name
192    * @param[in] isTransparent Whether Window is transparent
193    * @note This creates an extra window in addition to the default main window
194    * @return A new Window
195    */
196   static Window New(PositionSize windowPosition, const std::string& name, const std::string& className, bool isTransparent = false);
197
198   /**
199    * @brief Creates an uninitialized handle.
200    *
201    * This can be initialized using Dali::Application::GetWindow() or
202    * Dali::Window::New().
203    * @SINCE_1_0.0
204    */
205   Window();
206
207   /**
208    * @brief Destructor.
209    *
210    * This is non-virtual since derived Handle types must not contain data or virtual methods.
211    * @SINCE_1_0.0
212    */
213   ~Window();
214
215   /**
216    * @brief This copy constructor is required for (smart) pointer semantics.
217    *
218    * @SINCE_1_0.0
219    * @param[in] handle A reference to the copied handle
220    */
221   Window(const Window& handle);
222
223   /**
224    * @brief This assignment operator is required for (smart) pointer semantics.
225    *
226    * @SINCE_1_0.0
227    * @param[in] rhs A reference to the copied handle
228    * @return A reference to this
229    */
230   Window& operator=(const Window& rhs);
231
232   /**
233    * @brief Adds a child Actor to the Window.
234    *
235    * The child will be referenced.
236    *
237    * @SINCE_1_4.19
238    * @param[in] actor The child
239    * @pre The actor has been initialized.
240    * @pre The actor does not have a parent.
241    */
242   void Add( Actor actor );
243
244   /**
245    * @brief Removes a child Actor from the Window.
246    *
247    * The child will be unreferenced.
248    *
249    * @SINCE_1_4.19
250    * @param[in] actor The child
251    * @pre The actor has been added to the stage.
252    */
253   void Remove( Actor actor );
254
255   /**
256    * @brief Sets the background color of the Window.
257    *
258    * @SINCE_1_4.19
259    * @param[in] color The new background color
260    */
261   void SetBackgroundColor( const Vector4& color );
262
263   /**
264    * @brief Gets the background color of the Window.
265    *
266    * @SINCE_1_4.19
267    * @return The background color
268    */
269   Vector4 GetBackgroundColor() const;
270
271   /**
272    * @brief Returns the root Layer of the Window.
273    *
274    * @SINCE_1_4.19
275    * @return The root layer
276    */
277   Layer GetRootLayer() const;
278
279   /**
280    * @brief Queries the number of on-scene layers in the Window.
281    *
282    * Note that a default layer is always provided (count >= 1).
283    *
284    * @SINCE_1_4.19
285    * @return The number of layers
286    */
287   uint32_t GetLayerCount() const;
288
289   /**
290    * @brief Retrieves the layer at a specified depth in the Window.
291    *
292    * @SINCE_1_4.19
293    * @param[in] depth The depth
294    * @return The layer found at the given depth
295    * @pre Depth is less than layer count; see GetLayerCount().
296    */
297   Layer GetLayer( uint32_t depth ) const;
298
299   /**
300    * @DEPRECATED_1_4.9
301    * @brief This sets whether the indicator bar should be shown or not.
302    * @SINCE_1_0.0
303    * @param[in] visibleMode Visible mode for indicator bar, VISIBLE in default
304    */
305   void ShowIndicator( IndicatorVisibleMode visibleMode ) DALI_DEPRECATED_API;
306
307   /**
308    * @DEPRECATED_1_4.9
309    * @brief This sets the opacity mode of indicator bar.
310    * @SINCE_1_0.0
311    * @param[in] opacity The opacity mode
312    */
313   void SetIndicatorBgOpacity( IndicatorBgOpacity opacity ) DALI_DEPRECATED_API;
314
315   /**
316    * @DEPRECATED_1_4.9
317    * @brief This sets the orientation of indicator bar.
318    *
319    * It does not implicitly show the indicator if it is currently hidden.
320    * @SINCE_1_0.0
321    * @param[in] orientation The orientation
322    */
323   void RotateIndicator(WindowOrientation orientation) DALI_DEPRECATED_API;
324
325   /**
326    * @brief Sets the window name and class string.
327    * @SINCE_1_0.0
328    * @param[in] name The name of the window
329    * @param[in] klass The class of the window
330    */
331   void SetClass(std::string name, std::string klass);
332
333   /**
334    * @brief Raises window to the top of Window stack.
335    * @SINCE_1_0.0
336    */
337   void Raise();
338
339   /**
340    * @brief Lowers window to the bottom of Window stack.
341    * @SINCE_1_0.0
342    */
343   void Lower();
344
345   /**
346    * @brief Activates window to the top of Window stack even it is iconified.
347    * @SINCE_1_0.0
348    */
349   void Activate();
350
351   /**
352    * @brief Adds an orientation to the list of available orientations.
353    * @SINCE_1_0.0
354    * @param[in] orientation The available orientation to add
355    */
356   void AddAvailableOrientation( WindowOrientation orientation );
357
358   /**
359    * @brief Removes an orientation from the list of available orientations.
360    * @SINCE_1_0.0
361    * @param[in] orientation The available orientation to remove
362    */
363   void RemoveAvailableOrientation( WindowOrientation orientation );
364
365   /**
366    * @brief Sets a preferred orientation.
367    * @SINCE_1_0.0
368    * @param[in] orientation The preferred orientation
369    * @pre Orientation is in the list of available orientations.
370    *
371    * @note To unset the preferred orientation, orientation should be set NO_ORIENTATION_PREFERENCE.
372    */
373   void SetPreferredOrientation( WindowOrientation orientation );
374
375   /**
376    * @brief Gets the preferred orientation.
377    * @SINCE_1_0.0
378    * @return The preferred orientation if previously set, or none
379    */
380   WindowOrientation GetPreferredOrientation();
381
382   /**
383    * @DEPRECATED_1_4.19 Was not intended for Application developers
384    * @brief Returns an empty handle.
385    * @note  Not intended for application developers.
386    * @SINCE_1_0.0
387    * @return An empty handle
388    */
389   DragAndDropDetector GetDragAndDropDetector() const DALI_DEPRECATED_API;
390
391   /**
392    * @brief Gets the native handle of the window.
393    *
394    * When users call this function, it wraps the actual type used by the underlying window system.
395    * @SINCE_1_0.0
396    * @return The native handle of the Window or an empty handle
397    */
398   Any GetNativeHandle() const;
399
400   /**
401    * @brief Sets whether window accepts focus or not.
402    *
403    * @SINCE_1_2.60
404    * @param[in] accept If focus is accepted or not. Default is true.
405    */
406   void SetAcceptFocus( bool accept );
407
408   /**
409    * @brief Returns whether window accepts focus or not.
410    *
411    * @SINCE_1_2.60
412    * @return True if the window accept focus, false otherwise
413    */
414   bool IsFocusAcceptable() const;
415
416   /**
417    * @brief Shows the window if it is hidden.
418    * @SINCE_1_2.60
419    */
420   void Show();
421
422   /**
423    * @brief Hides the window if it is showing.
424    * @SINCE_1_2.60
425    */
426   void Hide();
427
428   /**
429    * @brief Returns whether the window is visible or not.
430    * @SINCE_1_2.60
431    * @return True if the window is visible, false otherwise.
432    */
433   bool IsVisible() const;
434
435   /**
436    * @brief Gets the count of supported auxiliary hints of the window.
437    * @SINCE_1_2.60
438    * @return The number of supported auxiliary hints.
439    *
440    * @note The window auxiliary hint is the value which is used to decide which actions should be made available to the user by the window manager.
441    * If you want to set specific hint to your window, then you should check whether it exists in the supported auxiliary hints.
442    */
443   unsigned int GetSupportedAuxiliaryHintCount() const;
444
445   /**
446    * @brief Gets the supported auxiliary hint string of the window.
447    * @SINCE_1_2.60
448    * @param[in] index The index of the supported auxiliary hint lists
449    * @return The auxiliary hint string of the index.
450    *
451    * @note The window auxiliary hint is the value which is used to decide which actions should be made available to the user by the window manager.
452    * If you want to set specific hint to your window, then you should check whether it exists in the supported auxiliary hints.
453    */
454   std::string GetSupportedAuxiliaryHint( unsigned int index ) const;
455
456   /**
457    * @brief Creates an auxiliary hint of the window.
458    * @SINCE_1_2.60
459    * @param[in] hint The auxiliary hint string.
460    * @param[in] value The value string.
461    * @return The ID of created auxiliary hint, or @c 0 on failure.
462    */
463   unsigned int AddAuxiliaryHint( const std::string& hint, const std::string& value );
464
465   /**
466    * @brief Removes an auxiliary hint of the window.
467    * @SINCE_1_2.60
468    * @param[in] id The ID of the auxiliary hint.
469    * @return True if no error occurred, false otherwise.
470    */
471   bool RemoveAuxiliaryHint( unsigned int id );
472
473   /**
474    * @brief Changes a value of the auxiliary hint.
475    * @SINCE_1_2.60
476    * @param[in] id The auxiliary hint ID.
477    * @param[in] value The value string to be set.
478    * @return True if no error occurred, false otherwise.
479    */
480   bool SetAuxiliaryHintValue( unsigned int id, const std::string& value );
481
482   /**
483    * @brief Gets a value of the auxiliary hint.
484    * @SINCE_1_2.60
485    * @param[in] id The auxiliary hint ID.
486    * @return The string value of the auxiliary hint ID, or an empty string if none exists.
487    */
488   std::string GetAuxiliaryHintValue( unsigned int id ) const;
489
490   /**
491    * @brief Gets a ID of the auxiliary hint string.
492    * @SINCE_1_2.60
493    * @param[in] hint The auxiliary hint string.
494    * @return The ID of the auxiliary hint string, or @c 0 if none exists.
495    */
496   unsigned int GetAuxiliaryHintId( const std::string& hint ) const;
497
498   /**
499    * @brief Sets a region to accept input events.
500    * @SINCE_1_2.60
501    * @param[in] inputRegion The region to accept input events.
502    */
503   void SetInputRegion( const Rect< int >& inputRegion );
504
505   /**
506    * @brief Sets a window type.
507    * @SINCE_1_2.60
508    * @param[in] type The window type.
509    * @remarks The default window type is NORMAL.
510    */
511   void SetType( Type type );
512
513   /**
514    * @brief Gets a window type.
515    * @SINCE_1_2.60
516    * @return A window type.
517    */
518   Type GetType() const;
519
520   /**
521    * @brief Sets a priority level for the specified notification window.
522    * @SINCE_1_2.60
523    * @param[in] level The notification window level.
524    * @return True if no error occurred, false otherwise.
525    * @PRIVLEVEL_PUBLIC
526    * @PRIVILEGE_WINDOW_PRIORITY
527    * @remarks This can be used for a notification type window only. The default level is NotificationLevel::NONE.
528    */
529   bool SetNotificationLevel( NotificationLevel::Type level );
530
531   /**
532    * @brief Gets a priority level for the specified notification window.
533    * @SINCE_1_2.60
534    * @return The notification window level.
535    * @remarks This can be used for a notification type window only.
536    */
537   NotificationLevel::Type GetNotificationLevel() const;
538
539   /**
540    * @brief Sets a transparent window's visual state to opaque.
541    * @details If a visual state of a transparent window is opaque,
542    * then the window manager could handle it as an opaque window when calculating visibility.
543    * @SINCE_1_2.60
544    * @param[in] opaque Whether the window's visual state is opaque.
545    * @remarks This will have no effect on an opaque window.
546    * It doesn't change transparent window to opaque window but lets the window manager know the visual state of the window.
547    */
548   void SetOpaqueState( bool opaque );
549
550   /**
551    * @brief Returns whether a transparent window's visual state is opaque or not.
552    * @SINCE_1_2.60
553    * @return True if the window's visual state is opaque, false otherwise.
554    * @remarks The return value has no meaning on an opaque window.
555    */
556   bool IsOpaqueState() const;
557
558   /**
559    * @brief Sets a window's screen off mode.
560    * @details This API is useful when the application needs to keep the display turned on.
561    * If the application sets the screen mode to #::Dali::Window::ScreenOffMode::NEVER to its window and the window is shown,
562    * the window manager requests the display system to keep the display on as long as the window is shown.
563    * If the window is no longer shown, then the window manager requests the display system to go back to normal operation.
564    * @SINCE_1_2.60
565    * @param[in] screenOffMode The screen mode.
566    * @return True if no error occurred, false otherwise.
567    * @PRIVLEVEL_PUBLIC
568    * @PRIVILEGE_DISPLAY
569    */
570   bool SetScreenOffMode(ScreenOffMode::Type screenOffMode);
571
572   /**
573    * @brief Gets a screen off mode of the window.
574    * @SINCE_1_2.60
575    * @return The screen off mode.
576    */
577   ScreenOffMode::Type GetScreenOffMode() const;
578
579   /**
580    * @brief Sets preferred brightness of the window.
581    * @details This API is useful when the application needs to change the brightness of the screen when it is appeared on the screen.
582    * If the brightness has been set and the window is shown, the window manager requests the display system to change the brightness to the provided value.
583    * If the window is no longer shown, then the window manager requests the display system to go back to default brightness.
584    * A value less than 0 results in default brightness and a value greater than 100 results in maximum brightness.
585    * @SINCE_1_2.60
586    * @param[in] brightness The preferred brightness (0 to 100).
587    * @return True if no error occurred, false otherwise.
588    * @PRIVLEVEL_PUBLIC
589    * @PRIVILEGE_DISPLAY
590    */
591   bool SetBrightness( int brightness );
592
593   /**
594    * @brief Gets preferred brightness of the window.
595    * @SINCE_1_2.60
596    * @return The preferred brightness.
597    */
598   int GetBrightness() const;
599
600   /**
601    * @brief Sets a size of the window.
602    *
603    * @SINCE_1_2.60
604    * @param[in] size The new window size
605    */
606   void SetSize( WindowSize size );
607
608   /**
609    * @brief Gets a size of the window.
610    *
611    * @SINCE_1_2.60
612    * @return The size of the window
613    */
614   WindowSize GetSize() const;
615
616   /**
617    * @brief Sets a position of the window.
618    *
619    * @SINCE_1_2.60
620    * @param[in] position The new window position
621    */
622   void SetPosition( WindowPosition position );
623
624   /**
625    * @brief Gets a position of the window.
626    *
627    * @SINCE_1_2.60
628    * @return The position of the window
629    */
630   WindowPosition GetPosition() const;
631
632   /**
633    * @brief Sets whether the window is transparent or not.
634    *
635    * @SINCE_1_2.60
636    * @param[in] transparent Whether the window is transparent
637    */
638   void SetTransparency( bool transparent );
639
640 public: // Signals
641   /**
642    * @DEPRECATED_1_4.9
643    * @brief The user should connect to this signal to get a timing when indicator was shown / hidden.
644    * @SINCE_1_0.0
645    * @return The signal to connect to
646    */
647   IndicatorSignalType& IndicatorVisibilityChangedSignal() DALI_DEPRECATED_API;
648
649   /**
650    * @DEPRECATED_1_4.35
651    * @brief The user should connect to this signal to get a timing when window gains focus or loses focus.
652    *
653    * A callback of the following type may be connected:
654    * @code
655    *   void YourCallbackName( bool focusIn );
656    * @endcode
657    * The parameter is true if window gains focus, otherwise false.
658    *
659    * @SINCE_1_2.60
660    * @return The signal to connect to
661    */
662   FocusSignalType& FocusChangedSignal() DALI_DEPRECATED_API;
663
664   /**
665    * @brief This signal is emitted when the window is resized.
666    *
667    * A callback of the following type may be connected:
668    * @code
669    *   void YourCallbackName( int width, int height );
670    * @endcode
671    * The parameters are the resized width and height.
672    *
673    * @SINCE_1_2.60
674    * @return The signal to connect to
675    */
676   ResizedSignalType& ResizedSignal() DALI_DEPRECATED_API;
677
678   /**
679    * @brief The user should connect to this signal to get a timing when window gains focus or loses focus.
680    *
681    * A callback of the following type may be connected:
682    * @code
683    *   void YourCallbackName( Window window, bool focusIn );
684    * @endcode
685    * The parameter is true if window gains focus, otherwise false.
686    * and window means this signal was called from what window
687    *
688    * @SINCE_1_4.35
689    * @return The signal to connect to
690    */
691   FocusChangeSignalType& FocusChangeSignal();
692
693   /**
694    * @brief This signal is emitted when the window is resized.
695    *
696    * A callback of the following type may be connected:
697    * @code
698    *   void YourCallbackName( Window window, int width, int height );
699    * @endcode
700    * The parameters are the resized width and height.
701    * and window means this signal was called from what window
702    *
703    * @SINCE_1_4.35
704    * @return The signal to connect to
705    */
706   ResizeSignalType& ResizeSignal();
707
708 public: // Not intended for application developers
709   /// @cond internal
710   /**
711    * @brief This constructor is used by Dali::Application::GetWindow().
712    * @SINCE_1_0.0
713    * @param[in] window A pointer to the Window
714    */
715   explicit DALI_INTERNAL Window( Internal::Adaptor::Window* window );
716   /// @endcond
717 };
718
719 /**
720  * @}
721  */
722 } // namespace Dali
723
724 #endif // __DALI_WINDOW_H__