Commit Graph

219 Commits

Author SHA1 Message Date
Vadim Zeitlin
8c85eb7b47 Update wxCommandProcessor after saving wxDocument.
Surprisingly, wxCommandProcessor::MarkAsSaved() method was never called by
wxDocument so saving the document didn't update wxCommandProcessor dirty
status.

Do add a call to MarkAsSaved() now, this allows wxCommandProcessor to track
its status correctly (and actually more correctly than the dirty status of the
document which becomes "dirty" after doing and undoing an operation after
saving it, unlike wxCommandProcessor::IsDirty() which correctly returns false
in this case).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-25 00:05:15 +00:00
Vadim Zeitlin
d38eb01c91 Added customizable wxDocManager::OnMRUFileNotExist() virtual method.
This method can be overridden to customize the previously hard-coded handling
of the case when a file selected from the MRU menu doesn't exist any more: we
used to always remove it from the file history completely. This may, however,
be inappropriate and, in fact, probably never, or very rarely, is the right
thing to do when the file that we failed to open still exists.

So never remove the file from the MRU if we failed to open an existing file
(also don't give an error about it as it should have been already given by
CreateDocument()) and, while we still do it for the non-existent files, allow
to override this behaviour by overriding the new OnMRUFileNotExist() method.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-22 16:16:09 +00:00
Vadim Zeitlin
4db97e24f5 Add support for child documents to docview framework.
Child documents are virtual documents corresponding to parts of their parent
document which can't be saved nor loaded independently of their parent and are
closed when the parent is closed.

This finally makes some use of wxDocument::m_documentParent field which was
always present in the docview code but never used before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-27 00:09:37 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.

Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").

Closes #13063 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 14:17:38 +00:00
Vadim Zeitlin
302674fe17 Use better title by default in wxDocPrintout.
Use the document name instead of the default "Printout" if no title is
explicitly specified when creating wxDocPrintout.

Closes #12885.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-06 01:01:09 +00:00
Vadim Zeitlin
a70d268a1b Add wxDocManager::FindTemplate() method.
This allows to find the template corresponding to the document of the given
class.

Closes #12170.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-24 23:03:38 +00:00
Vadim Zeitlin
f50d84586a Correct the check for MRU menu items range.
The last id of the range if offset by the first one by the number of items in
the menu, not the base id of the file history menu.

Closes #12141.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-28 11:26:49 +00:00
Vadim Zeitlin
54cbdc6414 Return after activating already opened document in wxDocManager.
Add accidentally omitted "return" in wxDocManager::CreateDocument() to prevent
recreating already opened documents.

Closes #12277.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-28 11:26:33 +00:00
Vadim Zeitlin
568b12fab0 Just call wxDocManager::CloseDocument() instead of duplicating it.
No real changes but avoid making the document deletion code even more opaque
by duplicating the code already existing as a function elsewhere.

Closes #11364.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-23 23:33:32 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
c70da1a243 Fix processing of events for MRU entries #10 and more in docview.
We only handled events for wxID_FILE1..wxID_FILE9 range but there can be more
than 9 entries in the MRU list. Handle events for as many of them as there are
correctly.

This required adding a fallback handler for all menu events and checking if
the id of the menu item is in the MRU range inside it. Also move this to
wxDocManager itself from wxDocParentFrameAnyBase as it's common for all kinds
of frames anyhow.

Closes #12141.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-12 18:21:42 +00:00
Vadim Zeitlin
b27367a5bd Don't disable wxID_PRINT_SETUP even when there is no active document.
Printer can be setup without active document, remove the EVT_UPDATE_UI handler
for wxID_PRINT_SETUP.

See #11394.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-31 14:59:08 +00:00
Vadim Zeitlin
8325504f4b Activate the view of a newly created document.
This appears to be necessary under Mac where views are top level windows and
should do no harm elsewhere.

Also factor out the activation code in a new wxDocManager::ActivateDocument()
method to avoid duplicating it.

