X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3b9f782ef3949f583e8ac53795d36787f044fc3..eea4d01c65f9b29baa1193db762b4c6b8144af24:/src/gtk1/window.cpp diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 7061e1ee6b..42a37b7df2 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -49,7 +49,7 @@ #include "wx/fontutil.h" -#ifdef __WXDEBUG__ +#if wxDEBUG_LEVEL #include "wx/thread.h" #endif @@ -236,19 +236,16 @@ extern bool g_mainThreadLocked; // debug //----------------------------------------------------------------------------- -#ifdef __WXDEBUG__ - #if wxUSE_THREADS -# define DEBUG_MAIN_THREAD if (wxThread::IsMain() && g_mainThreadLocked) printf("gui reentrance"); +# define DEBUG_MAIN_THREAD \ + wxASSERT_MSG( !g_mainThreadLocked || !wxThread::IsMain(), \ + "GUI reentrancy detected" ); #else # define DEBUG_MAIN_THREAD #endif -#else -#define DEBUG_MAIN_THREAD -#endif // Debug // the trace mask used for the focus debugging messages -#define TRACE_FOCUS _T("focus") +#define TRACE_FOCUS wxT("focus") //----------------------------------------------------------------------------- // missing gdk functions @@ -623,7 +620,7 @@ static void gtk_window_draw_callback( GtkWidget *widget, //----------------------------------------------------------------------------- // set WXTRACE to this to see the key event codes on the console -#define TRACE_KEYS _T("keyevent") +#define TRACE_KEYS wxT("keyevent") // translates an X key symbol to WXK_XXX value // @@ -923,7 +920,6 @@ static void wxFillOtherKeyEventFields(wxKeyEvent& event, event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK) != 0; event.m_altDown = (gdk_event->state & GDK_MOD1_MASK) != 0; event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK) != 0; - event.m_scanCode = gdk_event->keyval; event.m_rawCode = (wxUint32) gdk_event->keyval; event.m_rawFlags = 0; #if wxUSE_UNICODE @@ -958,9 +954,9 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event, KeySym keysym = gdk_event->keyval; - wxLogTrace(TRACE_KEYS, _T("Key %s event: keysym = %ld"), - event.GetEventType() == wxEVT_KEY_UP ? _T("release") - : _T("press"), + wxLogTrace(TRACE_KEYS, wxT("Key %s event: keysym = %ld"), + event.GetEventType() == wxEVT_KEY_UP ? wxT("release") + : wxT("press"), keysym); long key_code = wxTranslateKeySymToWXKey(keysym, false /* !isChar */); @@ -989,7 +985,7 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event, Display *dpy = (Display *)wxGetDisplay(); KeyCode keycode = XKeysymToKeycode(dpy, keysym); - wxLogTrace(TRACE_KEYS, _T("\t-> keycode %d"), keycode); + wxLogTrace(TRACE_KEYS, wxT("\t-> keycode %d"), keycode); KeySym keysymNormalized = XKeycodeToKeysym(dpy, keycode, 0); @@ -1028,7 +1024,7 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event, } } - wxLogTrace(TRACE_KEYS, _T("\t-> wxKeyCode %ld"), key_code); + wxLogTrace(TRACE_KEYS, wxT("\t-> wxKeyCode %ld"), key_code); // sending unknown key events doesn't really make sense if ( !key_code ) @@ -1180,7 +1176,7 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, if ( key_code ) { - wxLogTrace(TRACE_KEYS, _T("Char event: %ld"), key_code); + wxLogTrace(TRACE_KEYS, wxT("Char event: %ld"), key_code); event.m_keyCode = key_code; @@ -1684,7 +1680,7 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, break; default: - // unknwon button, don't process + // unknown button, don't process return FALSE; } @@ -1824,7 +1820,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget, g_focusWindow = win; wxLogTrace(TRACE_FOCUS, - _T("%s: focus in"), win->GetName().c_str()); + wxT("%s: focus in"), win->GetName().c_str()); #ifdef HAVE_XIM if (win->m_ic) @@ -1872,7 +1868,7 @@ static gint gtk_window_focus_out_callback( GtkWidget *WXUNUSED(widget), wxapp_install_idle_handler(); wxLogTrace( TRACE_FOCUS, - _T("%s: focus out"), win->GetName().c_str() ); + wxT("%s: focus out"), win->GetName().c_str() ); wxWindowGTK *winFocus = wxFindFocusedChild(win); @@ -2417,9 +2413,7 @@ wxMouseState wxGetMouseState() // method #ifdef __WXUNIVERSAL__ IMPLEMENT_ABSTRACT_CLASS(wxWindowGTK, wxWindowBase) -#else // __WXGTK__ - IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase) -#endif // __WXUNIVERSAL__/__WXGTK__ +#endif // __WXUNIVERSAL__ void wxWindowGTK::Init() { @@ -2437,7 +2431,6 @@ void wxWindowGTK::Init() m_sizeSet = false; m_hasVMT = false; m_needParent = true; - m_isBeingDeleted = false; m_noExpose = false; m_nativeSizeEvent = false; @@ -2613,7 +2606,6 @@ wxWindowGTK::~wxWindowGTK() if ( g_delayedFocus == this ) g_delayedFocus = NULL; - m_isBeingDeleted = true; m_hasVMT = false; // destroy children before destroying this window itself @@ -2937,9 +2929,9 @@ void wxWindowGTK::OnInternalIdle() GtkUpdate(); wxCursor cursor = m_cursor; - if (g_globalCursor.Ok()) cursor = g_globalCursor; + if (g_globalCursor.IsOk()) cursor = g_globalCursor; - if (cursor.Ok()) + if (cursor.IsOk()) { /* I now set the cursor anew in every OnInternalIdle call as setting the cursor in a parent window also effects the @@ -2952,7 +2944,7 @@ void wxWindowGTK::OnInternalIdle() if (window) gdk_window_set_cursor( window, cursor.GetCursor() ); - if (!g_globalCursor.Ok()) + if (!g_globalCursor.IsOk()) cursor = *wxSTANDARD_CURSOR; window = m_widget->window; @@ -2968,8 +2960,7 @@ void wxWindowGTK::OnInternalIdle() } } - if (wxUpdateUIEvent::CanUpdate(this) && IsShownOnScreen()) - UpdateWindowUI(wxUPDATE_UI_FROMIDLE); + wxWindowBase::OnInternalIdle(); } void wxWindowGTK::DoGetSize( int *width, int *height ) const @@ -3227,7 +3218,7 @@ int wxWindowGTK::GetCharHeight() const wxCHECK_MSG( (m_widget != NULL), 12, wxT("invalid window") ); wxFont font = GetFont(); - wxCHECK_MSG( font.Ok(), 12, wxT("invalid font") ); + wxCHECK_MSG( font.IsOk(), 12, wxT("invalid font") ); GdkFont *gfont = font.GetInternalFont( 1.0 ); @@ -3239,23 +3230,23 @@ int wxWindowGTK::GetCharWidth() const wxCHECK_MSG( (m_widget != NULL), 8, wxT("invalid window") ); wxFont font = GetFont(); - wxCHECK_MSG( font.Ok(), 8, wxT("invalid font") ); + wxCHECK_MSG( font.IsOk(), 8, wxT("invalid font") ); GdkFont *gfont = font.GetInternalFont( 1.0 ); return gdk_string_width( gfont, "g" ); } -void wxWindowGTK::GetTextExtent( const wxString& string, - int *x, - int *y, - int *descent, - int *externalLeading, - const wxFont *theFont ) const +void wxWindowGTK::DoGetTextExtent(const wxString& string, + int *x, + int *y, + int *descent, + int *externalLeading, + const wxFont *theFont) const { wxFont fontToUse = theFont ? *theFont : GetFont(); - wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") ); + wxCHECK_RET( fontToUse.IsOk(), wxT("invalid font") ); if (string.empty()) { @@ -3298,7 +3289,7 @@ void wxWindowGTK::SetFocus() // it should be focused and will do it later, during the idle // time, as soon as we can wxLogTrace(TRACE_FOCUS, - _T("Delaying setting focus to %s(%s)"), + wxT("Delaying setting focus to %s(%s)"), GetClassInfo()->GetClassName(), GetLabel().c_str()); g_delayedFocus = this; @@ -3306,7 +3297,7 @@ void wxWindowGTK::SetFocus() else { wxLogTrace(TRACE_FOCUS, - _T("Setting focus to %s(%s)"), + wxT("Setting focus to %s(%s)"), GetClassInfo()->GetClassName(), GetLabel().c_str()); gtk_widget_grab_focus (m_widget); @@ -3320,7 +3311,7 @@ void wxWindowGTK::SetFocus() else { wxLogTrace(TRACE_FOCUS, - _T("Can't set focus to %s(%s)"), + wxT("Can't set focus to %s(%s)"), GetClassInfo()->GetClassName(), GetLabel().c_str()); } } @@ -3706,7 +3697,7 @@ bool wxWindowGTK::SetBackgroundColour( const wxColour &colour ) if (!wxWindowBase::SetBackgroundColour(colour)) return false; - if (colour.Ok()) + if (colour.IsOk()) { // We need the pixel value e.g. for background clearing. m_backgroundColour.CalcPixel(gtk_widget_get_colormap(m_widget)); @@ -3729,7 +3720,7 @@ bool wxWindowGTK::SetForegroundColour( const wxColour &colour ) return false; } - if (colour.Ok()) + if (colour.IsOk()) { // We need the pixel value e.g. for background clearing. m_foregroundColour.CalcPixel(gtk_widget_get_colormap(m_widget)); @@ -3746,21 +3737,21 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle) { // do we need to apply any changes at all? if ( !forceStyle && - !m_font.Ok() && - !m_foregroundColour.Ok() && !m_backgroundColour.Ok() ) + !m_font.IsOk() && + !m_foregroundColour.IsOk() && !m_backgroundColour.IsOk() ) { return NULL; } GtkRcStyle *style = gtk_rc_style_new(); - if ( m_font.Ok() ) + if ( m_font.IsOk() ) { wxString xfontname = m_font.GetNativeFontInfo()->GetXFontName(); style->fontset_name = g_strdup(xfontname.c_str()); } - if ( m_foregroundColour.Ok() ) + if ( m_foregroundColour.IsOk() ) { GdkColor *fg = m_foregroundColour.GetColor(); @@ -3774,7 +3765,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle) style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG; } - if ( m_backgroundColour.Ok() ) + if ( m_backgroundColour.IsOk() ) { GdkColor *bg = m_backgroundColour.GetColor(); @@ -3919,10 +3910,10 @@ void wxWindowGTK::DoCaptureMouse() else window = GetConnectWidget()->window; - wxCHECK_RET( window, _T("CaptureMouse() failed") ); + wxCHECK_RET( window, wxT("CaptureMouse() failed") ); const wxCursor* cursor = &m_cursor; - if (!cursor->Ok()) + if (!cursor->IsOk()) cursor = wxSTANDARD_CURSOR; gdk_pointer_grab( window, FALSE,