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 General Discussion » In one line label and editbox with ribbon Collapse All
Subject Author Date
Sergii Kh Nov 23, 2009 - 2:08 PM

How can make one line label and edittextbox in ribbon interface. ProfUIS 2.85
for example: Name: ______

I try this code but, label is look like button

    CExtRibbonNodeGroup * pRibbonGroupName = new CExtRibbonNodeToolGroup( ID_GROUP_NAME );
    pRibbonGroup->InsertNode(0, pRibbonGroupName);

    CExtCustomizeCmdTreeNode * pNodeName =    new CExtRibbonNodeLabel(ID_LNAME, 0, 0, _T("Name:"));
    pRibbonGroupName->InsertNode(0, pNodeName);

    CExtCustomizeCmdTreeNode *pNodeNameEditBox =    new CExtRibbonNode( ID_NAME_ENTER );
    pNodeNameEditBox->ModifyFlags( __ECTN_TBB_TEXT_FIELD );
    pNodeNameEditBox->TextFieldWidthSet( 40 );
    pRibbonGroupName->InsertNode(0, pNodeNameEditBox);

Sergii Kh Nov 26, 2009 - 1:28 PM

Thank you. It works.
Could you say how can I reduce distance between label and editbox?

Technical Support Nov 27, 2009 - 1:23 PM

There are two solutions:

1) Create and use your own CExtRibbonNodeButton-derived class which instantiates your CExtRibbonButtonGroup button class. Your button class should implement the CExtRibbonButtonGroup::OnRibbonGetOuterGroupDistance() virtual method which returns required distances before/after group of buttons.


2) Override the CExtRibbonPage::_OnRibbonContentPaddingGetOuterGroupDistance() internal virtual method in your ribbon bar class. Return required distances for required group buttons.

In both cases you can even return negative distances.

Technical Support Nov 26, 2009 - 2:08 AM

We inserted 3 groups with labels into the Clipboard group of buttons on the Home ribbon tab page in the RibbonBar sample application:

CExtRibbonNode * CMainFrame::_InitRibbonNode_Home_Clipboard()
{
CExtRibbonNodeGroup * pRibbonGroup =
                        new CExtRibbonNodeGroup( ID_RIBBON_PAGE_CLIPBOARD );
            pRibbonGroup->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_LPCTSTR( _T("ZC") ) ), false );
            VERIFY( pRibbonGroup->m_iconBig.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) ) );
            pRibbonGroup->m_iconBig.m_bmpNormal.Make32();
            pRibbonGroup->m_iconBig.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    CExtCustomizeCmdScreenTip * pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->TextMainSet( _T("Clipboard") );
                                                                                    pRibbonGroup->CmdScreenTipAttach( pCmdScreenTip );
            pRibbonGroup->SetTextInToolbar( _T("Clipboard") );

CExtRibbonNodeDialogLauncher * pRibbonDLB =
                        new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD );
                                                                                    pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->CaptionMainSet( _T("Clipboard") );
                                                                                    pCmdScreenTip->TextMainSet( _T("Show the Clipboard\nTask Pane.") );
                                                                                    pCmdScreenTip->BmpMainGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_CLIPBOARD_DLB_TIP_IMAGE) );
                                                                                    pCmdScreenTip->BmpMainGet().Make32();
                                                                                    pCmdScreenTip->BmpMainGet().AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pRibbonDLB->CmdScreenTipAttach( pCmdScreenTip );
            pRibbonDLB->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_LPCTSTR( _T("FO") ) ), false );
            pRibbonGroup->InsertNode( NULL, pRibbonDLB );


            /////////////////////////////////////////////////////////////////////// 
            // BENGIN: NEW TEST CODE
            for( int nTest = 0; nTest < 3; nTest ++ )
            {
                        CExtRibbonNodeGroup * pTestGroup = new CExtRibbonNodeToolGroup( 123 );
                        pRibbonGroup->InsertNode( NULL, pTestGroup );
                                    CExtRibbonNodeGroup * pTestGroupInner = new CExtRibbonNodeGroup( 123 );
                                    pTestGroup->InsertNode( NULL, pTestGroupInner );
                                                static LPCTSTR g_arrLabelTexts[3] = { _T("TestLabel1"), _T("TestLabel2"), _T("TestLabel3") };
                                                CExtRibbonNodeLabel * pNodeIndentLabel = new CExtRibbonNodeLabel( 123, NULL, 0, g_arrLabelTexts[nTest] );
                                                pTestGroupInner->InsertNode( NULL, pNodeIndentLabel );
                        CExtCustomizeCmdTreeNode * pTestTextField = new CExtRibbonNode( 123 );
                        pTestTextField->ModifyFlags( __ECTN_TBB_TEXT_FIELD /*|__ECTN_TBB_COMBO*/ );
                        INT nFontNameFieldWidth = g_PaintManager.GetPM()->UiScalingDo( 143, CExtPaintManager::__EUIST_X );
                        pTestTextField->TextFieldWidthSet( nFontNameFieldWidth );
                        pTestGroup->InsertNode( NULL, pTestTextField );
            }
            // END: NEW TEST CODE
            /////////////////////////////////////////////////////////////////////// 






