00001 #include "wxMaracasIRMViewProp3D.h"
00002
00003 #include <wx/colordlg.h>
00004 #include "wxMaracasIRMView.h"
00005 #include "Color.xpm"
00010 wxMaracasIRMViewProp3D::wxMaracasIRMViewProp3D(wxWindow* parent,int propid)
00011 :wxMaracasIRMViewPanel(parent, propid){
00012 createControls();
00013 }
00014
00015 wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){
00016
00017 wxMaracasIRMView::getInstance()->deleteActor(_propid);
00018 }
00019
00020 void wxMaracasIRMViewProp3D::createControls(){
00021
00022 wxFlexGridSizer* sizerirmprop = new wxFlexGridSizer(1,1,1);
00023
00024 wxString choices[2];
00025 choices[0] = wxString(_T("On"));
00026 choices[1] = wxString(_T("Off"));
00027 checkbox = new wxCheckBox(this,-1,wxString(_T("Show Actor")));
00028 Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onCheckBoxChange);
00029 checkbox->SetValue(true);
00030
00031 sizerirmprop->Add(checkbox,wxFIXED_MINSIZE);
00032
00033
00034
00035 wxBitmap bitmap(Color_xpm);
00036 _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30));
00037 Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onColorChange);
00038 sizerirmprop->Add(_colorchoose,wxFIXED_MINSIZE);
00039
00040
00041
00042
00043
00044
00045 wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity")));
00046 opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS);
00047 Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onOpacityRelease);
00048 wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1);
00049 sizeropacity->Add(label,wxFIXED_MINSIZE);
00050 sizeropacity->Add(opacity,wxFIXED_MINSIZE);
00051
00052 sizerirmprop->Add(sizeropacity,wxFIXED_MINSIZE);
00053
00054
00055 this->addControl(sizerirmprop);
00056
00057 }
00058 void wxMaracasIRMViewProp3D::onCheckBoxChange(wxCommandEvent& event){
00059 wxMaracasIRMView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
00060 }
00061 void wxMaracasIRMViewProp3D::onColorChange(wxCommandEvent& event){
00062 wxColourDialog* colourdiag = new wxColourDialog(this);
00063 if(colourdiag->ShowModal()==wxID_OK){
00064 wxColour colour = colourdiag->GetColourData().GetColour();
00065 _colorchoose->SetBackgroundColour(colour);
00066
00067 double r = (double)(colour.Red())/255.0;
00068 double g = (double)(colour.Green())/255.0;
00069 double b = (double)(colour.Blue())/255.0;
00070
00071 wxMaracasIRMView::getInstance()->changeColor(this->getPropId(),r,g,b);
00072 }
00073 delete colourdiag;
00074 }
00075
00076
00077
00078
00079 void wxMaracasIRMViewProp3D::onOpacityRelease(wxScrollEvent& event ){
00080
00081 wxMaracasIRMView::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue());
00082
00083 }
00084