Fixed bug in wxListCtrl
Made wxMDIDocView work git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
32a4b1d57c
commit
9746a2ba50
@ -157,6 +157,9 @@ class WXDLLEXPORT wxView: public wxEvtHandler
|
||||
|
||||
inline wxFrame *GetFrame(void) const { return m_viewFrame ; }
|
||||
inline void SetFrame(wxFrame *frame) { m_viewFrame = frame; }
|
||||
#ifdef __WXGTK__
|
||||
inline void SetFrame(wxMDIChildFrame *frame) { m_viewFrame = (wxFrame*)frame; }
|
||||
#endif
|
||||
|
||||
virtual void OnActivateView(bool activate, wxView *activeView, wxView *deactiveView);
|
||||
virtual void OnDraw(wxDC *dc) = 0;
|
||||
|
@ -130,6 +130,7 @@ class wxMDIChildFrame: public wxPanel
|
||||
bool Destroy(void);
|
||||
void OnCloseWindow( wxCloseEvent& event );
|
||||
void OnSize( wxSizeEvent &event );
|
||||
void OnActivate( wxActivateEvent &event );
|
||||
|
||||
public:
|
||||
|
||||
|
@ -130,6 +130,7 @@ class wxMDIChildFrame: public wxPanel
|
||||
bool Destroy(void);
|
||||
void OnCloseWindow( wxCloseEvent& event );
|
||||
void OnSize( wxSizeEvent &event );
|
||||
void OnActivate( wxActivateEvent &event );
|
||||
|
||||
public:
|
||||
|
||||
|
@ -114,7 +114,7 @@ int MyApp::OnExit(void)
|
||||
* Called from view.cpp, when a view is created.
|
||||
*/
|
||||
|
||||
wxFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas)
|
||||
wxMDIChildFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas)
|
||||
{
|
||||
//// Make a child frame
|
||||
wxDocMDIChildFrame *subframe = new wxDocMDIChildFrame(doc, view, GetMainFrame(), -1, "Child Frame",
|
||||
|
@ -28,7 +28,7 @@ class MyApp: public wxApp
|
||||
bool OnInit(void);
|
||||
int OnExit(void);
|
||||
|
||||
wxFrame *CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas);
|
||||
wxMDIChildFrame *CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas);
|
||||
|
||||
protected:
|
||||
wxDocManager* m_docManager;
|
||||
|
@ -113,7 +113,7 @@ bool DrawingView::OnClose(bool deleteWindow)
|
||||
if (frame)
|
||||
frame->SetTitle(s);
|
||||
|
||||
SetFrame(NULL);
|
||||
SetFrame((wxFrame*)NULL);
|
||||
|
||||
Activate(FALSE);
|
||||
|
||||
|
@ -30,6 +30,7 @@ LIB_CPP_SRC=\
|
||||
common/cmndata.cpp \
|
||||
common/config.cpp \
|
||||
common/date.cpp \
|
||||
common/docmdi.cpp \
|
||||
common/docview.cpp \
|
||||
common/dynarray.cpp \
|
||||
common/event.cpp \
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "wx/menu.h"
|
||||
#include "wx/list.h"
|
||||
#include "wx/filedlg.h"
|
||||
#include "wx/mdi.h"
|
||||
#endif
|
||||
|
||||
#include "wx/msgdlg.h"
|
||||
@ -482,27 +483,34 @@ void wxView::OnChangeFilename(void)
|
||||
wxString name;
|
||||
GetDocument()->GetPrintableName(name);
|
||||
|
||||
// If the frame is an MDI child, just set the title
|
||||
// to the 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
|
||||
#ifdef __WXMSW__
|
||||
// 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)))
|
||||
#else
|
||||
if (FALSE)
|
||||
#endif
|
||||
{
|
||||
GetFrame()->SetTitle(name);
|
||||
}
|
||||
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);
|
||||
GetFrame()->SetTitle(buf);
|
||||
mdi_frame->SetTitle(buf);
|
||||
}
|
||||
else
|
||||
GetFrame()->SetTitle(name);
|
||||
mdi_frame->SetTitle(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1755,6 +1755,7 @@ void wxListMainWindow::DeleteItem( long index )
|
||||
if (node)
|
||||
{
|
||||
wxListLineData *line = (wxListLineData*)node->Data();
|
||||
if (m_current == line) m_current = NULL;
|
||||
DeleteLine( line );
|
||||
m_lines.DeleteNode( node );
|
||||
};
|
||||
|
@ -176,6 +176,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
|
||||
BEGIN_EVENT_TABLE(wxMDIChildFrame, wxPanel)
|
||||
EVT_CLOSE(wxMDIChildFrame::OnCloseWindow)
|
||||
EVT_SIZE(wxMDIChildFrame::OnSize)
|
||||
EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
wxMDIChildFrame::wxMDIChildFrame(void)
|
||||
@ -254,6 +255,7 @@ void wxMDIChildFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
|
||||
child->SetSize( 1, 1, client_x-2, client_y);
|
||||
}
|
||||
};
|
||||
|
||||
bool wxMDIChildFrame::Destroy(void)
|
||||
{
|
||||
if (!wxPendingDelete.Member(this))
|
||||
@ -306,6 +308,10 @@ void wxMDIChildFrame::Activate(void)
|
||||
{
|
||||
};
|
||||
|
||||
void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) )
|
||||
{
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMDIClientWindow
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -176,6 +176,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
|
||||
BEGIN_EVENT_TABLE(wxMDIChildFrame, wxPanel)
|
||||
EVT_CLOSE(wxMDIChildFrame::OnCloseWindow)
|
||||
EVT_SIZE(wxMDIChildFrame::OnSize)
|
||||
EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
wxMDIChildFrame::wxMDIChildFrame(void)
|
||||
@ -254,6 +255,7 @@ void wxMDIChildFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
|
||||
child->SetSize( 1, 1, client_x-2, client_y);
|
||||
}
|
||||
};
|
||||
|
||||
bool wxMDIChildFrame::Destroy(void)
|
||||
{
|
||||
if (!wxPendingDelete.Member(this))
|
||||
@ -306,6 +308,10 @@ void wxMDIChildFrame::Activate(void)
|
||||
{
|
||||
};
|
||||
|
||||
void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) )
|
||||
{
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMDIClientWindow
|
||||
//-----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user