//          pRibbonGroup->InsertNode( NULL, new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD ) );
//          pRibbonGroup->InsertNode( NULL, new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD ) );
//          pRibbonGroup->InsertNode( NULL, new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD ) );

// CExtSpinRibbonNode * pNodeSpin = new CExtSpinRibbonNode( 1234 );
//          pRibbonGroup->InsertNode(
//                      NULL,
//                      pNodeSpin
//                      );

CExtRibbonNode * pNodePaste =
                        new CExtRibbonNode( ID_EDIT_PASTE, 0, NULL, 0, _T("Paste") );
            pNodePaste->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’V’) ) ), false );
            pNodePaste->RibbonILE_RuleArrayGet().RemoveAll();
            VERIFY( pNodePaste->m_iconBig.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) ) );
            pNodePaste->m_iconBig.m_bmpNormal.Make32();
            pNodePaste->m_iconBig.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->CaptionMainSet( _T("Paste") );
                                                                                    pCmdScreenTip->TextMainSet( _T("Paste the contents\nof the Clipboard.") );
                                                                                    pCmdScreenTip->BmpMainGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) );
                                                                                    pCmdScreenTip->BmpMainGet().Make32();
                                                                                    pCmdScreenTip->BmpMainGet().AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pCmdScreenTip->CaptionSecondarySet( _T("Press F1 for more help.") );
                                                                                    pCmdScreenTip->BmpSecondaryGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_APP_ABOUT_16x16) );
                                                                                    pCmdScreenTip->BmpSecondaryGet().PreMultiplyRGBChannels( false );
                                                                                    pNodePaste->CmdScreenTipAttach( pCmdScreenTip, true );
                                                                                    pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->CaptionMainSet( _T("Paste") );
                                                                                    pCmdScreenTip->TextMainSet( _T("Click here for more options such as\npasting only the values or\nformatting.") );
                                                                                    pCmdScreenTip->BmpMainGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) );
                                                                                    pCmdScreenTip->BmpMainGet().Make32();
                                                                                    pCmdScreenTip->BmpMainGet().AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pCmdScreenTip->CaptionSecondarySet( _T("Press F1 for more help.") );
                                                                                    pCmdScreenTip->BmpSecondaryGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_APP_ABOUT_16x16) );
                                                                                    pCmdScreenTip->BmpSecondaryGet().PreMultiplyRGBChannels( false );
                                                                                    pNodePaste->CmdScreenTipAttach( pCmdScreenTip, false );
            pRibbonGroup->InsertNode(
                        NULL,
                        pNodePaste
                        );

//          g_CmdManager->CmdAllocPtr(
//                      g_CmdManager->ProfileNameFromWnd( m_hWnd ),
//                      ID_EDIT_PASTE )->m_sMenuText = "12";

pNodePaste->ModifyFlags( __ECTN_TBB_SEPARATED_DROPDOWN );
                                    CExtCustomizeCmdTreeNode * pNodePaste_Paste =
                                                new CExtCustomizeCmdTreeNode( ID_EDIT_PASTE, ID_EDIT_PASTE, NULL, 0, _T("Paste"), _T("&Paste") );
                                    pNodePaste_Paste->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’P’) ) ), false );
                                    pNodePaste->InsertNode(
                                                NULL,
                                                pNodePaste_Paste
                                                );

                                    CExtCustomizeCmdTreeNode * pNodePaste_Special =
                                                new CExtCustomizeCmdTreeNode( ID_EDIT_PASTE_SPECIAL, ID_EDIT_PASTE_SPECIAL, NULL, 0, _T("Paste &Special...") );
                                    pNodePaste_Special->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’S’) ) ), false );
                                    pNodePaste->InsertNode(
                                                NULL,
                                                pNodePaste_Special
                                                );

                                    CExtCustomizeCmdTreeNode * pNodePaste_Hyperlink =
                                                new CExtCustomizeCmdTreeNode( ID_EDIT_PASTE_AS_HYPERLINK, ID_EDIT_PASTE_AS_HYPERLINK, NULL, 0, _T("Paste as &Hyperlink") );
                                    pNodePaste_Hyperlink->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’H’) ) ), false );
                                    pNodePaste->InsertNode(
                                                NULL,
                                                pNodePaste_Hyperlink
                                                );

