diff --git a/aegisub/bitmaps/visual_move.bmp b/aegisub/bitmaps/visual_move.bmp index 45b685665..a0b6b68c1 100644 Binary files a/aegisub/bitmaps/visual_move.bmp and b/aegisub/bitmaps/visual_move.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_bicubic.bmp b/aegisub/bitmaps/visual_vector_clip_bicubic.bmp new file mode 100644 index 000000000..4cdcb768d Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_bicubic.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_convert.bmp b/aegisub/bitmaps/visual_vector_clip_convert.bmp new file mode 100644 index 000000000..7e6936b04 Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_convert.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_drag.bmp b/aegisub/bitmaps/visual_vector_clip_drag.bmp new file mode 100644 index 000000000..35b6f0fe4 Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_drag.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_freehand.bmp b/aegisub/bitmaps/visual_vector_clip_freehand.bmp new file mode 100644 index 000000000..b12e008f2 Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_freehand.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_insert.bmp b/aegisub/bitmaps/visual_vector_clip_insert.bmp new file mode 100644 index 000000000..b74a1beb2 Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_insert.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_line.bmp b/aegisub/bitmaps/visual_vector_clip_line.bmp new file mode 100644 index 000000000..87dbeef67 Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_line.bmp differ diff --git a/aegisub/bitmaps/visual_vector_clip_remove.bmp b/aegisub/bitmaps/visual_vector_clip_remove.bmp new file mode 100644 index 000000000..7956d20aa Binary files /dev/null and b/aegisub/bitmaps/visual_vector_clip_remove.bmp differ diff --git a/aegisub/res.rc b/aegisub/res.rc index 7896d9810..b90d9ee94 100644 --- a/aegisub/res.rc +++ b/aegisub/res.rc @@ -142,6 +142,13 @@ visual_rotatexy BITMAP "bitmaps/visual_rotatexy.bmp" visual_scale BITMAP "bitmaps/visual_scale.bmp" visual_clip BITMAP "bitmaps/visual_clip.bmp" visual_vector_clip BITMAP "bitmaps/visual_vector_clip.bmp" +visual_vector_clip_drag BITMAP "bitmaps/visual_vector_clip_drag.bmp" +visual_vector_clip_line BITMAP "bitmaps/visual_vector_clip_line.bmp" +visual_vector_clip_bicubic BITMAP "bitmaps/visual_vector_clip_bicubic.bmp" +visual_vector_clip_remove BITMAP "bitmaps/visual_vector_clip_remove.bmp" +visual_vector_clip_convert BITMAP "bitmaps/visual_vector_clip_convert.bmp" +visual_vector_clip_insert BITMAP "bitmaps/visual_vector_clip_insert.bmp" +visual_vector_clip_freehand BITMAP "bitmaps/visual_vector_clip_freehand.bmp" visual_realtime BITMAP "bitmaps/visual_realtime.bmp" arrow_up BITMAP "bitmaps/arrow_up.bmp" diff --git a/aegisub/video_box.cpp b/aegisub/video_box.cpp index 58647efed..52aee3fcf 100644 --- a/aegisub/video_box.cpp +++ b/aegisub/video_box.cpp @@ -132,6 +132,7 @@ VideoBox::VideoBox(wxWindow *parent) typeSizer->Add(scale,0,wxEXPAND,0); typeSizer->Add(clip,0,wxEXPAND,0); typeSizer->Add(vectorClip,0,wxEXPAND | wxBOTTOM,5); + typeSizer->Add(new wxStaticLine(videoPage),0,wxEXPAND | wxBOTTOM,5); typeSizer->Add(realtime,0,wxEXPAND,0); typeSizer->AddStretchSpacer(1); diff --git a/aegisub/video_display.cpp b/aegisub/video_display.cpp index ca76f67dc..b196d8d32 100644 --- a/aegisub/video_display.cpp +++ b/aegisub/video_display.cpp @@ -668,7 +668,7 @@ void VideoDisplay::SetVisualMode(int mode) { case 3: visual = new VisualToolRotateXY(this); break; case 4: visual = new VisualToolScale(this); break; case 5: visual = new VisualToolClip(this); break; - case 6: visual = new VisualToolVectorClip(this); break; + case 6: visual = new VisualToolVectorClip(this,toolBar,box); break; default: visual = NULL; } diff --git a/aegisub/visual_tool_vector_clip.cpp b/aegisub/visual_tool_vector_clip.cpp index 1063d3157..603c070a5 100644 --- a/aegisub/visual_tool_vector_clip.cpp +++ b/aegisub/visual_tool_vector_clip.cpp @@ -40,12 +40,59 @@ #include "ass_dialogue.h" +/////// +// IDs +enum { + BUTTON_DRAG = 1300, + BUTTON_LINE, + BUTTON_BICUBIC, + BUTTON_INSERT, + BUTTON_REMOVE, + BUTTON_CONVERT, + BUTTON_FREEHAND +}; + + /////////////// // Constructor -VisualToolVectorClip::VisualToolVectorClip(VideoDisplay *parent) +VisualToolVectorClip::VisualToolVectorClip(VideoDisplay *parent,wxSizer *toolbar,wxWindow *toolWindow) : VisualTool(parent) { DoRefresh(); + + // Create toolbar + wxButton *drag = new wxBitmapButton(toolWindow,BUTTON_DRAG,wxBITMAP(visual_vector_clip_drag)); + wxButton *line = new wxBitmapButton(toolWindow,BUTTON_LINE,wxBITMAP(visual_vector_clip_line)); + wxButton *bicubic = new wxBitmapButton(toolWindow,BUTTON_BICUBIC,wxBITMAP(visual_vector_clip_bicubic)); + wxButton *convert = new wxBitmapButton(toolWindow,BUTTON_CONVERT,wxBITMAP(visual_vector_clip_convert)); + wxButton *insert = new wxBitmapButton(toolWindow,BUTTON_INSERT,wxBITMAP(visual_vector_clip_insert)); + wxButton *remove = new wxBitmapButton(toolWindow,BUTTON_REMOVE,wxBITMAP(visual_vector_clip_remove)); + wxButton *freehand = new wxBitmapButton(toolWindow,BUTTON_FREEHAND,wxBITMAP(visual_vector_clip_freehand)); + drag->SetToolTip(_("Drag control points.")); + line->SetToolTip(_("Appends a line.")); + bicubic->SetToolTip(_("Appends a bezier bicubic curve.")); + convert->SetToolTip(_("Converts a segment between line and bicubic.")); + insert->SetToolTip(_("Inserts a control point.")); + remove->SetToolTip(_("Removes a control point.")); + freehand->SetToolTip(_("Draws a freehand shape.")); + ConnectButton(drag); + ConnectButton(line); + ConnectButton(bicubic); + ConnectButton(convert); + ConnectButton(insert); + ConnectButton(remove); + ConnectButton(freehand); + toolbar->Add(drag,0,wxEXPAND); + toolbar->Add(line,0,wxEXPAND); + toolbar->Add(bicubic,0,wxEXPAND | wxRIGHT,5); + toolbar->Add(new wxStaticLine(toolWindow,-1,wxDefaultPosition,wxDefaultSize,wxLI_VERTICAL),0,wxEXPAND | wxRIGHT,5); + toolbar->Add(convert,0,wxEXPAND); + toolbar->Add(insert,0,wxEXPAND); + toolbar->Add(remove,0,wxEXPAND | wxRIGHT,5); + toolbar->Add(new wxStaticLine(toolWindow,-1,wxDefaultPosition,wxDefaultSize,wxLI_VERTICAL),0,wxEXPAND | wxRIGHT,5); + toolbar->Add(freehand,0,wxEXPAND); + toolbar->AddStretchSpacer(1); + } diff --git a/aegisub/visual_tool_vector_clip.h b/aegisub/visual_tool_vector_clip.h index ceb4f2dfb..3607e52f5 100644 --- a/aegisub/visual_tool_vector_clip.h +++ b/aegisub/visual_tool_vector_clip.h @@ -57,7 +57,7 @@ private: void DoRefresh(); public: - VisualToolVectorClip(VideoDisplay *parent); + VisualToolVectorClip(VideoDisplay *parent,wxSizer *toolbar,wxWindow *toolWindow); void Update(); void Draw();