#include <dali/integration-api/system-overlay.h>
#include <dali/public-api/render-tasks/render-task.h>
#include <dali/public-api/render-tasks/render-task-list.h>
-#include <orientation.h>
// INTERNAL HEADERS
#include <window-render-surface.h>
#include <drag-and-drop-detector-impl.h>
#include <indicator-impl.h>
#include <window-visibility-observer.h>
+#include <orientation.h>
#include <orientation-impl.h>
namespace
ECORE_X_ATOM_E_DEICONIFY_APPROVE,
&tmp, 1);
#endif // DALI_PROFILE_UBUNTU
+
+ ecore_x_input_multi_select( mEcoreWindow );
}
/**
return mSurface;
}
-void Window::SetIndicatorStyle( Dali::Window::IndicatorStyle style )
-{
- mIndicatorStyle = style;
-}
-
-void Window::ShowIndicator( bool show )
-{
- DALI_LOG_TRACE_METHOD_FMT( gWindowLogFilter, "%s\n", show?"SHOW":"HIDE" );
- DALI_ASSERT_DEBUG(mOverlay);
-
- if(show)
- {
- mIndicatorVisible = Dali::Window::VISIBLE;
- }
- else
- {
- mIndicatorVisible = Dali::Window::INVISIBLE;
- }
-
- DoShowIndicator( mIndicatorOrientation );
-}
-
void Window::ShowIndicator( Dali::Window::IndicatorVisibleMode visibleMode )
{
DALI_LOG_TRACE_METHOD_FMT( gWindowLogFilter, "visible : %d\n", visibleMode );
#if defined(DALI_PROFILE_MOBILE)
else if ( mIndicatorOpacityMode == Dali::Window::TRANSPARENT )
{
- ecore_x_e_illume_indicator_opacity_set(xWinId, ECORE_X_ILLUME_INDICATOR_BG_TRANSPARENT);
+ ecore_x_e_illume_indicator_opacity_set(xWinId, ECORE_X_ILLUME_INDICATOR_OPAQUE);
}
#endif
}
Window::Window()
: mSurface(NULL),
- mIndicatorStyle(Dali::Window::CHANGEABLE_COLOR),
- mIndicatorVisible(Dali::Window::VISIBLE),
+ mIndicatorVisible(Dali::Window::INVISIBLE),
mIndicatorIsShown(false),
mShowRotatedIndicatorOnClose(false),
mStarted(false),
mNextIndicatorOrientation(Dali::Window::PORTRAIT),
mIndicatorOpacityMode(Dali::Window::OPAQUE),
mOverlay(NULL),
- mAdaptor(NULL)
+ mAdaptor(NULL),
+ mEventHandler(NULL),
+ mPreferredOrientation(Dali::Window::PORTRAIT)
{
}
{
delete mEventHandler;
- if ( mAdaptor )
+ if( mIndicator )
+ {
+ mOverlay->Remove( mIndicator->GetActor() );
+ Dali::RenderTaskList taskList = mOverlay->GetOverlayRenderTasks();
+ Dali::RenderTask indicatorTask = taskList.GetTask(0);
+ mOverlay->GetOverlayRenderTasks().RemoveTask(indicatorTask);
+ mIndicator->Close();
+ delete mIndicator;
+ }
+
+ if( mAdaptor )
{
mAdaptor->RemoveObserver( *this );
mAdaptor->SetDragAndDropDetector( NULL );
{
// create an X11 window by default
Any surface;
- Any display;
- mSurface = new ECore::WindowRenderSurface( windowPosition, surface, display, name, mIsTransparent );
+ ECore::WindowRenderSurface* windowSurface = new ECore::WindowRenderSurface( windowPosition, surface, name, mIsTransparent );
+ windowSurface->Map();
+
+ mSurface = windowSurface;
+
mOrientation = Orientation::New(this);
// create event handler for X11 window
{
if( mIndicatorVisible != Dali::Window::INVISIBLE )
{
- mIndicator = new Indicator( mAdaptor, mIndicatorOrientation, mIndicatorStyle, this );
+ mIndicator = new Indicator( mAdaptor, mIndicatorOrientation, this );
mIndicator->SetOpacityMode( mIndicatorOpacityMode );
Dali::Actor actor = mIndicator->GetActor();
SetIndicatorActorRotation();
}
}
+void Window::IndicatorVisibilityChanged(bool isVisible)
+{
+ mIndicatorVisibilityChangedSignal.Emit(isVisible);
+}
+
void Window::SetIndicatorActorRotation()
{
DALI_LOG_TRACE_METHOD( gWindowLogFilter );
case Dali::Window::PORTRAIT:
actor.SetParentOrigin( ParentOrigin::TOP_CENTER );
actor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
- actor.SetRotation( Degree(0), Vector3::ZAXIS );
+ actor.SetOrientation( Degree(0), Vector3::ZAXIS );
break;
case Dali::Window::PORTRAIT_INVERSE:
actor.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
actor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
- actor.SetRotation( Degree(180), Vector3::ZAXIS );
+ actor.SetOrientation( Degree(180), Vector3::ZAXIS );
break;
case Dali::Window::LANDSCAPE:
actor.SetParentOrigin( ParentOrigin::CENTER_LEFT );
actor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
- actor.SetRotation( Degree(270), Vector3::ZAXIS );
+ actor.SetOrientation( Degree(270), Vector3::ZAXIS );
break;
case Dali::Window::LANDSCAPE_INVERSE:
actor.SetParentOrigin( ParentOrigin::CENTER_RIGHT );
actor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
- actor.SetRotation( Degree(90), Vector3::ZAXIS );
+ actor.SetOrientation( Degree(90), Vector3::ZAXIS );
break;
}
}
return mDragAndDropDetector;
}
+Dali::Any Window::GetNativeHandle() const
+{
+ if(mEventHandler)
+ {
+ return mEventHandler->mEcoreWindow;
+ }
+ else
+ {
+ return Dali::Any();
+ }
+}
+
void Window::OnStart()
{
- DoShowIndicator( mIndicatorOrientation );
+ ShowIndicator( mIndicatorVisible );
}
void Window::OnPause()
mAdaptor = NULL;
}
-OrientationPtr Window::GetOrientation()
-{
- return mOrientation;
-}
-
void Window::AddAvailableOrientation(Dali::Window::WindowOrientation orientation)
{
bool found = false;