diff --git a/aegisub/bitmaps/assdraw3.bmp b/aegisub/bitmaps/assdraw3.bmp new file mode 100644 index 000000000..845be3be0 Binary files /dev/null and b/aegisub/bitmaps/assdraw3.bmp differ diff --git a/aegisub/frame_main.cpp b/aegisub/frame_main.cpp index 7d329795e..c7a2fd0d3 100644 --- a/aegisub/frame_main.cpp +++ b/aegisub/frame_main.cpp @@ -249,6 +249,10 @@ void FrameMain::InitToolbar () { #endif // Tools + if (HasASSDraw()) { + Toolbar->AddTool(Menu_Tools_ASSDraw,_T("ASSDraw3"),wxBITMAP(assdraw3),_("Launches ai-chan's \"ASSDraw3\" tool for vector drawing.")); + Toolbar->AddSeparator(); + } Toolbar->AddTool(Menu_Edit_Shift,_("Shift Times"),wxBITMAP(shift_times_toolbutton),_("Open Shift Times Dialogue")); Toolbar->AddTool(Menu_Tools_Styling,_("Styling Assistant"),wxBITMAP(styling_toolbutton),_("Open Styling Assistant")); Toolbar->AddTool(Menu_Tools_Translation,_("Translation Assistant"),wxBITMAP(translation_toolbutton),_("Open Translation Assistant")); @@ -350,6 +354,10 @@ void FrameMain::InitMenu() { AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Translation, _("&Translation Assistant..."),_("Open translation assistant"), wxBITMAP(translation_toolbutton)); AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_Resample,_("Resample Resolution..."), _("Changes resolution and modifies subtitles to conform to change"), wxBITMAP(resample_toolbutton)); AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_SpellCheck, _("Spe&ll Checker..."),_("Open spell checker"), wxBITMAP(spellcheck_toolbutton)); + if (HasASSDraw()) { + subtitlesMenu->AppendSeparator(); + AppendBitmapMenuItem (subtitlesMenu,Menu_Tools_ASSDraw,_T("ASSDraw3..."),_("Launches ai-chan's \"ASSDraw3\" tool for vector drawing."), wxBITMAP(assdraw3)); + } subtitlesMenu->AppendSeparator(); AppendBitmapMenuItem(InsertMenu,MENU_INSERT_BEFORE,_("&Before Current"),_("Inserts a line before current"),wxBITMAP(blank_button)); AppendBitmapMenuItem(InsertMenu,MENU_INSERT_AFTER,_("&After Current"),_("Inserts a line after current"),wxBITMAP(blank_button)); @@ -1361,3 +1369,15 @@ void FrameMain::SetUndoRedoDesc() { editMenu->SetHelpString(0,_T("Undo ")+AssFile::GetUndoDescription()); editMenu->SetHelpString(1,_T("Redo ")+AssFile::GetRedoDescription()); } + + +///////////////////////////////// +// Check if ASSDraw is available +bool FrameMain::HasASSDraw() { +#ifdef __WINDOWS__ + wxFileName fn(StandardPaths::DecodePath(_T("?data/ASSDraw3.exe"))); + return fn.FileExists(); +#else + return false; +#endif +} diff --git a/aegisub/frame_main.h b/aegisub/frame_main.h index 039030ded..04101742e 100644 --- a/aegisub/frame_main.h +++ b/aegisub/frame_main.h @@ -223,6 +223,7 @@ private: void OnOpenTimingProcessor (wxCommandEvent &event); void OnOpenKanjiTimer (wxCommandEvent &event); void OnOpenVideoDetails (wxCommandEvent &event); + void OnOpenASSDraw (wxCommandEvent &event); void OnOpenOptions (wxCommandEvent &event); void OnOpenLog (wxCommandEvent &event); @@ -289,6 +290,7 @@ public: void SetDisplayMode(int showVid,int showAudio); void SetUndoRedoDesc(); + bool HasASSDraw(); DECLARE_EVENT_TABLE() }; @@ -393,6 +395,7 @@ enum { Menu_Tools_Kanji_Timer, Menu_Tools_Options, Menu_Tools_Log, + Menu_Tools_ASSDraw, Menu_Help_Contents, Menu_Help_IRCChannel, diff --git a/aegisub/frame_main_events.cpp b/aegisub/frame_main_events.cpp index 900eb9fb5..ef85b2bd8 100644 --- a/aegisub/frame_main_events.cpp +++ b/aegisub/frame_main_events.cpp @@ -178,6 +178,7 @@ BEGIN_EVENT_TABLE(FrameMain, wxFrame) EVT_MENU(Menu_Tools_Kanji_Timer, FrameMain::OnOpenKanjiTimer) EVT_MENU(Menu_Tools_Options, FrameMain::OnOpenOptions) EVT_MENU(Menu_Tools_Log, FrameMain::OnOpenLog) + EVT_MENU(Menu_Tools_ASSDraw, FrameMain::OnOpenASSDraw) EVT_MENU(Menu_Subs_Snap_Start_To_Video, FrameMain::OnSnapSubsStartToVid) EVT_MENU(Menu_Subs_Snap_End_To_Video, FrameMain::OnSnapSubsEndToVid) @@ -1033,6 +1034,13 @@ void FrameMain::OnOpenLog (wxCommandEvent &event) { } +////////////////// +// Launch ASSDraw +void FrameMain::OnOpenASSDraw (wxCommandEvent &event) { + wxExecute(StandardPaths::DecodePath(_T("?data/ASSDraw3.exe"))); +} + + /////////////////// // Open Automation void FrameMain::OnOpenAutomation (wxCommandEvent &event) { diff --git a/aegisub/res.rc b/aegisub/res.rc index d1fbca7cb..742a61b58 100644 --- a/aegisub/res.rc +++ b/aegisub/res.rc @@ -167,6 +167,8 @@ eyedropper_cursor CURSOR "bitmaps/eyedropper.cur" splash BITMAP "bitmaps/splash.bmp" +assdraw3 BITMAP "bitmaps/assdraw3.bmp" + // The following define is necessary for Visual Studio #define wxUSE_NO_MANIFEST 1