Compile fix for wxDataFormat cast,
Unfinished code for wxDragCopy vs. wxDragMove, Corrected key accel code for wxFrame as children of wxFrame. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -97,7 +97,11 @@ wxDataObjectComposite::GetPreferredFormat(Direction WXUNUSED(dir)) const
|
|||||||
{
|
{
|
||||||
wxSimpleDataObjectList::Node *node = m_dataObjects.Item( m_preferred );
|
wxSimpleDataObjectList::Node *node = m_dataObjects.Item( m_preferred );
|
||||||
|
|
||||||
|
#ifdef __WXGTK__
|
||||||
|
wxCHECK_MSG( node, wxDataFormat(wxDF_INVALID), wxT("no preferred format") );
|
||||||
|
#else
|
||||||
wxCHECK_MSG( node, wxDataFormat((unsigned short) wxDF_INVALID), wxT("no preferred format") );
|
wxCHECK_MSG( node, wxDataFormat((unsigned short) wxDF_INVALID), wxT("no preferred format") );
|
||||||
|
#endif
|
||||||
|
|
||||||
wxDataObjectSimple* dataObj = node->GetData();
|
wxDataObjectSimple* dataObj = node->GetData();
|
||||||
|
|
||||||
|
@@ -188,8 +188,8 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
|
|||||||
this is only valid for the duration of this call */
|
this is only valid for the duration of this call */
|
||||||
drop_target->SetDragContext( context );
|
drop_target->SetDragContext( context );
|
||||||
|
|
||||||
/* TODO: what should be the default behaviour? Copy or move? */
|
|
||||||
wxDragResult result = wxDragMove;
|
wxDragResult result = wxDragMove;
|
||||||
|
if (context->suggested_action == GDK_ACTION_COPY) result = wxDragCopy;
|
||||||
|
|
||||||
if (drop_target->m_firstMotion)
|
if (drop_target->m_firstMotion)
|
||||||
{
|
{
|
||||||
@@ -202,12 +202,13 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
|
|||||||
result = drop_target->OnDragOver( x, y, result );
|
result = drop_target->OnDragOver( x, y, result );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we don't yet handle which "actions" (i.e. copy or move)
|
|
||||||
the target accepts. so far we simply accept the
|
|
||||||
suggested action. TODO. */
|
|
||||||
bool ret = result != wxDragNone;
|
bool ret = result != wxDragNone;
|
||||||
if (ret)
|
if (ret)
|
||||||
|
{
|
||||||
|
GdkDragAction action = GDK_ACTION_MOVE;
|
||||||
|
if (result == wxDragCopy) action == GDK_ACTION_COPY;
|
||||||
gdk_drag_status( context, context->suggested_action, time );
|
gdk_drag_status( context, context->suggested_action, time );
|
||||||
|
}
|
||||||
|
|
||||||
/* after this, invalidate the drop_target's GdkDragContext */
|
/* after this, invalidate the drop_target's GdkDragContext */
|
||||||
drop_target->SetDragContext( (GdkDragContext*) NULL );
|
drop_target->SetDragContext( (GdkDragContext*) NULL );
|
||||||
@@ -254,6 +255,11 @@ static gboolean target_drag_drop( GtkWidget *widget,
|
|||||||
this is only valid for the duration of this call */
|
this is only valid for the duration of this call */
|
||||||
drop_target->SetDragTime( time );
|
drop_target->SetDragTime( time );
|
||||||
|
|
||||||
|
/*
|
||||||
|
wxDragResult result = wxDragMove;
|
||||||
|
if (context->suggested_action == GDK_ACTION_COPY) result = wxDragCopy;
|
||||||
|
*/
|
||||||
|
|
||||||
bool ret = drop_target->OnDrop( x, y );
|
bool ret = drop_target->OnDrop( x, y );
|
||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -278,6 +284,11 @@ static gboolean target_drag_drop( GtkWidget *widget,
|
|||||||
GdkAtom format = drop_target->GetMatchingPair();
|
GdkAtom format = drop_target->GetMatchingPair();
|
||||||
wxASSERT( format );
|
wxASSERT( format );
|
||||||
|
|
||||||
|
/*
|
||||||
|
GdkDragAction action = GDK_ACTION_MOVE;
|
||||||
|
if (result == wxDragCopy) action == GDK_ACTION_COPY;
|
||||||
|
context->action = action;
|
||||||
|
*/
|
||||||
/* this should trigger an "drag_data_received" event */
|
/* this should trigger an "drag_data_received" event */
|
||||||
gtk_drag_get_data( widget,
|
gtk_drag_get_data( widget,
|
||||||
context,
|
context,
|
||||||
|
@@ -113,7 +113,8 @@ static void wxMenubarUnsetInvokingWindow( wxMenu *menu, wxWindow *win )
|
|||||||
|
|
||||||
#if (GTK_MINOR_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent()) top_frame = top_frame->GetParent();
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native hot keys */
|
/* support for native hot keys */
|
||||||
gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
@@ -135,8 +136,8 @@ static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
|
|||||||
|
|
||||||
#if (GTK_MINOR_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent())
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
top_frame = top_frame->GetParent();
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native hot keys */
|
/* support for native hot keys */
|
||||||
gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
@@ -157,8 +158,8 @@ void wxMenuBar::SetInvokingWindow( wxWindow *win )
|
|||||||
m_invokingWindow = win;
|
m_invokingWindow = win;
|
||||||
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent())
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
top_frame = top_frame->GetParent();
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native key accelerators indicated by underscroes */
|
/* support for native key accelerators indicated by underscroes */
|
||||||
gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
@@ -178,8 +179,8 @@ void wxMenuBar::UnsetInvokingWindow( wxWindow *win )
|
|||||||
m_invokingWindow = (wxWindow*) NULL;
|
m_invokingWindow = (wxWindow*) NULL;
|
||||||
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent())
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
top_frame = top_frame->GetParent();
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native key accelerators indicated by underscroes */
|
/* support for native key accelerators indicated by underscroes */
|
||||||
gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
|
@@ -188,8 +188,8 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
|
|||||||
this is only valid for the duration of this call */
|
this is only valid for the duration of this call */
|
||||||
drop_target->SetDragContext( context );
|
drop_target->SetDragContext( context );
|
||||||
|
|
||||||
/* TODO: what should be the default behaviour? Copy or move? */
|
|
||||||
wxDragResult result = wxDragMove;
|
wxDragResult result = wxDragMove;
|
||||||
|
if (context->suggested_action == GDK_ACTION_COPY) result = wxDragCopy;
|
||||||
|
|
||||||
if (drop_target->m_firstMotion)
|
if (drop_target->m_firstMotion)
|
||||||
{
|
{
|
||||||
@@ -202,12 +202,13 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
|
|||||||
result = drop_target->OnDragOver( x, y, result );
|
result = drop_target->OnDragOver( x, y, result );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we don't yet handle which "actions" (i.e. copy or move)
|
|
||||||
the target accepts. so far we simply accept the
|
|
||||||
suggested action. TODO. */
|
|
||||||
bool ret = result != wxDragNone;
|
bool ret = result != wxDragNone;
|
||||||
if (ret)
|
if (ret)
|
||||||
|
{
|
||||||
|
GdkDragAction action = GDK_ACTION_MOVE;
|
||||||
|
if (result == wxDragCopy) action == GDK_ACTION_COPY;
|
||||||
gdk_drag_status( context, context->suggested_action, time );
|
gdk_drag_status( context, context->suggested_action, time );
|
||||||
|
}
|
||||||
|
|
||||||
/* after this, invalidate the drop_target's GdkDragContext */
|
/* after this, invalidate the drop_target's GdkDragContext */
|
||||||
drop_target->SetDragContext( (GdkDragContext*) NULL );
|
drop_target->SetDragContext( (GdkDragContext*) NULL );
|
||||||
@@ -254,6 +255,11 @@ static gboolean target_drag_drop( GtkWidget *widget,
|
|||||||
this is only valid for the duration of this call */
|
this is only valid for the duration of this call */
|
||||||
drop_target->SetDragTime( time );
|
drop_target->SetDragTime( time );
|
||||||
|
|
||||||
|
/*
|
||||||
|
wxDragResult result = wxDragMove;
|
||||||
|
if (context->suggested_action == GDK_ACTION_COPY) result = wxDragCopy;
|
||||||
|
*/
|
||||||
|
|
||||||
bool ret = drop_target->OnDrop( x, y );
|
bool ret = drop_target->OnDrop( x, y );
|
||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -278,6 +284,11 @@ static gboolean target_drag_drop( GtkWidget *widget,
|
|||||||
GdkAtom format = drop_target->GetMatchingPair();
|
GdkAtom format = drop_target->GetMatchingPair();
|
||||||
wxASSERT( format );
|
wxASSERT( format );
|
||||||
|
|
||||||
|
/*
|
||||||
|
GdkDragAction action = GDK_ACTION_MOVE;
|
||||||
|
if (result == wxDragCopy) action == GDK_ACTION_COPY;
|
||||||
|
context->action = action;
|
||||||
|
*/
|
||||||
/* this should trigger an "drag_data_received" event */
|
/* this should trigger an "drag_data_received" event */
|
||||||
gtk_drag_get_data( widget,
|
gtk_drag_get_data( widget,
|
||||||
context,
|
context,
|
||||||
|
@@ -113,7 +113,8 @@ static void wxMenubarUnsetInvokingWindow( wxMenu *menu, wxWindow *win )
|
|||||||
|
|
||||||
#if (GTK_MINOR_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent()) top_frame = top_frame->GetParent();
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native hot keys */
|
/* support for native hot keys */
|
||||||
gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
@@ -135,8 +136,8 @@ static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
|
|||||||
|
|
||||||
#if (GTK_MINOR_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent())
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
top_frame = top_frame->GetParent();
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native hot keys */
|
/* support for native hot keys */
|
||||||
gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
@@ -157,8 +158,8 @@ void wxMenuBar::SetInvokingWindow( wxWindow *win )
|
|||||||
m_invokingWindow = win;
|
m_invokingWindow = win;
|
||||||
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent())
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
top_frame = top_frame->GetParent();
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native key accelerators indicated by underscroes */
|
/* support for native key accelerators indicated by underscroes */
|
||||||
gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
@@ -178,8 +179,8 @@ void wxMenuBar::UnsetInvokingWindow( wxWindow *win )
|
|||||||
m_invokingWindow = (wxWindow*) NULL;
|
m_invokingWindow = (wxWindow*) NULL;
|
||||||
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
|
||||||
wxWindow *top_frame = win;
|
wxWindow *top_frame = win;
|
||||||
while (top_frame->GetParent())
|
while (top_frame->GetParent() && !(top_frame->GetParent()->m_isFrame))
|
||||||
top_frame = top_frame->GetParent();
|
top_frame = top_frame->GetParent();
|
||||||
|
|
||||||
/* support for native key accelerators indicated by underscroes */
|
/* support for native key accelerators indicated by underscroes */
|
||||||
gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) );
|
||||||
|
Reference in New Issue
Block a user