wxMSW update for CW, wxMac updated

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
1999-12-03 14:30:39 +00:00
parent 3b9e345522
commit 6418cb9302
11 changed files with 128 additions and 16 deletions

View File

@@ -27,14 +27,15 @@ class WXDLLEXPORT wxMacPrinter: public wxPrinterBase
DECLARE_DYNAMIC_CLASS(wxMacPrinter) DECLARE_DYNAMIC_CLASS(wxMacPrinter)
public: public:
wxMacPrinter(wxPrintData *data = NULL); wxMacPrinter(wxPrintDialogData *data = NULL);
~wxMacPrinter(void); virtual ~wxMacPrinter();
virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE); virtual bool Print(wxWindow *parent,
virtual bool PrintDialog(wxWindow *parent); wxPrintout *printout,
bool prompt = TRUE);
virtual wxDC* PrintDialog(wxWindow *parent);
virtual bool Setup(wxWindow *parent); virtual bool Setup(wxWindow *parent);
private:
}; };
/* /*
@@ -47,11 +48,16 @@ class WXDLLEXPORT wxMacPrintPreview: public wxPrintPreviewBase
DECLARE_CLASS(wxMacPrintPreview) DECLARE_CLASS(wxMacPrintPreview)
public: public:
wxMacPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting = NULL, wxPrintData *data = NULL); wxMacPrintPreview(wxPrintout *printout,
~wxMacPrintPreview(void); wxPrintout *printoutForPrinting = NULL,
wxPrintDialogData *data = NULL);
wxMacPrintPreview(wxPrintout *printout,
wxPrintout *printoutForPrinting,
wxPrintData *data);
virtual ~wxMacPrintPreview();
virtual bool Print(bool interactive); virtual bool Print(bool interactive);
virtual void DetermineScaling(void); virtual void DetermineScaling();
}; };
#endif #endif

View File

@@ -102,7 +102,7 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&);
#elif defined(__WXQT__) #elif defined(__WXQT__)
#include "wx/qt/notebook.h" #include "wx/qt/notebook.h"
#elif defined(__WXMAC__) #elif defined(__WXMAC__)
#include "wx/mac/notebook.h" #include "wx/generic/notebook.h"
#elif defined(__WXPM__) #elif defined(__WXPM__)
#include "wx/os2/notebook.h" #include "wx/os2/notebook.h"
#elif defined(__WXSTUBS__) #elif defined(__WXSTUBS__)

View File

@@ -50,7 +50,7 @@ extern wxList wxPendingDelete;
extern wxList *wxWinMacWindowList; extern wxList *wxWinMacWindowList;
extern wxList *wxWinMacControlList; extern wxList *wxWinMacControlList;
extern wxApp *wxTheApp ; wxApp *wxTheApp = NULL;
#if !USE_SHARED_LIBRARY #if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)

View File

@@ -50,7 +50,7 @@ extern wxList wxPendingDelete;
extern wxList *wxWinMacWindowList; extern wxList *wxWinMacWindowList;
extern wxList *wxWinMacControlList; extern wxList *wxWinMacControlList;
extern wxApp *wxTheApp ; wxApp *wxTheApp = NULL;
#if !USE_SHARED_LIBRARY #if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)

View File

@@ -341,6 +341,56 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
// Default resizing behaviour - if only ONE subwindow, // Default resizing behaviour - if only ONE subwindow,
// resize to client rectangle size // resize to client rectangle size
void wxFrame::OnIdle(wxIdleEvent& WXUNUSED(event) )
{
DoMenuUpdates();
}
// update all menus
void wxFrame::DoMenuUpdates()
{
wxMenuBar* bar = GetMenuBar();
if ( bar != NULL )
{
int nCount = bar->GetMenuCount();
for (int n = 0; n < nCount; n++)
DoMenuUpdates(bar->GetMenu(n), (wxWindow*) NULL);
}
}
// update a menu and all submenus recursively
void wxFrame::DoMenuUpdates(wxMenu* menu, wxWindow* WXUNUSED(focusWin))
{
wxEvtHandler* evtHandler = GetEventHandler();
wxMenuItemList::Node* node = menu->GetMenuItems().GetFirst();
while (node)
{
wxMenuItem* item = node->GetData();
if ( !item->IsSeparator() )
{
wxWindowID id = item->GetId();
wxUpdateUIEvent event(id);
event.SetEventObject( this );
if (evtHandler->ProcessEvent(event))
{
if (event.GetSetText())
menu->SetLabel(id, event.GetText());
if (event.GetSetChecked())
menu->Check(id, event.GetChecked());
if (event.GetSetEnabled())
menu->Enable(id, event.GetEnabled());
}
if (item->GetSubMenu())
DoMenuUpdates(item->GetSubMenu(), (wxWindow*) NULL);
}
node = node->GetNext();
}
}
void wxFrame::OnSize(wxSizeEvent& event) void wxFrame::OnSize(wxSizeEvent& event)
{ {
// if we're using constraints - do use them // if we're using constraints - do use them

View File

@@ -241,6 +241,5 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style)
// Explicitly call default scroll behaviour // Explicitly call default scroll behaviour
void wxMDIClientWindow::OnScroll(wxScrollEvent& event) void wxMDIClientWindow::OnScroll(wxScrollEvent& event)
{ {
Default(); // Default processing
} }

View File

@@ -838,7 +838,6 @@ void wxWindow::WarpPointer (int x_pos, int y_pos)
void wxWindow::OnEraseBackground(wxEraseEvent& event) void wxWindow::OnEraseBackground(wxEraseEvent& event)
{ {
// TODO : probably we would adopt the EraseEvent structure // TODO : probably we would adopt the EraseEvent structure
Default();
} }
int wxWindow::GetScrollPos(int orient) const int wxWindow::GetScrollPos(int orient) const

View File

@@ -341,6 +341,56 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
// Default resizing behaviour - if only ONE subwindow, // Default resizing behaviour - if only ONE subwindow,
// resize to client rectangle size // resize to client rectangle size
void wxFrame::OnIdle(wxIdleEvent& WXUNUSED(event) )
{
DoMenuUpdates();
}
// update all menus
void wxFrame::DoMenuUpdates()
{
wxMenuBar* bar = GetMenuBar();
if ( bar != NULL )
{
int nCount = bar->GetMenuCount();
for (int n = 0; n < nCount; n++)
DoMenuUpdates(bar->GetMenu(n), (wxWindow*) NULL);
}
}
// update a menu and all submenus recursively
void wxFrame::DoMenuUpdates(wxMenu* menu, wxWindow* WXUNUSED(focusWin))
{
wxEvtHandler* evtHandler = GetEventHandler();
wxMenuItemList::Node* node = menu->GetMenuItems().GetFirst();
while (node)
{
wxMenuItem* item = node->GetData();
if ( !item->IsSeparator() )
{
wxWindowID id = item->GetId();
wxUpdateUIEvent event(id);
event.SetEventObject( this );
if (evtHandler->ProcessEvent(event))
{
if (event.GetSetText())
menu->SetLabel(id, event.GetText());
if (event.GetSetChecked())
menu->Check(id, event.GetChecked());
if (event.GetSetEnabled())
menu->Enable(id, event.GetEnabled());
}
if (item->GetSubMenu())
DoMenuUpdates(item->GetSubMenu(), (wxWindow*) NULL);
}
node = node->GetNext();
}
}
void wxFrame::OnSize(wxSizeEvent& event) void wxFrame::OnSize(wxSizeEvent& event)
{ {
// if we're using constraints - do use them // if we're using constraints - do use them

View File

@@ -241,6 +241,5 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style)
// Explicitly call default scroll behaviour // Explicitly call default scroll behaviour
void wxMDIClientWindow::OnScroll(wxScrollEvent& event) void wxMDIClientWindow::OnScroll(wxScrollEvent& event)
{ {
Default(); // Default processing
} }

View File

@@ -838,7 +838,6 @@ void wxWindow::WarpPointer (int x_pos, int y_pos)
void wxWindow::OnEraseBackground(wxEraseEvent& event) void wxWindow::OnEraseBackground(wxEraseEvent& event)
{ {
// TODO : probably we would adopt the EraseEvent structure // TODO : probably we would adopt the EraseEvent structure
Default();
} }
int wxWindow::GetScrollPos(int orient) const int wxWindow::GetScrollPos(int orient) const

View File

@@ -593,7 +593,17 @@ int wxEntry(WXHINSTANCE hInstance,
// (another useful flag is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free // (another useful flag is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free
// deallocated memory which may be used to simulate low-memory condition) // deallocated memory which may be used to simulate low-memory condition)
wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
#ifdef __MWERKS__
#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT
// This seems to be necessary since there are 'rogue'
// objects present at this point (perhaps global objects?)
// Setting a checkpoint will ignore them as far as the
// memory checking facility is concerned.
// Of course you may argue that memory allocated in globals should be
// checked, but this is a reasonable compromise.
wxDebugContext::SetCheckpoint();
#endif
#endif
// take everything into a try-except block in release build // take everything into a try-except block in release build
// FIXME other compilers must support Win32 SEH (structured exception // FIXME other compilers must support Win32 SEH (structured exception
// handling) too, just find the appropriate keyword in their docs! // handling) too, just find the appropriate keyword in their docs!