Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Floating bar title color problem in 2.83 Collapse All
Subject Author Date
Offer Har Jun 16, 2008 - 10:33 AM

In 2.82 and before, the caption bar of floating bars in black theme was orange for the focused one, and gray to all others. In 2.83 all of them are orange.


The only time the non-focused become gray is when the main frame loses focus (click on another application, all become gray but the focus one, which remains orange)


Is this a bug?


Regards,


Ron.

Technical Support Jun 16, 2008 - 1:58 PM

Fixed, please update the source code for the following method:

void CExtControlBar::OnUpdateCmdUI(
      CFrameWnd * pTarget,
      BOOL bDisableIfNoHndler
      )
{
      if( m_bPresubclassDialogMode || m_bDragging || m_bRowRecalcing || m_bRowResizing || (CExtControlBar::_DraggingGetBar() != NULL) )
            return;
      pTarget; bDisableIfNoHndler;
      if( ( GetStyle() & WS_VISIBLE ) == 0 &&   ( ! m_bUseInvisibleCmdUI ) )
            return;
CPoint ptScreen;
      if( ! ::GetCursorPos( &ptScreen ) )
            return;
bool bNeedRepaint = false;
UINT nHT = NcButtons_HitTest( ptScreen );
      if( nHT == HTCLIENT )
      {
            if( m_bNcAreaBtnTracking )
                  bNeedRepaint = true;
            m_bNcAreaBtnTracking = false;
            if( ( ! CExtPopupMenuWnd::IsKeyPressed( VK_LBUTTON ) ) && GetSafeHwnd() != NULL && ::GetCapture() == m_hWnd )
                  ::ReleaseCapture();
      }
      else
      {
            if( ! m_bNcAreaBtnTracking )
                  bNeedRepaint = true;
            m_bNcAreaBtnTracking = true;
      }
HWND hTmpWndFocus = ::GetFocus();
bool bWindowActiveOldVal = m_bWindowActive;
      m_bWindowActive = ( hTmpWndFocus != NULL && (  GetSafeHwnd() == hTmpWndFocus || ::IsChild( GetSafeHwnd(), hTmpWndFocus ) ) );
      if( bWindowActiveOldVal != m_bWindowActive )
            bNeedRepaint = true;
      if( bNeedRepaint )
      {
            SendMessage( WM_NCPAINT );
            GetParent()->SendMessage( WM_NCPAINT );
            if( IsVisible() )
            {
                  CFrameWnd * pFrame = GetParentFrame();
                  if( pFrame->IsKindOf( RUNTIME_CLASS(CExtMiniDockFrameWnd) )  )
                        pFrame->SendMessage( WM_NCPAINT );
            }
      }
}