[gtkmm] Gdk, Gtk: Update for the latest gtk4 (Window::set_default_widget(), etc.)



commit 8df67aaa08c8a1d245ea3ffacad71f3f46299e8b
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Tue May 7 15:22:31 2019 +0200

    Gdk, Gtk: Update for the latest gtk4 (Window::set_default_widget(), etc.)
    
    * demos/gtk-demo/example_menus.cc: Use Gtk::Window::set_default_widget()
    instead of the deleted Widget::set_can_default() and grab_default().
    * gdk/src/surface.hg: Add property_frame_clock().
    * gtk/src/builder.hg: gsize length -> gssize; length can be -1.
    * gtk/src/menu.hg: Remove set_display().
    * gtk/src/popover.hg: Add property_default_widget().
    * gtk/src/widget.hg: Remove set/get/property_can_default(), grab_default(),
    signal_display_changed(). Add activate_action(), activate_default().
    * gtk/src/window.[ccg|hg]: Remove activate_focus(), activate_default().
    Add property_default_widget(). Rename set_default() to set_default_widget(),
    unset_default() to unset_default_widget().

 demos/gtk-demo/example_menus.cc | 13 +------------
 gdk/src/surface.hg              |  1 +
 gtk/src/builder.hg              |  2 +-
 gtk/src/menu.hg                 |  2 --
 gtk/src/popover.hg              |  1 +
 gtk/src/widget.hg               | 13 +++++--------
 gtk/src/window.ccg              |  4 ++--
 gtk/src/window.hg               |  9 +++------
 8 files changed, 14 insertions(+), 31 deletions(-)
---
diff --git a/demos/gtk-demo/example_menus.cc b/demos/gtk-demo/example_menus.cc
index d4aa8307..0167a0af 100644
--- a/demos/gtk-demo/example_menus.cc
+++ b/demos/gtk-demo/example_menus.cc
@@ -69,20 +69,16 @@ Example_Menus::Example_Menus()
     auto pMenuItem = Gtk::make_managed<Gtk::MenuItem>("test\nline2");
     pMenuItem->set_submenu( *(create_menu(2)) );
     m_MenuBar.append(*pMenuItem);
-    pMenuItem->show();
 
     pMenuItem = Gtk::make_managed<Gtk::MenuItem>("foo");
     pMenuItem->set_submenu( *(create_menu(3)) );
     m_MenuBar.append(*pMenuItem);
-    pMenuItem->show();
 
     pMenuItem = Gtk::make_managed<Gtk::MenuItem>("bar");
     pMenuItem->set_submenu( *(create_menu(4)) );
     m_MenuBar.append(*pMenuItem);
-    pMenuItem->show();
   }
 
-
   m_VBox_Sub1.set_margin(10);
   m_VBox_Sub1.set_expand();
   m_VBox1.add(m_VBox_Sub1);
@@ -95,18 +91,15 @@ Example_Menus::Example_Menus()
 
     Gtk::MenuItem* pMenuItem = Gtk::make_managed<Gtk::SeparatorMenuItem>();
     pMenu->append(*pMenuItem);
-    pMenuItem->show();
 
     pMenuItem = Gtk::make_managed<Gtk::MenuItem>("accel");
     pMenuItem->set_submenu(*pMenu);
     m_MenuBar.append(*pMenuItem);
-    pMenuItem->show();
 
     pMenuItem = Gtk::make_managed<Gtk::CheckMenuItem>("Accelerate Me");
     pMenuItem->add_accelerator("activate", accel_group, GDK_KEY_F1,
       Gdk::ModifierType(0), Gtk::AccelFlags::VISIBLE);
     pMenu->append(*pMenuItem);
-    pMenuItem->show();
     pMenuItem->signal_activate().connect(
       sigc::bind(sigc::mem_fun(*this, &Example_Menus::on_item_activated), "F1"));
 
@@ -114,7 +107,6 @@ Example_Menus::Example_Menus()
     pMenu->append(*pMenuItem);
     pMenuItem->add_accelerator("activate", accel_group, GDK_KEY_F2,
       Gdk::ModifierType(0), Gtk::AccelFlags::VISIBLE | Gtk::AccelFlags::LOCKED);
-    pMenuItem->show();
     pMenuItem->signal_activate().connect(
       sigc::bind(sigc::mem_fun(*this, &Example_Menus::on_item_activated), "F2"));
 
@@ -122,7 +114,6 @@ Example_Menus::Example_Menus()
     pMenu->append(*pMenuItem);
     pMenuItem->add_accelerator("activate", accel_group, GDK_KEY_F3,
       Gdk::ModifierType(0), Gtk::AccelFlags::VISIBLE);
-    pMenuItem->show();
     pMenuItem->signal_activate().connect(
       sigc::bind(sigc::mem_fun(*this, &Example_Menus::on_item_activated), "F3"));
   }
@@ -138,8 +129,7 @@ Example_Menus::Example_Menus()
   m_VBox_Sub2.add(m_Button);
   m_VBox_Sub2.set_vexpand(false);
 
