Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pangomm for openSUSE:Factory checked in at 2024-09-30 15:34:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pangomm (Old) and /work/SRC/openSUSE:Factory/.pangomm.new.29891 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pangomm" Mon Sep 30 15:34:51 2024 rev:49 rq:1204691 version:2.54.0 Changes: -------- --- /work/SRC/openSUSE:Factory/pangomm/pangomm.changes 2024-03-20 21:19:44.369936428 +0100 +++ /work/SRC/openSUSE:Factory/.pangomm.new.29891/pangomm.changes 2024-09-30 15:35:02.223626882 +0200 @@ -1,0 +2,25 @@ +Thu Jul 25 17:45:42 UTC 2024 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 2.54.0: + + Color: Add parse_with_alpha(). + + Context: Add set/get_round_glyph_positions(). + + Item: Add default constructor, get_char_offset(). + + Layout: Add set/get_justify_last_line(), get_direction(), + get_caret_pos(). + + LayoutIter: Add operator bool(), get_run_baseline(). + + LayoutLine: Add is_paragraph_start(), get_resolved_direction(), + get_height(). + + TabArray: Add TabArray(const Glib::ustring& text) constructor, + operator bool(), set_positions_in_pixels(), to_string(), + set/get_decimal_point(), sort(). + + Documentation: + - Language::get_scripts(): Improve documentation. + - Don't link to removed parts of library.gnome.org. + + Build: + - Require pango >= 1.54.0. + - Meson build: Require meson >= 0.62.0. + - Use Meson's pkgconfig module instead of using the *.pc.in + templates. +- Drop pangomm-docs-without-timestamp.patch, fixed upstream. + +------------------------------------------------------------------- Old: ---- pangomm-2.52.0.obscpio pangomm-docs-without-timestamp.patch New: ---- pangomm-2.54.0.obscpio BETA DEBUG BEGIN: Old: templates. - Drop pangomm-docs-without-timestamp.patch, fixed upstream. BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pangomm.spec ++++++ --- /var/tmp/diff_new_pack.qeZeRF/_old 2024-09-30 15:35:02.755648958 +0200 +++ /var/tmp/diff_new_pack.qeZeRF/_new 2024-09-30 15:35:02.759649124 +0200 @@ -20,17 +20,13 @@ %define libname lib%{name}-2_48-1 Name: pangomm -Version: 2.52.0 +Version: 2.54.0 Release: 0 Summary: C++ interface for pango License: GPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-only Group: Development/Libraries/C and C++ URL: https://www.gtkmm.org -# Source0 disabled, we are using source service -#Source0: https://download.gnome.org/sources/%%{name}/2.50/%%{name}-%%{version}.tar.xz -Source0: %{name}-%{version}.tar.xz -# PATCH-FIX-UPSTREAM pangomm-docs-without-timestamp.patch -- Do not add timestamp to generated doc files. -Patch0: pangomm-docs-without-timestamp.patch +Source0: %{name}-%{version}.tar.zst BuildRequires: c++_compiler BuildRequires: doxygen @@ -41,13 +37,13 @@ BuildRequires: mm-common BuildRequires: perl(XML::Parser) # -BuildRequires: meson >= 0.55.0 +BuildRequires: meson >= 0.62.0 BuildRequires: pkgconfig BuildRequires: xsltproc BuildRequires: pkgconfig(cairomm-1.16) >= 1.2.2 BuildRequires: pkgconfig(giomm-2.68) BuildRequires: pkgconfig(glibmm-2.68) -BuildRequires: pkgconfig(pangocairo) >= 1.52.0 +BuildRequires: pkgconfig(pangocairo) >= 1.54.0 %description pangomm provides a C++ interface to the pango library. ++++++ _service ++++++ --- /var/tmp/diff_new_pack.qeZeRF/_old 2024-09-30 15:35:02.787650286 +0200 +++ /var/tmp/diff_new_pack.qeZeRF/_new 2024-09-30 15:35:02.791650452 +0200 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/GNOME/pangomm.git</param> - <param name="revision">2.52.0</param> + <param name="revision">2.54.0</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> @@ -12,7 +12,7 @@ <service name="tar" mode="buildtime"/> <service name="recompress" mode="buildtime"> <param name="file">*.tar</param> - <param name="compression">xz</param> + <param name="compression">zst</param> </service> <service name="set_version" mode="manual" /> </services> ++++++ pangomm-2.52.0.obscpio -> pangomm-2.54.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/.gitlab-ci.yml new/pangomm-2.54.0/.gitlab-ci.yml --- old/pangomm-2.52.0/.gitlab-ci.yml 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/.gitlab-ci.yml 2024-07-25 16:33:39.000000000 +0200 @@ -1,4 +1,4 @@ -# 2024-03-14: ubuntu:latest = 22.04, ubuntu:rolling = 23.10, ubuntu:devel = 24.04 +# 2024-06-11: ubuntu:latest = 24.04, ubuntu:rolling = 24.04, ubuntu:devel = 24.10 # See https://hub.docker.com/_/ubuntu image: ubuntu:rolling @@ -25,6 +25,10 @@ meson ninja-build glib-networking + + PANGO_MESON_OPTIONS: -Dpango:build-testsuite=false + -Dpango:build-examples=false + GIO_EXTRA_MODULES: "/usr/lib/x86_64-linux-gnu/gio/modules" GIT_SUBMODULE_STRATEGY: normal @@ -43,13 +47,13 @@ # -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release # Don't use warning_level and werror. They are applied also to subprojects. # meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal -Dwarning_level=3 -Dwerror=true - - meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal + - meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal $PANGO_MESON_OPTIONS - meson compile # Must wrap the command in single quotes because of the colon. # See https://gitlab.gnome.org/help/ci/yaml/script.md#use-special-characters-with-script # Don't test subprojects. - 'meson test --suite pangomm:' - - meson install + - meson install --quiet artifacts: when: always paths: @@ -65,11 +69,11 @@ # -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release # Don't use warning_level and werror. They are applied also to subprojects. # CC=clang CXX=clang++ meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal -Dwarning_level=3 -Dwerror=true - - CC=clang CXX=clang++ meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal + - CC=clang CXX=clang++ meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal $PANGO_MESON_OPTIONS - meson compile # Don't test subprojects. - 'meson test --suite pangomm:' - - meson install + - meson install --quiet allow_failure: true artifacts: when: on_failure diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/NEWS new/pangomm-2.54.0/NEWS --- old/pangomm-2.52.0/NEWS 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/NEWS 2024-07-25 16:33:39.000000000 +0200 @@ -1,3 +1,31 @@ +2.54.0 (stable) 2024-07-25: + +* Color: Add parse_with_alpha(). +* Context: Add set/get_round_glyph_positions(). +* Item: Add default constructor, get_char_offset(). +* Layout: Add set/get_justify_last_line(), get_direction(), + get_caret_pos(). +* LayoutIter: Add operator bool(), get_run_baseline(). +* LayoutLine: Add is_paragraph_start(), get_resolved_direction(), + get_height(). +* TabArray: Add TabArray(const Glib::ustring& text) constructor, + operator bool(), set_positions_in_pixels(), to_string(), + set/get_decimal_point(), sort(). + (Kjell Ahlstedt) + +Documentation: +* Language::get_scripts(): Improve documentation. +* Don't link to removed parts of library.gnome.org. + (Kjell Ahlstedt) + +Build: +* Require pango >= 1.54.0. +* Meson build: Require meson >= 0.62.0. + Use Meson's pkgconfig module instead of using + the *.pc.in templates. + (Kjell Ahlstedt) + + 2.52.0 (stable): * FontFamily: Add property_item_type(), property_n_items(), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/configure.ac new/pangomm-2.54.0/configure.ac --- old/pangomm-2.52.0/configure.ac 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/configure.ac 2024-07-25 16:33:39.000000000 +0200 @@ -15,7 +15,7 @@ ## You should have received a copy of the GNU Lesser General Public License ## along with this library. If not, see <http://www.gnu.org/licenses/>. -AC_INIT([pangomm], [2.52.0], +AC_INIT([pangomm], [2.54.0], [https://gitlab.gnome.org/GNOME/pangomm/issues/], [pangomm], [http://www.gtkmm.org/]) AC_PREREQ([2.59]) @@ -49,7 +49,7 @@ AC_DISABLE_STATIC LT_INIT([win32-dll]) -AC_SUBST([PANGOMM_MODULES], ['giomm-2.68 >= 2.68.0 cairomm-1.16 >= 1.15.1 pangocairo >= 1.52.0']) +AC_SUBST([PANGOMM_MODULES], ['giomm-2.68 >= 2.68.0 cairomm-1.16 >= 1.15.1 pangocairo >= 1.54.0']) AC_SUBST([MSVC_TOOLSET_VER], ['']) PKG_CHECK_MODULES([PANGOMM], [$PANGOMM_MODULES]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/docs/reference/Doxyfile.in new/pangomm-2.54.0/docs/reference/Doxyfile.in --- old/pangomm-2.52.0/docs/reference/Doxyfile.in 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/docs/reference/Doxyfile.in 2024-07-25 16:33:39.000000000 +0200 @@ -163,7 +163,6 @@ HTML_COLORSTYLE_HUE = 220 HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_GAMMA = 80 -HTML_TIMESTAMP = YES HTML_DYNAMIC_SECTIONS = NO HTML_INDEX_NUM_ENTRIES = 100 GENERATE_DOCSET = NO @@ -194,7 +193,6 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 -FORMULA_TRANSPARENT = YES USE_MATHJAX = NO MATHJAX_FORMAT = HTML-CSS MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest @@ -226,7 +224,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO LATEX_BIB_STYLE = plain -LATEX_TIMESTAMP = NO #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -303,8 +300,6 @@ HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES DOT_NUM_THREADS = 0 -DOT_FONTNAME = Sans -DOT_FONTSIZE = 10 DOT_FONTPATH = CLASS_GRAPH = YES COLLABORATION_GRAPH = NO @@ -328,7 +323,6 @@ PLANTUML_INCLUDE_PATH = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = YES GENERATE_LEGEND = YES DOT_CLEANUP = YES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/docs/reference/meson.build new/pangomm-2.54.0/docs/reference/meson.build --- old/pangomm-2.52.0/docs/reference/meson.build 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/docs/reference/meson.build 2024-07-25 16:33:39.000000000 +0200 @@ -2,7 +2,7 @@ # Input: built_files_root, project_source_root, pangomm_pcname, python3, # hg_ccg_basenames, extra_h_files, built_h_file_targets, install_datadir, -# doc_reference_py, can_add_dist_script +# doc_reference_py # Output: install_docdir, install_devhelpdir, if build_documentation: tag_file tag_file_modules = [ @@ -17,7 +17,7 @@ foreach module : tag_file_modules depmod = dependency(module, required: false) if depmod.found() - doxytagfile = depmod.get_variable(pkgconfig: 'doxytagfile', internal: 'doxytagfile', default_value: '') + doxytagfile = depmod.get_variable('doxytagfile', default_value: '') if doxytagfile != '' if depmod.type_name() == 'internal' # Subprojects must build their tag files before doxygen is called. @@ -27,8 +27,8 @@ doxygen_tag_targets += subproject(module).get_variable('global_tag_file_target') endif endif - htmlrefpub = depmod.get_variable(pkgconfig: 'htmlrefpub', internal: 'htmlrefpub', default_value: '') - htmlrefdir = depmod.get_variable(pkgconfig: 'htmlrefdir', internal: 'htmlrefdir', default_value: '') + htmlrefpub = depmod.get_variable('htmlrefpub', default_value: '') + htmlrefdir = depmod.get_variable('htmlrefdir', default_value: '') if htmlrefpub == '' htmlrefpub = htmlrefdir elif htmlrefdir == '' @@ -162,14 +162,12 @@ install_data(image_files, install_dir: install_image_docdir) -if can_add_dist_script - # Distribute built files and files copied by mm-common-get. - meson.add_dist_script( - python3, doc_reference_py, 'dist_doc', - doctool_dir, - doctool_dist_dir, - meson.current_build_dir(), - tag_file.full_path(), - devhelp_file.full_path(), - ) -endif +# Distribute built files and files copied by mm-common-get. +meson.add_dist_script( + python3, doc_reference_py, 'dist_doc', + doctool_dir, + doctool_dist_dir, + meson.current_build_dir(), + tag_file.full_path(), + devhelp_file.full_path(), +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/meson.build new/pangomm-2.54.0/meson.build --- old/pangomm-2.52.0/meson.build 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/meson.build 2024-07-25 16:33:39.000000000 +0200 @@ -1,14 +1,13 @@ # This file is part of pangomm. project('pangomm', 'cpp', - version: '2.52.0', + version: '2.54.0', license: 'LGPLv2.1+', default_options: [ 'cpp_std=c++17', 'warning_level=1', ], - meson_version: '>= 0.55.0', # required for meson.add_dist_script(python3, ...) - # and meson.add_install_script(python3, ...) + meson_version: '>= 0.62.0', # required for variables in pkgconfig.generate() ) pangomm_api_version = '2.48' @@ -46,7 +45,7 @@ cpp_compiler = meson.get_compiler('cpp') is_msvc = cpp_compiler.get_id() == 'msvc' -python3 = find_program('python3', version: '>=3.5') +python3 = find_program('python3', version: '>=3.7') # Do we build from a git repository? # Suppose we do if and only if the meson.build file is tracked by git. @@ -111,7 +110,7 @@ # Pango supported pkg-config files on MSVC files for a good while, # so just use that -pangocairo_req = '>= 1.52.0' +pangocairo_req = '>= 1.54.0' pangocairo_dep = dependency('pangocairo', version: pangocairo_req) glibmm_req_minor_ver = '68' @@ -122,11 +121,11 @@ giomm_dep = dependency('giomm-2.@0@'.format(glibmm_req_minor_ver), version: glibmm_req) pangomm_build_dep = [giomm_dep, cairomm_dep, pangocairo_dep] -pangomm_requires = ' '.join([ - 'giomm-2.@0@'.format(glibmm_req_minor_ver), glibmm_req, - 'cairomm-1.@0@'.format(cairomm_req_minor_ver), cairomm_req, - 'pangocairo', pangocairo_req, -]) +pangomm_pc_requires = [ + 'giomm-2.@0@'.format(glibmm_req_minor_ver) + glibmm_req, + 'cairomm-1.@0@'.format(cairomm_req_minor_ver) + cairomm_req, + 'pangocairo' + pangocairo_req, +] # Some dependencies are required only in maintainer mode and/or if # reference documentation shall be built. @@ -144,7 +143,7 @@ xsltproc = find_program('xsltproc', required: build_documentation) # Where to find gmmproc and generate_wrap_init.pl. -gmmproc_dir = glibmm_dep.get_variable(pkgconfig: 'gmmprocdir', internal: 'gmmprocdir') +gmmproc_dir = glibmm_dep.get_variable('gmmprocdir') # Script files copied to 'untracked' by mm-common-get. script_dir = project_source_root / 'untracked' / 'build_scripts' @@ -253,42 +252,37 @@ ) endif -# add_dist_script() is not allowed in a subproject if meson.version() < 0.58.0. -can_add_dist_script = not meson.is_subproject() or meson.version().version_compare('>= 0.58.0') - subdir('tools/extra_defs_gen') subdir('pango') subdir('MSVC_NMake/pangomm') subdir('pango/pangomm') subdir('docs/reference') -if can_add_dist_script - # Add a ChangeLog file to the distribution directory. - meson.add_dist_script( - python3, dist_changelog_py, - project_source_root, - ) +# Add a ChangeLog file to the distribution directory. +meson.add_dist_script( + python3, dist_changelog_py, + project_source_root, +) - # Don't distribute these files. - dont_distribute = [ - 'pangomm.doap', - '.gitlab-ci.yml', - ] - # Add build scripts to the distribution directory, and delete .gitignore - # files and an empty $MESON_PROJECT_DIST_ROOT/build/ directory. - meson.add_dist_script( - python3, dist_build_scripts_py, - project_source_root, - 'untracked' / 'build_scripts', - dont_distribute, - ) -endif +# Don't distribute these files. +dont_distribute = [ + 'pangomm.doap', + '.gitlab-ci.yml', +] +# Add build scripts to the distribution directory, and delete .gitignore +# files and an empty $MESON_PROJECT_DIST_ROOT/build/ directory. +meson.add_dist_script( + python3, dist_build_scripts_py, + project_source_root, + 'untracked' / 'build_scripts', + dont_distribute, +) if meson.is_subproject() pkgconfig_vars = { 'gmmprocm4dir': project_source_root / 'tools' / 'm4', 'htmlrefdir': install_prefix / install_docdir / 'reference' / 'html', - 'htmlrefpub': 'https://gnome.pages.gitlab.gnome.org/' + pkg_conf_data.get_unquoted('PACKAGE_TARNAME') + 'htmlrefpub': 'https://gnome.pages.gitlab.gnome.org/' + meson.project_name(), } if build_documentation pkgconfig_vars += {'doxytagfile': tag_file.full_path()} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/meson.build new/pangomm-2.54.0/pango/meson.build --- old/pangomm-2.52.0/pango/meson.build 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/meson.build 2024-07-25 16:33:39.000000000 +0200 @@ -1,26 +1,12 @@ # pango -# Input: install_prefix, install_datadir, install_includedir, -# pangomm_pcname, pangomm_api_version, pangomm_requires, -# install_pkgconfigdir, install_libdir, build_deprecated_api, -# pangomm_major_version, pangomm_minor_version, pangomm_micro_version, -# msvc14x_toolset_ver +# Input: pangomm_pcname, install_libdir, build_deprecated_api, +# pangomm_major_version, pangomm_minor_version, pangomm_micro_version # Output: pkg_conf_data, install_includeconfigdir, pangommconfig_h_meson pkg_conf_data = configuration_data() -pkg_conf_data.set('prefix', install_prefix) -pkg_conf_data.set('exec_prefix', '${prefix}') -pkg_conf_data.set('libdir', '${exec_prefix}' / install_libdir) -pkg_conf_data.set('datarootdir', '${prefix}' / install_datadir) -pkg_conf_data.set('datadir', '${datarootdir}') -pkg_conf_data.set('includedir', '${prefix}' / install_includedir) -pkg_conf_data.set('srcdir', meson.current_source_dir()) -pkg_conf_data.set('PACKAGE_TARNAME', meson.project_name()) pkg_conf_data.set('PACKAGE_VERSION', meson.project_version()) pkg_conf_data.set('PANGOMM_MODULE_NAME', pangomm_pcname) -pkg_conf_data.set('PANGOMM_API_VERSION', pangomm_api_version) -pkg_conf_data.set('PANGOMM_MODULES', pangomm_requires) -pkg_conf_data.set('MSVC_TOOLSET_VER', msvc14x_toolset_ver) if not build_deprecated_api pkg_conf_data.set('PANGOMM_DISABLE_DEPRECATED', true) @@ -29,19 +15,6 @@ pkg_conf_data.set('PANGOMM_MINOR_VERSION', pangomm_minor_version) pkg_conf_data.set('PANGOMM_MICRO_VERSION', pangomm_micro_version) -configure_file( - input: 'pangomm.pc.in', - output: pangomm_pcname + '.pc', - configuration: pkg_conf_data, - install_dir: install_pkgconfigdir, -) - -configure_file( - input: 'pangomm-uninstalled.pc.in', - output: pangomm_pcname + '-uninstalled.pc', - configuration: pkg_conf_data, -) - pangommconfig_h_meson = files('pangommconfig.h.meson') install_includeconfigdir = install_libdir / pangomm_pcname / 'include' configure_file( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/pangomm/meson.build new/pangomm-2.54.0/pango/pangomm/meson.build --- old/pangomm-2.52.0/pango/pangomm/meson.build 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/pangomm/meson.build 2024-07-25 16:33:39.000000000 +0200 @@ -3,7 +3,7 @@ # Input: pangomm_build_dep, pangomm_pcname, maintainer_mode, project_source_root, # generate_binding_py, m4_files, pangomm_libversion, install_includedir, # python3, pangomm_rc, dummy_header_py, gmmproc_dir, msvc14x_toolset_ver, -# can_add_dist_script +# pangomm_pc_requires # Output: hg_ccg_basenames, extra_h_files, built_h_file_targets, built_files_root, # pangomm_own_dep @@ -218,6 +218,36 @@ endif +# Generate .pc files, used by pkg-config. +pkg_config = import('pkgconfig') +pc_common_variables = [ + 'doxytagfile=${docdir}/reference/' + pangomm_pcname + '.tag', + 'htmlrefdir=${docdir}/reference/html', + 'htmlrefpub=https://gnome.pages.gitlab.gnome.org/' + meson.project_name(), +] +pc_variables = [ + 'exec_prefix=${prefix}', + 'datarootdir=${datadir}', + 'gmmprocm4dir=${libdir}/' + pangomm_pcname + '/proc/m4', + 'docdir=${datadir}/doc/' + pangomm_pcname, +] + pc_common_variables +pc_uninstalled_variables = [ + 'gmmprocm4dir=${srcdir}/tools/m4', + 'docdir=${prefix}/docs', +] + pc_common_variables + +pkg_config.generate(pangomm_library, + filebase: pangomm_pcname, + variables: pc_variables, + uninstalled_variables: pc_uninstalled_variables, + name: meson.project_name(), + description: 'C++ binding for Pango', + url: 'https://www.gtkmm.org/', + requires: pangomm_pc_requires, + subdirs: [pangomm_pcname], + extra_cflags: ['-I${libdir}/' + pangomm_pcname + '/include'], +) + # Install built .h and _p.h files. meson.add_install_script( python3, generate_binding_py, 'install_built_h_files', @@ -226,15 +256,13 @@ hg_ccg_basenames ) -if can_add_dist_script - # Distribute built files. - meson.add_dist_script( - python3, generate_binding_py, 'dist_built_files', - built_h_cc_dir, - untracked_pangomm, - hg_ccg_basenames, - ) -endif +# Distribute built files. +meson.add_dist_script( + python3, generate_binding_py, 'dist_built_files', + built_h_cc_dir, + untracked_pangomm, + hg_ccg_basenames, +) # This is part of pangomm_dep, when pangomm is a subproject. # It can also be used if there are example programs and test programs to build. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/pangomm-uninstalled.pc.in new/pangomm-2.54.0/pango/pangomm-uninstalled.pc.in --- old/pangomm-2.52.0/pango/pangomm-uninstalled.pc.in 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/pangomm-uninstalled.pc.in 2024-07-25 16:33:39.000000000 +0200 @@ -1,10 +1,10 @@ doxytagfile=${pc_top_builddir}/docs/reference/@PANGOMM_MODULE_NAME@.tag -htmlrefpub=http://library.gnome.org/devel/@PACKAGE_TARNAME@/unstable/ +htmlrefpub=https://gnome.pages.gitlab.gnome.org/@PACKAGE_TARNAME@/ Name: pangomm Description: C++ binding for Pango, not installed Version: @PACKAGE_VERSION@ -URL: http://www.gtkmm.org/ +URL: https://www.gtkmm.org/ Requires: @PANGOMM_MODULES@ Libs: ${pc_top_builddir}/${pcfiledir}/pangomm/libpangomm@MSVC_TOOLSET_VER@-@PANGOMM_API_VERSION@.la Cflags: -I${pc_top_builddir}/${pcfiledir} -I${pc_top_builddir}/${pcfiledir}/@srcdir@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/attriter.hg new/pangomm-2.54.0/pango/src/attriter.hg --- old/pangomm-2.52.0/pango/src/attriter.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/attriter.hg 2024-07-25 16:33:39.000000000 +0200 @@ -23,8 +23,8 @@ namespace Pango { - -/** A Pango::AttrIter is used to represent an iterator through a Pango::AttrList. +//TODO: When we can break API/ABI, consider using _CLASS_BOXEDTYPE. PangoAttrIterator is a boxed type. +/** A %Pango::AttrIter is used to represent an iterator through a Pango::AttrList. * A new iterator is created with Pango::AttrList::get_iter(). Once the iterator is created, * it can be advanced through the style changes in the text using Pango::AttrIter::next(). * At each style change, the range of the current style segment and the attributes currently in effect can be queried. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/color.ccg new/pangomm-2.54.0/pango/src/color.ccg --- old/pangomm-2.52.0/pango/src/color.ccg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/color.ccg 2024-07-25 16:33:39.000000000 +0200 @@ -30,4 +30,12 @@ return gobj() != nullptr; } +std::pair<bool, guint16> +Color::parse_with_alpha(const Glib::ustring& spec) +{ + guint16 alpha = 0xffff; + auto retvalue = pango_color_parse_with_alpha(gobj(), &alpha, spec.c_str()); + return {retvalue, alpha}; +} + } /* namespace Pango */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/color.hg new/pangomm-2.54.0/pango/src/color.hg --- old/pangomm-2.52.0/pango/src/color.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/color.hg 2024-07-25 16:33:39.000000000 +0200 @@ -20,6 +20,7 @@ #include <glibmm/value.h> #include <glibmm/utility.h> #include <pango/pango.h> +#include <utility> // std::pair _DEFS(pangomm,pango) @@ -70,6 +71,31 @@ _WRAP_METHOD(bool parse(const Glib::ustring& spec), pango_color_parse) + /** Fill in the fields of a color from a string specification. + * + * The string can either one of a large set of standard names. + * (Taken from the CSS Color [specification](https://www.w3.org/TR/css-color-4/#named-colors), + * or it can be a hexadecimal value in the form `#rgb`, + * `#rrggbb`, `#rrrgggbbb` or `#rrrrggggbbbb` where `r`, `g` + * and `b` are hex digits of the red, green, and blue components + * of the color, respectively. (White in the four forms is + * `#fff`, `#ffffff`, `#fffffffff` and `#ffffffffffff`.) + * + * Additionally, parse strings of the form `#rgba`, `#rrggbbaa`, + * `#rrrrggggbbbbaaaa`, and set @a alpha + * to the value specified by the hex digits for `a`. If no alpha + * component is found in @a spec, @a alpha is set to 0xffff (for a + * solid color). + * + * @newin{2,54} + * + * @param spec A string specifying the new color. + * @return {success, alpha} <tt>true</tt> if parsing of the specifier succeeded, + * otherwise <tt>false</tt>; alpha value. + */ + std::pair<bool, guint16> parse_with_alpha(const Glib::ustring& spec); + _IGNORE(pango_color_parse_with_alpha) + _WRAP_METHOD(Glib::ustring to_string() const, pango_color_to_string) }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/context.hg new/pangomm-2.54.0/pango/src/context.hg --- old/pangomm-2.52.0/pango/src/context.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/context.hg 2024-07-25 16:33:39.000000000 +0200 @@ -120,6 +120,11 @@ Matrix get_matrix() const; _IGNORE(pango_context_get_matrix) + _WRAP_METHOD(void set_round_glyph_positions(bool round_positions = true), + pango_context_set_round_glyph_positions, newin "2,54") + _WRAP_METHOD(bool get_round_glyph_positions() const, + pango_context_get_round_glyph_positions, newin "2,54") + /** Breaks a piece of text into segments with consistent directional level and shaping engine. * Each byte of @a text will be contained in exactly one of the items in the returned list. * The generated list of items will be in logical order (the start offsets of the items diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/item.ccg new/pangomm-2.54.0/pango/src/item.ccg --- old/pangomm-2.52.0/pango/src/item.ccg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/item.ccg 2024-07-25 16:33:39.000000000 +0200 @@ -37,30 +37,23 @@ } +Item::Item() +: + gobject_(pango_item_new()) +{} + Item::Item(const Item& src) : gobject_ ((src.gobject_) ? pango_item_copy(src.gobject_) : nullptr) {} Item::Item(PangoItem* castitem, bool make_a_copy) -{ +: // For BoxedType wrappers, make_a_copy is true by default. The static // BoxedType wrappers must always take a copy, thus make_a_copy = true // ensures identical behaviour if the default argument is used. - - if(make_a_copy) - { - if(castitem) - gobject_ = pango_item_copy(castitem); - else - gobject_ = nullptr; - } - else - { - // It was given to us by a function which has already made a copy for us to keep. - gobject_ = castitem; - } -} + gobject_((make_a_copy && castitem) ? pango_item_copy(castitem) : castitem) +{} Item& Item::operator=(const Item& src) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/item.hg new/pangomm-2.54.0/pango/src/item.hg --- old/pangomm-2.52.0/pango/src/item.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/item.hg 2024-07-25 16:33:39.000000000 +0200 @@ -78,24 +78,29 @@ PangoAnalysis gobject_; }; - -/** A Pango::Item stores information about a segment of text. - * Pango::Item is used as an output type only so there is no public default constructor. +//TODO: When we can break API/ABI, consider using _CLASS_BOXEDTYPE. PangoItem is a boxed type. +/** A %Pango::Item stores information about a segment of text. + * %Pango::Item is used as an output type only so there is no public default constructor. * You retrieve objects of this type by calling Pango::Context::itemize() with some text. - * The actual rendering of the segment of text that corresponds to a particular Pango::Item + * The actual rendering of the segment of text that corresponds to a particular %Pango::Item * (or some sub-string) into a string of glyphs is done with shape(). - * The segment of text that corresponds to a Pango::Item can be computed from the + * The segment of text that corresponds to a %Pango::Item can be computed from the * text passed into Pango::Context::itemize() with get_segment(). Together with * the Pango::Analysis data member that can be accessed with get_analysis() * it is needed for further calculations in Pango::GlyphString. */ class PANGOMM_API Item { - _CLASS_GENERIC(Item, PangoItem) //There is the whole set of functions for _CLASS_BOXEDTYPE but unfortunately PangoItem is not registered as a boxed type and lacks pango_item_get_type... + _CLASS_GENERIC(Item, PangoItem) _IGNORE(pango_item_copy,pango_item_free) public: - // There is no default constructor. This class is only used as an output type. + /** Creates a new %Pango::Item structure initialized to default values. + * + * @newin{2,54} + */ + Item(); + explicit Item(PangoItem* castitem, bool make_a_copy = true); Item(const Item& src); @@ -107,6 +112,7 @@ PangoItem* gobj_copy() const; public: + _WRAP_METHOD(int get_char_offset() const, pango_item_get_char_offset, newin "2,54") _WRAP_METHOD(Item split(int split_index, int split_offset), pango_item_split) /** Gets the offset of the segment from the beginning of the string in bytes. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/language.ccg new/pangomm-2.54.0/pango/src/language.ccg --- old/pangomm-2.52.0/pango/src/language.ccg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/language.ccg 2024-07-25 16:33:39.000000000 +0200 @@ -28,7 +28,7 @@ inline PangoLanguage* _pango_language_new() { - return 0; + return nullptr; } inline PangoLanguage* _pango_language_copy(const PangoLanguage* language) @@ -43,7 +43,7 @@ Language::Language() : - gobject_(0) + gobject_(nullptr) {} Language::Language(const Glib::ustring& language) @@ -66,5 +66,4 @@ return Glib::ArrayHandler<Script>::array_to_vector((const Script*)carray, num_scripts, Glib::OWNERSHIP_NONE); } - } /* namespace Pango */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/language.hg new/pangomm-2.54.0/pango/src/language.hg --- old/pangomm-2.52.0/pango/src/language.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/language.hg 2024-07-25 16:33:39.000000000 +0200 @@ -55,19 +55,25 @@ _WRAP_METHOD(bool matches(const Glib::ustring & range_list) const, pango_language_matches) _WRAP_METHOD(bool includes_script(Script script) const, pango_language_includes_script) - - /** Determines the scripts used to to write this language. - * If nothing is known about the language tag then an empty container is returned. + /** Determines the scripts used to write this language. + * + * If nothing is known about the language tag then an empty vector is returned. * The list of scripts returned starts with the script that the * language uses most and continues to the one it uses least. * * Most languages use only one script for writing, but there are * some that use two (Latin and Cyrillic for example), and a few - * use three (Japanese for example). Applications should not make + * use three (Japanese for example). Applications should not make * any assumptions on the maximum number of scripts returned * though, except that it is a small number. * - * @result A container of Script values. + * The includes_script() function uses this function internally. + * + * @note While the return value is declared as `Pango::Script`, the + * returned values are from the `GUnicodeScript` enumeration, which + * may have more values. Callers need to handle unknown values. + * + * @result A vector of Script values. * * @newin{2,14} */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layout.hg new/pangomm-2.54.0/pango/src/layout.hg --- old/pangomm-2.52.0/pango/src/layout.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/layout.hg 2024-07-25 16:33:39.000000000 +0200 @@ -137,6 +137,8 @@ _WRAP_METHOD(float get_line_spacing() const, pango_layout_get_line_spacing) _WRAP_METHOD(void set_justify(bool justify = true), pango_layout_set_justify) _WRAP_METHOD(bool get_justify() const, pango_layout_get_justify) + _WRAP_METHOD(void set_justify_last_line(bool justify = true), pango_layout_set_justify_last_line, newin "2,54") + _WRAP_METHOD(bool get_justify_last_line() const, pango_layout_get_justify_last_line, newin "2,54") _WRAP_METHOD(bool get_auto_dir() const, pango_layout_get_auto_dir) _WRAP_METHOD(void set_auto_dir(bool auto_dir = true), pango_layout_set_auto_dir) @@ -155,6 +157,7 @@ _WRAP_METHOD(bool is_ellipsized() const, pango_layout_is_ellipsized) _WRAP_METHOD(int get_unknown_glyphs_count() const, pango_layout_get_unknown_glyphs_count) + _WRAP_METHOD(Direction get_direction(int index) const, pango_layout_get_direction, newin "2,54") _WRAP_METHOD(void context_changed(), pango_layout_context_changed) @@ -184,6 +187,7 @@ _WRAP_METHOD(void index_to_line_x(int index_, bool trailing, int& line, int& x_pos) const, pango_layout_index_to_line_x) _WRAP_METHOD(void get_cursor_pos(int index, Rectangle& strong_pos, Rectangle& weak_pos) const, pango_layout_get_cursor_pos) + _WRAP_METHOD(void get_caret_pos(int index, Rectangle& strong_pos, Rectangle& weak_pos) const, pango_layout_get_caret_pos, newin "2,54") /** Given an index within the layout, determine the positions that of the strong cursors if the insertion point is at that index. * @param index The byte index of the cursor. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutiter.ccg new/pangomm-2.54.0/pango/src/layoutiter.ccg --- old/pangomm-2.52.0/pango/src/layoutiter.ccg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/layoutiter.ccg 2024-07-25 16:33:39.000000000 +0200 @@ -20,6 +20,10 @@ namespace Pango { +LayoutIter::operator bool() const +{ + return gobj() != nullptr; +} Rectangle LayoutIter::get_char_extents() const { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutiter.hg new/pangomm-2.54.0/pango/src/layoutiter.hg --- old/pangomm-2.52.0/pango/src/layoutiter.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/layoutiter.hg 2024-07-25 16:33:39.000000000 +0200 @@ -34,6 +34,13 @@ _IGNORE(pango_layout_iter_copy, pango_layout_iter_free) public: + /** Checks whether this iterator is valid. + * + * @newin{2,54} + * + * @return <tt>true</tt> if the iterator is valid. + */ + explicit operator bool() const; _WRAP_METHOD(int get_index() const, pango_layout_iter_get_index) @@ -143,6 +150,7 @@ Rectangle get_layout_logical_extents() const; _WRAP_METHOD(int get_baseline() const, pango_layout_iter_get_baseline) + _WRAP_METHOD(int get_run_baseline() const, pango_layout_iter_get_run_baseline, newin "2,54") }; } //namespace Pango diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutline.ccg new/pangomm-2.54.0/pango/src/layoutline.ccg --- old/pangomm-2.52.0/pango/src/layoutline.ccg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/layoutline.ccg 2024-07-25 16:33:39.000000000 +0200 @@ -1,8 +1,4 @@ -// -*- c++ -*- -/* $Id: layoutline.ccg,v 1.3 2006/05/30 17:14:21 murrayc Exp $ */ - /* - * * Copyright 1998-2002 The gtkmm Development Team * * This library is free software; you can redistribute it and/or @@ -25,6 +21,13 @@ namespace Pango { +int LayoutLine::get_height() const +{ + int height = 0; + pango_layout_line_get_height(const_cast<PangoLayoutLine*>(gobj()), &height); + return height; +} + Rectangle LayoutLine::get_ink_extents() const { Rectangle ink_rect; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutline.hg new/pangomm-2.54.0/pango/src/layoutline.hg --- old/pangomm-2.52.0/pango/src/layoutline.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/layoutline.hg 2024-07-25 16:33:39.000000000 +0200 @@ -18,6 +18,7 @@ */ #include <glibmm/refptr.h> +#include <pangomm/context.h> #include <pangomm/rectangle.h> #include <cairomm/context.h> #include <pango/pango.h> @@ -29,8 +30,8 @@ class PANGOMM_API Layout; -/** A Pango::LayoutLine represents one of the lines resulting from laying out a paragraph via Pango::Layout. - * Pango::LayoutLine objects are obtained by calling Pango::Layout::get_line() +/** A %Pango::LayoutLine represents one of the lines resulting from laying out a paragraph via Pango::Layout. + * %Pango::LayoutLine objects are obtained by calling Pango::Layout::get_line() * and are only valid until the text, attributes, or settings of the parent Pango::Layout are modified. * Routines for rendering Pango::Layout objects are provided in code specific to each rendering system. */ @@ -41,6 +42,8 @@ _IGNORE(pango_layout_line_get_x_ranges) public: + _WRAP_METHOD(bool is_paragraph_start() const, pango_layout_line_is_paragraph_start, newin "2,54") + _WRAP_METHOD(Direction get_resolved_direction() const, pango_layout_line_get_resolved_direction, newin "2,54") _WRAP_METHOD(bool x_to_index(int x_pos, int& index, int& trailing) const, pango_layout_line_x_to_index) /** Converts an index within a line to a @a x position. @@ -69,6 +72,20 @@ _WRAP_METHOD(void get_extents(Rectangle& ink_rect, Rectangle& logical_rect) const, pango_layout_line_get_extents) + /** Computes the height of the line, as the maximum of the heights + * of fonts used in this line. + * + * Note that the actual baseline-to-baseline distance between lines + * of text is influenced by other factors, such as + * Pango::Layout::set_spacing() and Pango::Layout::set_line_spacing(). + * + * @newin{2,54} + * + * @return Line height. + */ + int get_height() const; + _IGNORE(pango_layout_line_get_height) + /** Compute the ink extents of a layout line. * @return The extents of the layout line as drawn. */ @@ -111,7 +128,7 @@ //_MEMBER_SET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*) _MEMBER_GET(length, length, int, gint) _MEMBER_GET(start_index, start_index, int, gint) - + _IGNORE(pango_layout_line_get_length, pango_layout_line_get_start_index) }; } // namespace Pango diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/pango_docs.xml new/pangomm-2.54.0/pango/src/pango_docs.xml --- old/pangomm-2.52.0/pango/src/pango_docs.xml 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/pango_docs.xml 2024-07-25 16:33:39.000000000 +0200 @@ -6240,7 +6240,7 @@ The string must have the form -"\[FAMILY-LIST] \[STYLE-OPTIONS] \[SIZE] \[VARIATIONS]", +"[FAMILY-LIST] [STYLE-OPTIONS] [SIZE] [VARIATIONS]", where FAMILY-LIST is a comma-separated list of families optionally terminated by a comma, STYLE_OPTIONS is a whitespace-separated list @@ -6248,7 +6248,7 @@ stretch, or gravity, and SIZE is a decimal number (size in points) or optionally followed by the unit modifier "px" for absolute size. VARIATIONS is a comma-separated list of font variation -specifications of the form "\@axis=value" (the = sign is optional). +specifications of the form @âaxis=value (the = sign is optional). The following words are understood as styles: "Normal", "Roman", "Oblique", "Italic". @@ -6279,7 +6279,7 @@ A typical example: -"Cantarell Italic Light 15 \@wght=200" +"Cantarell Italic Light 15 @âwght=200" </description> @@ -9556,6 +9556,30 @@ <return></return> </function> +<function name="pango_item_get_char_offset"> +<description> +Returns the character offset of the item from the beginning +of the itemized text. + +If the item has not been obtained from Pango's itemization +machinery, then the character offset is not available. In +that case, this function returns -1. + +Since: 1.54 + +</description> +<parameters> +<parameter name="item"> +<parameter_description> a `PangoItem` +</parameter_description> +</parameter> +</parameters> +<return> the character offset of the item from the beginning +of the itemized text, or -1 + +</return> +</function> + <function name="pango_item_new"> <description> Creates a new `PangoItem` structure initialized to default values. @@ -16152,7 +16176,7 @@ by the path. The font file must be in a format that is supported by the system's DirectWrite APIs. -Since: 1.52.0 +Since: 1.52 </description> <parameters> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/pango_methods.defs new/pangomm-2.54.0/pango/src/pango_methods.defs --- old/pangomm-2.52.0/pango/src/pango_methods.defs 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/pango_methods.defs 2024-07-25 16:33:39.000000000 +0200 @@ -3436,6 +3436,12 @@ (return-type "none") ) +(define-method get_char_offset + (of-object "PangoItem") + (c-name "pango_item_get_char_offset") + (return-type "int") +) + (define-method split (of-object "PangoItem") (c-name "pango_item_split") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/tabarray.ccg new/pangomm-2.54.0/pango/src/tabarray.ccg --- old/pangomm-2.52.0/pango/src/tabarray.ccg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/tabarray.ccg 2024-07-25 16:33:39.000000000 +0200 @@ -28,6 +28,16 @@ gobject_ = pango_tab_array_new(initial_size, (gboolean)positions_in_pixels); } +TabArray::TabArray(const Glib::ustring& text) +: + gobject_(pango_tab_array_from_string(text.c_str())) +{} + +TabArray::operator bool() const +{ + return gobj() != nullptr; +} + std::pair<TabAlign,int> TabArray::get_tab(int tab_index) const { PangoTabAlign p_alignment; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pangomm-2.52.0/pango/src/tabarray.hg new/pangomm-2.54.0/pango/src/tabarray.hg --- old/pangomm-2.52.0/pango/src/tabarray.hg 2024-03-15 18:11:11.000000000 +0100 +++ new/pangomm-2.54.0/pango/src/tabarray.hg 2024-07-25 16:33:39.000000000 +0200 @@ -28,7 +28,7 @@ _WRAP_ENUM(TabAlign, PangoTabAlign, decl_prefix PANGOMM_API) -/** A Pango::TabArray contains an array of tab stops. +/** A %Pango::TabArray contains an array of tab stops. * Each tab stop has an alignment and a position. */ class PANGOMM_API TabArray @@ -38,6 +38,27 @@ public: explicit TabArray(int initial_size, bool positions_in_pixels = true); + /** Deserializes a %Pango::TabArray from a string. + * + * This is the counterpart to to_string(). + * See that function for details about the format. + * + * @newin{2,54} + * + * @param text A string. + * @return A new %Pango::TabArray. + */ + explicit TabArray(const Glib::ustring& text); + _IGNORE(pango_tab_array_from_string) + + /** Checks whether this %TabArray is valid. + * + * @newin{2,54} + * + * @return <tt>true</tt> if the %TabArray is valid. + */ + explicit operator bool() const; + _WRAP_METHOD(int get_size() const, pango_tab_array_get_size) _WRAP_METHOD(void resize(int new_size), pango_tab_array_resize) _WRAP_METHOD(void set_tab(int tab_index, TabAlign alignment, int location), pango_tab_array_set_tab) @@ -53,6 +74,13 @@ std::vector<std::pair<TabAlign, int>> get_tabs() const; _WRAP_METHOD(bool get_positions_in_pixels() const, pango_tab_array_get_positions_in_pixels) + _WRAP_METHOD(void set_positions_in_pixels(bool positions_in_pixels = true), pango_tab_array_set_positions_in_pixels, newin "2,54") + _WRAP_METHOD(Glib::ustring to_string() const, pango_tab_array_to_string, newin "2,54") + _WRAP_METHOD(void set_decimal_point(int tab_index, gunichar decimal_point), + pango_tab_array_set_decimal_point, newin "2,54") + _WRAP_METHOD(gunichar get_decimal_point(int tab_index) const, + pango_tab_array_get_decimal_point, newin "2,54") + _WRAP_METHOD(void sort(), pango_tab_array_sort, newin "2,54") }; } //namespace Pango ++++++ pangomm.obsinfo ++++++ --- /var/tmp/diff_new_pack.qeZeRF/_old 2024-09-30 15:35:02.967657756 +0200 +++ /var/tmp/diff_new_pack.qeZeRF/_new 2024-09-30 15:35:02.971657922 +0200 @@ -1,5 +1,5 @@ name: pangomm -version: 2.52.0 -mtime: 1710522671 -commit: a767b1b98003ae3d7defa838af789616395d2602 +version: 2.54.0 +mtime: 1721918019 +commit: 522105b41b54f7a1da6d928d5ffe89699993a299