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 » The size of dynamic bar in floating state restores wrong Collapse All
Subject Author Date
Gevork Odabashyan Oct 6, 2006 - 4:05 AM

Hellow

Please do the following steps in attached sample:
1. Open new dynamic bar ("Create dynamic bar\Bar 1"). Keep in mind it’s floating size.
2. Switch UI profile from Profile 1 to Profile 2 ("Switch Profile\To Profile 2").
3. Switch UI profile from Profile 2 to Profile 1 ("Switch Profile\To Profile 1"). Check the size of dynamic bar. It’s restored wrong.

Gevork Odabashyan Oct 6, 2006 - 4:06 AM

The sapmple dynamic_bar_sample3.rar was sent to support@prof-uis.com

Technical Support Oct 6, 2006 - 9:36 AM

We received the project and working on the issue now. Thank you.

Gevork Odabashyan Oct 10, 2006 - 2:44 AM

Could you correct this problem as soon as possible? It’s very critical for us now.

Technical Support Oct 12, 2006 - 11:54 AM

We fixed the bug so you can download and use the update from our ftp site.
PS We sent you an e-mail but it returned back:

Undeliverable Mail

Gevork Odabashyan Oct 16, 2006 - 8:36 AM

Hellow

I’ve found two problems after this update. The first is that CExtEdit doesn’t respond on keyboard input. The second is that you need to click CExtButton twice to make an action. To illustrate the problems, click Test\Dialog in test sample. The sample foss-test3.rar was sent to support@prof-uis.com.

Technical Support Oct 17, 2006 - 10:26 AM

Thank you for reporting the bug. To fix it, please update this version of the CExtPopupMenuWnd::_EndSequence() overloaded method (../Prof-UIS/Src/ExtPopupMenuWnd.cpp):

