X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d5027818a42043052ac375b1a0ba30fac491ddc4..14722c43c30918cd8fbba956b50ac3426d2fe339:/src/gtk/textctrl.cpp?ds=sidebyside diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index 12d35c479b..15c7981c77 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -30,7 +30,9 @@ #include #include +#include #include "wx/gtk/private.h" +#include "wx/gtk/private/gtk2-compat.h" // ---------------------------------------------------------------------------- // helpers @@ -167,25 +169,29 @@ static void wxGtkTextApplyTagsFromAttr(GtkWidget *text, GtkJustification align; switch (attr.GetAlignment()) { - default: - align = GTK_JUSTIFY_LEFT; - break; case wxTEXT_ALIGNMENT_RIGHT: align = GTK_JUSTIFY_RIGHT; break; case wxTEXT_ALIGNMENT_CENTER: align = GTK_JUSTIFY_CENTER; break; + case wxTEXT_ALIGNMENT_JUSTIFIED: +#ifdef __WXGTK3__ + align = GTK_JUSTIFY_FILL; + break; +#elif GTK_CHECK_VERSION(2,11,0) // gtk+ doesn't support justify before gtk+-2.11.0 with pango-1.17 being available // (but if new enough pango isn't available it's a mere gtk warning) -#if GTK_CHECK_VERSION(2,11,0) - case wxTEXT_ALIGNMENT_JUSTIFIED: if (!gtk_check_version(2,11,0)) + { align = GTK_JUSTIFY_FILL; - else - align = GTK_JUSTIFY_LEFT; - break; + break; + } + // fallthrough #endif + default: + align = GTK_JUSTIFY_LEFT; + break; } g_snprintf(buf, sizeof(buf), "WXALIGNMENT %d", align); @@ -549,48 +555,6 @@ gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) } } -//----------------------------------------------------------------------------- -// clipboard events: "copy-clipboard", "cut-clipboard", "paste-clipboard" -//----------------------------------------------------------------------------- - -// common part of the event handlers below -static void -handle_text_clipboard_callback( GtkWidget *widget, wxTextCtrl *win, - wxEventType eventType, const gchar * signal_name) -{ - wxClipboardTextEvent event( eventType, win->GetId() ); - event.SetEventObject( win ); - if ( win->HandleWindowEvent( event ) ) - { - // don't let the default processing to take place if we did something - // ourselves in the event handler - g_signal_stop_emission_by_name (widget, signal_name); - } -} - -extern "C" { -static void -gtk_copy_clipboard_callback( GtkWidget *widget, wxTextCtrl *win ) -{ - handle_text_clipboard_callback( - widget, win, wxEVT_COMMAND_TEXT_COPY, "copy-clipboard" ); -} - -static void -gtk_cut_clipboard_callback( GtkWidget *widget, wxTextCtrl *win ) -{ - handle_text_clipboard_callback( - widget, win, wxEVT_COMMAND_TEXT_CUT, "cut-clipboard" ); -} - -static void -gtk_paste_clipboard_callback( GtkWidget *widget, wxTextCtrl *win ) -{ - handle_text_clipboard_callback( - widget, win, wxEVT_COMMAND_TEXT_PASTE, "paste-clipboard" ); -} -} - //----------------------------------------------------------------------------- // "mark_set" //----------------------------------------------------------------------------- @@ -823,12 +787,7 @@ bool wxTextCtrl::Create( wxWindow *parent, } - g_signal_connect (m_text, "copy-clipboard", - G_CALLBACK (gtk_copy_clipboard_callback), this); - g_signal_connect (m_text, "cut-clipboard", - G_CALLBACK (gtk_cut_clipboard_callback), this); - g_signal_connect (m_text, "paste-clipboard", - G_CALLBACK (gtk_paste_clipboard_callback), this); + GTKConnectClipboardSignals(m_text); m_cursor = wxCursor( wxCURSOR_IBEAM ); @@ -1645,7 +1604,12 @@ GdkWindow *wxTextCtrl::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const } else { +#ifdef __WXGTK3__ + // no access to internal GdkWindows + return NULL; +#else return gtk_entry_get_text_window(GTK_ENTRY(m_text)); +#endif } } @@ -1792,7 +1756,7 @@ bool wxTextCtrl::GetStyle(long position, wxTextAttr& style) void wxTextCtrl::DoApplyWidgetStyle(GtkRcStyle *style) { - gtk_widget_modify_style(m_text, style); + GTKApplyStyle(m_text, style); } void wxTextCtrl::OnCut(wxCommandEvent& WXUNUSED(event))