//          pRibbonGroup->InsertNode(
//                      NULL,
//                      new CExtRibbonNode // separator
//                      );

CExtRibbonNode * pNodeCopy =
                        new CExtRibbonNode( ID_EDIT_COPY, 0, NULL, 0, _T("Copy") );
            pNodeCopy->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’C’) ) ), false );
//pNodeCopy->ModifyFlags( __ECTN_TBB_UNDO_REDO|__ECTN_TBB_SEPARATED_DROPDOWN );
            pNodeCopy->RibbonILE_RuleRemoveLargeILV();
            VERIFY( pNodeCopy->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_COPY_SMALL) ) );
            pNodeCopy->m_iconSmall.m_bmpNormal.Make32();
            pNodeCopy->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->CaptionMainSet( _T("Copy") );
                                                                                    pCmdScreenTip->TextMainSet( _T("Copy the selection and\nput it on the Clipboard.") );
                                                                                    pNodeCopy->CmdScreenTipAttach( pCmdScreenTip );
            pRibbonGroup->InsertNode(
                        NULL,
                        pNodeCopy
                        );

CExtRibbonNode * pNodeCut =
                        new CExtRibbonNode( ID_EDIT_CUT, 0, NULL, 0, _T("Cut") );
            pNodeCut->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’X’) ) ), false );
            pNodeCut->RibbonILE_RuleRemoveLargeILV();
            VERIFY( pNodeCut->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_CUT_SMALL) ) );
            pNodeCut->m_iconSmall.m_bmpNormal.Make32();
            pNodeCut->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->CaptionMainSet( _T("Cut") );
                                                                                    pCmdScreenTip->TextMainSet( _T("Cut the selection from the document\nand put it on the Clipboard.") );
                                                                                    pNodeCut->CmdScreenTipAttach( pCmdScreenTip );
            pRibbonGroup->InsertNode(
                        NULL,
                        pNodeCut
                        );

CExtRibbonNode * pNodeClearFormatting =
                        new CExtRibbonNode( ID_EDIT_CLEAR, 0, NULL, 0, _T("Clear Formatting") );
            pNodeClearFormatting->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_LPCTSTR( _T("FP") ) ), false );
            pNodeClearFormatting->RibbonILE_RuleRemoveLargeILV();
            VERIFY( pNodeClearFormatting->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_CLEAR_SMALL) ) );
            pNodeClearFormatting->m_iconSmall.m_bmpNormal.Make32();
            pNodeClearFormatting->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
                                                                                    pCmdScreenTip = new CExtCustomizeCmdScreenTip;
                                                                                    pCmdScreenTip->CaptionMainSet( _T("Clear Formatting") );
                                                                                    pCmdScreenTip->TextMainSet( _T("Copy the formatting from one place\nand apply it to an other.\n\nUse this button to apply\nthe same formatting to multiple\nplaces in the document.") );
                                                                                    pCmdScreenTip->CaptionSecondarySet( _T("Press F1 for more help.") );
                                                                                    pCmdScreenTip->BmpSecondaryGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_APP_ABOUT_16x16) );
                                                                                    pCmdScreenTip->BmpSecondaryGet().PreMultiplyRGBChannels( false );
                                                                                    pNodeClearFormatting->CmdScreenTipAttach( pCmdScreenTip );
            pRibbonGroup->InsertNode(
                        NULL,
                        pNodeClearFormatting
                        );

            return pRibbonGroup;
}




Sergii Kh Nov 24, 2009 - 11:10 PM

I try use CExtRibbonNodeGroup but I will getting result in different lines.
Name:
__________
How change to get result in same line?

Technical Support Nov 24, 2009 - 2:16 PM

You should create label and text field nodes inside a CExtRibbonNodeGroup group node instead of the CExtRibbonNodeToolGroup toolbar group node.