]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/fl/bardragpl.cpp
Typos fixed and further clarification of the Python situation on Panther
[wxWidgets.git] / contrib / src / fl / bardragpl.cpp
index 83ac65f3959c1f8fbd2a3fd2ed293e847085ce83..c3f75adb6c2f0b28696bb813492c6290ecbdef5f 100644 (file)
@@ -456,17 +456,6 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
 {
        bool wasDocked = FALSE;
 
-       if ( mpDraggedBar->mState != wxCBAR_FLOATING && !mpCurPane )
-       {
-               mpLayout->SetBarState( mpDraggedBar, wxCBAR_FLOATING, TRUE );
-       }
-       else
-       if ( mpDraggedBar->mState == wxCBAR_FLOATING && mpCurPane )
-       {
-               mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, FALSE );
-
-               wasDocked = TRUE;
-       }
 
        if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE )
        {
@@ -476,7 +465,10 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
 
                if ( mpSrcPane->mProps.mExactDockPredictionOn && mpCurPane )
                {
-                       bool success = mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE );
+      #ifdef  __WXDEBUG__
+      bool success = 
+      #endif
+                     mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE );
 
                        wxASSERT( success ); // DBG::
 
@@ -510,6 +502,18 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
        {
                // otherwise, if real-time updates option is ON
 
+           if ( mpDraggedBar->mState != wxCBAR_FLOATING && !mpCurPane )
+           {
+                   mpLayout->SetBarState( mpDraggedBar, wxCBAR_FLOATING, TRUE );
+           }
+         else
+           if ( mpDraggedBar->mState == wxCBAR_FLOATING && mpCurPane )
+           {
+                   mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, FALSE );
+
+                   wasDocked = TRUE;
+           }
+
                if ( mpCurPane )
                {
                        mpLayout->GetUpdatesManager().OnStartChanges();
@@ -518,7 +522,10 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
 
                                mpDraggedBar->mUMgrData.SetDirty( TRUE );
 
-                       bool success = mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE );
+      #ifdef  __WXDEBUG__
+      bool success = 
+      #endif
+                     mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE );
 
                        wxASSERT( success ); // DBG ::
 
@@ -641,19 +648,26 @@ void cbBarDragPlugin::OnMouseMove( cbMotionEvent& event )
        wxCursor* pPrevCurs = mpCurCursor;
 
        if ( mpCurPane )
-       
-               mpCurCursor = mpLayout->mpDragCursor;
+    {
+               mpCurCursor = mpLayout->mpNormalCursor;
+    }
        else
        {
-               if ( mpLayout->mFloatingOn && mpSrcPane->mProps.mRealTimeUpdatesOn )
+        // if floating is off, and we are in the client
+        // area, the cursor will be invalid, otherwise
+        // it will be the normal cursor
                
-                       mpCurCursor = mpLayout->mpDragCursor;
+        if (mpLayout->mFloatingOn)
+        {
+                       mpCurCursor = mpLayout->mpNormalCursor;
+        }
                else
+        {
                        mpCurCursor = mpLayout->mpNECursor;
        }
 
+       }
        if ( pPrevCurs != mpCurCursor )
-
                mpLayout->GetParentFrame().SetCursor( *mpCurCursor );
 }
 
@@ -661,7 +675,7 @@ void cbBarDragPlugin::OnLButtonDown( cbLeftDownEvent& event )
 {
        if ( mBarDragStarted  )
        {
-               wxMessageBox("DblClick!");
+               wxMessageBox(wxT("DblClick!"));
        }
 
        event.Skip();
@@ -689,13 +703,36 @@ void cbBarDragPlugin::OnLButtonUp( cbLeftUpEvent& event )
                                        mpLayout->GetUpdatesManager().UpdateNow();
                                }
                                else
+                {
+                    if (mpDraggedBar->mState == wxCBAR_FLOATING)
+                    {
+                               mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, TRUE);
+                    }
+
                                        mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane );
                        }
                }
+             else
+            {
+                if (mpDraggedBar->mState != wxCBAR_FLOATING)
+                {
+                    mpLayout->SetBarState(mpDraggedBar, wxCBAR_FLOATING, true);
+                }
+
+                               mpDraggedBar->mDimInfo.mBounds[ wxCBAR_FLOATING ] = mHintRect;
+                               mpLayout->ApplyBarProperties( mpDraggedBar );
+            }
+               }
        
                mHintRect.width = -1;
 
-               mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor );
+        // In Windows, at least, the frame needs to have a null cursor
+        // else child windows (such as text windows) inherit the cursor
+#if 1
+        mpLayout->GetParentFrame().SetCursor( wxNullCursor );
+#else
+        mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor );
+#endif
 
                mpLayout->ReleaseEventsFromPane( event.mpPane );
                mpLayout->ReleaseEventsFromPlugin( this );
@@ -749,7 +786,7 @@ void cbBarDragPlugin::OnStartBarDragging( cbStartBarDraggingEvent& event )
        mpLayout->CaptureEventsForPane( event.mpPane );
        mpLayout->CaptureEventsForPlugin( this );
 
-       mpLayout->GetParentFrame().SetCursor( *mpLayout->mpDragCursor );
+       mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor );
 
        mBarDragStarted = TRUE;