1 #ifndef __DALI_ORIENTATION_H__
2 #define __DALI_ORIENTATION_H__
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 // Licensed under the Flora License, Version 1.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
11 // http://floralicense.org/license/
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.
21 * @addtogroup CAPI_DALI_ADAPTOR_MODULE
26 #include <boost/function.hpp>
28 #include <dali/public-api/signals/dali-signal-v2.h>
29 #include <dali/public-api/object/base-handle.h>
31 namespace Dali DALI_IMPORT_API
34 namespace Internal DALI_INTERNAL
43 * @brief Orientation allows the user to determine the orientation of the device.
45 * A signal is emitted whenever the orientation changes.
46 * Dali applications have full control over visual layout when the device is rotated
47 * i.e. the application developer decides which UI controls to rotate, if any.
49 class Orientation : public BaseHandle
53 typedef SignalV2< void (Orientation) > OrientationSignalV2; ///< Orientation changed signal type
56 * @brief Create an unintialized handle.
58 * This can be initialized by calling Dali::Application::GetOrientation()
63 * @brief Virtual Destructor
65 virtual ~Orientation();
68 * @copydoc Dali::BaseHandle::operator=
70 using BaseHandle::operator=;
74 * @brief Returns the orientation of the device in degrees.
76 * This is one of four discrete values, in degrees clockwise: 0, 90, 180, & 270
77 * For a device with a portrait form-factor:
78 * 0 indicates that the device is in the "normal" portrait orientation.
79 * 90 indicates that device has been rotated clockwise, into a landscape orientation.
80 * @return The orientation in degrees clockwise.
82 int GetDegrees() const;
85 * @brief Returns the orientation of the device in radians.
87 * This is one of four discrete values, in radians clockwise: 0, PI/2, PI, & 3xPI/2
88 * For a device with a portrait form-factor:
89 * 0 indicates that the device is in the "normal" portrait orientation.
90 * PI/2 indicates that device has been rotated clockwise, into a landscape orientation.
91 * @return The orientation in radians clockwise.
93 float GetRadians() const;
96 * @brief The user should connect to this signal so that they can be notified whenever
97 * the orientation of the device changes.
99 * @return The orientation change signal.
101 OrientationSignalV2& ChangedSignal();
103 public: // Not intended for application developers
105 * @brief This constructor is used by Dali::Application::GetOrientation().
107 * @param[in] orientation A pointer to the orientation object
109 explicit DALI_INTERNAL Orientation( Internal::Adaptor::Orientation* orientation );
117 #endif // __DALI_ORIENTATION_H__