From 864842440bb7fd9f8495314b8bfa2e2c8a0d47f4 Mon Sep 17 00:00:00 2001 From: Thales1330 Date: Thu, 19 Jan 2017 19:18:16 -0200 Subject: Cunston control element button implementation --- Project/ControlEditor.cpp | 110 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) (limited to 'Project/ControlEditor.cpp') diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp index 422bfb0..a7788f9 100644 --- a/Project/ControlEditor.cpp +++ b/Project/ControlEditor.cpp @@ -3,9 +3,119 @@ ControlEditor::ControlEditor(wxWindow* parent) : ControlEditorBase(parent) { + BuildControlElementPanel(); } ControlEditor::~ControlEditor() { + // m_tfButton->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ControlEditor::LeftClickDown), m_tfButton, this); } +void ControlEditor::BuildControlElementPanel() +{ + m_panelControlElements->SetDoubleBuffered(true); + wxWrapSizer* wrapSizer = new wxWrapSizer(); + m_panelControlElements->SetSizer(wrapSizer); + + /*m_tfButton = new wxButton(); + m_tfButton->SetBackgroundStyle(wxBG_STYLE_TRANSPARENT); + m_tfButton->Create(m_panelControlElements, wxID_ANY, _("Transfer function"), wxDefaultPosition, wxDefaultSize, + wxBORDER_NONE); + m_tfButton->SetTransparent(wxIMAGE_ALPHA_TRANSPARENT); + //m_tfButton = new wxButton(m_panelControlElements, wxID_ANY, _("Transfer function"), wxDefaultPosition, + wxDefaultSize, wxBORDER_NONE); + m_tfButton->SetBitmap(wxImage("..\\data\\images\\control\\transferFunc.png"), wxTOP); + // m_tfButton->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + // m_tfButton->SetToolTip(_("Transfer function")); + m_tfButton->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ControlEditor::LeftClickDown), NULL, this); + wrapSizer->Add(m_tfButton, 0, wxALL, 3)*/ + ControlElementButton* tfButton = new ControlElementButton( + m_panelControlElements, _("Transfer function"), wxImage("..\\data\\images\\control\\transferFunc.png")); + wrapSizer->Add(tfButton, 0, wxALL, 5); + + wxBitmapButton* tfButton2 = + new wxBitmapButton(m_panelControlElements, wxID_ANY, wxImage("..\\data\\images\\control\\transferFunc.png"), + wxDefaultPosition, wxDLG_UNIT(m_panelControlElements, wxSize(-1, -1)), wxBU_AUTODRAW | wxBORDER_NONE); + tfButton2->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + tfButton2->SetToolTip(_("Transfer function")); + + wrapSizer->Add(tfButton2, 0, wxALL, 3); + + wxBitmapButton* tfButton3 = + new wxBitmapButton(m_panelControlElements, wxID_ANY, wxImage("..\\data\\images\\control\\transferFunc.png"), + wxDefaultPosition, wxDLG_UNIT(m_panelControlElements, wxSize(-1, -1)), wxBU_AUTODRAW | wxBORDER_NONE); + tfButton3->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + tfButton3->SetToolTip(_("Transfer function")); + + wrapSizer->Add(tfButton3, 0, wxALL, 3); + + wxBitmapButton* tfButton4 = + new wxBitmapButton(m_panelControlElements, wxID_ANY, wxImage("..\\data\\images\\control\\transferFunc.png"), + wxDefaultPosition, wxDLG_UNIT(m_panelControlElements, wxSize(-1, -1)), wxBU_AUTODRAW | wxBORDER_NONE); + tfButton4->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + tfButton4->SetToolTip(_("Transfer function")); + + wrapSizer->Add(tfButton4, 0, wxALL, 3); + + wxBitmapButton* tfButton5 = + new wxBitmapButton(m_panelControlElements, wxID_ANY, wxImage("..\\data\\images\\control\\transferFunc.png"), + wxDefaultPosition, wxDLG_UNIT(m_panelControlElements, wxSize(-1, -1)), wxBU_AUTODRAW | wxBORDER_NONE); + tfButton5->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + tfButton5->SetToolTip(_("Transfer function")); + + wrapSizer->Add(tfButton5, 0, wxALL, 3); + + wxBitmapButton* tfButton6 = + new wxBitmapButton(m_panelControlElements, wxID_ANY, wxImage("..\\data\\images\\control\\transferFunc.png"), + wxDefaultPosition, wxDLG_UNIT(m_panelControlElements, wxSize(-1, -1)), wxBU_AUTODRAW | wxBORDER_NONE); + tfButton6->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + tfButton6->SetToolTip(_("Transfer function")); + + wrapSizer->Add(tfButton6, 0, wxALL, 3); + + wxBitmapButton* tfButton7 = + new wxBitmapButton(m_panelControlElements, wxID_ANY, wxImage("..\\data\\images\\control\\transferFunc.png"), + wxDefaultPosition, wxDLG_UNIT(m_panelControlElements, wxSize(-1, -1)), wxBU_AUTODRAW | wxBORDER_NONE); + tfButton7->SetBackgroundColour(wxColour(wxT("rgb(255,255,255)"))); + tfButton7->SetToolTip(_("Transfer function")); + + wrapSizer->Add(tfButton7, 0, wxALL, 3); + + // m_auimgr->Update(); + // Layout(); +} +void ControlEditor::LeftClickDown(wxMouseEvent& event) +{ + + wxBitmapButton* button = dynamic_cast(event.GetEventObject()); + if(button) { + button->SetOwnBackgroundColour(wxColour(wxT("rgb(0,0,255)"))); + } + event.Skip(); +} + +ControlElementButton::ControlElementButton(wxWindow* parent, wxString label, wxImage image) + : wxWindow(parent, wxID_ANY) +{ + m_label = label; + m_image = image; + SetMinSize(wxSize(32,32)); + Connect(wxEVT_PAINT, wxPaintEventHandler(ControlElementButton::OnPaint), NULL, this); +} + +ControlElementButton::~ControlElementButton() {} + +void ControlElementButton::OnPaint(wxPaintEvent& event) +{ + wxPaintDC dc(this); + //dc.SetBrush(*wxGREY_BRUSH); + //dc.DrawRectangle( 0, 0, 32, 32 ); + dc.DrawBitmap(m_image, wxPoint(0,0)); + wxGraphicsContext* gc = wxGraphicsContext::Create(dc); + if(gc) { + gc->DrawBitmap(gc->CreateBitmapFromImage(m_image), 0, 0, 32, 32); + gc->SetBrush(wxBrush(wxColour(0,125,255,100))); + gc->DrawRectangle(0,0,32,32); + delete gc; + } +} -- cgit