ButcherView::ButcherView(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) : wxControl(parent, id, pos, size, style, wxDefaultValidator, name), selection_(NULL), filealternate_(false), filealternateid_(-1) { dwindow_=new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize); dwindow_->SetScrollRate( 10, 10 ); wxASSERT_MSG(wxEVT_SCROLLWIN_TOP<=wxEVT_SCROLLWIN_THUMBRELEASE, _("Logic error in scrollwin events")); for (int i=wxEVT_SCROLLWIN_TOP; i<=wxEVT_SCROLLWIN_THUMBRELEASE; i++) { dwindow_->Connect(wxID_ANY, i, wxScrollWinEventHandler(ButcherView::OnDWindowWinScroll), NULL, this); } //dwindow_->Connect(wxID_ANY, wxEVT_LEAVE_WINDOW, wxMouseEventHandler(ButcherViewEditor::OnDWindowLeave), NULL, this); ruler_left_=new ButcherRuler(this, ButcherRuler::BRK_LEFT);//, wxID_ANY, wxDefaultPosition, wxSize(rulersize_, -1)); ruler_top_=new ButcherRuler(this, ButcherRuler::BRK_TOP);//, wxID_ANY, wxDefaultPosition, wxSize(-1, rulersize_)); ruler_right_=new ButcherRuler(this, ButcherRuler::BRK_RIGHT);//, wxID_ANY, wxDefaultPosition, wxSize(rulersize_, -1)); ruler_bottom_=new ButcherRuler(this, ButcherRuler::BRK_BOTTOM);//, wxID_ANY, wxDefaultPosition, wxSize(-1, rulersize_)); designer_ = new ButcherDocument(this, dwindow_/*, wxID_ANY, wxPoint(rulersize_, rulersize_), wxSize(designwidth_, designheight_)*/); //designer_->SetBackgroundColour(*wxGREEN); RepositionView(); SetCursor(*wxCROSS_CURSOR); }
void bindEvents(wxWindow* win) { // TODO: is there an easier way to Connect to a range of events? these are contiguous. win->Connect(wxEVT_SCROLLWIN_TOP, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_BOTTOM, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_LINEUP, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_LINEDOWN, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_PAGEUP, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_PAGEDOWN, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_THUMBTRACK, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); win->Connect(wxEVT_SCROLLWIN_THUMBRELEASE, wxScrollWinEventHandler(ScrollViewPrivate::OnScrollWinEvents), NULL, this); }
PicturesAssistPanel::PicturesAssistPanel(wxWindow* parent, wxWindowID id,const wxPoint& pos,const wxSize& size) : mPaintMode(xlGridCanvasPictures::PAINT_PENCIL), mPaintColor(xlRED) { paint_pencil = wxBITMAP_PNG_FROM_DATA(pencil); paint_pencil_selected = wxBITMAP_PNG_FROM_DATA(pencil_sel); paint_eraser = wxBITMAP_PNG_FROM_DATA(eraser); paint_eraser_selected = wxBITMAP_PNG_FROM_DATA(eraser_sel); paint_eyedropper = wxBITMAP_PNG_FROM_DATA(eyedropper); paint_eyedropper_selected = wxBITMAP_PNG_FROM_DATA(eyedropper_sel); paint_selectcopy = wxBITMAP_PNG_FROM_DATA(selectcopy); paint_selectcopy_selected = wxBITMAP_PNG_FROM_DATA(selectcopy_sel); //(*Initialize(PicturesAssistPanel) wxFlexGridSizer* FlexGridSizer2; wxFlexGridSizer* PaintToolsSizer; wxFlexGridSizer* PaintFuntionsSizer; wxFlexGridSizer* FlexGridSizer3; wxFlexGridSizer* ColorPickerSizer; Create(parent, id, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxWANTS_CHARS, _T("id")); FlexGridSizer1 = new wxFlexGridSizer(1, 1, 0, 0); Panel_Sizer = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxWANTS_CHARS, _T("ID_PANEL1")); FlexGridSizer2 = new wxFlexGridSizer(0, 1, 0, 0); ScrolledWindowEffectAssist = new wxScrolledWindow(Panel_Sizer, ID_SCROLLED_EffectAssist, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS|wxVSCROLL|wxHSCROLL, _T("ID_SCROLLED_EffectAssist")); FlexGridSizer_Container = new wxFlexGridSizer(0, 2, 0, 0); FlexGridSizer_Container->AddGrowableCol(0); FlexGridSizer_Container->AddGrowableRow(0); Panel_RightSide = new wxPanel(ScrolledWindowEffectAssist, ID_PANEL_RightSide, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL_RightSide")); FlexGridSizer_RightSide = new wxFlexGridSizer(0, 1, 0, 0); ColorPickerSizer = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer_RightSide->Add(ColorPickerSizer, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); PaintToolsSizer = new wxFlexGridSizer(0, 4, 0, 10); FlexGridSizer_RightSide->Add(PaintToolsSizer, 1, wxALL|wxEXPAND, 5); PaintFuntionsSizer = new wxFlexGridSizer(0, 1, 0, 0); FlexGridSizer3 = new wxFlexGridSizer(0, 6, 0, 0); Button_NewImage = new wxButton(Panel_RightSide, ID_BUTTON_NewImage, _("New\nImage"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON_NewImage")); FlexGridSizer3->Add(Button_NewImage, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); Button_LoadImage = new wxButton(Panel_RightSide, ID_BUTTON_LoadImage, _("Load\nImage"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON_LoadImage")); FlexGridSizer3->Add(Button_LoadImage, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); Button_SaveImage = new wxButton(Panel_RightSide, ID_BUTTON_SaveImage, _("Save\nImage"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON_SaveImage")); FlexGridSizer3->Add(Button_SaveImage, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); Button_SaveAs = new wxButton(Panel_RightSide, ID_BUTTON_SaveAs, _("Save As\nImage"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON_SaveAs")); FlexGridSizer3->Add(Button_SaveAs, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); Button_Resize = new wxButton(Panel_RightSide, ID_BUTTON1, _("Resize\nImage"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1")); FlexGridSizer3->Add(Button_Resize, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); PaintFuntionsSizer->Add(FlexGridSizer3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticText_CurrentImage = new wxStaticText(Panel_RightSide, ID_STATICTEXT_CurrentImage, _("Current Image:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT_CurrentImage")); PaintFuntionsSizer->Add(StaticText_CurrentImage, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); StaticText_ImageSize = new wxStaticText(Panel_RightSide, ID_STATICTEXT_ImageSize, _("Image Size:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT_ImageSize")); PaintFuntionsSizer->Add(StaticText_ImageSize, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); StaticText_ModelSize = new wxStaticText(Panel_RightSide, ID_STATICTEXT_ModelSize, _("Model Size:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT_ModelSize")); PaintFuntionsSizer->Add(StaticText_ModelSize, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer_RightSide->Add(PaintFuntionsSizer, 1, wxALL|wxEXPAND, 5); Panel_RightSide->SetSizer(FlexGridSizer_RightSide); FlexGridSizer_RightSide->Fit(Panel_RightSide); FlexGridSizer_RightSide->SetSizeHints(Panel_RightSide); FlexGridSizer_Container->Add(Panel_RightSide, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); ScrolledWindowEffectAssist->SetSizer(FlexGridSizer_Container); FlexGridSizer_Container->Fit(ScrolledWindowEffectAssist); FlexGridSizer_Container->SetSizeHints(ScrolledWindowEffectAssist); FlexGridSizer2->Add(ScrolledWindowEffectAssist, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); Panel_Sizer->SetSizer(FlexGridSizer2); FlexGridSizer2->Fit(Panel_Sizer); FlexGridSizer2->SetSizeHints(Panel_Sizer); FlexGridSizer1->Add(Panel_Sizer, 1, wxALL|wxEXPAND, 5); SetSizer(FlexGridSizer1); FlexGridSizer1->Fit(this); FlexGridSizer1->SetSizeHints(this); Connect(ID_BUTTON_NewImage,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PicturesAssistPanel::OnButton_NewImageClick); Connect(ID_BUTTON_LoadImage,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PicturesAssistPanel::OnButton_LoadImageClick); Connect(ID_BUTTON_SaveImage,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PicturesAssistPanel::OnButton_SaveImageClick); Connect(ID_BUTTON_SaveAs,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PicturesAssistPanel::OnButton_SaveAsClick); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PicturesAssistPanel::OnButton_ResizeClick); //*) //PanelEffectGrid = new xlGridCanvasEmpty(ScrolledWindowEffectAssist, ID_PANEL_EffectGrid, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxFULL_REPAINT_ON_RESIZE, _T("ID_PANEL_EffectGrid")); //FlexGridSizer_Container->Insert(0, PanelEffectGrid, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); CreatePaintTools(Panel_RightSide, PaintToolsSizer); mColorPicker = new xlColorPickerFields(Panel_RightSide, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL_ColorPicker")); ColorPickerSizer->Add(mColorPicker, 1, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5); FlexGridSizer_RightSide->Fit(Panel_RightSide); FlexGridSizer_RightSide->SetSizeHints(Panel_RightSide); FlexGridSizer_Container->Fit(ScrolledWindowEffectAssist); FlexGridSizer_Container->SetSizeHints(ScrolledWindowEffectAssist); FlexGridSizer2->Fit(Panel_Sizer); FlexGridSizer2->SetSizeHints(Panel_Sizer); FlexGridSizer1->Fit(this); FlexGridSizer1->SetSizeHints(this); for (int i=wxEVT_SCROLLWIN_TOP; i<=wxEVT_SCROLLWIN_THUMBRELEASE; i++) { ScrolledWindowEffectAssist->Connect(wxID_ANY, i, wxScrollWinEventHandler(PicturesAssistPanel::OnWindowScrolled), NULL, this); } }