[dasher] Drop support for Gtk2 - Gtk4 is here!



commit 7b53f849d4057ddcd73572d4fc0d20bb7255330e
Author: Patrick Welche <prlw1 cam ac uk>
Date:   Thu Dec 24 17:21:51 2020 +0000

    Drop support for Gtk2 - Gtk4 is here!

 Src/Gtk2/DasherControl.cpp    | 25 -------------------------
 Src/Gtk2/GtkDasherControl.cpp |  4 ----
 Src/Gtk2/Preferences.cpp      | 31 -------------------------------
 Src/Gtk2/dasher_editor.cpp    | 13 -------------
 configure.ac                  | 11 +++--------
 5 files changed, 3 insertions(+), 81 deletions(-)
---
diff --git a/Src/Gtk2/DasherControl.cpp b/Src/Gtk2/DasherControl.cpp
index 81974d67..2f9e40e0 100644
--- a/Src/Gtk2/DasherControl.cpp
+++ b/Src/Gtk2/DasherControl.cpp
@@ -48,11 +48,7 @@ CDasherControl::CDasherControl(GtkVBox *pVBox, GtkDasherControl *pDasherControl,
   m_pVBox = GTK_WIDGET(pVBox);
   pClipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
   m_pCanvas = gtk_drawing_area_new();
-#if GTK_CHECK_VERSION (2,18,0)
   gtk_widget_set_can_focus(m_pCanvas, TRUE);
-#else
-  GTK_WIDGET_SET_FLAGS(m_pCanvas, GTK_CAN_FOCUS);
-#endif
   gtk_widget_set_double_buffered(m_pCanvas, FALSE);
 
   GtkWidget *pFrame = gtk_frame_new(NULL);
@@ -242,12 +238,7 @@ void CDasherControl::RealizeCanvas(GtkWidget *pWidget) {
 int CDasherControl::CanvasConfigureEvent() {
   GtkAllocation a;
 
-#if GTK_CHECK_VERSION (2,18,0)
   gtk_widget_get_allocation(m_pCanvas, &a);
-#else
-  a.width  = m_pCanvas->allocation.width;
-  a.height = m_pCanvas->allocation.height;
-#endif
 
   m_pScreen->resize(a.width,a.height);
   ScreenResized(m_pScreen);
@@ -434,32 +425,20 @@ int CDasherControl::TimerEvent() {
   GdkWindow *default_root_window = gdk_get_default_root_window();
   GdkWindow *window = gtk_widget_get_window(m_pCanvas);
 
-#if GTK_CHECK_VERSION (3,0,0)
   GdkDeviceManager *device_manager =
     gdk_display_get_device_manager(gdk_window_get_display(window));
   GdkDevice *pointer = gdk_device_manager_get_client_pointer(device_manager);
 
   gdk_window_get_device_position(window, pointer, &x, &y, NULL);
-#else
-  gdk_window_get_pointer(window, &x, &y, NULL);
-#endif
   m_pMouseInput->SetCoordinates(x, y);
 
-#if GTK_CHECK_VERSION (3,0,0)
   gdk_window_get_device_position(default_root_window, pointer, &x, &y, NULL);
-#else
-  gdk_window_get_pointer(default_root_window, &x, &y, NULL);
-#endif
 
   int iRootWidth;
   int iRootHeight;
 
-#ifdef HAVE_GDK_WINDOW_GET_WIDTH
   iRootWidth  = gdk_window_get_width (default_root_window);
   iRootHeight = gdk_window_get_height(default_root_window);
-#else
-  gdk_drawable_get_size(default_root_window, &iRootWidth, &iRootHeight);
-#endif
 
   if(GetLongParameter(LP_YSCALE) < 10)
     SetLongParameter(LP_YSCALE, 10);
@@ -495,11 +474,7 @@ int CDasherControl::TimerEvent() {
 
       int iMouseX = 0;
       int iMouseY = 0;  
-#if GTK_CHECK_VERSION (3,0,0)
       gdk_window_get_device_position(NULL, pointer, &iMouseX, &iMouseY, NULL);
-#else
-      gdk_window_get_pointer(NULL, &iMouseX, &iMouseY, NULL);
-#endif
 
       // TODO: This sort of thing shouldn't be in specialised methods, move into base class somewhere
       pUserLog->AddMouseLocationNormalized(iMouseX, iMouseY, true, GetNats());
diff --git a/Src/Gtk2/GtkDasherControl.cpp b/Src/Gtk2/GtkDasherControl.cpp
index 2f26e211..591ac5e6 100644
--- a/Src/Gtk2/GtkDasherControl.cpp
+++ b/Src/Gtk2/GtkDasherControl.cpp
@@ -57,11 +57,7 @@ enum {
 #define GTK_DASHER_CONTROL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), GTK_DASHER_TYPE_CONTROL, 
GtkDasherControlPrivate));
 
 /* TODO: is it still sensible to derive from Box, given that its just a canvas now*/
-#if GTK_CHECK_VERSION (3,0,0)
 G_DEFINE_TYPE(GtkDasherControl, gtk_dasher_control, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(GtkDasherControl, gtk_dasher_control, GTK_TYPE_VBOX);
-#endif
 
 static void gtk_dasher_control_finalize(GObject * pObject);
 
diff --git a/Src/Gtk2/Preferences.cpp b/Src/Gtk2/Preferences.cpp
index 3d323947..d6489792 100644
--- a/Src/Gtk2/Preferences.cpp
+++ b/Src/Gtk2/Preferences.cpp
@@ -337,11 +337,7 @@ void dasher_preferences_dialogue_refresh_widget(DasherPreferencesDialogue *pSelf
       pUserData[1] = GTK_TREE_VIEW(sStringTranslationTable[i].pWidget);
       pUserData[2] = pSelf;
 
-#if GTK_CHECK_VERSION (2,20,0)
       if(sStringTranslationTable[i].pWidget && gtk_widget_get_realized(sStringTranslationTable[i].pWidget))
-#else
-      if(sStringTranslationTable[i].pWidget && GTK_WIDGET_REALIZED(sStringTranslationTable[i].pWidget))
-#endif
         gtk_tree_model_foreach(pModel, dasher_preferences_refresh_foreach_function, pUserData);
     }
   }
@@ -712,7 +708,6 @@ extern "C" void languagemodel(GtkRadioButton *widget, gpointer user_data) {
   //  DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(g_pPreferencesDialogue); 
// TODO: Fix NULL
 
-#if GTK_CHECK_VERSION (2,20,0)
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))==TRUE) {
     if( !strcmp( gtk_buildable_get_name( GTK_BUILDABLE(widget) ), "radiobutton6" ) ) {
       pPrivate->pAppSettings->SetLong(LP_LANGUAGE_MODEL_ID, 0 );
@@ -724,19 +719,6 @@ extern "C" void languagemodel(GtkRadioButton *widget, gpointer user_data) {
       pPrivate->pAppSettings->SetLong(LP_LANGUAGE_MODEL_ID, 4 );
     }
   }
-#else
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))==TRUE) {
-    if( !strcmp( gtk_widget_get_name( GTK_WIDGET(widget) ), "radiobutton6" ) ) {
-      pPrivate->pAppSettings->SetLong(LP_LANGUAGE_MODEL_ID, 0 );
-    } else if (!strcmp( gtk_widget_get_name( GTK_WIDGET(widget) ), "radiobutton7" )) {
-      pPrivate->pAppSettings->SetLong(LP_LANGUAGE_MODEL_ID, 2 );
-    } else if (!strcmp( gtk_widget_get_name( GTK_WIDGET(widget) ), "radiobutton8" )) {
-      pPrivate->pAppSettings->SetLong(LP_LANGUAGE_MODEL_ID, 3 );
-    } else if (!strcmp( gtk_widget_get_name( GTK_WIDGET(widget) ), "radiobutton9" )) {
-      pPrivate->pAppSettings->SetLong(LP_LANGUAGE_MODEL_ID, 4 );
-    }
-  }
-#endif
 }
 
 extern "C" void uniform_changed(GtkHScale *hscale) {
@@ -786,7 +768,6 @@ extern "C" void on_appstyle_changed(GtkWidget *widget, gpointer user_data) {
   //  DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(g_pPreferencesDialogue); 
// TODO: Fix NULL
 
-#if GTK_CHECK_VERSION (2,20,0)
   if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
     if(!strcmp(gtk_buildable_get_name(GTK_BUILDABLE(widget)), "appstyle_classic"))
       pPrivate->pAppSettings->SetLong(APP_LP_STYLE, 0);
@@ -797,18 +778,6 @@ extern "C" void on_appstyle_changed(GtkWidget *widget, gpointer user_data) {
     else if(!strcmp(gtk_buildable_get_name(GTK_BUILDABLE(widget)), "appstyle_fullscreen"))
       pPrivate->pAppSettings->SetLong(APP_LP_STYLE, 3);
   }
-#else
-  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
-    if(!strcmp(gtk_widget_get_name(GTK_WIDGET(widget)), "appstyle_classic"))
-      pPrivate->pAppSettings->SetLong(APP_LP_STYLE, 0);
-    else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(widget)), "appstyle_compose"))
-      pPrivate->pAppSettings->SetLong(APP_LP_STYLE, 1);
-    else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(widget)), "appstyle_direct"))
-      pPrivate->pAppSettings->SetLong(APP_LP_STYLE, 2);
-    else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(widget)), "appstyle_fullscreen"))
-      pPrivate->pAppSettings->SetLong(APP_LP_STYLE, 3);
-  }
-#endif
 }
 
 extern "C" void on_dasher_font_changed(GtkFontButton *pButton, gpointer pUserData) {
diff --git a/Src/Gtk2/dasher_editor.cpp b/Src/Gtk2/dasher_editor.cpp
index 8b99384b..bffa88ea 100644
--- a/Src/Gtk2/dasher_editor.cpp
+++ b/Src/Gtk2/dasher_editor.cpp
@@ -17,11 +17,7 @@
 #include "GtkDasherControl.h"
 #include "../DasherCore/ControlManager.h"
 
-#if GTK_CHECK_VERSION (3,0,0)
 G_DEFINE_TYPE(DasherEditor, dasher_editor, GTK_TYPE_BOX);
-#else
-G_DEFINE_TYPE(DasherEditor, dasher_editor, GTK_TYPE_VBOX);
-#endif
 
 /* Signals */
 enum {
@@ -199,13 +195,8 @@ dasher_editor_finalize(GObject *pObject) {
 DasherEditor*
 dasher_editor_new(void)
 {
-#if GTK_CHECK_VERSION (3,0,0)
   return
     DASHER_EDITOR(g_object_new(DASHER_TYPE_EDITOR, "orientation", GTK_ORIENTATION_VERTICAL, NULL));
-#else
-  return
-    DASHER_EDITOR(g_object_new(DASHER_TYPE_EDITOR, NULL));
-#endif
 }
 
 void
@@ -708,11 +699,7 @@ dasher_editor_internal_handle_font(DasherEditor *pSelf, const gchar *szFont) {
     DasherEditorPrivate *pPrivate = DASHER_EDITOR_GET_PRIVATE(pSelf);
 
     PangoFontDescription *pFD = pango_font_description_from_string(szFont);
-#if GTK_CHECK_VERSION(3, 0, 0)
     gtk_widget_override_font(GTK_WIDGET(pPrivate->pTextView), pFD);
-#else
-    gtk_widget_modify_font(GTK_WIDGET(pPrivate->pTextView), pFD);
-#endif
   }
 }
 
diff --git a/configure.ac b/configure.ac
index 4549b5eb..26e17030 100644
--- a/configure.ac
+++ b/configure.ac
@@ -136,9 +136,7 @@ if test x"$WITHGTK" = xtrue
 then 
        PKG_CHECK_MODULES(GTK, gtk+-3.0,
                [GTKHERE=true],
-               [PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.14.0,
-                       [GTKHERE=true],
-                       [GTKHERE=false])]) 
+               [GTKHERE=false])
 fi
 
 if test x"$GTKHERE" = xtrue -a x"$WITHQTE" != xtrue
@@ -159,11 +157,8 @@ then
        CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
        LIBS="$LIBS $GTK_LIBS"
        AC_CHECK_HEADERS([gdk/gdkkeysyms-compat.h])
-       AC_CHECK_FUNCS([gtk_builder_new gtk_show_uri gdk_window_get_width gtk_cairo_should_draw_window 
g_settings_new], [],
-               [if test "x$ac_cv_func_gtk_builder_new" = "xno"; then
-                       AC_MSG_ERROR([A version of GTK+ providing GtkBuilder is necessary.])
-               fi
-               if test "x$ac_cv_func_gtk_show_uri" = "xno"; then
+       AC_CHECK_FUNCS([gtk_show_uri], [],
+               [if test "x$ac_cv_func_gtk_show_uri" = "xno"; then
                        AC_MSG_WARN([This version of GTK+ doesn't provide gtk_show_uri - help will not be 
displayed from within dasher.])
                fi]
        )


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]