-  m_Button.set_can_default(true);
-  m_Button.grab_default();
+  set_default_widget(m_Button);
 }
 
 Example_Menus::~Example_Menus()
@@ -163,7 +153,6 @@ Gtk::Menu* Example_Menus::create_menu(gint depth)
 
       auto pMenuItem = Gtk::make_managed<Gtk::RadioMenuItem>(radiogroup, buf);
       pMenu->append(*pMenuItem);
-      pMenuItem->show();
 
       if(i == 3)
         pMenuItem->set_sensitive(false);
diff --git a/gdk/src/surface.hg b/gdk/src/surface.hg
index 6afc838e..da67bd2c 100644
--- a/gdk/src/surface.hg
+++ b/gdk/src/surface.hg
@@ -283,6 +283,7 @@ public:
 
   _WRAP_PROPERTY("cursor", Glib::RefPtr<Cursor>)
   _WRAP_PROPERTY("display", Glib::RefPtr<Display>)
+  _WRAP_PROPERTY("frame-clock", Glib::RefPtr<FrameClock>)
   _WRAP_PROPERTY("state", State)
   _WRAP_PROPERTY("mapped", bool)
 };
diff --git a/gtk/src/builder.hg b/gtk/src/builder.hg
index bb400bab..55fdd3c3 100644
--- a/gtk/src/builder.hg
+++ b/gtk/src/builder.hg
@@ -406,7 +406,7 @@ public:
    *
    * @newin{2,12}
    */
-  _WRAP_METHOD(bool add_from_string(const char* buffer, gsize length), gtk_builder_add_from_string, errthrow)
+  _WRAP_METHOD(bool add_from_string(const char* buffer, gssize length), gtk_builder_add_from_string, 
errthrow)
 
   _WRAP_METHOD(void expose_object(const Glib::ustring& name, const Glib::RefPtr<Glib::Object>& object), 
gtk_builder_expose_object)
 #m4 _CONVERSION(`Widget&',`GObject*',`G_OBJECT(($3).gobj())')
diff --git a/gtk/src/menu.hg b/gtk/src/menu.hg
index b268b29f..4fc1540f 100644
--- a/gtk/src/menu.hg
+++ b/gtk/src/menu.hg
@@ -90,8 +90,6 @@ public:
   _WRAP_METHOD(Widget* get_attach_widget(), gtk_menu_get_attach_widget)
   _WRAP_METHOD(const Widget* get_attach_widget() const, gtk_menu_get_attach_widget, constversion)
 
-  _WRAP_METHOD(void set_display(const Glib::RefPtr<Gdk::Display>& display), gtk_menu_set_display)
-
   _WRAP_METHOD(void set_monitor(int monitor_num), gtk_menu_set_monitor)
   _WRAP_METHOD(int get_monitor() const, gtk_menu_get_monitor)
   _WRAP_METHOD(void place_on_monitor(const Glib::RefPtr<Gdk::Monitor>& monitor), gtk_menu_place_on_monitor)
diff --git a/gtk/src/popover.hg b/gtk/src/popover.hg
index 9b889383..22a48029 100644
--- a/gtk/src/popover.hg
+++ b/gtk/src/popover.hg
@@ -136,6 +136,7 @@ public:
   _WRAP_PROPERTY("position", PositionType)
   _WRAP_PROPERTY("modal", bool)
   _WRAP_PROPERTY("constrain-to", Constraint)
+  _WRAP_PROPERTY("default-widget", Widget*)
 
   _WRAP_SIGNAL(void closed(), "closed")
 };
diff --git a/gtk/src/widget.hg b/gtk/src/widget.hg
index 5717aea2..f7165050 100644
--- a/gtk/src/widget.hg
+++ b/gtk/src/widget.hg
@@ -181,10 +181,7 @@ public:
   _WRAP_METHOD(bool get_focus_on_click() const, gtk_widget_get_focus_on_click)
   _WRAP_METHOD(void set_can_target(bool can_target = true), gtk_widget_set_can_target)
   _WRAP_METHOD(bool get_can_target() const, gtk_widget_get_can_target)
-  _WRAP_METHOD(void set_can_default(bool can_default = true), gtk_widget_set_can_default)
-  _WRAP_METHOD(bool get_can_default() const, gtk_widget_get_can_default)
   _WRAP_METHOD(bool has_default() const, gtk_widget_has_default)
-  _WRAP_METHOD(void grab_default(), gtk_widget_grab_default)
   _WRAP_METHOD(void set_receives_default(bool receives_default = true), gtk_widget_set_receives_default)
   _WRAP_METHOD(bool get_receives_default() const, gtk_widget_get_receives_default)
   _WRAP_METHOD(bool has_grab() const, gtk_widget_has_grab)
@@ -573,6 +570,9 @@ public:
 #m4 _CONVERSION(`const 
