From: Markus R. <rol...@us...> - 2007-07-15 10:18:02
|
Update of /cvsroot/simspark/simspark/contrib/rsgedit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv23615 Modified Files: mainframe.cpp mainframe.h Log Message: - added member OnFileNew, SaveFileAs, OnFileSaveAs and SaveFile - added support for unnamed files Index: mainframe.h =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/mainframe.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** mainframe.h 9 Jul 2007 18:49:08 -0000 1.21 --- mainframe.h 15 Jul 2007 10:17:58 -0000 1.22 *************** *** 98,104 **** --- 98,110 ---- void OnUpdateViewLog(wxUpdateUIEvent& event); + void OnFileNew(wxCommandEvent& event); + void OnFileOpen(wxCommandEvent& event); void OnUpdateFileOpen(wxUpdateUIEvent& event); + bool SaveFileAs(wxScintilla* edit); + void OnFileSaveAs(wxCommandEvent& event); + + bool SaveFile(wxScintilla* edit); void OnFileSave(wxCommandEvent& event); void OnUpdateFileSave(wxUpdateUIEvent& event); Index: mainframe.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/mainframe.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** mainframe.cpp 10 Jul 2007 15:16:29 -0000 1.30 --- mainframe.cpp 15 Jul 2007 10:17:58 -0000 1.31 *************** *** 35,38 **** --- 35,39 ---- #include <rsgedit/res/xpm_step.xpm> #include <rsgedit/res/xpm_pause.xpm> + #include <rsgedit/res/xpm_new.xpm> #include <rsgedit/res/xpm_open.xpm> #include <rsgedit/res/xpm_save.xpm> *************** *** 80,87 **** --- 81,91 ---- EVT_UPDATE_UI(ID_VIEW_TREE, mainframe::OnUpdateViewTree) + EVT_MENU(ID_FILE_NEW, mainframe::OnFileNew) + EVT_MENU(ID_FILE_OPEN, mainframe::OnFileOpen) EVT_UPDATE_UI(ID_FILE_OPEN, mainframe::OnUpdateFileOpen) EVT_MENU(ID_FILE_SAVE, mainframe::OnFileSave) + EVT_MENU(ID_FILE_SAVEAS, mainframe::OnFileSaveAs) EVT_UPDATE_UI(ID_FILE_SAVE, mainframe::OnUpdateFileSave) *************** *** 166,171 **** --- 170,177 ---- SetMenuBar(MainFrame_menubar); wxMenu* wxglade_tmp_menu_1 = new wxMenu(); + wxglade_tmp_menu_1->Append(ID_FILE_NEW, wxT("&New"), wxEmptyString, wxITEM_NORMAL); wxglade_tmp_menu_1->Append(ID_FILE_OPEN, wxT("&Open\tctrl+o"), wxEmptyString, wxITEM_NORMAL); wxglade_tmp_menu_1->Append(ID_FILE_SAVE, wxT("&Save\tctrl+s"), wxEmptyString, wxITEM_NORMAL); + wxglade_tmp_menu_1->Append(ID_FILE_SAVEAS, wxT("Save as..."), wxEmptyString, wxITEM_NORMAL); wxglade_tmp_menu_1->Append(ID_FILE_RELOAD, wxT("&Reload\tctrl+r"), wxEmptyString, wxITEM_NORMAL); wxglade_tmp_menu_1->AppendSeparator(); *************** *** 231,234 **** --- 237,241 ---- mToolBar = CreateToolBar( wxTB_FLAT|wxTB_HORIZONTAL, wxID_ANY ); + mToolBar->AddTool(ID_FILE_NEW, wxT("New"), wxBitmap(xpm_new)); mToolBar->AddTool(ID_FILE_OPEN, wxT("Open"), wxBitmap(xpm_open)); mToolBar->AddTool(ID_FILE_RELOAD, wxT("Reload"), wxBitmap(xpm_reload)); *************** *** 1023,1026 **** --- 1030,1070 ---- } + bool mainframe::SaveFileAs(wxScintilla* edit) + { + if (edit == 0) + { + return false; + } + + wxString message(wxT("Choose a file to save")); + wxString default_path; + wxString default_filename; + wxString default_extension; + wxString wildcard(wxT("simspark files (*.rsg, *.rb)|*.rb;*.rsg")); + int flags = wxFD_SAVE | wxFD_OVERWRITE_PROMPT; + + wxString filename = wxFileSelector(message, default_path, default_filename, + default_extension, wildcard,flags); + + if (filename.empty() ) + { + return false; + } + + SparkEdit::GetInstance().SaveFileAs(mCtrNotebook, edit, filename); + return true; + } + + void mainframe::OnFileSaveAs(wxCommandEvent& event) + { + wxScintilla* edit = SparkEdit::GetCurrentPage(mCtrNotebook); + if (edit == 0) + { + return; + } + + SaveFileAs(edit); + } + void mainframe::OnUpdateFileSave(wxUpdateUIEvent& event) { *************** *** 1028,1031 **** --- 1072,1091 ---- } + bool mainframe::SaveFile(wxScintilla* edit) + { + if (edit == 0) + { + return false; + } + + if (SparkEdit::GetInstance().GetFile(edit).IsEmpty()) + { + return SaveFileAs(edit); + } + + SparkEdit::GetInstance().SaveFile(edit); + return true; + } + void mainframe::OnFileSave(wxCommandEvent& event) { *************** *** 1036,1040 **** } ! SparkEdit::GetInstance().SaveFile(edit); } --- 1096,1100 ---- } ! SaveFile(edit); } *************** *** 1052,1055 **** --- 1112,1121 ---- } + void mainframe::OnFileNew(wxCommandEvent& event) + { + bool select = true; + SparkEdit::GetInstance().GetEdit(wxString(), mCtrNotebook, select); + } + void mainframe::OnFileOpen(wxCommandEvent& event) { *************** *** 1059,1064 **** wxString default_extension(wxT("")); wxString wildcard(wxT("simspark files (*.rsg, *.rb)|*.rb;*.rsg")); ! wxString filename = wxFileSelector(message, default_path, default_filename, default_extension, wildcard); if (filename.empty() ) { --- 1125,1132 ---- wxString default_extension(wxT("")); wxString wildcard(wxT("simspark files (*.rsg, *.rb)|*.rb;*.rsg")); + int flags = wxFD_OPEN | wxFD_FILE_MUST_EXIST; ! wxString filename = wxFileSelector(message, default_path, default_filename, ! default_extension, wildcard, flags); if (filename.empty() ) { *************** *** 1264,1268 **** if (edit->GetModify()) { ! int res = wxMessageBox("The file '"+SparkEdit::GetInstance().GetFile(edit)+"' is modified.\n" "Do you want to save your changes?", "rsgedit", --- 1332,1336 ---- if (edit->GetModify()) { ! int res = wxMessageBox("The file '"+SparkEdit::GetInstance().GetTitle(edit)+"' is modified.\n" "Do you want to save your changes?", "rsgedit", *************** *** 1281,1285 **** case wxYES: ! SparkEdit::GetInstance().SaveFile(edit); break; --- 1349,1357 ---- case wxYES: ! if (! SaveFile(edit)) ! { ! event.Veto(); ! return; ! } break; |