// 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 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
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.
*/
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;
OrientationPtr mOrientation;
std::vector<Dali::Window::WindowOrientation> mAvailableOrientations;
Dali::Window::WindowOrientation mPreferredOrientation;
+
+ // Signals
+ IndicatorSignalType mIndicatorVisibilityChangedSignal;
};
} // namespace Adaptor