gchar**',`std::vector<Glib::ustring>',`Glib::ArrayHandler<Glib::ustring>::array_to_vector($3, 
Glib::OWNERSHIP_SHALLOW)')
   _WRAP_METHOD(std::vector<Glib::ustring> list_action_prefixes() const, gtk_widget_list_action_prefixes)
 
+  _WRAP_METHOD(void activate_action(const Glib::ustring& name, const Glib::VariantBase& parameter), 
gtk_widget_activate_action)
+  _WRAP_METHOD(void activate_default(), gtk_widget_activate_default)
+
   _WRAP_METHOD(void set_font_map(const Glib::RefPtr<Pango::FontMap>& font_map), gtk_widget_set_font_map)
   _WRAP_METHOD(Glib::RefPtr<Pango::FontMap> get_font_map(), gtk_widget_get_font_map, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Pango::FontMap> get_font_map() const, gtk_widget_get_font_map, refreturn, 
constversion)
@@ -700,8 +700,6 @@ dnl
 
   // The accel_closures_changed signal can't have a default handler because the wrapped C signal has no 
default handler.
   _WRAP_SIGNAL(void accel_closures_changed(), "accel_closures_changed", no_default_handler)
-#m4 _CONVERSION(`GdkDisplay*',`const Glib::RefPtr<Gdk::Display>&',`Glib::wrap($3, true)')
-  _WRAP_SIGNAL(void display_changed(const Glib::RefPtr<Gdk::Display>& previous_display), "display_changed")
 
 //TODO: The signal_id is very C-like here:
   //_WRAP_SIGNAL(bool can_activate_accel(guint signal_id), "can_activate_accel")
@@ -728,7 +726,6 @@ dnl
   _WRAP_PROPERTY("is_focus", bool)
   _WRAP_PROPERTY("can_target", bool)
   _WRAP_PROPERTY("focus_on_click", bool)
-  _WRAP_PROPERTY("can_default", bool)
   _WRAP_PROPERTY("has_default", bool)
   _WRAP_PROPERTY("receives_default", bool)
   _WRAP_PROPERTY("cursor", Glib::RefPtr<Gdk::Cursor>)
@@ -781,9 +778,9 @@ protected:
   _WRAP_METHOD(void set_has_surface(bool has_surface = true), gtk_widget_set_has_surface)
 
   /** Sets a widget's surface. This function should only be used in a
-   * widget's Gtk::Widget::on_realize() implementation. The %surface passed is
+   * widget's Gtk::Widget::on_realize() implementation. The %a surface passed is
    * usually either a new surface created with Gdk::Surface::create(), or the
-   * surface of its parent widget as returned by get_parent_surface().
+   * surface of its parent widget as returned by get_parent()->get_surface().
    *
    * Widgets must indicate whether they will create their own Gdk::Surface
    * by calling set_has_surface(). This is usually done in the
diff --git a/gtk/src/window.ccg b/gtk/src/window.ccg
index f55d346c..617c9139 100644
--- a/gtk/src/window.ccg
+++ b/gtk/src/window.ccg
@@ -170,9 +170,9 @@ void Window::unset_focus()
   gtk_window_set_focus(gobj(), nullptr /* See GTK+ docs */);
 }
 
-void Window::unset_default()
+void Window::unset_default_widget()
 {
-  gtk_window_set_default(gobj(), nullptr /* See GTK+ docs */);
+  gtk_window_set_default_widget(gobj(), nullptr /* See GTK+ docs */);
 }
 
 void Window::unset_transient_for()
diff --git a/gtk/src/window.hg b/gtk/src/window.hg
index 423a5890..a8477004 100644
--- a/gtk/src/window.hg
+++ b/gtk/src/window.hg
@@ -85,6 +85,7 @@ public:
   _WRAP_PROPERTY("focus-visible", bool)
   _WRAP_PROPERTY("attached-to", Widget*)
   _WRAP_PROPERTY("is-maximized", bool)
+  _WRAP_PROPERTY("default-widget", Widget*)
 
   _WRAP_SIGNAL(void keys_changed(), "keys_changed")
   _WRAP_SIGNAL(bool close_request(), "close-request")
@@ -124,21 +125,17 @@ dnl
   _WRAP_METHOD(void set_position(WindowPosition position),
                gtk_window_set_position)
 
-  _WRAP_METHOD(bool activate_focus(), gtk_window_activate_focus)
-
   _WRAP_METHOD(void set_focus(Gtk::Widget& focus), gtk_window_set_focus)
   void unset_focus();
 
   _WRAP_METHOD(Widget* get_focus(), gtk_window_get_focus)
   _WRAP_METHOD(const Widget* get_focus() const, gtk_window_get_focus, constversion)
-  _WRAP_METHOD(void set_default(Gtk::Widget& default_widget), gtk_window_set_default)
-  void unset_default();
+  _WRAP_METHOD(void set_default_widget(Gtk::Widget& default_widget), gtk_window_set_default_widget)
+  void unset_default_widget();
 
   _WRAP_METHOD(Widget* get_default_widget(), gtk_window_get_default_widget)
   _WRAP_METHOD(const Widget* get_default_widget() const, gtk_window_get_default_widget, constversion)
 
-  _WRAP_METHOD(bool activate_default(), gtk_window_activate_default)
-
   _WRAP_METHOD(void set_transient_for(Window& parent), gtk_window_set_transient_for)
 
   /** Unsets the current transient window.


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