Esempio n. 1
0
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);
		}
	}
}
Esempio n. 2
0
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;
}
Esempio n. 3
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;
}
Esempio n. 4
0
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();
}
Esempio n. 8
0
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);
		}
	}
}