From: boca4711 <boc...@us...> - 2004-10-17 19:15:22
|
Update of /cvsroot/anyedit/AnyEditToolkit/GuiLib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16941/GuiLib Modified Files: GuiStatusBar.cpp GuiStatusBar.h Log Message: - Removed drawing of sizing control - Renamed some member functions Index: GuiStatusBar.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditToolkit/GuiLib/GuiStatusBar.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** GuiStatusBar.h 15 Oct 2004 14:01:50 -0000 1.2 --- GuiStatusBar.h 17 Oct 2004 19:15:13 -0000 1.3 *************** *** 43,56 **** BOOL SetIndicators (const UINT* lpIDArray, int nIDCount); ! void Drawpanels(CDC *pDC); virtual void PreSubclassWindow(); ! void DrawLB(CRect *rcLb,CDC* pDC); ! void ClearRect(CDC* pDC,CRect rc); ! void SetStyle(Style nStyle=CGuiStatusBar::DEVSTUDIO); ! void SetPanelText(CString szText,UINT uPanel); ! virtual void StyleDispl(DWORD dwDsp=GUISTYLE_XP) { ! m_StyleDisplay=dwDsp; ! SendMessage(WM_NCPAINT);Invalidate(); UpdateWindow(); } --- 43,56 ---- BOOL SetIndicators (const UINT* lpIDArray, int nIDCount); ! void DrawPanes(CDC *pDC); virtual void PreSubclassWindow(); ! void DrawLB(CRect *rcLb, CDC* pDC); ! void ClearRect(CDC* pDC, CRect rc); ! void SetStyle(Style nStyle = CGuiStatusBar::DEVSTUDIO); ! void SetPanelText(CString szText, UINT uPanel); ! virtual void StyleDispl(DWORD dwDsp = GUISTYLE_XP) { ! m_StyleDisplay = dwDsp; ! SendMessage(WM_NCPAINT); Invalidate(); UpdateWindow(); } Index: GuiStatusBar.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditToolkit/GuiLib/GuiStatusBar.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GuiStatusBar.cpp 15 Oct 2004 14:01:50 -0000 1.3 --- GuiStatusBar.cpp 17 Oct 2004 19:15:13 -0000 1.4 *************** *** 29,45 **** // CGuiStatusBar IMPLEMENT_DYNAMIC(CGuiStatusBar, CStatusBar) CGuiStatusBar::CGuiStatusBar() { ! m_Style=DEVSTUDIO; ! m_cfont.CreateFont(14,0,0,0,400,0,0,0,0,1,2,1,34,_T("Arial")); ! m_StyleDisplay=GUISTYLE_XP; } CGuiStatusBar::~CGuiStatusBar() { } - BEGIN_MESSAGE_MAP(CGuiStatusBar, CStatusBar) //{{AFX_MSG_MAP(CGuiStatusBar) --- 29,46 ---- // CGuiStatusBar + /// ctor IMPLEMENT_DYNAMIC(CGuiStatusBar, CStatusBar) CGuiStatusBar::CGuiStatusBar() { ! m_Style = DEVSTUDIO; ! m_cfont.CreateFont(14, 0, 0, 0, 400, 0, 0, 0, 0, 1, 2, 1, 34, _T("Arial")); ! m_StyleDisplay = GUISTYLE_XP; } + /// dtor CGuiStatusBar::~CGuiStatusBar() { } BEGIN_MESSAGE_MAP(CGuiStatusBar, CStatusBar) //{{AFX_MSG_MAP(CGuiStatusBar) *************** *** 48,103 **** END_MESSAGE_MAP() - - // CGuiStatusBar message handlers void CGuiStatusBar::SetStyle(Style nStyle) { ! m_Style=nStyle; } void CGuiStatusBar::PreSubclassWindow() { ! ModifyStyle(0,BS_OWNERDRAW); CStatusBar::PreSubclassWindow(); } void CGuiStatusBar::OnPaint() { ! CRect rcClient,rcTemp; CBrush cb; CPaintDC dc(this); GetClientRect(&rcClient); cb.CreateSolidBrush(GuiDrawLayer::GetRGBColorFace(m_StyleDisplay)); ! CWnd::DefWindowProc( WM_PAINT, (WPARAM)dc.m_hDC, 0 ); ! rcTemp=rcClient; ! rcClient.bottom=rcClient.top+2; ! rcClient.right+=50; ! // dc.FillRect(rcClient,&cb); ! Drawpanels(&dc); cb.DeleteObject(); } ! void CGuiStatusBar::Drawpanels(CDC *pDC) { ! int iCont=GetCount(); ! CRect rcCli,rcCliente; ! CString m_cad; ! int OldMode=pDC->SetBkMode(TRANSPARENT); ! for (int i=0; i < iCont; i++) { ! GetItemRect(i,&rcCli); ! GetPaneText(i, m_cad); ! if (i == iCont-1) { ! CSize m_sChar=pDC->GetTextExtent(m_cad,m_cad.GetLength()); ! if (rcCli.Width() < m_sChar.cx) { ! int dif=m_sChar.cx-rcCli.Width(); ! rcCli.right=rcCli.left+m_sChar.cx-dif; } - } ! /*if(m_StyleDisplay=GUISTYLE_2003) { CFont m_fontMenu; --- 49,106 ---- END_MESSAGE_MAP() // CGuiStatusBar message handlers + /// Set style of status bar. void CGuiStatusBar::SetStyle(Style nStyle) { ! m_Style = nStyle; } + + /// Set owner draw mode to status bar. void CGuiStatusBar::PreSubclassWindow() { ! ModifyStyle(0, BS_OWNERDRAW); CStatusBar::PreSubclassWindow(); } + /// Paint status bar void CGuiStatusBar::OnPaint() { ! CRect rcClient, rcTemp; CBrush cb; CPaintDC dc(this); GetClientRect(&rcClient); cb.CreateSolidBrush(GuiDrawLayer::GetRGBColorFace(m_StyleDisplay)); ! CWnd::DefWindowProc( WM_PAINT, (WPARAM) dc.m_hDC, 0 ); ! rcTemp = rcClient; ! rcClient.bottom = rcClient.top + 2; ! rcClient.right += 50; ! // dc.FillRect(rcClient, &cb); ! DrawPanes(&dc); cb.DeleteObject(); } ! /// Draw all panels of status bar. ! void CGuiStatusBar::DrawPanes(CDC *pDC) { ! int nCount = GetCount(); ! CRect rcPane, rcClient; ! CString strPaneText; ! int OldMode = pDC->SetBkMode(TRANSPARENT); ! for (int i = 0; i < nCount; i++) { ! GetItemRect(i, &rcPane); ! GetPaneText(i, strPaneText); ! if (i == nCount - 1) { ! CSize m_sChar = pDC->GetTextExtent(strPaneText, strPaneText.GetLength()); ! if (rcPane.Width() < m_sChar.cx) { ! int dif = m_sChar.cx - rcPane.Width(); ! rcPane.right = rcPane.left + m_sChar.cx - dif; } } ! /*if(m_StyleDisplay = GUISTYLE_2003) { CFont m_fontMenu; *************** *** 106,116 **** SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(info), &info, 0); VERIFY(m_fontMenu.CreateFontIndirect(&info.lfMenuFont)); ! CFont* oldfont=(CFont*)pDC->SelectObject(&m_fontMenu); ! CGradient M(CSize(rcCli.Width(),rcCli.Height())); ! M.PrepareReverseVert(pDC,m_StyleDisplay); ! M.Draw(pDC,rcCli.left,rcCli.top,0,0,rcCli.Width(),rcCli.Height(),SRCCOPY); ! rcCli.top+=2; ! rcCli.left+=3; ! pDC->DrawText(m_cad,rcCli,DT_LEFT ); pDC->SelectObject(oldfont); --- 109,119 ---- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(info), &info, 0); VERIFY(m_fontMenu.CreateFontIndirect(&info.lfMenuFont)); ! CFont* oldfont = (CFont*) pDC->SelectObject(&m_fontMenu); ! CGradient M(CSize(rcPane.Width(), rcPane.Height())); ! M.PrepareReverseVert(pDC, m_StyleDisplay); ! M.Draw(pDC, rcPane.left, rcPane.top, 0, 0, rcPane.Width(), rcPane.Height(), SRCCOPY); ! rcPane.top += 2; ! rcPane.left += 3; ! pDC->DrawText(strPaneText, rcPane,DT_LEFT); pDC->SelectObject(oldfont); *************** *** 119,218 **** {*/ if (m_Style == DEVSTUDIO) ! pDC->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style),GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style)); else ! pDC->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorTabs(),GuiDrawLayer::GetRGBColorTabs()); //} ! if (i == iCont-1) { ! rcCli.left=rcCli.right; ! rcCli.right=rcCli.left+2; ! pDC->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorFace(),GuiDrawLayer::GetRGBColorFace()); ! rcCli.right+=1; ! pDC->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorFace(),GuiDrawLayer::GetRGBColorFace()); ! rcCli.right+=1; ! pDC->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorFace(),GuiDrawLayer::GetRGBColorFace()); ! } - - - } pDC->SetBkMode(OldMode); ! GetClientRect(&rcCliente); ! if ((rcCliente.right - rcCli.right) != 0) { CBrush cb; cb.CreateSolidBrush(GuiDrawLayer::GetRGBColorFace()); ! rcCliente.left = rcCli.right; ! rcCliente.bottom= rcCliente.top+6; ! pDC->FillRect(rcCliente,&cb); ! //DrawLB(&rcCliente,pDC); } CRect rc; GetClientRect(&rc); ! rc.left=rc.right-15; ! rc.top=rc.bottom-15; CPen pWhite; CPen pDark; ! pWhite.CreatePen(PS_SOLID,1,RGB(255,255,255)); ! pDark.CreatePen(PS_SOLID,1,GuiDrawLayer::m_Style==GUISTYLE_2003?GuiDrawLayer::GetRGBColorShadow():GuiDrawLayer::GetRGBPressBXP()); CPen* pPt= pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left,rc.bottom); ! pDC->LineTo(rc.right,rc.top); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left+1,rc.bottom); ! pDC->LineTo(rc.right,rc.top+1); ! pDC->MoveTo(rc.left+2,rc.bottom); ! pDC->LineTo(rc.right,rc.top+2); pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left+4,rc.bottom); ! pDC->LineTo(rc.right,rc.top+4); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left+5,rc.bottom); ! pDC->LineTo(rc.right,rc.top+5); ! pDC->MoveTo(rc.left+6,rc.bottom); ! pDC->LineTo(rc.right,rc.top+6); pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left+8,rc.bottom); ! pDC->LineTo(rc.right,rc.top+8); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left+9,rc.bottom); ! pDC->LineTo(rc.right,rc.top+9); ! pDC->MoveTo(rc.left+10,rc.bottom); ! pDC->LineTo(rc.right,rc.top+10); pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left+12,rc.bottom); ! pDC->LineTo(rc.right,rc.top+12); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left+13,rc.bottom); ! pDC->LineTo(rc.right,rc.top+13); pDC->SelectObject(pPt); ! } ! void CGuiStatusBar::ClearRect(CDC* pDC,CRect rc) { ! CRect rcCli=rc; ! rcCli.left+=1; ! rcCli.top+=1; ! for (int i=0; i < 3; i++) { ! rcCli.right-=1; ! rcCli.bottom-=1; ! pDC->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorFace(),GuiDrawLayer::GetRGBColorFace()); } } ! void CGuiStatusBar::DrawLB(CRect* rcLb,CDC* pDC) { pDC->SelectStockObject(COLOR_3DSHADOW); ! int gap=10; ! for (int i=0; i< 3; i++) { ! pDC->MoveTo(rcLb->left+gap,rcLb->bottom); ! pDC->LineTo(rcLb->right,rcLb->top+gap+1); ! gap+=2; } } --- 122,225 ---- {*/ if (m_Style == DEVSTUDIO) ! pDC->Draw3dRect(rcPane, GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style), GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style)); else ! pDC->Draw3dRect(rcPane, GuiDrawLayer::GetRGBColorTabs(), GuiDrawLayer::GetRGBColorTabs()); //} ! if (i == nCount - 1) { ! rcPane.left = rcPane.right; ! rcPane.right = rcPane.left + 2; ! pDC->Draw3dRect(rcPane, GuiDrawLayer::GetRGBColorFace(), GuiDrawLayer::GetRGBColorFace()); ! rcPane.right += 1; ! pDC->Draw3dRect(rcPane, GuiDrawLayer::GetRGBColorFace(), GuiDrawLayer::GetRGBColorFace()); ! rcPane.right += 1; ! pDC->Draw3dRect(rcPane, GuiDrawLayer::GetRGBColorFace(), GuiDrawLayer::GetRGBColorFace()); } } pDC->SetBkMode(OldMode); ! GetClientRect(&rcClient); ! if ((rcClient.right - rcPane.right) != 0) { CBrush cb; cb.CreateSolidBrush(GuiDrawLayer::GetRGBColorFace()); ! rcClient.left = rcPane.right; ! rcClient.bottom = rcClient.top + 6; ! pDC->FillRect(rcClient, &cb); ! //DrawLB(&rcClient,pDC); } + /** \todo: Do we need this part? + * Without the following code it works fine too. (Win2000). + * This code draws the resizeable button on the right side. + * Without this code the button is only drawn in normal mode. In full screen + * mode the button was hidden. + * This code does not detect fullscreen mode. + */ + /* CRect rc; GetClientRect(&rc); ! rc.left = rc.right - 15; ! rc.top = rc.bottom - 15; CPen pWhite; CPen pDark; ! pWhite.CreatePen(PS_SOLID, 1, RGB(255,255,255)); ! pDark.CreatePen(PS_SOLID, 1, GuiDrawLayer::m_Style == GUISTYLE_2003 ? GuiDrawLayer::GetRGBColorShadow() : GuiDrawLayer::GetRGBPressBXP()); CPen* pPt= pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left, rc.bottom); ! pDC->LineTo(rc.right, rc.top); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left + 1, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 1); ! pDC->MoveTo(rc.left + 2, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 2); pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left + 4, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 4); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left + 5, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 5); ! pDC->MoveTo(rc.left + 6, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 6); pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left + 8, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 8); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left + 9, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 9); ! pDC->MoveTo(rc.left + 10, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 10); pDC->SelectObject(&pWhite); ! pDC->MoveTo(rc.left + 12, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 12); pDC->SelectObject(&pDark); ! pDC->MoveTo(rc.left + 13, rc.bottom); ! pDC->LineTo(rc.right, rc.top + 13); pDC->SelectObject(pPt); ! */ } ! void CGuiStatusBar::ClearRect(CDC* pDC, CRect rc) { ! CRect rcCli = rc; ! rcCli.left += 1; ! rcCli.top += 1; ! for (int i = 0; i < 3; i++) { ! rcCli.right -= 1; ! rcCli.bottom -= 1; ! pDC->Draw3dRect(rcCli, GuiDrawLayer::GetRGBColorFace(), GuiDrawLayer::GetRGBColorFace()); } } ! void CGuiStatusBar::DrawLB(CRect* rcLb, CDC* pDC) { pDC->SelectStockObject(COLOR_3DSHADOW); ! int gap = 10; ! for (int i = 0; i < 3; i++) { ! pDC->MoveTo(rcLb->left + gap, rcLb->bottom); ! pDC->LineTo(rcLb->right, rcLb->top + gap + 1); ! gap += 2; } } *************** *** 220,232 **** void CGuiStatusBar::SetPanelText(CString szText,UINT uPanel) { ! int nIndex=CommandToIndex(uPanel); ! SetPaneText(nIndex,szText); CWindowDC dc(this); ! CSize sizeText=dc.GetTextExtent(szText); ! SetPaneInfo(nIndex,uPanel,SBPS_NORMAL,sizeText.cx); ! } - BOOL CGuiStatusBar::SetIndicators (const UINT* lpIDArray, int nIDCount) { --- 227,237 ---- void CGuiStatusBar::SetPanelText(CString szText,UINT uPanel) { ! int nIndex = CommandToIndex(uPanel); ! SetPaneText(nIndex, szText); CWindowDC dc(this); ! CSize sizeText = dc.GetTextExtent(szText); ! SetPaneInfo(nIndex, uPanel, SBPS_NORMAL, sizeText.cx); } BOOL CGuiStatusBar::SetIndicators (const UINT* lpIDArray, int nIDCount) { *************** *** 243,248 **** int cxWidth; GetPaneInfo (nIndex, nID, nStyle, cxWidth); ! SetPaneInfo (nIndex, nID, nStyle|SBPS_NOBORDERS, cxWidth); } return true; ! } \ No newline at end of file --- 248,253 ---- int cxWidth; GetPaneInfo (nIndex, nID, nStyle, cxWidth); ! SetPaneInfo (nIndex, nID, nStyle | SBPS_NOBORDERS, cxWidth); } return true; ! } |