X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3b9f782ef3949f583e8ac53795d36787f044fc3..76e7cfab8fdb0c7862fd07e427af54181717fc62:/src/motif/window.cpp?ds=inline diff --git a/src/motif/window.cpp b/src/motif/window.cpp index 32f3dabc2e..58a365a188 100644 --- a/src/motif/window.cpp +++ b/src/motif/window.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart // Modified by: // Created: 17/09/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -38,6 +37,7 @@ #endif #include "wx/evtloop.h" +#include "wx/unix/utilsx11.h" #if wxUSE_DRAG_AND_DROP #include "wx/dnd.h" @@ -131,8 +131,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 +343,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 ) @@ -688,10 +686,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 +1081,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 +1453,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 +1466,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 +1475,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 +1651,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 +1658,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 +1691,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 +1713,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); } @@ -2097,7 +2087,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 +2488,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);