Closes #11417.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-30 20:05:44 +00:00
Vadim Zeitlin
b99017ce20 Store page setup data in wxDocManager.
Printing of documents from wxDocManager always used default page setup data,
allow the user to configure it now.

Add wxDocManager::m_pageSetupDialogData and add a handler for wxID_PRINT_SETUP
command to it.

Closes #11394.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-30 20:05:39 +00:00
Vadim Zeitlin
2954883593 Document wxDocument::DeleteContents().
This method purpose was not quite clear as it was only mentioned in passing in
documentation of OnCloseDocument() but not really documented itself.

Also don't call it from wxDocument dtor as this is useless: the user-defined
overridden version will never be called from here and the base class version
does nothing.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-13 14:37:00 +00:00
Vadim Zeitlin
c48bdb0c28 Refactor wxDocParentFrame and wxDocMDIParentFrame to share common base class.
Use the same approach as for the child frames: add a base template class which
allows wxDocParentFrame to inherit from wxFrame and wxDocMDIParentFrame from
wxMDIParentFrame while still allowing to reuse the common code.

This reduces code duplication and should make implementing parent AUI document
frame easier as well, see #8945.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-12 14:34:18 +00:00
Vadim Zeitlin
44070fd379 Use ProcessEventLocally() instead of ProcessEventHere() in docview code.
Use wxEvtHandler::ProcessEventLocally() instead of ProcessEventHere() when
forwarding events in the docview code. This ensures that any event handlers
chained with the objects involved (document manager, document, view) will be
used.

Incidentally the old code didn't work at all as ProcessEventHere() didn't even
call TryBefore() where the (further) forwarding was implemented.

Closes #10640.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-09 14:55:41 +00:00
Václav Slavík
a0219e4580 Move wxFileHistory out of docview framework, add wxUSE_FILE_HISTORY.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-04 12:15:14 +00:00
Vadim Zeitlin
97aa1a74db Only allow opening existing files in docview framework.
Use wxFD_FILE_MUST_EXIST when asking the user for the name of the file to
open.

Closes #11866.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-29 21:24:39 +00:00
Vadim Zeitlin
94dc70d190 Allow overriding print preview frame creation in docview.
Add a virtual wxDocManager::CreatePreviewFrame() which can be overridden to
customize the print preview used by docview framework.

Closes #11390.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-25 20:07:58 +00:00
Vadim Zeitlin
4311588bfe Implement wxDocument::Revert() and show its use in the sample.
wxDocument::Revert() method existed but didn't do anything, provide a
default implementation for it. Also document it and show it in the sample.

Closes #11849.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-23 10:49:51 +00:00
Vadim Zeitlin
cf30eac295 Always call wxView::Close() when closing it.
After wxDocView refactoring the behaviour has changed and wxView::Close() and
hence user-overriddable OnClose() called from it) was only called if the close
event could be vetoed. This broke code which relied on OnClose() being
executed in any case to perform some cleanup and was incompatible with 2.8 so
restore the old behaviour now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-23 10:36:36 +00:00
Julian Smart
d3785012e5 Don't crash if no document
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-07 15:23:09 +00:00
Julian Smart
63c639ec62 Safer access of member variables
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-07 15:05:28 +00:00
Vadim Zeitlin
fd4618549b Don't add default extension in wxDocument::SaveAs().
wxFileSelector() takes care of the default extension itself and if it returned
a file name without one, it means that the user really wants to create a file
without an extension. Adding the default extension here is at best useless and
at worst actively dangerous because it may silently overwrite an existing file
(although this bug is due to a different problem, see #11256 for a scenario in
which this can happen).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-09 13:05:10 +00:00
Julian Smart
65b9ad2b55 Applied #10892: Remove wxDocManager instance check
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 16:25:45 +00:00
Julian Smart
8410881294 Applied #10828 (Hourglass in wxDocManager::OnPreview)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 13:54:31 +00:00
Julian Smart
250ab35a3b Applied: wxDocument: Adding an asterix to the title
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 13:49:01 +00:00
Vadim Zeitlin
0571b62b88 Fix wxDocManager::GetLastDirectory() when there is no history.
The most recently opened file should be used only if we have MRU list.

