void CGuiOutLook::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CClientDC dc(this); //------------------------------ if (m_iDrawFrameUp==TRUE) { if (m_rectArrowUp.PtInRect(point)) { m_Avance+=50; RecalLayout(); } else dc.DrawFrameControl(m_rectArrowUp,DFC_SCROLL,DFCS_SCROLLUP); } //----------------------------- if (m_iDrawFrameDown==TRUE) { if (m_rectArrowDown.PtInRect(point)) { m_Avance-=50; RecalLayout(); } else dc.DrawFrameControl(m_rectArrowDown,DFC_SCROLL,DFCS_SCROLLDOWN); } //------------------------------ CWnd::OnLButtonUp(nFlags, point); }
//--------------------------------------------------------------------------- // OnLButtonDown //--------------------------------------------------------------------------- void CRollupCtrl::OnLButtonDown(UINT nFlags, CPoint point) { CRect r; GetClientRect(&r); if (m_PageHeight>r.Height()) { //Click on scroll bar client rect CRect br = CRect(r.right-RC_SCROLLBARWIDTH,r.top, r.right, r.bottom); if ((nFlags&MK_LBUTTON) && br.PtInRect(point)) { SetCapture(); int ClientHeight = r.Height()-4; int SB_Size = ClientHeight-(((m_PageHeight-r.Height())*ClientHeight)/m_PageHeight); int SB_Pos = -(m_StartYPos*ClientHeight)/m_PageHeight; //Click inside scrollbar cursor if ((point.y<(SB_Pos+SB_Size)) && (point.y>SB_Pos)) { m_SBOffset = SB_Pos-point.y+1; //Click outside scrollbar cursor (2 cases => above or below cursor) } else { int distup = point.y-SB_Pos; int distdown = (SB_Pos+SB_Size)-point.y; if (distup<distdown) m_SBOffset = 0; //above else m_SBOffset = -SB_Size; //below } //Calc new m_StartYPos from mouse pos int TargetPos = point.y + m_SBOffset; m_StartYPos=-(TargetPos*m_PageHeight)/(ClientHeight); //Update RecalLayout(); } //Click on scroll bar up button br = CRect(r.right-RC_SCROLLBARWIDTH,r.top, r.right, r.top); if ((nFlags&MK_LBUTTON) && br.PtInRect(point)) { m_StartYPos+=32; RecalLayout(); } //Click on scroll bar down button br = CRect(r.right-RC_SCROLLBARWIDTH,r.bottom, r.right, r.bottom); if ((nFlags&MK_LBUTTON) && br.PtInRect(point)) { m_StartYPos-=32; RecalLayout(); } } CWnd::OnLButtonDown(nFlags, point); }
void CGuiPanelAccess::OnUp() { m_nDif++; m_PressDown=FALSE; m_PressUp=TRUE; RecalLayout(); }
void CGuiPanelAccess::OnDownd() { m_nDif--; m_PressDown=TRUE; m_PressUp=FALSE; RecalLayout(); }
void CContainer::DeleteTab(int m_numtab) { if (m_numtab < m_Numtabs) { CTab* ctn=(CTab*) m_pArray[m_numtab]; if (m_alnTab!=ALN_TOP) ASSERT(ctn->pParent); if (ctn) delete ctn; m_Numtabs--; m_pArray.RemoveAt(m_numtab,1); if (m_Numtabs >0) { if (m_iSelectTab == m_numtab) { m_iSelectTab=m_iSelectTab-1; if (m_iSelectTab< 0) m_iSelectTab=0; CTab* ctn =(CTab*) m_pArray[m_iSelectTab]; CWin* pParentNew=ctn->pParent; ASSERT(pParentNew); pParentNew->ShowWindow(SW_SHOW); } else { if (m_iSelectTab > m_numtab) { m_iSelectTab--; } } RecalLayout(); } } }
void CContainer::Addtab(CWin* pParent, LPCSTR lpMsg, UINT uHmenu) { ASSERT(pParent); m_pArray.SetAtGrow(m_Numtabs,new CTab(pParent,lpMsg, uHmenu)); if (m_Numtabs==0) { pParent->ShowWindow(SW_SHOW); m_iSelectTab=0; } else { pParent->ShowWindow(SW_SHOW); CTab* ctn=(CTab*) m_pArray[m_iSelectTab]; ctn->pParent->ShowWindow(SW_HIDE); pParent->SetFocus(); } m_iSelectTab=m_Numtabs; CTab* ctn=(CTab*) m_pArray[m_iSelectTab]; m_Numtabs++; //if (m_style == S3D) CToolTip.AddTool(GetSafeHwnd(),ctn->lpMsg,CRect(0,0,0,0),m_Numtabs); RecalLayout(); }
void CGuiMiniSplitter::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); RecalLayout(); // TODO: Add your message handler code here }
void CGuiStaticStandar::OnSize(UINT nType, int cx, int cy) { CStatic::OnSize(nType, cx, cy); RecalLayout(); // TODO: Add your message handler code here }
void COutLook::AddItem(UINT Cmd,LPCSTR m_szCaption,int nIndex,LPCSTR m_ToolTip) { m_ArrayButtons.SetAtGrow(m_NumBottoms, new CItems (this,m_imageList.ExtractIcon(nIndex),Cmd, m_szCaption,m_ToolTip,m_TypeOutLook)); m_NumBottoms++; RecalLayout(); }
void CRollupCtrl::ExpandPage(int idx, BOOL bExpand,BOOL bScroll,BOOL bFromUI) { if (!FindPage(idx)) return; //Expand-collapse _ExpandPage( FindPage(idx), bExpand,bFromUI); //Update RecalLayout(); //Scroll to this page (Automatic page visibility) if (bExpand && bScroll) ScrollToPage(idx, FALSE); if (GetOwner()) { CRollupCtrlNotify n; n.hdr.hwndFrom = m_hWnd; n.hdr.idFrom = GetDlgCtrlID(); n.hdr.code = ROLLUPCTRLN_EXPAND; n.nPageId = idx; n.bExpand = bExpand == TRUE; GetOwner()->SendMessage( WM_NOTIFY,(WPARAM)GetDlgCtrlID(),(LPARAM)&n ); } }
void CRollupCtrl::RemoveAllPages() { for (; m_PageList.size();) _RemovePage( m_PageList[0]->id ); RecalLayout(); }
void CGuiFolder::DeleteFolder(int m_iNumFolder) { /* Modified By SunZhenyu 2003/8/22, replace all function lines. */ if (m_iNumFolder >= 0 && m_iNumFolder < m_NumFolders) { m_NumFolders--; CFolderBar * p = (CFolderBar *)m_ArrayFolder.GetAt(m_iNumFolder); if( p ) delete p; m_ArrayFolder.RemoveAt(m_iNumFolder); if (m_iNumFolder == 0 || m_iNumFolder < m_NumFolders) m_iSelected=m_iNumFolder; else if(m_iNumFolder > 0) m_iSelected=m_iNumFolder-1; RecalLayout(); } /* if (m_iNumFolder < m_NumFolders) { m_iNumFolder--; m_ArrayFolder.RemoveAt(m_iNumFolder,m_NumFolders); if (m_iNumFolder == 0 || m_iNumFolder == m_iNumFolder) m_iSelected=m_iNumFolder; else if(m_iNumFolder > 0) m_iSelected=m_iNumFolder-1; RecalLayout(); } */ }
void CGuiTabWnd::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); if (m_Numtabs > 0) RecalLayout(); }
void CGuiFolder::DeleteFolder(int m_iNumFolder, BOOL bUpdate) { if (m_iNumFolder < m_NumFolders) { if (bUpdate && m_iNumFolder == m_NumFolders -1) SelectFolder(0); if (m_iNumFolder == m_iSelected && m_iNumFolder != 0) { SelectFolder(1); m_iSelected = 1; } CFolderBar* pBar = (CFolderBar*)m_ArrayFolder.GetAt(m_iNumFolder); m_ArrayFolder.RemoveAt(m_iNumFolder,1); delete pBar; m_NumFolders--; if (m_iNumFolder == m_NumFolders) m_iSelected = m_iNumFolder - 1; if (m_iNumFolder == 0) m_iSelected = m_NumFolders - 1; else if(m_iNumFolder > 0) m_iSelected = m_iNumFolder - 1; if (bUpdate) { int OldSel = m_iSelected; RecalLayout(); SelectFolder(0); SelectFolder(m_NumFolders - 1); SelectFolder(OldSel); } } }
void CGuiEdit::OnSize(UINT nType, int cx, int cy) { CEdit::OnSize(nType, cx, cy); RecalLayout(); // TODO: Add your message handler code here }
//--------------------------------------------------------------------------- // OnMouseWheel //--------------------------------------------------------------------------- BOOL CRollupCtrl::OnMouseWheel( UINT nFlags, short zDelta, CPoint pt) { m_StartYPos+=(zDelta/4); RecalLayout(); return CWnd::OnMouseWheel(nFlags, zDelta, pt); }
void CGuiTabWnd::DeleteTab(int m_numtab) { if (m_numtab < m_Numtabs) { CGuiTab* ctn=(CGuiTab*) m_pArray[m_numtab]; CWnd* pParen=ctn->pParent; if (m_alnTab!=ALN_TOP) ASSERT_VALID(pParen); m_Numtabs--; /* Modified By SunZhenyu 2003/8/22, Add next 1 lines. */ delete ctn; m_pArray.RemoveAt(m_numtab,1); if (m_Numtabs >0) { if (m_iSelectTab == m_numtab) { m_iSelectTab=0; CGuiTab* ctn =(CGuiTab*) m_pArray[m_iSelectTab]; CWnd* pParentNew=ctn->pParent; ASSERT_VALID(pParentNew); pParentNew->ShowWindow(SW_SHOW); } RecalLayout(); } } }
void CGuiMiniSplitter::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect m_rectCli; GetClientRect(m_rectCli); if (bIniciaArrastre==TRUE) { m_rcSplitterOld=m_rcSplitter; if (point.x < m_rectCli.left+50) m_rcSplitter.left=50; else if (point.x >m_rectCli.right-50) m_rcSplitter.left=m_rectCli.right-55; else { m_rcSplitter.left= point.x; m_rcSplitter.right=point.x+3; } CClientDC dc(this); DrawSplitter(m_rcSplitter,&dc); InvalidateRect(m_rcSplitterOld); RecalLayout(); } else CWnd::OnMouseMove(nFlags, point); }
int CRollupCtrl::MovePageAt(int id, int newidx) { if (!FindPage(id)) return -1; int idx = FindPageIndex(id); if (idx==newidx) return -1; if (newidx>0 && newidx>= (int)m_PageList.size()) newidx=-1; //Remove page from its old position RC_PAGEINFO* pi = FindPage(id); m_PageList.erase( m_PageList.begin() + FindPageIndex(id) ); //Insert at its new position int retidx; if (newidx<0) { m_PageList.push_back(pi); retidx = m_PageList.size()-1; } else { m_PageList.insert( m_PageList.begin()+newidx, pi); retidx=newidx; } //Update RecalLayout(); return retidx; }
void CGuiFolder::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); if (m_NumFolders > 0) RecalLayout(); // TODO: Add your message handler code here }
BOOL CContainer::OnSize(UINT nType, int cx, int cy) { if (m_Numtabs > 0) RecalLayout(); Invalidate(); UpdateWindow(); return TRUE; }
BOOL GuiCapOutBar::SetSplitter(CGuiMiniSplitter* m_sppliter) { if (!m_sppliter->Create(this)) return FALSE; m_miniSplitter=m_sppliter; RecalLayout(); return TRUE; }
//--------------------------------------------------------------------------- // Function name : RemoveAllPages // Description : //--------------------------------------------------------------------------- void CRollupCtrl::RemoveAllPages() { //Remove all while (m_PageList.GetSize()) _RemovePage(0); //Update RecalLayout(); }
//--------------------------------------------------------------------------- // Function name : ExpandAllPages // Description : //--------------------------------------------------------------------------- void CRollupCtrl::ExpandAllPages(BOOL bExpand) { //Expand-collapse All for (int i=0; i<m_PageList.GetSize(); i++) _ExpandPage(m_PageList[i], bExpand); //Update RecalLayout(); }
void CRollupCtrl::RemovePage(int idx) { if (!FindPage(idx)) return; _RemovePage(idx); RecalLayout(); }
void CRollupCtrl::ExpandAllPages(BOOL bExpand,BOOL bFromUI) { //Expand-collapse All for (size_t i=0; i<m_PageList.size(); i++) _ExpandPage(m_PageList[i], bExpand,bFromUI); //Update RecalLayout(); }
//--------------------------------------------------------------------------- // Function name : EnableAllPages // Description : //--------------------------------------------------------------------------- void CRollupCtrl::EnableAllPages(BOOL bEnable) { //Enable-disable All for (int i=0; i<m_PageList.GetSize(); i++) _EnablePage(m_PageList[i], bEnable); //Update RecalLayout(); }
//--------------------------------------------------------------------------- // Function name : EnableAutoColumns // Description : ... //--------------------------------------------------------------------------- void CRollupCtrl::EnableAutoColumns(BOOL bEnable) { if (m_bEnabledAutoColumns!=bEnable) { m_bEnabledAutoColumns=bEnable; RecalLayout(); } }
BOOL GuiCapOutBar::SetMiniTool(CGuiMiniTool* m_sppliter) { if (!m_sppliter->Create(_T(""),WS_VISIBLE | WS_CHILD |SS_OWNERDRAW, CRect(0,0,0,0), this)) return FALSE; m_MiniTool=m_sppliter; RecalLayout(); return TRUE; }
//--------------------------------------------------------------------------- // Function name : _InsertPage // Description : Called by InsertPage(...) methods // Return -1 if an error occurs //--------------------------------------------------------------------------- int CRollupCtrl::_InsertPage(const TCHAR* caption, CDialog* pwndTemplate, int idx, BOOL bAutoDestroyTpl) { ASSERT(pwndTemplate!=NULL); ASSERT(pwndTemplate->m_hWnd!=NULL); //Get client rect CRect r; GetClientRect(r); //Create GroupBox CButton* groupbox = new CButton; groupbox->Create(_T(""), WS_CHILD|BS_GROUPBOX, r, this, 0 ); //Create Button CButton* but = new CButton; but->Create(caption, WS_CHILD|BS_AUTOCHECKBOX|BS_PUSHLIKE|BS_FLAT, r, this, 0 ); //Change Button's font HFONT hfont= (HFONT)::GetStockObject(DEFAULT_GUI_FONT); CFont* font = CFont::FromHandle(hfont); but->SetFont(font); //Add page at pagelist RC_PAGEINFO* pi = new RC_PAGEINFO; pi->cstrCaption = caption; pi->bExpanded = FALSE; pi->bEnable = TRUE; pi->pwndTemplate = pwndTemplate; pi->pwndButton = but; pi->pwndGroupBox = groupbox; pi->pOldDlgProc = (WNDPROC)::GetWindowLong(pwndTemplate->m_hWnd, DWL_DLGPROC); pi->pOldButProc = (WNDPROC)::GetWindowLong(but->m_hWnd, GWL_WNDPROC); pi->bAutoDestroyTpl = bAutoDestroyTpl; int newidx; if (idx<0) newidx = (int)m_PageList.Add(pi); else { m_PageList.InsertAt(idx, pi); newidx=idx; } //Set Dlg Window datas ::SetWindowLong(pwndTemplate->m_hWnd, GWL_USERDATA, (LONG)m_PageList[newidx]); ::SetWindowLong(pwndTemplate->m_hWnd, DWL_USER, (LONG)this); //Set But Window data ::SetWindowLong(but->m_hWnd, GWL_USERDATA, (LONG)m_PageList[newidx]); //SubClass Template window proc ::SetWindowLong(pwndTemplate->m_hWnd, DWL_DLGPROC, (LONG)CRollupCtrl::DlgWindowProc); //SubClass Button window proc ::SetWindowLong(but->m_hWnd, GWL_WNDPROC, (LONG)CRollupCtrl::ButWindowProc); //Update m_PageHeight+=RC_PGBUTTONHEIGHT+(RC_GRPBOXINDENT/2); RecalLayout(); return newidx; }