Ejemplo n.º 1
0
BOOL CRollupCtrl::OnCommand(WPARAM wParam, LPARAM lParam) 
{
	//PopupMenu command ExpandAllPages
	if		(LOWORD(wParam)==RC_IDM_EXPANDALL)			ExpandAllPages(TRUE,TRUE);
	else if	(LOWORD(wParam)==RC_IDM_COLLAPSEALL)		ExpandAllPages(FALSE,TRUE);

	//PopupMenu command ExpandPage
	else if (LOWORD(wParam)>=RC_IDM_STARTPAGES
		&&	 LOWORD(wParam)<RC_IDM_STARTPAGES+GetPagesCount())
	{
		int idx = LOWORD(wParam)-RC_IDM_STARTPAGES;
		int id = m_PageList[idx]->id;
		ExpandPage(id, !IsPageExpanded(id),TRUE,TRUE );
	}

	//Button command
	else if (HIWORD(wParam)==BN_CLICKED)
	{
		int idx = GetPageIdxFromButtonHWND((HWND)lParam);
		if (idx!=-1) {
			RC_PAGEINFO* pi = m_PageList[idx];
			ExpandPage(pi->id, !pi->bExpanded,TRUE,TRUE);
			return 0;
		}
	}

	return CWnd::OnCommand(wParam, lParam);
}
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
// OnCommand
//---------------------------------------------------------------------------
BOOL CRollupCtrl::OnCommand(WPARAM wParam, LPARAM lParam) 
{
        if (LOWORD(wParam)==RC_MID_COLLAPSEALL) {
                ExpandAllPages(FALSE);
                return TRUE;

        } else if (LOWORD(wParam)==RC_MID_EXPANDALL) {
                ExpandAllPages(TRUE);
                return TRUE;

        }       else if (LOWORD(wParam)>=RC_MID_STARTPAGES
                &&       LOWORD(wParam)<RC_MID_STARTPAGES+GetPagesCount())
        {
                int idx = LOWORD(wParam)-RC_MID_STARTPAGES;
                ExpandPage(idx, !IsPageExpanded(idx) );

        } else if (HIWORD(wParam)==BN_CLICKED) {
                int idx = GetPageIdxFromButtonHWND((HWND)lParam);
                if (idx!=-1) {
                        RC_PAGEINFO*    pi = m_PageList[idx];
                        /****** add some codes to change caption ******/
                        CString alter;
                        alter = (pi->cstrCaption);
                        if(!pi->bExpanded)
                        {
                                alter.SetAt(0, '-');
                                SetPageCaption(idx, (LPCSTR)(alter.GetBuffer()));
                        }
                        else 
                        {
                                alter.SetAt(0, '+');
                                SetPageCaption(idx, (LPCSTR)(alter.GetBuffer()));
                        }
                        /****** ******/
                        ExpandPage(idx, !pi->bExpanded);
                        SetFocus();
                        return TRUE;
                }
        }

        return CWnd::OnCommand(wParam, lParam);
}
Ejemplo n.º 3
0
//---------------------------------------------------------------------------
// OnCommand
//---------------------------------------------------------------------------
BOOL CRollupCtrl::OnCommand(WPARAM wParam, LPARAM lParam) 
{
	if (LOWORD(wParam)==RC_MID_COLLAPSEALL) {
		ExpandAllPages(FALSE);
		return TRUE;

	} else if (LOWORD(wParam)==RC_MID_EXPANDALL) {
		ExpandAllPages(TRUE);
		return TRUE;

	}	else if (LOWORD(wParam)>=RC_MID_STARTPAGES
		&&	 LOWORD(wParam)<RC_MID_STARTPAGES+GetPagesCount())
	{
		int idx = LOWORD(wParam)-RC_MID_STARTPAGES;
		ExpandPage(idx, !IsPageExpanded(idx) );

	} else if (HIWORD(wParam)==BN_CLICKED) {
		int idx = GetPageIdxFromButtonHWND((HWND)lParam);
		if (idx!=-1) {
			RC_PAGEINFO*	pi = m_PageList[idx];
			ExpandPage(idx, !pi->bExpanded);
			SetFocus();
			/*
			if( IsPageExpanded(2) == true)
			{
				CPageInsertDlg pInsertPage;
				pInsertPage.UpdateEditControls();
			
			}
			*/

			return TRUE;

		}
	}

	return CWnd::OnCommand(wParam, lParam);
}
Ejemplo n.º 4
0
int CRollupCtrl::_InsertPage(LPCTSTR caption, CDialog* pwndTemplate, int idx, BOOL bAutoDestroyTpl,BOOL bAutoExpand)
{
	ASSERT(pwndTemplate!=NULL);
	ASSERT(pwndTemplate->m_hWnd!=NULL);

	CRect r; GetClientRect(r);

	CColorCtrl<CButton>* groupbox = new CColorCtrl<CButton>;
	groupbox->Create("", WS_CHILD|BS_GROUPBOX, r, this, 0 );
	if (m_bkColor != 0)
	{
		groupbox->SetBkColor(m_bkColor);
	}

	CCustomButton* but = new CCustomButton;
	but->Create(caption, WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_FLAT, r, this, 0 ); 
	if (m_bkColor != 0)
	{
		but->SetBkColor(m_bkColor);
	}

	HFONT hfont= (HFONT)EditorSettings::Get().Gui.hSystemFont;
	CFont* font = CFont::FromHandle(hfont);
	but->SetFont(font);

	RC_PAGEINFO*	pi	= new RC_PAGEINFO;
	pi->id				= m_lastId++;
	pi->bExpanded		= FALSE;
	pi->bEnable			= TRUE;
	pi->pwndTemplate	= pwndTemplate;
	pi->pwndButton		= but;
	pi->pwndGroupBox	= groupbox;
	pi->pOldDlgProc		= (WNDPROC)::GetWindowLongPtr(pwndTemplate->m_hWnd, DWLP_DLGPROC);
	pi->pOldButProc		= (WNDPROC)::GetWindowLongPtr(but->m_hWnd, GWLP_WNDPROC);
	pi->bAutoDestroyTpl	= bAutoDestroyTpl;

	int newidx;
	if (idx<0)	{
		m_PageList.push_back(pi);
		newidx = m_PageList.size()-1;
	}
	else	{ m_PageList.insert(m_PageList.begin()+idx,pi); newidx=idx; }

	::SetWindowLongPtr(pwndTemplate->m_hWnd, GWLP_USERDATA,	(LONG_PTR)m_PageList[newidx]);
	::SetWindowLongPtr(pwndTemplate->m_hWnd, DWLP_USER,		(LONG_PTR)this);

	::SetWindowLongPtr(but->m_hWnd, GWLP_USERDATA,	(LONG_PTR)m_PageList[newidx]);

	::SetWindowLongPtr(pwndTemplate->m_hWnd, DWLP_DLGPROC, (LONG_PTR)CRollupCtrl::DlgWindowProc);

	::SetWindowLongPtr(but->m_hWnd, GWLP_WNDPROC, (LONG_PTR)CRollupCtrl::ButWindowProc);

	m_nPageHeight+=RC_PGBUTTONHEIGHT+(RC_GRPBOXINDENT*2);
	RecalLayout();

	bool bExpanded = stl::FindInMap( m_expandedMap,caption,bAutoExpand==TRUE );
	if (bExpanded)
	{
		ExpandPage( pi->id,bExpanded,FALSE );
	}
	return pi->id;
}