X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/df707c27b3837ef17a0ede057e900638555525ce..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/motif/window.cpp diff --git a/src/motif/window.cpp b/src/motif/window.cpp index 17634160d4..a3db88113b 100644 --- a/src/motif/window.cpp +++ b/src/motif/window.cpp @@ -38,6 +38,7 @@ #endif #include "wx/evtloop.h" +#include "wx/unix/utilsx11.h" #if wxUSE_DRAG_AND_DROP #include "wx/dnd.h" @@ -131,8 +132,6 @@ static int str16len(const char *s) // event tables // ---------------------------------------------------------------------------- - IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase) - BEGIN_EVENT_TABLE(wxWindow, wxWindowBase) EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) END_EVENT_TABLE() @@ -345,11 +344,11 @@ bool wxWindow::Create(wxWindow *parent, wxWindowID id, // Destructor wxWindow::~wxWindow() { + SendDestroyEvent(); + if (g_captureWindow == this) g_captureWindow = NULL; - m_isBeingDeleted = true; - // Motif-specific actions first WXWidget wMain = GetMainWidget(); if ( wMain ) @@ -557,7 +556,7 @@ wxWindow *wxWindowBase::DoFindFocus() // currently active. // (2) The widget with the focus may not be in the widget table // depending on which widgets I put in the table - wxWindow *winFocus = (wxWindow *)NULL; + wxWindow *winFocus = NULL; for ( wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() ) @@ -688,10 +687,10 @@ bool wxWindow::SetCursor(const wxCursor& cursor) return false; } - // wxASSERT_MSG( m_cursor.Ok(), + // wxASSERT_MSG( m_cursor.IsOk(), // wxT("cursor must be valid after call to the base version")); const wxCursor* cursor2 = NULL; - if (m_cursor.Ok()) + if (m_cursor.IsOk()) cursor2 = & m_cursor; else cursor2 = wxSTANDARD_CURSOR; @@ -1083,7 +1082,6 @@ bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y) menu->SetId(1); /* Mark as popped-up */ menu->CreateMenu(NULL, widget, menu, 0); - menu->SetInvokingWindow(this); menu->UpdateUI(); @@ -1456,7 +1454,7 @@ int wxWindow::GetCharHeight() const { int height; - if (m_font.Ok()) + if (m_font.IsOk()) wxGetTextExtent (GetXDisplay(), m_font, 1.0, "x", NULL, &height, NULL, NULL); else @@ -1469,7 +1467,7 @@ int wxWindow::GetCharWidth() const { int width; - if (m_font.Ok()) + if (m_font.IsOk()) wxGetTextExtent (GetXDisplay(), m_font, 1.0, "x", &width, NULL, NULL, NULL); else @@ -1478,16 +1476,17 @@ int wxWindow::GetCharWidth() const return width; } -void wxWindow::GetTextExtent(const wxString& string, - int *x, int *y, - int *descent, int *externalLeading, - const wxFont *theFont) const +void wxWindow::DoGetTextExtent(const wxString& string, + int *x, int *y, + int *descent, + int *externalLeading, + const wxFont *theFont) const { const wxFont *fontToUse = theFont ? theFont : &m_font; if (externalLeading) *externalLeading = 0; - if (fontToUse->Ok()) + if (fontToUse->IsOk()) wxGetTextExtent (GetXDisplay(), *fontToUse, 1.0, string, x, y, NULL, descent); else @@ -1653,14 +1652,6 @@ void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) } } -void wxWindow::OnInternalIdle() -{ - // This calls the UI-update mechanism (querying windows for - // menu/toolbar/control state information) - if (wxUpdateUIEvent::CanUpdate(this) && IsShownOnScreen()) - UpdateWindowUI(wxUPDATE_UI_FROMIDLE); -} - // ---------------------------------------------------------------------------- // accelerators // ---------------------------------------------------------------------------- @@ -1668,7 +1659,7 @@ void wxWindow::OnInternalIdle() bool wxWindow::ProcessAccelerator(wxKeyEvent& event) { #if wxUSE_ACCEL - if (!m_acceleratorTable.Ok()) + if (!m_acceleratorTable.IsOk()) return false; int count = m_acceleratorTable.GetCount(); @@ -1701,7 +1692,7 @@ bool wxWindow::ProcessAccelerator(wxKeyEvent& event) wxMenuItem* item = frame->GetMenuBar()->FindItem(entry->GetCommand()); if (item) { - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, entry->GetCommand()); + wxCommandEvent commandEvent(wxEVT_MENU, entry->GetCommand()); commandEvent.SetEventObject(frame); // If ProcessEvent returns true (it was handled), then @@ -1723,7 +1714,7 @@ bool wxWindow::ProcessAccelerator(wxKeyEvent& event) // For now, only buttons. if ( wxDynamicCast(child, wxButton) ) { - wxCommandEvent commandEvent (wxEVT_COMMAND_BUTTON_CLICKED, child->GetId()); + wxCommandEvent commandEvent (wxEVT_BUTTON, child->GetId()); commandEvent.SetEventObject(child); return child->HandleWindowEvent(commandEvent); } @@ -1864,7 +1855,7 @@ WXDisplay *wxWindow::GetXDisplay() const if ( wMain ) return (WXDisplay*) XtDisplay(wMain); else - return (WXDisplay*) NULL; + return NULL; } WXWidget wxWindow::GetMainWidget() const @@ -2097,7 +2088,7 @@ static void wxScrollBarCallback(Widget scrollbar, XmScrollBarCallbackStruct *cbs) { wxWindow *win = wxGetWindowFromTable(scrollbar); - wxCHECK_RET( win, _T("invalid widget in scrollbar callback") ); + wxCHECK_RET( win, wxT("invalid widget in scrollbar callback") ); wxOrientation orientation = (wxOrientation)wxPtrToUInt(clientData); @@ -2498,7 +2489,7 @@ void wxWindow::ChangeFont(bool keepOriginalSize) // to its original size! We therefore have to set the size // back again. TODO: a better way in Motif? Widget w = (Widget) GetLabelWidget(); // Usually the main widget - if (w && m_font.Ok()) + if (w && m_font.IsOk()) { int width, height, width1, height1; GetSize(& width, & height);