void XGToolbarView::DoDrawView(XRect) { XGDraw draw(this); XRect r = GetContentRect(); long i,len; /* * Draw the background of this thing */ draw.SetForeColor(KXGColorBtnShadow); draw.MoveTo(r.left,r.top); draw.LineTo(r.right,r.top); r.top++; draw.SetForeColor(KXGColorBtnHilite); draw.MoveTo(r.left,r.top); draw.LineTo(r.right,r.top); r.top++; draw.SetForeColor(KXGColorBtnShadow); draw.MoveTo(r.left,r.bottom-1); draw.LineTo(r.right,r.bottom-1); r.bottom--; draw.Draw3DRect(r,KXGEBackground); /* * Draw the buttons */ len = fStatus.GetSize(); for (i = 0; i < len; i++) { unsigned char c; c = fStatus.GetChar(i); if (0 == (c & kSkip)) { DrawButton(draw, CalcButton(i), i, c); } else { r = CalcButton(i); r.left += 5; r.bottom = r.top + 22; draw.SetForeColor(KXGColorBtnShadow); draw.MoveTo(r.left,r.top); draw.LineTo(r.left,r.bottom); r.left++; draw.SetForeColor(KXGColorBtnHilite); draw.MoveTo(r.left,r.top); draw.LineTo(r.left,r.bottom); } } }
ENDDISPATCH /* XGToolbarView::DoPeriodic * * Handle periodic events */ long XGToolbarView::DoPeriodic(long,void *) { long i,len; autoptr<XGDraw> draw; char c; /* * Scan all the commands and figure out their status */ len = fStatus.GetSize(); for (i = 0; i < len; i++) { c = GetMenuStatus(GetItemCommand(i)); if (c != fStatus.GetChar(i)) { if (NULL == draw.Ptr()) draw = new XGDraw(this); fStatus.SetChar(i,c); DrawButton(*draw, CalcButton(i), i, c); } } return 0; }
bool XGToolbarView::DoMouseDown(Point where, short) { long i,len; XRect r; unsigned char c; XGToolTip::CloseTip(); len = fStatus.GetSize(); for (i = 0; i < len; i++) { r = CalcButton(i); if (PtInRect(where,&r)) { c = fStatus.GetChar(i); if (c & kSkip) return false; if (0 == (c & kEnable)) return false; // not enabled. fHitStatus = true; fHitWhat = i; fHitWhere = r; fHitMode = c; XGDraw draw(this); DrawButton(draw,r,fHitWhat,c | kDown); return true; } } return false; }
void XGToolbarView::OutlineButton(long index) { XRect r; char c; Point where; char buffer[256]; if (index == fOverTool) return; XGDraw draw(this); if (fOverTool != -1) { /* * Unoutline always */ r = CalcButton(fOverTool); draw.Draw3DRect(r,KXGEBackFrame); XGToolTip::CloseTip(); } /* * Determine if I should outline here */ if (index != -1) { c = fStatus.GetChar(index); r = CalcButton(index); if (c == kEnable) { draw.Draw3DRect(r,KXGEOutset); } where.h = r.right; where.v = r.bottom; GetItemHelp(index,buffer); XGToolTip::OpenTip(this,where,buffer); } fOverTool = index; }
void CGuiDockToolBarEx::OnPaint() { CPaintDC dc(this); // device context for painting CRect m_rect; GetClientRect(m_rect); CBrush cbr; m_clrface=GuiDrawLayer::m_Style!= GUISTYLE_XP?GuiDrawLayer::GetRGBColorFace(GuiDrawLayer::m_Style): GuiDrawLayer::GetRGBColorTabs(); cbr.CreateSolidBrush(m_clrface); dc.FillRect(m_rect,&cbr); CalcButton(); UpdateBars(); // TODO: Add your message handler code here // Do not call CControlBar::OnPaint() for painting messages }
void CGuiDockToolBarEx::AddToolBars(CGuiControlBar* m_ctrlBars) { CString m_string; m_ctrlBars->GetWindowText(m_string); m_ArrayButton.SetAtGrow(n_numBars, new CDockButton()); if (!((CDockButton *)m_ArrayButton[n_numBars])->Create(m_string,WS_VISIBLE,CRect(0,0,0,0),this,m_ctrlBars->GetDlgID(),m_ctrlBars->m_hWnd)) return ; ((CDockButton *)m_ArrayButton[n_numBars])->SetIconBtn(m_ctrlBars->GetIcon()); n_numBars++; CalcButton(); UpdateBars(); Invalidate(); UpdateWindow(); }
void CGuiDockToolBarEx::DeleteToolBars(CGuiControlBar* m_ctrlBars) { for (int i=0; i < n_numBars; i++) { CGuiControlBar *m_tb=(CGuiControlBar *) ((CDockButton *)m_ArrayButton[i])->GetBar(((CDockButton *)m_ArrayButton[i])->GethWnd()); if (m_tb == m_ctrlBars) break; } CDockButton *pBtn = (CDockButton*)m_ArrayButton.GetAt(i); if( pBtn ) delete pBtn; m_ArrayButton.RemoveAt(i); n_numBars--; UpdateBars(); CalcButton(); Invalidate(); UpdateWindow(); }
void XGToolbarView::DoMouseMove(Point where, short flags) { long i,len; XRect r; XGView::DoMouseMove(where,flags); if (0 == (flags & KCapturedMouse)) { /* * Find what I've dragged the mouse over, and outline * that control */ len = fStatus.GetSize(); for (i = 0; i < len; i++) { r = CalcButton(i); if (PtInRect(where,&r)) { OutlineButton(i); break; } } if (i >= len) { OutlineButton(-1); } return; } if (PtInRect(where,&fHitWhere)) { if (!fHitStatus) { fHitStatus = true; XGDraw draw(this); DrawButton(draw,fHitWhere,fHitWhat,fHitMode | kDown); } } else { if (fHitStatus) { fHitStatus = false; XGDraw draw(this); DrawButton(draw,fHitWhere,fHitWhat,fHitMode); } } }