// EXTERNAL INCLUDES
#include <dali/public-api/object/ref-object.h>
#include <dali/public-api/object/base-object.h>
-#include <window.h>
-#include <orientation.h>
-#include <render-surface.h>
-#include <drag-and-drop-detector.h>
// INTERNAL INCLUDES
#include <base/lifecycle-observer.h>
#include <adaptor-impl.h>
#include <indicator-impl.h>
-
+#include <window.h>
+#include <orientation.h>
+#include <render-surface.h>
+#include <drag-and-drop-detector.h>
namespace Dali
{
class Adaptor;
+class RenderSurface;
namespace Integration
{
{
namespace Adaptor
{
-class RenderSurface;
class Indicator;
class Orientation;
class Window : public Dali::BaseObject, public Indicator::Observer, public LifeCycleObserver
{
public:
+ typedef Dali::Window::IndicatorSignalType IndicatorSignalType;
+
/**
* Create a new Window. This should only be called once by the Application class
* @param[in] windowPosition The position and size of the window
* @param[in] name The window title
+ * @param[in] className The window class name
* @param[in] isTransparent Whether window is transparent
* @return A newly allocated Window
*/
- static Window* New(const PositionSize& posSize, const std::string& name, bool isTransparent = false);
+ static Window* New(const PositionSize& posSize, const std::string& name, const std::string& className, bool isTransparent = false);
/**
* Pass the adaptor back to the overlay. This allows the window to access Core's overlay.
RenderSurface* GetSurface();
/**
- * @copydoc Dali::Window::SetIndicatorStyle()
- */
- void SetIndicatorStyle( Dali::Window::IndicatorStyle style );
-
- /**
* @copydoc Dali::Window::ShowIndicator()
*/
void ShowIndicator( Dali::Window::IndicatorVisibleMode visibleMode );
void Activate();
/**
- * @copydoc Dali::Window::GetOrientation()
- */
- OrientationPtr GetOrientation();
-
- /**
* @copydoc Dali::Window::AddAvailableOrientation()
*/
void AddAvailableOrientation(Dali::Window::WindowOrientation orientation);
Dali::DragAndDropDetector GetDragAndDropDetector() const;
/**
+ * @copydoc Dali::Window::GetNativeHandle() const
+ */
+ Dali::Any GetNativeHandle() const;
+
+ /**
* Called from Orientation after the Change signal has been sent
*/
void RotationDone( int orientation, int width, int height );
-
private:
/**
* Private constructor.
/**
* Second stage initialization
*/
- void Initialize(const PositionSize& posSize, const std::string& name);
+ void Initialize(const PositionSize& posSize, const std::string& name, const std::string& className);
/**
* Shows / hides the indicator bar.
*/
virtual void IndicatorClosed(Indicator* indicator);
+ /**
+ * @copydoc Dali::Internal::Adaptor::Indicator::Observer::IndicatorVisibilityChanged()
+ */
+ virtual void IndicatorVisibilityChanged( bool isVisible );
+
private: // Adaptor::Observer interface
/**
*/
virtual void OnDestroy();
+public: // Signals
+ /**
+ * The user should connect to this signal to get a timing when indicator was shown / hidden.
+ */
+ IndicatorSignalType& IndicatorVisibilityChangedSignal() { return mIndicatorVisibilityChangedSignal; }
+
private:
typedef std::vector<Indicator*> DiscardedIndicators;
RenderSurface* mSurface;
- Dali::Window::IndicatorStyle mIndicatorStyle; ///< indicator style
Dali::Window::IndicatorVisibleMode mIndicatorVisible; ///< public state
bool mIndicatorIsShown:1; ///< private state
bool mShowRotatedIndicatorOnClose:1;
bool mStarted:1;
bool mIsTransparent:1;
bool mWMRotationAppSet:1;
+ bool mEcoreEventHander:1;
Indicator* mIndicator;
Dali::Window::WindowOrientation mIndicatorOrientation;
Dali::Window::WindowOrientation mNextIndicatorOrientation;
OrientationPtr mOrientation;
std::vector<Dali::Window::WindowOrientation> mAvailableOrientations;
Dali::Window::WindowOrientation mPreferredOrientation;
+
+ // Signals
+ IndicatorSignalType mIndicatorVisibilityChangedSignal;
};
} // namespace Adaptor