#include "wxMaracasIRMViewProp3D.h" #include #include "wxMaracasIRMView.h" #include "Color.xpm" /** ** Implementation of viewProp3D **/ wxMaracasIRMViewProp3D::wxMaracasIRMViewProp3D(wxWindow* parent,int propid) :wxMaracasIRMViewPanel(parent, propid){ createControls(); } wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){ //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false); wxMaracasIRMView::getInstance()->deleteActor(_propid); } void wxMaracasIRMViewProp3D::createControls(){ wxFlexGridSizer* sizerirmprop = new wxFlexGridSizer(1,1,1); wxString choices[2]; choices[0] = wxString(_T("On")); choices[1] = wxString(_T("Off")); checkbox = new wxCheckBox(this,-1,wxString(_T("Show Actor"))); Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onCheckBoxChange); checkbox->SetValue(true); sizerirmprop->Add(checkbox,wxFIXED_MINSIZE); //this->addControl(checkbox); wxBitmap bitmap(Color_xpm); _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30)); Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onColorChange); sizerirmprop->Add(_colorchoose,wxFIXED_MINSIZE); //sizercolor->Add(checkbox,wxFIXED_MINSIZE); //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE); //this->addControl(sizercolor); wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity"))); opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onOpacityRelease); wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1); sizeropacity->Add(label,wxFIXED_MINSIZE); sizeropacity->Add(opacity,wxFIXED_MINSIZE); sizerirmprop->Add(sizeropacity,wxFIXED_MINSIZE); //this->addControl(sizeropacity); this->addControl(sizerirmprop); } void wxMaracasIRMViewProp3D::onCheckBoxChange(wxCommandEvent& event){ wxMaracasIRMView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue()); } void wxMaracasIRMViewProp3D::onColorChange(wxCommandEvent& event){ wxColourDialog* colourdiag = new wxColourDialog(this); if(colourdiag->ShowModal()==wxID_OK){ wxColour colour = colourdiag->GetColourData().GetColour(); _colorchoose->SetBackgroundColour(colour); double r = (double)(colour.Red())/255.0; double g = (double)(colour.Green())/255.0; double b = (double)(colour.Blue())/255.0; wxMaracasIRMView::getInstance()->changeColor(this->getPropId(),r,g,b); } delete colourdiag; } /*void wxMaracasIRMViewProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){ }*/ void wxMaracasIRMViewProp3D::onOpacityRelease(wxScrollEvent& event ){ wxMaracasIRMView::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue()); }