void CExtPopupMenuWnd::_EndSequence(
    UINT nCmdID, // = 0
    HWND hWndDeliver // = NULL
    )
{
__PROF_UIS_MANAGE_STATE;
    ASSERT_VALID( this );
HWND hWndOwn = GetSafeHwnd();
    ASSERT( hWndOwn != NULL );
    if(        (! _IsFadeOutAnimation() )
        &&    m_ctrlShadow.GetSafeHwnd() != NULL
        )
        m_ctrlShadow.DestroyWindow();
#ifdef _DEBUG
    if( hWndDeliver != NULL )
    {
        ASSERT( ::IsWindow(hWndDeliver) );
    }
#endif
    ASSERT( m_hWndCmdReceiver != NULL );
    ASSERT( ::IsWindow(m_hWndCmdReceiver) );
CExtPopupMenuSite & _site = GetSite();
UINT * lpnResultCmdID = _site.GetTargetCmdIdPtr();
    if( lpnResultCmdID != NULL )
        *lpnResultCmdID = nCmdID;
DWORD dwTrackFlags = TrackFlagsGet();
CExtCmdItem * pCmdItem = NULL;
    if( nCmdID > 0 && ((dwTrackFlags&TPMX_NO_WM_COMMAND)==0) )
    {
        pCmdItem =
            g_CmdManager->CmdGetPtr(
                g_CmdManager->ProfileNameFromWnd( m_hWndCmdReceiver ),
                nCmdID
                );
    }
CExtPopupMenuWnd * pTopPopup = _site.GetInstance();
    ASSERT_VALID( pTopPopup );
HWND hWndTopPopup = pTopPopup->GetSafeHwnd();
    ASSERT(
        hWndTopPopup != NULL
        && ::IsWindow( hWndTopPopup )
        );
    if( hWndDeliver == NULL )
        hWndDeliver = m_hWndCmdReceiver;
CWnd * pTopLevelParent = GetTopLevelParent();
HWND hWndTopLevelParent = pTopLevelParent->GetSafeHwnd();
CRect rcBkUpdate( 0, 0, 0, 0 );
bool bFadeOut = _IsFadeOutAnimation();
    if( ! bFadeOut )
    {
        CExtPopupMenuWnd * pPopup = this;
        for( ; pPopup != NULL; pPopup = pPopup->m_pWndParentMenu )
        {
            ASSERT_VALID( pPopup );
            ASSERT( pPopup->GetSafeHwnd() != NULL );
            ASSERT( ::IsWindow( pPopup->GetSafeHwnd() ) );
            CRect rcPopup;
            pPopup->GetWindowRect( &rcPopup );
            if( rcBkUpdate.IsRectEmpty() )
                rcBkUpdate = rcPopup;
            else
            {
                CRect rcPrev( rcBkUpdate );
                rcBkUpdate.UnionRect( &rcPrev, &rcPopup );
            }
            CExtPopupMenuTipWnd & _tipWnd = pPopup->GetTip();
            if(        _tipWnd.GetSafeHwnd() != NULL
                &&    ::IsWindow( _tipWnd.GetSafeHwnd() )
                &&    _tipWnd.IsWindowVisible()
                )
            {
                CRect rcToolTip;
                _tipWnd.GetWindowRect( &rcToolTip );
                CRect rcPrev( rcBkUpdate );
                rcBkUpdate.UnionRect( &rcPrev, &rcToolTip );
            }
            pPopup->ShowWindow( SW_HIDE );
        }
        if( ! g_PaintManager.m_bIsWin2000orLater )
            CExtPaintManager::stat_PassPaintMessages();
        if(    !rcBkUpdate.IsRectEmpty()
            &&    hWndTopLevelParent != NULL
            && ::IsWindow(hWndTopLevelParent)
            )
        {
            ::ScreenToClient(
                hWndTopLevelParent, (LPPOINT)&rcBkUpdate);
            ::ScreenToClient(
                hWndTopLevelParent, ((LPPOINT)&rcBkUpdate)+1
                );
        }
    }
    if(        m_hWndNotifyMenuClosed != NULL
        &&    ::IsWindow( m_hWndNotifyMenuClosed )
        )
        ::SendMessage(
            m_hWndNotifyMenuClosed,
            g_nMsgNotifyMenuClosed,
            WPARAM(nCmdID),
            LPARAM( this )
            );
    if( ! bFadeOut )
    {
        if( ::IsWindow( hWndTopPopup ) )
            ::PostMessage( hWndTopPopup, WM_CLOSE, 0, 0 );
        CExtToolControlBar::_CloseCustomMenusAll();
        if( CExtToolControlBar::g_bMenuTracking )
            CExtToolControlBar::_CloseTrackingMenus();
    }
    if( ! ::IsWindow( hWndOwn ) )
        return;
    if(        ::IsWindow(hWndDeliver)
        &&    (! _FindCustomizeMode() )
        )
    {
        if( pCmdItem != NULL )
        {
            if( (dwTrackFlags&TPMX_NO_WM_COMMAND)==0 )
            {
                if( ! bFadeOut )
                    _site.DoneInstance();
                VERIFY( pCmdItem->Deliver(hWndDeliver) );
            }
        }
        else
        {
            if(        bFadeOut
                &&    m_nCurIndex >= 0
                &&    ItemGetInfo( m_nCurIndex ).IsPopup()
                )
            {
                CExtPopupMenuWnd * pPopup = ItemGetInfo( m_nCurIndex ).GetPopup();
                if( pPopup->GetSafeHwnd() != NULL )
                {
                    INT nSaved = pPopup->m_nFadeOutAnimationStepCount;
                    if( nCmdID == 0 )
                        pPopup->m_nFadeOutAnimationStepCount = -1;
                    pPopup->_EndSequence( nCmdID, hWndDeliver );
                    pPopup->m_nFadeOutAnimationStepCount = nSaved;
                    return;
                }
            }
            if(        (dwTrackFlags&TPMX_NO_WM_COMMAND) == 0 
                &&    nCmdID != 0
                )
                ::PostMessage(
                    hWndDeliver,
                    WM_COMMAND,
                    WPARAM(nCmdID),
                    0L
                    );
        }
        g_SoundPlayer->PlaySound(
            CExtSoundPlayer::__ON_MENU_CMD_CLICKED
            );
    }
    if( bFadeOut )
        DestroyWindow();
    else
        _site.DoneInstance();
}

Gevork Odabashyan Oct 13, 2006 - 9:11 AM

I have downloaded the update. It seems all works fine. Thanks for support!

Technical Support Oct 11, 2006 - 10:41 AM

We are still working on this problem and hope to release this fix in two days.