Closes #11145.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-26 22:17:57 +00:00
Vadim Zeitlin
ce0822e1b9 Use wxFile for IO if wxFFile is not available.
Closes #11067.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-05 17:24:16 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
bba6891c84 use the directory of the most recently opened file in wxDocManager if we have any
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 17:40:11 +00:00
Vadim Zeitlin
b6e96faf3e remove unneeded wxFindSuitableParent()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-09 12:57:00 +00:00
Vadim Zeitlin
ada1ff0dbc close the associated frame if the view is deleted directly to avoid leaving zombie frames floating around
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 19:53:49 +00:00
Vadim Zeitlin
4c7d530a26 don't use wxScopedPtr<> in wxDocTemplate::CreateDocument() as the document is implicitly deleted by InitDocument() if its initialization fails; try to explain the (complex and inconsistent) rules for deleting the document in the manual
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 19:40:49 +00:00
Vadim Zeitlin
3a393f8a52 PCH-less build fix after r59452
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 19:29:07 +00:00
Vadim Zeitlin
7339d7bda1 don't leak memory if exceptions are thrown during a new wxDocument creation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 18:45:35 +00:00
Vadim Zeitlin
0b108d1006 don't call neither OnSaveModified() nor Modify(false) from On{New,Open}Document(): these methods are only ever called for the new wxDocument object which should never be saved, even if they're marked as modified by the user-defined document creation code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 18:13:04 +00:00
Vadim Zeitlin
a9e2e6e52b refactor wxDocChildFrame and wxDocMDIChildFrame to use wxDocChildFrameAny intead of duplicating its code (with subtle differences, as usual); also added wxDocChildFrameAnyBase and store a pointer to it in wxView to reset the frame view if the view is being deleted because its creation fails to avoid crashes in this case
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-27 12:24:03 +00:00
Vadim Zeitlin
8cc208e39f deprecate the old TryValidator/Parent() and replace them with the new and documented TryBefore/After()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-26 16:16:31 +00:00
Vadim Zeitlin
664e13143e renamed wx/ptr_shrd.h to wx/sharedptr.h; split wx/ptr_scpd.h in wx/scopedptr.h and wx/scopedarray.h; extracted common parts into new wx/checkeddelete.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-03 12:01:46 +00:00
Vadim Zeitlin
575e4cd670 don't fall back to the only currently existing document in wxDocManager::GetCurrentView() as it breaks activation logic (#9518)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-29 13:04:40 +00:00
Vadim Zeitlin
89d94e046d no real changes, just minor refactoring and cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-29 12:52:17 +00:00
Vadim Zeitlin
4f57a7bfcd don't use the not always appropriate word "document" in the save prompt (#10076)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 14:41:59 +00:00
Vadim Zeitlin
d8efd2198f added wxStandardPaths::GetAppDocumentsDir() and use it by default for loading/saving documents in wxDocManager
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-21 14:01:30 +00:00
Francesco Montorsi
84cae69a8b call event.Enable(true) in OnUpdateFileOpen and OnUpdateFileNew only if there are templates in the doc manager (closes #10163)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-14 15:25:05 +00:00
Francesco Montorsi
00e3ea1c6f minor cleanup; add wxDocument::OnChangeFilename for coherence with wxView::OnChangefilename; avoid some (small) code duplication; closes #10080
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-09 16:13:49 +00:00
Francesco Montorsi
9690b00654 always remember to test IsOk() after using wxFileInputStream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 18:26:35 +00:00
Francesco Montorsi
bd365871aa s/wxSplitPath/wxFileName::SplitPath
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-07 01:47:47 +00:00