2006-08-10 19:32:47 +00:00
|
|
|
// Berkeley Open Infrastructure for Network Computing
|
|
|
|
// http://boinc.berkeley.edu
|
|
|
|
// Copyright (C) 2005 University of California
|
|
|
|
//
|
|
|
|
// This is free software; you can redistribute it and/or
|
|
|
|
// modify it under the terms of the GNU Lesser General Public
|
|
|
|
// License as published by the Free Software Foundation;
|
|
|
|
// either version 2.1 of the License, or (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This software is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
// See the GNU Lesser General Public License for more details.
|
|
|
|
//
|
|
|
|
// To view the GNU Lesser General Public License visit
|
|
|
|
// http://www.gnu.org/copyleft/lesser.html
|
|
|
|
// or write to the Free Software Foundation, Inc.,
|
|
|
|
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
|
|
|
#if defined(__GNUG__) && !defined(__APPLE__)
|
|
|
|
#pragma implementation "sg_ImageButton.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "stdwx.h"
|
|
|
|
#include "sg_ImageButton.h"
|
|
|
|
#include "sg_ViewTabPage.h"
|
|
|
|
|
|
|
|
BEGIN_EVENT_TABLE(CImageButton, wxPanel)
|
|
|
|
EVT_PAINT(CImageButton::OnPaint)
|
|
|
|
EVT_LEFT_UP(CImageButton::OnLeftUp)
|
|
|
|
EVT_ERASE_BACKGROUND(CImageButton::OnEraseBackground)
|
|
|
|
END_EVENT_TABLE()
|
|
|
|
|
|
|
|
CImageButton::CImageButton(wxWindow* parent,wxBitmap bg, wxPoint coord,wxSize size,bool drawText = false) : wxPanel(parent, wxID_ANY, coord, size, wxNO_BORDER)
|
|
|
|
{
|
|
|
|
btnBG = bg;
|
|
|
|
m_drawText = drawText;
|
|
|
|
}
|
|
|
|
|
|
|
|
void CImageButton::OnPaint(wxPaintEvent& WXUNUSED(event))
|
|
|
|
{
|
|
|
|
wxPaintDC dc(this);
|
|
|
|
if(m_drawText)
|
|
|
|
{
|
|
|
|
dc.SetTextForeground(wxColour(*wxWHITE));
|
|
|
|
dc.SetFont(wxFont(7,74,90,90,0,wxT("Arial")));
|
|
|
|
dc.DrawText(wxT("> Show real-time"), wxPoint(220,120));
|
|
|
|
dc.DrawText(wxT("graphics"), wxPoint(230,130));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
void CImageButton::SetImage(wxBitmap bg)
|
|
|
|
{
|
|
|
|
btnBG = wxBitmap(bg);
|
|
|
|
}
|
|
|
|
void CImageButton::OnEraseBackground(wxEraseEvent& event){
|
|
|
|
|
|
|
|
event.Skip(false);
|
|
|
|
wxDC *dc;
|
|
|
|
dc=event.GetDC();
|
|
|
|
dc->SetBackground(wxBrush(this->GetBackgroundColour(),wxSOLID));
|
|
|
|
dc->Clear();
|
|
|
|
if(btnBG.Ok())
|
|
|
|
{
|
|
|
|
dc->DrawBitmap(btnBG, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
void CImageButton::OnLeftUp(wxMouseEvent& event)
|
|
|
|
{
|
|
|
|
CViewTabPage* pView = wxDynamicCast(GetParent(), CViewTabPage);
|
|
|
|
wxASSERT(pView);
|
|
|
|
pView->OnImageButton();
|
|
|
|
|
|
|
|
}
|
2006-09-08 21:48:06 +00:00
|
|
|
|
|
|
|
void CImageButton::SetShowText(bool show) {
|
|
|
|
if ( show != m_drawText ) {
|
|
|
|
m_drawText = show;
|
|
|
|
Refresh();
|
|
|
|
}
|
|
|
|
}
|
2006-08-10 19:32:47 +00:00
|
|
|
|