X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9746a2ba50fdfa914e0476cb31710f9ccb5cc3cc..6f34921d9369a31de14e4b07e4824e2d701710f0:/src/common/docview.cpp diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 36f36611c0..cec8525fab 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -27,6 +27,7 @@ #if USE_DOC_VIEW_ARCHITECTURE #ifndef WX_PRECOMP +#include "wx/string.h" #include "wx/utils.h" #include "wx/app.h" #include "wx/dc.h" @@ -34,6 +35,10 @@ #include "wx/menu.h" #include "wx/list.h" #include "wx/filedlg.h" +#include +#endif + +#ifdef __WXGTK__ #include "wx/mdi.h" #endif @@ -81,7 +86,7 @@ wxDocument::wxDocument(wxDocument *parent) m_documentFile=""; m_documentTitle=""; m_documentParent=parent; - m_documentTemplate = NULL; + m_documentTemplate = (wxDocTemplate *) NULL; m_documentTypeName = ""; m_savedYet = FALSE; } @@ -144,7 +149,7 @@ bool wxDocument::DeleteAllViews(void) wxView *wxDocument::GetFirstView(void) const { if (m_documentViews.Number() == 0) - return NULL; + return (wxView *) NULL; return (wxView *)m_documentViews.First()->Data(); } @@ -191,18 +196,30 @@ bool wxDocument::SaveAs(void) if (!docTemplate) return FALSE; - char *tmp = wxFileSelector("Save as", docTemplate->GetDirectory(), GetFilename(), + char *tmp = wxFileSelector(_("Save as"), docTemplate->GetDirectory(), GetFilename(), docTemplate->GetDefaultExtension(), docTemplate->GetFileFilter(), - 0, GetDocumentWindow()); + wxSAVE|wxOVERWRITE_PROMPT, GetDocumentWindow()); if (!tmp) return FALSE; else { - SetFilename(tmp); - SetTitle(wxFileNameFromPath(tmp)); + wxString fileName(tmp); + wxString path(""); + wxString name(""); + wxString ext(""); + wxSplitPath(fileName, & path, & name, & ext); + + if (ext.IsEmpty() || ext == "") + { + fileName += "."; + fileName += docTemplate->GetDefaultExtension(); + } + + SetFilename(fileName); + SetTitle(wxFileNameFromPath(fileName)); - GetDocumentManager()->AddFileToHistory(tmp); + GetDocumentManager()->AddFileToHistory(fileName); // Notify the views that the filename has changed wxNode *node = m_documentViews.First(); @@ -225,19 +242,19 @@ bool wxDocument::OnSaveDocument(const wxString& file) if (wxTheApp->GetAppName() != "") msgTitle = wxTheApp->GetAppName(); else - msgTitle = wxString("File error"); + msgTitle = wxString(_("File error")); ofstream store(file); if (store.fail() || store.bad()) { - (void)wxMessageBox("Sorry, could not open this file for saving.", msgTitle, wxOK | wxICON_EXCLAMATION, + (void)wxMessageBox(_("Sorry, could not open this file for saving."), msgTitle, wxOK | wxICON_EXCLAMATION, GetDocumentWindow()); // Saving error return FALSE; } if (SaveObject(store)==FALSE) { - (void)wxMessageBox("Sorry, could not save this file.", msgTitle, wxOK | wxICON_EXCLAMATION, + (void)wxMessageBox(_("Sorry, could not save this file."), msgTitle, wxOK | wxICON_EXCLAMATION, GetDocumentWindow()); // Saving error return FALSE; @@ -256,18 +273,18 @@ bool wxDocument::OnOpenDocument(const wxString& file) if (wxTheApp->GetAppName() != "") msgTitle = wxTheApp->GetAppName(); else - msgTitle = wxString("File error"); + msgTitle = wxString(_("File error")); ifstream store(file); if (store.fail() || store.bad()) { - (void)wxMessageBox("Sorry, could not open this file.", msgTitle, wxOK|wxICON_EXCLAMATION, + (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK|wxICON_EXCLAMATION, GetDocumentWindow()); return FALSE; } if (LoadObject(store)==FALSE) { - (void)wxMessageBox("Sorry, could not open this file.", msgTitle, wxOK|wxICON_EXCLAMATION, + (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK|wxICON_EXCLAMATION, GetDocumentWindow()); return FALSE; } @@ -314,7 +331,7 @@ bool wxDocument::GetPrintableName(wxString& buf) const } else { - buf = "unnamed"; + buf = _("unnamed"); return TRUE; } } @@ -346,9 +363,9 @@ bool wxDocument::OnSaveModified(void) if (wxTheApp->GetAppName() != "") msgTitle = wxTheApp->GetAppName(); else - msgTitle = wxString("Warning"); + msgTitle = wxString(_("Warning")); - sprintf(buf, "Do you want to save changes to document %s?", (const char *)title); + sprintf(buf, _("Do you want to save changes to document %s?"), (const char *)title); int res = wxMessageBox(buf, msgTitle, wxYES_NO|wxCANCEL|wxICON_QUESTION, GetDocumentWindow()); if (res == wxNO) @@ -445,7 +462,7 @@ wxView::wxView(wxDocument *doc) SetDocument(doc); m_viewTypeName = ""; - m_viewFrame = NULL; + m_viewFrame = (wxFrame *) NULL; } wxView::~wxView(void) @@ -483,35 +500,7 @@ void wxView::OnChangeFilename(void) wxString name; GetDocument()->GetPrintableName(name); - // If the frame is an MDI child, just set the title to the name. - // Otherwise, append the document name to the name of the application - // I have to do an illegal cast because in wxGTK, wxMDIChildFrame - // doesn't inherited from wxFrame, Robert Roebling - - wxFrame *frame = NULL; - wxMDIChildFrame *mdi_frame = NULL; - if (GetFrame()->IsKindOf(CLASSINFO(wxMDIChildFrame))) - mdi_frame = (wxMDIChildFrame*)GetFrame(); - else - frame = GetFrame(); - - if (frame) - { - frame->SetTitle(name); - return; - } - - if (mdi_frame) - { - if (wxTheApp->GetAppName() != "") - { - char buf[400]; - sprintf(buf, "%s - %s", (const char *)wxTheApp->GetAppName(), (const char *)name); - mdi_frame->SetTitle(buf); - } - else - mdi_frame->SetTitle(name); - } + GetFrame()->SetTitle(name); } } @@ -586,7 +575,7 @@ wxDocTemplate::~wxDocTemplate(void) wxDocument *wxDocTemplate::CreateDocument(const wxString& path, long flags) { if (!m_docClassInfo) - return NULL; + return (wxDocument *) NULL; wxDocument *doc = (wxDocument *)m_docClassInfo->CreateObject(); doc->SetFilename(path); doc->SetDocumentTemplate(this); @@ -598,14 +587,14 @@ wxDocument *wxDocTemplate::CreateDocument(const wxString& path, long flags) else { delete doc; - return NULL; + return (wxDocument *) NULL; } } wxView *wxDocTemplate::CreateView(wxDocument *doc, long flags) { if (!m_viewClassInfo) - return NULL; + return (wxView *) NULL; wxView *view = (wxView *)m_viewClassInfo->CreateObject(); view->SetDocument(doc); if (view->OnCreate(doc, flags)) @@ -615,7 +604,7 @@ wxView *wxDocTemplate::CreateView(wxDocument *doc, long flags) else { delete view; - return NULL; + return (wxView *) NULL; } } @@ -637,9 +626,9 @@ wxDocManager::wxDocManager(long flags, bool initialize) { m_defaultDocumentNameCounter = 1; m_flags = flags; - m_currentView = NULL; + m_currentView = (wxView *) NULL; m_maxDocsOpen = 10000; - m_fileHistory = NULL; + m_fileHistory = (wxFileHistory *) NULL; if (initialize) Initialize(); } @@ -807,7 +796,7 @@ void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event)) if (printout) { // Pass two printout objects: for preview, and possible printing. - wxPrintPreviewBase *preview = NULL; + wxPrintPreviewBase *preview = (wxPrintPreviewBase *) NULL; #ifdef __WXMSW__ if ( wxTheApp->GetPrintMode() == wxPRINT_WINDOWS ) preview = new wxWindowsPrintPreview(printout, view->OnCreatePrintout()); @@ -815,7 +804,7 @@ void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event)) #endif preview = new wxPostScriptPrintPreview(printout, view->OnCreatePrintout()); - wxPreviewFrame *frame = new wxPreviewFrame(preview, (wxFrame *)wxTheApp->GetTopWindow(), "Print Preview", + wxPreviewFrame *frame = new wxPreviewFrame(preview, (wxFrame *)wxTheApp->GetTopWindow(), _("Print Preview"), wxPoint(100, 100), wxSize(600, 650)); frame->Centre(wxBOTH); frame->Initialize(); @@ -850,7 +839,7 @@ wxView *wxDocManager::GetCurrentView(void) const wxDocument* doc = (wxDocument*) m_docs.First()->Data(); return doc->GetFirstView(); } - return NULL; + return (wxView *) NULL; } // Extend event processing to search the view's event table @@ -882,7 +871,7 @@ wxDocument *wxDocManager::CreateDocument(const wxString& path, long flags) if (n == 0) { delete[] templates; - return NULL; + return (wxDocument *) NULL; } // If we've reached the max number of docs, close the @@ -901,7 +890,7 @@ wxDocument *wxDocManager::CreateDocument(const wxString& path, long flags) delete doc; } else - return NULL; + return (wxDocument *) NULL; } // New document: user chooses a template, unless there's only one. @@ -935,11 +924,11 @@ wxDocument *wxDocManager::CreateDocument(const wxString& path, long flags) return newDoc; } else - return NULL; + return (wxDocument *) NULL; } // Existing document - wxDocTemplate *temp = NULL; + wxDocTemplate *temp = (wxDocTemplate *) NULL; wxString path2(""); if (path != "") @@ -962,14 +951,14 @@ wxDocument *wxDocManager::CreateDocument(const wxString& path, long flags) if (!newDoc->OnOpenDocument(path2)) { delete newDoc; - return NULL; + return (wxDocument *) NULL; } AddFileToHistory(path2); } return newDoc; } else - return NULL; + return (wxDocument *) NULL; } wxView *wxDocManager::CreateView(wxDocument *doc, long flags) @@ -992,7 +981,7 @@ wxView *wxDocManager::CreateView(wxDocument *doc, long flags) if (n == 0) { delete[] templates; - return NULL; + return (wxView *) NULL; } if (n == 1) { @@ -1014,7 +1003,7 @@ wxView *wxDocManager::CreateView(wxDocument *doc, long flags) return view; } else - return NULL; + return (wxView *) NULL; } // Not yet implemented @@ -1033,14 +1022,14 @@ wxDocument *wxDocManager::GetCurrentDocument(void) const if (m_currentView) return m_currentView->GetDocument(); else - return NULL; + return (wxDocument *) NULL; } // Make a default document name bool wxDocManager::MakeDefaultName(wxString& name) { char buf[256]; - sprintf(buf, "unnamed%d", m_defaultDocumentNameCounter); + sprintf(buf, _("unnamed%d"), m_defaultDocumentNameCounter); m_defaultDocumentNameCounter ++; name = buf; return TRUE; @@ -1049,7 +1038,7 @@ bool wxDocManager::MakeDefaultName(wxString& name) // Not yet implemented wxDocTemplate *wxDocManager::MatchTemplate(const wxString& WXUNUSED(path)) { - return NULL; + return (wxDocTemplate *) NULL; } // File history management @@ -1112,9 +1101,9 @@ static char *FindExtension(char *path) return ext; } else - return NULL; + return (char *) NULL; } - else return NULL; + else return (char *) NULL; } @@ -1124,8 +1113,8 @@ wxDocTemplate *wxDocManager::FindTemplateForPath(const wxString& path) { char *theExt = FindExtension((char *)(const char *)path); if (!theExt) - return NULL; - wxDocTemplate *theTemplate = NULL; + return (wxDocTemplate *) NULL; + wxDocTemplate *theTemplate = (wxDocTemplate *) NULL; if (m_templates.Number() == 1) return (wxDocTemplate *)m_templates.First()->Data(); @@ -1174,14 +1163,14 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, // Omit final "|" descrBuf[len-1] = 0; - char *pathTmp = wxFileSelector("Select a file", "", "", "", descrBuf, 0, wxTheApp->GetTopWindow()); + char *pathTmp = wxFileSelector(_("Select a file"), "", "", "", descrBuf, 0, wxTheApp->GetTopWindow()); delete[] descrBuf; if (pathTmp) { path = pathTmp; char *theExt = FindExtension((char *)(const char *)path); if (!theExt) - return NULL; + return (wxDocTemplate *) NULL; // This is dodgy in that we're selecting the template on the // basis of the file extension, which may not be a standard @@ -1193,7 +1182,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, else { path = ""; - return NULL; + return (wxDocTemplate *) NULL; } #else // In all other windowing systems, until we have more advanced @@ -1201,9 +1190,9 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, // _then_ pop up the file selector. wxDocTemplate *temp = SelectDocumentType(templates, noTemplates); if (!temp) - return NULL; + return (wxDocTemplate *) NULL; - char *pathTmp = wxFileSelector("Select a file", "", "", + char *pathTmp = wxFileSelector(_("Select a file"), "", "", temp->GetDefaultExtension(), temp->GetFileFilter(), 0, wxTheApp->GetTopWindow()); @@ -1214,7 +1203,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, return temp; } else - return NULL; + return (wxDocTemplate *) NULL; #endif } @@ -1238,7 +1227,7 @@ wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates, { delete[] strings; delete[] data; - return NULL; + return (wxDocTemplate *) NULL; } else if (n == 1) { @@ -1248,7 +1237,7 @@ wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates, return temp; } - wxDocTemplate *theTemplate = (wxDocTemplate *)wxGetSingleChoiceData("Select a document template", "Templates", n, + wxDocTemplate *theTemplate = (wxDocTemplate *)wxGetSingleChoiceData(_("Select a document template"), _("Templates"), n, strings, data); delete[] strings; delete[] data; @@ -1271,7 +1260,7 @@ wxDocTemplate *wxDocManager::SelectViewType(wxDocTemplate **templates, n ++; } } - wxDocTemplate *theTemplate = (wxDocTemplate *)wxGetSingleChoiceData("Select a document view", "Views", n, + wxDocTemplate *theTemplate = (wxDocTemplate *)wxGetSingleChoiceData(_("Select a document view"), _("Views"), n, strings, data); delete[] strings; delete[] data; @@ -1321,7 +1310,7 @@ void wxDocManager::ActivateView(wxView *view, bool activate, bool WXUNUSED(delet if (activate) m_currentView = view; else - m_currentView = NULL; + m_currentView = (wxView *) NULL; } } @@ -1384,8 +1373,8 @@ bool wxDocChildFrame::OnClose(void) { m_childView->Activate(FALSE); delete m_childView; - m_childView = NULL; - m_childDocument = NULL; + m_childView = (wxView *) NULL; + m_childDocument = (wxDocument *) NULL; } return ans; @@ -1399,7 +1388,7 @@ bool wxDocChildFrame::OnClose(void) BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame) EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit) - EVT_MENU_RANGE(wxID_FILE1, wxID_FILE2, wxDocParentFrame::OnMRUFile) + EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile) END_EVENT_TABLE() wxDocParentFrame::wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, @@ -1523,8 +1512,8 @@ wxCommand::~wxCommand(void) wxCommandProcessor::wxCommandProcessor(int maxCommands) { m_maxNoCommands = maxCommands; - m_currentCommand = NULL; - m_commandEditMenu = NULL; + m_currentCommand = (wxNode *) NULL; + m_commandEditMenu = (wxMenu *) NULL; } wxCommandProcessor::~wxCommandProcessor(void) @@ -1592,8 +1581,8 @@ bool wxCommandProcessor::Undo(void) bool wxCommandProcessor::Redo(void) { - wxCommand *redoCommand = NULL; - wxNode *redoNode = NULL; + wxCommand *redoCommand = (wxCommand *) NULL; + wxNode *redoNode = (wxNode *) NULL; if (m_currentCommand && m_currentCommand->Next()) { redoCommand = (wxCommand *)m_currentCommand->Next()->Data(); @@ -1643,12 +1632,12 @@ void wxCommandProcessor::SetMenuStrings(void) { wxCommand *command = (wxCommand *)m_currentCommand->Data(); wxString commandName(command->GetName()); - if (commandName == "") commandName = "Unnamed command"; + if (commandName == "") commandName = _("Unnamed command"); bool canUndo = command->CanUndo(); if (canUndo) - buf = wxString("&Undo ") + commandName; + buf = wxString(_("&Undo ")) + commandName; else - buf = wxString("Can't &Undo ") + commandName; + buf = wxString(_("Can't &Undo ")) + commandName; m_commandEditMenu->SetLabel(wxID_UNDO, buf); m_commandEditMenu->Enable(wxID_UNDO, canUndo); @@ -1658,25 +1647,25 @@ void wxCommandProcessor::SetMenuStrings(void) { wxCommand *redoCommand = (wxCommand *)m_currentCommand->Next()->Data(); wxString redoCommandName(redoCommand->GetName()); - if (redoCommandName == "") redoCommandName = "Unnamed command"; - buf = wxString("&Redo ") + redoCommandName; + if (redoCommandName == "") redoCommandName = _("Unnamed command"); + buf = wxString(_("&Redo ")) + redoCommandName; m_commandEditMenu->SetLabel(wxID_REDO, buf); m_commandEditMenu->Enable(wxID_REDO, TRUE); } else { - m_commandEditMenu->SetLabel(wxID_REDO, "&Redo"); + m_commandEditMenu->SetLabel(wxID_REDO, _("&Redo")); m_commandEditMenu->Enable(wxID_REDO, FALSE); } } else { - m_commandEditMenu->SetLabel(wxID_UNDO, "&Undo"); + m_commandEditMenu->SetLabel(wxID_UNDO, _("&Undo")); m_commandEditMenu->Enable(wxID_UNDO, FALSE); if (m_commands.Number() == 0) { - m_commandEditMenu->SetLabel(wxID_REDO, "&Redo"); + m_commandEditMenu->SetLabel(wxID_REDO, _("&Redo")); m_commandEditMenu->Enable(wxID_REDO, FALSE); } else @@ -1685,8 +1674,8 @@ void wxCommandProcessor::SetMenuStrings(void) // we've undone to the start of the list, but can redo the first. wxCommand *redoCommand = (wxCommand *)m_commands.First()->Data(); wxString redoCommandName(redoCommand->GetName()); - if (!redoCommandName) redoCommandName = "Unnamed command"; - buf = wxString("&Redo ") + redoCommandName; + if (!redoCommandName) redoCommandName = _("Unnamed command"); + buf = wxString(_("&Redo ")) + redoCommandName; m_commandEditMenu->SetLabel(wxID_REDO, buf); m_commandEditMenu->Enable(wxID_REDO, TRUE); } @@ -1704,7 +1693,7 @@ void wxCommandProcessor::ClearCommands(void) delete node; node = m_commands.First(); } - m_currentCommand = NULL; + m_currentCommand = (wxNode *) NULL; } @@ -1715,7 +1704,7 @@ void wxCommandProcessor::ClearCommands(void) wxFileHistory::wxFileHistory(int maxFiles) { m_fileMaxFiles = maxFiles; - m_fileMenu = NULL; + m_fileMenu = (wxMenu *) NULL; m_fileHistoryN = 0; m_fileHistory = new char *[m_fileMaxFiles]; } @@ -1750,13 +1739,13 @@ void wxFileHistory::AddFileToHistory(const wxString& file) if (m_fileHistoryN == m_fileMaxFiles) { delete[] m_fileHistory[m_fileMaxFiles-1]; - m_fileHistory[m_fileMaxFiles-1] = NULL; + m_fileHistory[m_fileMaxFiles-1] = (char *) NULL; } if (m_fileHistoryN < m_fileMaxFiles) { if (m_fileHistoryN == 0) m_fileMenu->AppendSeparator(); - m_fileMenu->Append(wxID_FILE1+m_fileHistoryN, "[EMPTY]"); + m_fileMenu->Append(wxID_FILE1+m_fileHistoryN, _("[EMPTY]")); m_fileHistoryN ++; } // Shuffle filenames down @@ -1794,14 +1783,14 @@ void wxFileHistory::FileHistoryLoad(const wxString& resourceFile, const wxString m_fileHistoryN = 0; char buf[400]; sprintf(buf, "file%d", m_fileHistoryN+1); - char *historyFile = NULL; + char *historyFile = (char *) NULL; while ((m_fileHistoryN <= m_fileMaxFiles) && wxGetResource(section, buf, &historyFile, resourceFile) && historyFile) { // wxGetResource allocates memory so this is o.k. m_fileHistory[m_fileHistoryN] = historyFile; m_fileHistoryN ++; sprintf(buf, "file%d", m_fileHistoryN+1); - historyFile = NULL; + historyFile = (char *) NULL; } #endif }