From 185abd365c2898ad77dbb33a099341fa28e5a496 Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Thu, 2 Jul 2015 19:53:16 +0200 Subject: Add #includes needed with glibmm newer than 2.31.0. * gdk/src/color.hg: * gdk/src/pixbufanimationiter.hg: * gdk/src/pixbufformat.hg: * gdk/src/rectangle.hg: * gdk/src/rgbcmap.hg: * gdk/src/types.hg: * gtk/src/enums.hg: * gtk/src/main.hg: * gtk/src/papersize.hg: * gtk/src/textattributes.hg: * gtk/src/treemodel.hg: Add individual includes now that gmmproc does not add #include at the top of every generated header. * gtk/gtkmm/border.h: Add #include to make glibmm/tools/test_scripts/testheaders.sh happy. diff --git a/gdk/src/color.hg b/gdk/src/color.hg index ce22d4b..09c91fc 100644 --- a/gdk/src/color.hg +++ b/gdk/src/color.hg @@ -21,6 +21,8 @@ // the #ifndef GDKMM_DISABLE_DEPRECATED in deprecated classes) is generated: _CONFIGINCLUDE(gdkmmconfig.h) +#include + _DEFS(gdkmm,gdk) namespace Gdk diff --git a/gdk/src/pixbufanimationiter.hg b/gdk/src/pixbufanimationiter.hg index 4e12f52..f89a037 100644 --- a/gdk/src/pixbufanimationiter.hg +++ b/gdk/src/pixbufanimationiter.hg @@ -21,6 +21,7 @@ #include #include +#include #include _DEFS(gdkmm,gdk) diff --git a/gdk/src/pixbufformat.hg b/gdk/src/pixbufformat.hg index c460056..6c7daab 100644 --- a/gdk/src/pixbufformat.hg +++ b/gdk/src/pixbufformat.hg @@ -20,7 +20,7 @@ _DEFS(gdkmm,gdk) #include - +#include #ifndef DOXYGEN_SHOULD_SKIP_THIS extern "C" { typedef struct _GdkPixbufFormat GdkPixbufFormat; } diff --git a/gdk/src/rectangle.hg b/gdk/src/rectangle.hg index f48de5a..01d1959 100644 --- a/gdk/src/rectangle.hg +++ b/gdk/src/rectangle.hg @@ -19,6 +19,7 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include #include _DEFS(gdkmm,gdk) diff --git a/gdk/src/rgbcmap.hg b/gdk/src/rgbcmap.hg index bfdfdfe..817661f 100644 --- a/gdk/src/rgbcmap.hg +++ b/gdk/src/rgbcmap.hg @@ -24,6 +24,7 @@ _DEFS(gdkmm,gdk) #m4 _POP() #include +#include #ifndef DOXYGEN_SHOULD_SKIP_THIS extern "C" { typedef struct _GdkRgbCmap GdkRgbCmap; } diff --git a/gdk/src/types.hg b/gdk/src/types.hg index fd644b8..a05ba0c 100644 --- a/gdk/src/types.hg +++ b/gdk/src/types.hg @@ -19,6 +19,8 @@ _DEFS(gdkmm,gdk) +#include +#include #include #include diff --git a/gtk/gtkmm/border.h b/gtk/gtkmm/border.h index a64c669..b48017e 100644 --- a/gtk/gtkmm/border.h +++ b/gtk/gtkmm/border.h @@ -22,6 +22,7 @@ */ #include +#include /* For GtkBorder */ namespace Gtk { diff --git a/gtk/src/enums.hg b/gtk/src/enums.hg index 66c3696..ad3d20c 100644 --- a/gtk/src/enums.hg +++ b/gtk/src/enums.hg @@ -19,6 +19,7 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include #include //For GTKMM_MAEMO_EXTENSIONS_ENABLED _DEFS(gtkmm,gtk) diff --git a/gtk/src/main.hg b/gtk/src/main.hg index c6c05ed..2665445 100644 --- a/gtk/src/main.hg +++ b/gtk/src/main.hg @@ -22,6 +22,7 @@ #include #include //For GdkEventKey +#include _DEFS(gtkmm,gtk) diff --git a/gtk/src/papersize.hg b/gtk/src/papersize.hg index 41fcb3c..3914cd1 100644 --- a/gtk/src/papersize.hg +++ b/gtk/src/papersize.hg @@ -17,6 +17,9 @@ _DEFS(gtkmm,gtk) +#include +#include + namespace Gtk { diff --git a/gtk/src/textattributes.hg b/gtk/src/textattributes.hg index b043f98..3966529 100644 --- a/gtk/src/textattributes.hg +++ b/gtk/src/textattributes.hg @@ -22,6 +22,8 @@ _DEFS(gtkmm,gtk) +#include + namespace Gtk { diff --git a/gtk/src/treemodel.hg b/gtk/src/treemodel.hg index a04d924..360b4ed 100644 --- a/gtk/src/treemodel.hg +++ b/gtk/src/treemodel.hg @@ -18,6 +18,7 @@ */ #include +#include #include _DEFS(gtkmm,gtk) -- cgit v0.10.2 From 9d52f886ffe556f9615f98a280d3a036a9ecf28e Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Sun, 5 Jul 2015 15:41:11 +0200 Subject: More fixes to suit newish glibmm. * gtk/src/entrycompletion.hg: Add a missing double quote in _WRAP_PROPERTY("text_column, int), to avoid a warning from gmmproc 2.41.0 or newer. * gtk/src/printunixdialog.hg: get_selected_printer(): Ref-counting correction. Fix a .->, typo to make the refreturn option actually be used. Necessary with gmmproc 2.29.13 or newer. Discussed in bug #657751, comment 5. diff --git a/gtk/src/entrycompletion.hg b/gtk/src/entrycompletion.hg index 3a32e4f..70c5cc7 100644 --- a/gtk/src/entrycompletion.hg +++ b/gtk/src/entrycompletion.hg @@ -218,7 +218,7 @@ dnl _WRAP_PROPERTY("model", Glib::RefPtr) _WRAP_PROPERTY("minimum_key_length", int) - _WRAP_PROPERTY("text_column, int) + _WRAP_PROPERTY("text_column", int) _WRAP_PROPERTY("inline_completion", bool) _WRAP_PROPERTY("popup_completion", bool) _WRAP_PROPERTY("popup_set_width", bool) diff --git a/gtk/src/printunixdialog.hg b/gtk/src/printunixdialog.hg index 87de89f..c05e5c3 100644 --- a/gtk/src/printunixdialog.hg +++ b/gtk/src/printunixdialog.hg @@ -71,7 +71,7 @@ public: #m4 _CONVERSION(`GtkPrinter*',`Glib::RefPtr',`Glib::wrap($3)') _WRAP_METHOD(Glib::RefPtr get_selected_printer(), gtk_print_unix_dialog_get_selected_printer, refreturn) - _WRAP_METHOD(Glib::RefPtr get_selected_printer() const, gtk_print_unix_dialog_get_selected_printer, refreturn. constversion) + _WRAP_METHOD(Glib::RefPtr get_selected_printer() const, gtk_print_unix_dialog_get_selected_printer, refreturn, constversion) void add_custom_tab(const Widget& child, const Glib::ustring& tab_label); _WRAP_METHOD(void add_custom_tab(const Widget& child, const Widget& tab_label), gtk_print_unix_dialog_add_custom_tab) -- cgit v0.10.2 diff --git a/gtk/src/papersize.hg b/gtk/src/papersize.hg index 2e5700d..41fcb3c 100644 --- a/gtk/src/papersize.hg +++ b/gtk/src/papersize.hg @@ -21,7 +21,7 @@ namespace Gtk { #ifndef DOXYGEN_SHOULD_SKIP_THIS -class PaperSizeTraits; +struct PaperSizeTraits; #endif /** Common paper names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names -- cgit v0.10.2 From c041c14cb425ad552c8a109f7ac94bc4c161bc18 Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Fri, 24 Jul 2015 07:41:01 +0200 Subject: Add list.m4 here in gtkmm instead of in glibmm. It was removed from glibmm in this commit because nothing that's still supported (really, I'm not supporting this branch that I am committing in) still uses it: https://git.gnome.org/browse/glibmm/commit/?id=b4198dd1945ef4a9787b76c1a68e61708a9b1fa9 diff --git a/tools/m4/list.m4 b/tools/m4/list.m4 new file mode 100644 index 0000000..954beb1 --- /dev/null +++ b/tools/m4/list.m4 @@ -0,0 +1,232 @@ +_PUSH() + +dnl +dnl These variables affect the generation of the list +dnl +define(GP_LIST_HELPER_NAMESPACE,`define(`__LIST_NAMESPACE__',$1)') +define(GP_LIST_ELEM,`define(`__LISTELEM__',`$*')') +define(GP_LIST_ITER,`define(`__LISTITER__',`$*')') +define(GP_LIST_NOINSERT,`define(`__LISTEO__')') + +dnl +dnl GP_LIST(ListName, ParentCppType, ParentCType, ChildCppType, FieldNameC) +dnl +dnl In the .ccg file, you'll need to implement: +dnl iterator insert(iterator position, element_type& e); +dnl +dnl Fieldname assumed to be children if not specified +define(GP_LIST,` +_PUSH() + +define(`__LISTNAME__',$1) +define(`__LISTPARENT__',$2) +define(`__LISTPARENT_G__',$3) +define(`__LISTTYPE__',$4) +define(`__LISTELEM__',const Element) +define(`__LISTITER__',Glib::List_Iterator< __LISTTYPE__ >) +define(`__LIST_NAMESPACE__',$2_Helpers) +#define(`__LISTFIELD__',ifelse($5,,children,$5)) +define(`__LISTFIELD__',$5) + +_SECTION(SECTION_USR) +') + +dnl +dnl GP_LIST_END() +dnl +dnl Closes a list +define(GP_LIST_END,`dnl +_POP() + +class __LISTNAME__ : public Glib::HelperList< __LISTTYPE__, __LISTELEM__, __LISTITER__ > +{ +public: + __LISTNAME__`'(); + explicit __LISTNAME__`'(__LISTPARENT_G__* gparent); + __LISTNAME__`'(const __LISTNAME__& src); + virtual ~__LISTNAME__`'() {} + + __LISTNAME__& operator=(const __LISTNAME__& src); + + typedef Glib::HelperList< __LISTTYPE__, __LISTELEM__, __LISTITER__ > type_base; + + __LISTPARENT_G__* gparent(); + const __LISTPARENT_G__* gparent() const; + + virtual GList*& glist() const; // front of list + + virtual void erase(iterator start, iterator stop); + virtual iterator erase(iterator); //Implented as custom or by LIST_CONTAINER_REMOVE + virtual void remove(const_reference); //Implented as custom or by LIST_CONTAINER_REMOVE + + /// This is order n. (use at own risk) + reference operator[](size_type l) const; + +ifdef(`__LISTEO__',`dnl +protected: + //Hide these because it's read-only: + iterator insert(iterator position, element_type& e); + + inline void pop_front(); + inline void pop_back(); +,`dnl +public: + iterator insert(iterator position, element_type& e); //custom-implemented. + + template + inline void insert(iterator position, InputIterator first, InputIterator last) + { + for(;first != last; ++first) + position = insert(position, *first); + } + + inline void push_front(element_type& e) + { insert(begin(), e); } + inline void push_back(element_type& e) + { insert(end(), e); } +')dnl + +_IMPORT(SECTION_USR) +}; + +_PUSH(SECTION_CC) + +namespace __LIST_NAMESPACE__ +{ + +__LISTNAME__::__LISTNAME__`'() +{} + +__LISTNAME__::__LISTNAME__`'(__LISTPARENT_G__* gparent) +: type_base((GObject*)gparent) +{} + +__LISTNAME__::__LISTNAME__`'(const __LISTNAME__& src) +: + type_base(src) +{} + +__LISTNAME__& __LISTNAME__::operator=(const __LISTNAME__& src) +{ + type_base::operator=(src); + return *this; +} + +ifelse(__LISTFIELD__,CUSTOM,`dnl +',`dnl else +GList*& __LISTNAME__::glist() const +{ + return ((__LISTPARENT_G__*)gparent_)->__LISTFIELD__; +} +')dnl endif + +void __LISTNAME__::erase(iterator start, iterator stop) +{ + type_base::erase(start, stop); +} + +__LISTPARENT_G__* __LISTNAME__::gparent() +{ + return (__LISTPARENT_G__*)type_base::gparent(); +} + +const __LISTPARENT_G__* __LISTNAME__::gparent() const +{ + return (__LISTPARENT_G__*)type_base::gparent(); +} + +__LISTNAME__::reference __LISTNAME__::operator[](size_type l) const +{ + return type_base::operator[](l); +} + +} /* namespace __LIST_NAMESPACE__ */ + +undefine(`__LISTNAME__')dnl +undefine(`__LISTTYPE__')dnl +undefine(`__LISTPARENT__')dnl +undefine(`__LISTELEM__')dnl +undefine(`__LISTFIELD__')dnl +_POP() +') + +dnl +dnl GP_LIST_FIND(access_method) +dnl +dnl Defines find(containertype) and find(Widget&) +dnl access_method is the name of method returning a Widget* +define(GP_LIST_FIND,` + iterator find(const_reference c); + iterator find(Widget&); +_PUSH(SECTION_CC) + +namespace __LIST_NAMESPACE__ +{ + +__LISTNAME__::iterator __LISTNAME__::find(const_reference w) +{ + iterator i = begin(); + while (i != end() && (i->ifelse($1,,,$1()->)gobj() != w.ifelse($1,,,$1()->)gobj())) + ++i; + return i; +} + +__LISTNAME__::iterator __LISTNAME__::find(Widget& w) +{ + iterator i = begin(); + while (i != end() && ((GtkWidget*)i->ifelse($1,,,$1()->)gobj() != w.gobj())) + ++i; + return i; +} + +} /* namespace __LIST_NAMESPACE__ */ + +_POP() +') + +dnl +dnl GP_LIST_CONTAINER_REMOVE(access_method) +dnl +dnl Implements remove(const_reference), erase(iterator) +dnl and defines remove(Widget&) +dnl (assumes that the widget uses gtk+ container methods). +dnl access_method is the name of the method returning a Widget* +define(GP_LIST_CONTAINER_REMOVE,` +virtual void remove(Widget& w); //Implented as custom or by LIST_CONTAINER_REMOVE +_PUSH(SECTION_CC) + +namespace __LIST_NAMESPACE__ +{ + +void __LISTNAME__::remove(const_reference child) +{ + gtk_container_remove(GTK_CONTAINER(gparent_), + (GtkWidget*)(child.ifelse($1,,,$1()->)gobj())); +} + +void __LISTNAME__::remove(Widget& widget) +{ + gtk_container_remove(GTK_CONTAINER(gparent_), (GtkWidget*)(widget.gobj())); +} + +__LISTNAME__::iterator __LISTNAME__::erase(iterator position) +{ + //Check that it is a valid iterator, to a real item: + if ( !position.node_|| (position == end()) ) + return end(); + + //Get an iterator the the next item, to return: + iterator next = position; + next++; + + //Use GTK+ C function to remove it, by providing the GtkWidget*: + gtk_container_remove( GTK_CONTAINER(gparent_), (GtkWidget*)(position->ifelse($1,,,$1()->)gobj()) ); + return next; +} + +} /* namespace __LIST_NAMESPACE__ */ + +_POP() +') + +_POP()dnl -- cgit v0.10.2 From 43ad482936a4afa9935dd85b38c395d3d91ec36a Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Fri, 24 Jul 2015 07:52:11 +0200 Subject: Fix the previous commit diff --git a/tools/m4/filelist.am b/tools/m4/filelist.am index 38c37fb..0394790 100644 --- a/tools/m4/filelist.am +++ b/tools/m4/filelist.am @@ -21,4 +21,5 @@ files_codegen_m4 = \ convert.m4 \ convert_gdk.m4 \ convert_gtk.m4 \ - convert_gtkmm.m4 + convert_gtkmm.m4 \ + list.m4 -- cgit v0.10.2 From 5b8f1294844e3639c6be802dda81fa853511bf30 Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Fri, 14 Aug 2015 13:50:40 +0200 Subject: configure.ac: Use C++11 if the compiler supports it. For instance, use --std=c++11 when using g++. This will let gtkmm-2.24 build against newer glibmm versions. Applications will need to use --std=c++11 too if glibmm is a newer version. Of course, you should be using gtkmm 3 anyway. --- configure.ac | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index eef1169..6a72d74 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,7 @@ AM_MAINTAINER_MODE AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I ]) -MM_PREREQ([0.9.5]) +MM_PREREQ([0.9.8]) MM_INIT_MODULE([gdkmm-2.4]) MM_INIT_MODULE([gtkmm-2.4]) @@ -44,6 +44,8 @@ MM_CONFIG_DOCTOOL_DIR([docs]) AC_SUBST([LIBGTKMM_SO_VERSION], [2:0:1]) AC_PROG_CXX +MM_AX_CXX_COMPILE_STDCXX_11([noext],[optional]) + AC_DISABLE_STATIC AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL -- cgit v0.11.2 From 33f4ecd007b2e4bd3511b36add8734b362c80d40 Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Fri, 14 Aug 2015 14:25:57 +0200 Subject: Pixbuf: Avoid deprecations warnings that break --enable-warnings=fatal. Such as during distcheck. --- gdk/src/pixbuf.ccg | 5 +++++ gdk/src/pixbuf.hg | 3 +++ 2 files changed, 8 insertions(+) diff --git a/gdk/src/pixbuf.ccg b/gdk/src/pixbuf.ccg index 946d600..f1a19c4 100644 --- a/gdk/src/pixbuf.ccg +++ b/gdk/src/pixbuf.ccg @@ -21,6 +21,11 @@ #include #include +//Turn off all deprecation warnings, to avoid the warning about +//gdk_pixbuf_new_from_inline() in the generated code. +//We don't bother using G_GNUC_END_IGNORE_DEPRECATIONS +//because we are happy to keep it active for the whole file. +G_GNUC_BEGIN_IGNORE_DEPRECATIONS namespace { diff --git a/gdk/src/pixbuf.hg b/gdk/src/pixbuf.hg index 5f33591..994aa83 100644 --- a/gdk/src/pixbuf.hg +++ b/gdk/src/pixbuf.hg @@ -17,6 +17,9 @@ #m4 _PUSH(SECTION_CC_PRE_INCLUDES) #undef GDK_DISABLE_DEPRECATED +#define GDK_DISABLE_DEPRECATION_WARNINGS 1 +#undef GDK_PIXBUF_DISABLE_DEPRECATED +#define GDK_PIXBUF_DISABLE_DEPRECATION_WARNINGS 1 #m4 _POP() // This is for including the config header before any code (such as // the #ifndef GDKMM_DISABLE_DEPRECATED in deprecated classes) is generated: -- cgit v0.11.2