DALI_TYPE_REGISTRATION_END()
-static Eina_Bool OnKeyDown( void* data, int type, void* eventInfo )
-{
- Ecore_Event_Key *event = static_cast< Ecore_Event_Key* >( eventInfo );
- tizen_remote_surface* surface = static_cast< tizen_remote_surface* >( data );
-
- tizen_remote_surface_transfer_key_event( surface,
- TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_DOWN,
- event->keycode,
- ecore_device_class_get(event->dev),
- ecore_device_subclass_get(event->dev),
- ecore_device_identifier_get(event->dev),
- event->timestamp
- );
-
- return EINA_TRUE;
-}
-
-static Eina_Bool OnKeyUp(void* data, int type, void* eventInfo)
-{
- Ecore_Event_Key *event = static_cast< Ecore_Event_Key* >( eventInfo );
- tizen_remote_surface* surface = static_cast< tizen_remote_surface* >( data );
-
- tizen_remote_surface_transfer_key_event( surface,
- TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_UP,
- event->keycode,
- ecore_device_class_get(event->dev),
- ecore_device_subclass_get(event->dev),
- ecore_device_identifier_get(event->dev),
- event->timestamp
- );
- return EINA_TRUE;
-}
-
-static void OnSurfaceUpdate( struct tizen_remote_surface* surface, wl_buffer* buffer, uint32_t time, void* data )
+static void OnBufferUpdate( struct tizen_remote_surface* surface, wl_buffer* buffer, uint32_t time, void* data )
{
Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
- if( widgetView && !widgetView->IsWidgetImageView() )
+ if( widgetView )
{
- tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
+ if( !widgetView->IsWidgetImageView() )
+ {
+ tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
- widgetView->CreateWidgetImageView();
- widgetView->ConnectSignal( surface );
- ecore_event_handler_add( ECORE_EVENT_KEY_DOWN, OnKeyDown, surface );
- ecore_event_handler_add( ECORE_EVENT_KEY_UP, OnKeyUp, surface );
+ widgetView->CreateWidgetImageView();
+ widgetView->ConnectSignal( surface );
+ }
+ //get tbm surface from buffer
+ tbm_surface_h tbmSurface = static_cast< tbm_surface_h >( wl_buffer_get_user_data( buffer ) );
+ widgetView->UpdateImageSource( tbmSurface );
}
-
- //get tbm surface from buffer
- tbm_surface_h tbmSurface = static_cast< tbm_surface_h >( wl_buffer_get_user_data( buffer ) );
- widgetView->UpdateImageSource( tbmSurface );
}
static void OnSurfaceMissing( struct tizen_remote_surface* surface, void* data )
{
- //ToDo: WidgetDeletedSignal
+ Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
+
+ if( widgetView )
+ {
+ widgetView->CloseRemoteSurface();
+ }
}
static struct aul_rsm_handler_s remoteSurfaceHandler = {
- OnSurfaceUpdate,
+ OnBufferUpdate,
OnSurfaceMissing,
};
mInstanceId(),
mContentInfo(),
mTitle(),
- mBundle( NULL ),
mWidth( 0 ),
mHeight( 0 ),
mPid( 0 ),
mUpdatePeriod( 0.0 ),
mPreviewVisible( true ),
mStateTextVisible( true ),
- mPermanentDelete( true )
+ mPermanentDelete( false ),
+ mRemoteSurface( NULL )
{
}
mInstanceId(),
mContentInfo( contentInfo ),
mTitle(),
- mBundle( NULL ),
mWidth( width ),
mHeight( height ),
mPid( 0 ),
mUpdatePeriod( updatePeriod ),
mPreviewVisible( true ),
mStateTextVisible( true ),
- mPermanentDelete( true )
+ mPermanentDelete( false ),
+ mRemoteSurface( NULL )
{
}
widget_instance_destroy( mInstanceId.c_str() );
}
}
-
- if( mBundle )
- {
- bundle_free( mBundle );
- }
}
bool WidgetView::PauseWidget()
mPreviewImage.SetSize( mWidth, mHeight );
}
- Self().SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS );
+ Self().SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
+ Self().SetSize( mWidth, mHeight );
+
Self().Add( mPreviewImage );
// State text
void WidgetView::ConnectSignal( tizen_remote_surface* surface )
{
- if( mWidgetImageView )
+ if( mWidgetImageView && surface )
{
mRemoteSurface = surface;
- mWidgetImageView.TouchSignal().Connect( this, &WidgetView::OnTouch );
- mWidgetImageView.WheelEventSignal().Connect( this, &WidgetView::OnWheelEvent );
+
+ Self().TouchSignal().Connect( this, &WidgetView::OnTouch );
+ Self().WheelEventSignal().Connect( this, &WidgetView::OnWheelEvent );
}
}
{
tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
+ if( event.GetPointCount() == 0 || mRemoteSurface == NULL )
+ {
+ return false;
+ }
+
switch( event.GetState( 0 ) )
{
case Dali::PointState::UP:
}
}
+ int button = 1;
+
+ if( type == TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_MOVE )
+ {
+ button = 0 ;
+ }
+
+ Vector2 localPos = event.GetLocalPosition( 0 );
+
tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
type,
- event.GetDeviceId( 0 ),
- 1,
- event.GetLocalPosition( 0 ).x,
- event.GetLocalPosition( 0 ).y,
- event.GetEllipseRadius( 0 ).x,
- event.GetEllipseRadius( 0 ).y,
- event.GetPressure( 0 ),
- event.GetAngle( 0 ).degree,
- TIZEN_INPUT_DEVICE_CLAS_MOUSE,
+ 0,
+ button,
+ (int)localPos.x,
+ (int)localPos.y,
+ wl_fixed_from_double( event.GetEllipseRadius( 0 ).x ),
+ wl_fixed_from_double( event.GetEllipseRadius( 0 ).y ),
+ wl_fixed_from_double( event.GetPressure( 0 ) ),
+ wl_fixed_from_double( event.GetAngle( 0 ).degree ),
+ TIZEN_INPUT_DEVICE_CLAS_TOUCHSCREEN,
TIZEN_INPUT_DEVICE_SUBCLAS_NONE,
"",
event.GetTime()
bool WidgetView::OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event )
{
+ if( mRemoteSurface == NULL )
+ {
+ return false;
+ }
+ //ToDo: We should check TIZEN_INPUT_DEVICE_CLAS_MOUSE
tizen_remote_surface_transfer_mouse_wheel( mRemoteSurface,
event.direction,
event.z,
}
}
+void WidgetView::CloseRemoteSurface()
+{
+ aul_rsm_viewer_unset_surface_handler( mInstanceId.c_str() );
+ mRemoteSurface = NULL;
+}
+
} // namespace Internal
} // namespace WidgetView