Add wxTLW::SetModified to allow apps to set the TLW's dirty state. On Mac this gives us the dot in the close button, not implemented elsewhere yet.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier 2009-12-07 01:54:21 +00:00
parent 8301a0e89d
commit efb2fa41ff
7 changed files with 46 additions and 0 deletions

View File

@ -244,6 +244,9 @@ public :
virtual void WindowToScreen( int *x, int *y );
virtual bool IsActive();
virtual void SetModified(bool modified);
virtual bool GetModified() const;
wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; }
protected :

View File

@ -753,6 +753,9 @@ public :
static wxNonOwnedWindowImpl* CreateNonOwnedWindow( wxNonOwnedWindow* wxpeer, wxWindow* parent, const wxPoint& pos, const wxSize& size,
long style, long extraStyle, const wxString& name ) ;
virtual void SetModified(bool WXUNUSED(modified)) { }
virtual bool GetModified() const { return false; }
protected :
wxNonOwnedWindow* m_wxPeer;

View File

@ -75,6 +75,9 @@ public:
virtual void SetTitle( const wxString& title);
virtual wxString GetTitle() const;
virtual void SetModified(bool modified);
virtual bool GetModified() const;
protected:
// common part of all ctors
void Init();

View File

@ -256,6 +256,9 @@ public:
// a different API for SetSizeHints
virtual void SetMinSize(const wxSize& minSize);
virtual void SetMaxSize(const wxSize& maxSize);
virtual void SetModified(bool modified) { m_modified = modified; }
virtual bool GetModified() const { return m_modified; }
protected:
// the frame client to screen translation should take account of the
@ -304,6 +307,8 @@ protected:
// a temporary override of m_winDefault, use the latter if NULL
wxWindowRef m_winTmpDefault;
bool m_modified;
wxDECLARE_NO_COPY_CLASS(wxTopLevelWindowBase);
DECLARE_EVENT_TABLE()

View File

@ -439,6 +439,18 @@ public:
there are any open top level windows.
*/
virtual bool ShouldPreventAppExit() const;
/**
This function sets the wxTopLevelWindow's modified state, so that the
wxTopLevelWindow can change its GUI to reflect the current state. (e.g. on
Mac, the close button gets a black dot to reflect that there are unsaved changes)
*/
virtual void SetModified(bool modified);
/**
Returns the current modified state of the wxTopLevelWindow.
*/
virtual bool GetModified() const;
/**
Depending on the value of @a show parameter the window is either shown

View File

@ -727,6 +727,16 @@ bool wxNonOwnedWindowCocoaImpl::IsActive()
return [m_macWindow isKeyWindow];
}
void wxNonOwnedWindowCocoaImpl::SetModified(bool modified)
{
[m_macWindow setDocumentEdited:modified];
}
bool wxNonOwnedWindowCocoaImpl::GetModified() const
{
return [m_macWindow isDocumentEdited];
}
wxNonOwnedWindowImpl* wxNonOwnedWindowImpl::CreateNonOwnedWindow( wxNonOwnedWindow* wxpeer, wxWindow* parent, const wxPoint& pos, const wxSize& size,
long style, long extraStyle, const wxString& name )
{

View File

@ -186,3 +186,13 @@ bool wxTopLevelWindowMac::IsActive()
{
return m_nowpeer->IsActive();
}
void wxTopLevelWindowMac::SetModified(bool modified)
{
m_nowpeer->SetModified(modified);
}
bool wxTopLevelWindowMac::GetModified() const
{
return m_nowpeer->GetModified();
}