2022-09-21 Kjell Ahlstedt <kjellahlstedt@gmail.com> 1.14.4 2022-09-11 Kjell Ahlstedt <kjellahlstedt@gmail.com> Convert README to README.md 2022-08-16 Kjell Ahlstedt <kjellahlstedt@gmail.com> Fix build with -Dbuild-deprecated-api=false Fixes #29 2022-08-16 Kjell Ahlstedt <kjellahlstedt@gmail.com> Autotools build: Add --disable-deprecated-api Make it possible to exclude deprecated API from the build. See #29 2022-05-24 Chun-wei Fan <fanchunwei@src.gnome.org> Meson: Re-organize warnings-related compiler flags for MSVC Add a short description for the warning-related compiler flags for Visual Studio. Also, use the `/wd4267` compiler flag only when building a 64-bit build, since warning C4267 only applies for 64-bit builds. 2022-05-23 Chun-wei Fan <fanchunwei@src.gnome.org> Meson/MSVC: Compensate for the lack of msvc_recommended_pragmas.h Since cairomm does not hard-depend on GLib, it may be the case that msvc_recommended_pragmas.h is not available during the build. If it is not, disable warnings C4244 and C4101, which are part of the warnings that it disables. 2022-05-19 Kjell Ahlstedt <kjellahlstedt@gmail.com> meson.build: Avoid configuration warnings 2022-02-13 Kjell Ahlstedt <kjellahlstedt@gmail.com> meson.build: Specify 'check' option in run_command() The default value will be changed in future Meson releases. Don't use deprecated python3.path() and execute(..., gui_app: ...). 2021-11-10 Chun-wei Fan <fanchunwei@src.gnome.org> build: Support Visual Studio 2022 Make these builds distinct from the Visual Studio 2019 builds. 2021-08-18 Kjell Ahlstedt <kjellahlstedt@gmail.com> meson.build: Check if Perl is required for building documentation New versions of mm-common use the Python scripts doc_postprocess.py and doc_install.py instead of the Perl scripts doc-postprocess.pl and doc-install.pl when documentation is built. 2021-06-11 Kjell Ahlstedt <kjellahlstedt@gmail.com> Update examples/README 2021-06-10 Kjell Ahlstedt <kjellahlstedt@gmail.com> Doxyfile.in: Add the @newin alias and CAIROMM_API= 2021-05-20 Kjell Ahlstedt <kjellahlstedt@gmail.com> 1.14.3 2021-05-18 Kjell Ahlstedt <kjellahlstedt@gmail.com> Add dependencies to Doxygen tag files in subprojects Doxygen in a main project shall not be called before tag files have been created or updated in subprojects. 2021-05-14 Kjell Ahlstedt <kjellahlstedt@gmail.com> Fix build as subproject without building documentation * meson.build: If mm-common-get is not found in maintainer-mode with 'required: false', try with 'required: true'. Don't try to use tag_file, if documentation is not built. * docs/reference/meson.build: Don't use variables from modules that don't define doxytagfile. These are subprojects that don't build their documentation. 2021-05-11 Chun-wei Fan <fanchunwei@src.gnome.org> meson: Reorganize warnings on Visual Studio builds We can now drop the ignores for warnings C4251, C4273 and C4275 along with C4530, since our code and compiler flags should now make us free of them, since we use /EHsc to build our code and we are clean of classes that we export as a whole that derives from std::xxx classes. Ignore warning C4800, and warning C4127 in the examples, since these warnings are really spurious and safe to ignore as a whole. 2021-05-11 Chun-wei Fan <fanchunwei@src.gnome.org> MSVC_NMake/config-msvc.mak: Clean up compiler flags Since we eliminated the C4251, C4273 and C4275 warnings, don't ignore them along with C4530, since we are now using /EHsc. This will make the compiler flags a bit cleaner 2021-05-11 Chun-wei Fan <fanchunwei@src.gnome.org> cairomm/exception.h: Export Cairo::logic_error selectively Since this class derives std::logic_error, don't export the class as a whole but instead export its member methods as necessary on Windows. This will make the compiled DLL to not be locked in a single compiler/STL version, and will remove the compiler warnings C4251, C4273 and C4275 on Visual Studio. 2021-05-05 Kjell Ahlstedt <kjellahlstedt@gmail.com> Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0 * meson.build: * docs/reference/meson.build: Call add_dist_script() in a subproject, if meson.version() >= 0.58.0. 2021-04-07 Kjell Ahlstedt <kjellahlstedt@gmail.com> Meson build: No implicit_include_directories 2021-03-26 Kjell Ahlstedt <kjellahlstedt@gmail.com> Meson build: Make it possible to use cairomm as a subproject cairo and sigc++ can be subprojects of cairomm. 2021-03-09 Kjell Ahlstedt <kjellahlstedt@gmail.com> docs/reference/Doxyfile.in: Remove obsolete entries 2021-03-09 Chun-wei Fan <fanchunwei@src.gnome.org> cairommconfig.h.*: Don't dllimport on MinGW This will fix warnings when building items using cairomm with MinGW/GCC. Please see: https://gitlab.gnome.org/GNOME/gtkmm/-/issues/90 2020-09-30 Kjell Ahlstedt <kjellahlstedt@gmail.com> 1.14.2 2020-09-29 Kjell Ahlstedt <kjellahlstedt@gmail.com> Meson build: Fix versioning on macOS See https://github.com/libsigcplusplus/libsigcplusplus/pull/65 2020-09-29 Kjell Ahlstedt <kjellahlstedt@gmail.com> Require cairo >= 1.12.0 Has been a requirement for a long time, but configure.ac and meson.build had not been updated. 2020-09-27 Kjell Ahlstedt <kjellahlstedt@gmail.com> 1.14.0 2020-09-12 Kjell Ahlstedt <kjellahlstedt@gmail.com> Autotools builds: Create only .tar.xz tarballs This is what Meson does. Cairo does it when built with Autotools. 2020-08-14 Kjell Ahlstedt <kjellahlstedt@gmail.com> tests: Fix tests in Autotools builds * build/ax_boost_base.m4: * build/ax_boost_unit_test_framework.m4: Newer versions have been fetched from www.gnu.org/software/autoconf-archive 2020-08-13 Kjell Ahlstedt <kjellahlstedt@gmail.com> tests: Don't include deprecated Boost header files 2020-08-12 Kjell Ahlstedt <kjellahlstedt@gmail.com> Add Context::get_source_for_surface() Fixes #5 2020-07-23 Chun-wei Fan <fanchunwei@src.gnome.org> Update .gitignore We don't need to track generated files that are in under MSVC_NMake/ 2020-07-23 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Use /utf-8 compiler flag if available This compiler flag is provided with Visual Studio 2015 or later 2020-07-23 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Use Meson-style DLL and .lib naming if requested To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS' is specified in the NMake command line, build the DLLs and .lib's that are named like the Meson counterparts. Binaries built with Meson+Visual Studio and the ones that are built via NMake using 'USE_MESON_LIBS' are interchangeable, provided that they are built with the same Visual Studio version. 2020-07-23 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Fix builds from release tarballs This avoids needlessly enerating cairommconfig.h and cairomm.rc, and when we do need to generate these files, we ensure that they always have the right version info in them. Also streamline the build process that this file generating is done in the 'all' target, so that one does not need to use the -prep-git-build' target beforehand. 2020-07-08 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Look for headers in $(PREFIX)\include also The needed headers can be in $(PREFIX)\include as well, so we ought to look for them there 2020-07-08 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Support ARM64 Windows builds This will make the NMake Makefiles capable of building ARM64 binaries of cairomm, which can be used on Windows 10 on ARM systems. 2020-06-29 Kjell Ahlstedt <kjellahlstedt@gmail.com> docs/reference/: Update for Doxygen >= 1.8.16 * docs/reference/meson.build: Doxygen 1.8.16 and later does not store tag file names in the html files. This requires changes in meson.build and in doc-install.pl (in mm-common). Otherwise references to other modules won't be updated in the html files when they are installed. * docs/reference/Doxyfile.in: Remove PERL_PATH and MSCGEN_PATH. Doxygen since version 1.8.0 does not use them. 2020-06-25 Chun-wei Fan <fanchunwei@src.gnome.org> Meson/Visual Studio builds: Include toolset version by default This makes the built DLL and .lib's contain the toolset version if the build is carried out using Visual Studio 2015 or later, unless the 'msvc14x-parallel-installable' option is set to be false during configuration. The reasoning behind this change is that there may be subtle problems when, for instance, one tries to link to a Visual Studio 2015-built cairomm with Visual Studio 2017 or 2019. This is unfortunate as Microsoft did try hard to make interoperating between binaries built with Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API, but unfortunately this may hit the corner cases where this compatibility does not work. As the name suggests, this attempts to make Visual Studio 2015, 2017 and 2019 builds share a single set of underlying C DLLs easier, while avoiding possible breakages caused by such subtle differences. 2020-06-13 Chun-wei Fan <fanchunwei@src.gnome.org> MSVC_NMake/README: Add note on mixing between MSVC 2015~2019 Let people know that it is recommended to use the same Visual Studio version, even when using 2015, 2017 or 2019, to build software that depends on cairomm. Also note a new NMake option that allows creating MSVC 2015-style DLL and .lib filenames if that is needed, but note that is generally not recommended. 2020-06-13 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019 It was found that we cannot completely rely on the fact that Visual Studio 2015~2019 tried very hard to be binary compatible, as there could be corner cases when linking against cairomm built with Visual Studio 2015 with builds done by Visual Studio 2017 and 2019 where the code could fail to link and the DLLs are therefore not ABI-compatible. Note that the libsigc++ DLLs, however, are ABI compatible between these 3 Visual Studio versions. As a result, for the DLL and LIB names, use 'vc140' for Visual Studio 2015 builds, 'vc141' for Visual Studio 2017 builds and 'vc142' for Visual Studio 2019 builds, according to the toolset versions as defined by Microsoft. For people that may have previously built cairomm with Visual Studio 2017 or 2019, which had 'vc140' in the built .lib and DLL, an NMake option 'USE_COMPAT_LIBS' is added to make building such binaries with 'vc140' easier, if needed. 2020-06-05 Kjell Ahlstedt <kjellahlstedt@gmail.com> README: Update with instructions for building cairomm 2020-05-06 Chun-wei Fan <fanchunwei@src.gnome.org> meson: Don't use gendef on Visual Studio Instead, we use the newly-added CAIROMM_API which is defined to be __declspec(dllexport) to export the symbols directly. This will also allow some cleanup in the Meson build files, as we do not need to differentiate how the cairomm library is built on different compilers. 2020-05-06 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Stop using gendef.exe by default Define CAIROMM_API as __declspec(dllexport) (when building) or __declspec(dllimport) (when using) by default, unless we decide that we want to continue using gendef.exe for compatibility reasons, by passing in BUILD_COMPAT_LIB in the NMake command line. This means that gendef is not used unless we explicitly request to do so. We may be using the cairomm binaries on older programs that we aren't able to rebuild, so allow gendef to be still used if it is desired, although using __declspec(dllexport) and __declspec(dllimport) will be the default. 2020-05-06 Chun-wei Fan <fanchunwei@src.gnome.org> cairomm/*.h: Decorate public symbols with CAIROMM_API This include the public class definitions and function prototypes, so that we can use compiler directives to export these items. By doing so we will no longer need to use gendef.exe to export symbols for Visual Studio DLL builds. 2020-05-06 Chun-wei Fan <fanchunwei@src.gnome.org> cairommconfig.h.[in|meson]: Add CAIROMM_API This macro can be used to decorate public class and API prototypes, so that we can use it to export symbols with compiler directives, such as __declspec(dllexport) in the case of Visual Studio-style builds. We can even decide to not use it by keeping CAIROMM_API empty, such as in the case of building static libraries or when using GCC's autoexporting mechanism, or when using gendef is desired for compatibility reasons. 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Add rule to generate versioned files This will make building directly from a GIT checkout easier, by using PERL to read the configure.ac file to acquire the version info, and using this info to generate the full cairommconfig.h and cairomm.rc files that we need for our Visual Studio builds. This will also enable us to build from a Meson-generated source tarball, as we may well need to generate these files ourselves. 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Speed up builds Use 'md' to create the build intermediate directories so that we do not need to re-load the Makefiles that many times, which can speed up things. 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> MSVC_NMake/README: Use Windows line endings This file is used for Visual Studio builds, so use Windows-friendly line endings 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> MSVC_NMake/README: Don't mention that tests aren't buildable They have been updated so that they can be compiled, linked and ran on Visual Studio builds. 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Support Meson-built libsigc++ This allows one to link to the correct .lib that is produced by the Meson builds of libsigc++ in an easier way, by using USE_MESON_LIBS. 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> NMake: Fix building tests This will make the tests build and link with Visual Studio + Boost DLL builds... 2020-05-05 Chun-wei Fan <fanchunwei@src.gnome.org> NMake Makefiles: Split outdir by toolset/pdb version This reduces the likelihood of accidently mixing binaries linked against different CRT versions. Visual Studio 2015 through 2019 link to the same CRT/C++ runtime DLL, so they are interchangeable as long as the system has the CRT/C++RT DLLs installed that added support for the later toolsets, so use the PDB version instead. 2020-05-04 Kjell Ahlstedt <kjellahlstedt@gmail.com> configure.ac: Substitute CAIROMM_EXTRA_LIBS during configuration CAIROMM_EXTRA_LIBS has been added to data/cairomm-1.0.pc.in. It's used only in Meson builds. During an Autotools build it must be replaced by an empty string. 2020-05-04 Chun-wei Fan <fanchunwei@src.gnome.org> data/cairomm-1.0.pc.in: Add @CAIROMM_EXTRA_LIBS@ We need to put in the Cairo library in the 'Libs:' entry if Cairo was not found with pkg-config. 2020-05-04 Chun-wei Fan <fanchunwei@src.gnome.org> meson.build: Remove requirement for Visual Studio 2017 We can in fact be using Visual Studio 2013 to build cairomm-1-14, so we can just relax the requirement here. 2020-04-30 Kjell Ahlstedt <kjellahlstedt@gmail.com> Add support for building cairomm with Meson cairomm can be built with either Autotools or Meson. See MR !2 2020-04-30 Kjell Ahlstedt <kjellahlstedt@gmail.com> Replace NULL by nullptr 2020-04-30 Kjell Ahlstedt <kjellahlstedt@gmail.com> tests: Update the source code These updates have been copied from the master branch, where the BOOST_AUTO_TEST_*() macros were introduced by Chun-wei Fan. 2020-04-30 Kjell Ahlstedt <kjellahlstedt@gmail.com> Don't use zero as null pointer Replace 0 by nullptr where appropriate. 2020-04-22 Chun-wei Fan <fanchunwei@src.gnome.org> Sources: Remove #define _USE_MATH_DEFINES We now pass in /D_USE_MATH_DEFINES in our NMake compiler flags, so there is no need to define them in the sources. This will silence C4005 warnings (macro redefinition) in Visual Studio builds. Fixes #17 2020-04-22 Chun-wei Fan <fanchunwei@src.gnome.org> build: Remove Visual Studio 2013 projects Since they cannot be used with Visual Studio 2013, and they have since been superseded by the NMake Makefiles, it's time to remove them. 2020-04-22 Chun-wei Fan <fanchunwei@src.gnome.org> build: Add NMake Makefiles This will replace the Visual Studio 2013 projects, which is easier to maitain and will let us build cairomm with Visual Studio 2015 or 2017 easier (and, 2013 is no longer supported as it does not have enough C++-11 support). For the C++-11 version of cairomm, since Visual Studio 2015 and 2017 both link to the Windows v140 C/C++ runtime DLLs, the DLLs and .lib's are named as cairomm-vc140-1_0.[dll|lib] or cairomm-vc140-d-1_0.[dll|lib]. 2020-04-22 Chun-wei Fan <fanchunwei@src.gnome.org> build: Rename MSVC_Net2013 to MSVC_NMake This prepares for the transition to NMake Makefiles from the Visual Studio 2013 project files, which will make the Visual Studio build system more flexible and easier to maintain. 2020-04-22 Kjell Ahlstedt <kjellahlstedt@gmail.com> Build: Fix silent builds * configure.ac: Pass yes to AM_SILENT_RULES, thus enabling silent builds. * docs/reference/Doxyfile.in: Set QUIET=YES. Update for doxygen 1.8.11 (not necessary for silent builds). 2017-05-02 John Ralls <jralls@ceridwen.us> enums.h: Guard the FT-specific include and the enum with an ifdef. To fix the build if there is no cairo-ft present. Bug #100894. 2016-12-09 Kalev Lember <klember@redhat.com> Fix the build with MinGW headers Guard _USE_MATH_DEFINES with _WIN32 instead of _MSC_VER as it is needed for MinGW builds as well. While at this, also remove a duplicate version of the exact same define a few lines below. https://bugs.freedesktop.org/show_bug.cgi?id=92112 2016-11-15 Murray Cumming <murrayc@murrayc.com> 1.31.1 2016-11-15 Murray Cumming <murrayc@murrayc.com> RecordingSurface: Correct some whitespace. 2016-11-15 Jason Rhinelander <jason@imaginary.ca> Added C++ wrapper around cairo_recording_surface Bug #121359 2016-11-15 Murray Cumming <murrayc@murrayc.com> 1.12.2 2016-11-15 Murray Cumming <murrayc@murrayc.com> Revert "Added C++ wrapper around cairo_recording_surface" This reverts commit 14bda0b09cd1650b46c758d2b0a9dbae8f007d62. New API should not be added in a stable branch. 2016-11-15 Murray Cumming <murrayc@murrayc.com> 1.12.1 2016-11-15 Murray Cumming <murrayc@murrayc.com> Revert "RecordingSurface: Correct some whitespace." This reverts commit d5dda4daa8dbf4fec6e420d54f67669264827e30. API additions shouldn't be in a stable branch. 2016-04-10 Murray Cumming <murrayc@murrayc.com> C++11: RefPtr: Make operator bool explicit. See https://bugzilla.gnome.org/show_bug.cgi?id=626858#c4 2016-04-10 Murray Cumming <murrayc@murrayc.com> RecordingSurface: Correct some whitespace. 2016-04-10 Jason Rhinelander <jason@imaginary.ca> Added C++ wrapper around cairo_recording_surface Bug #121359 2016-02-09 Murray Cumming <murrayc@murrayc.com> C++11: Use override keyword on destructors. 2015-11-23 Murray Cumming <murrayc@murrayc.com> RefPtr: Use nullptr instead of 0. 2015-09-21 Murray Cumming <murrayc@murrayc.com> 1.12.0 2015-09-21 Murray Cumming <murrayc@murrayc.com> RefPtr: Use noexcept, as in Glib::RefPtr. 2015-09-10 Chun-wei Fan <fanchunwei@src.gnome.org> cairomm/exception.h: Allow Build on Visual Studio 2013 Visual Studio 2013 has one catch for its C++-11 support: It does not support noexcept, but has its own _NOEXCEPT for the same purpose. Add a define for it, while defining the _ALLOW_KEYWORD_MACROS as newer Visual Studio Versions do not allow one to define known keywords, even if it is not supported, by default. 2015-09-10 Chun-wei Fan <fanchunwei@src.gnome.org> MSVC Builds: Support Visual Studio 2013 (and later) Only This removes the Visual Studio 2005 and 2008 projects, and updates the Visual Studio 2010 projects to become 2013 projects, as only Visual Studio 2013 and later support enough of C++-11 to build cairomm in its current state. Also update the README in MSVC_Net2013/ to reflect on this situation. 2015-08-21 Murray Cumming <murrayc@murrayc.com> MSVC_Net2010/filelist.am: Correct the .props filenames 2015-08-20 Chun-wei Fan <fanchunwei@src.gnome.org> Overhaul The Visual Studio 2010 Projects Like the Visual Studio 2008 Projects, give the Visual Studio 2010 Projects an overhaul by using property sheets to consolidate commonly-used items, and moving all the projects to MSVC_Net2010, so that they can be more easily maintained. https://bugs.freedesktop.org/show_bug.cgi?id=84030 2015-08-20 Chun-wei Fan <fanchunwei@src.gnome.org> Update and Overhaul the Visual Studio 2008 Projects Move all the projects to MSVC_Net2008/, and add property sheets for the projects so that commonly-used items can be consolidated and referred from the projects, which will help simplify future maintenance. Also remove items from the projects that aren't really needed, as they add quite a bit of clutter. Add the newly-added source files to the cairomm project as well, as the cairomm project has bit rotted a little. https://bugs.freedesktop.org/show_bug.cgi?id=84030 2015-08-20 Chun-wei Fan <fanchunwei@src.gnome.org> fontface/fontoption: Check for CAIRO_HAS_FC_FONT This updates the fontface and fontoptions sources so that they will check for whether Cairo was built with FontConfig (in addition to FreeType) so that cairomm would still build when we have Cairo built with FreeType but without FontConfig, which for example may well be the case on Windows builds. https://bugs.freedesktop.org/show_bug.cgi?id=84033 2015-08-20 Murray Cumming <murrayc@murrayc.com> Add TODO about using std::shared_ptr<> instead. 2015-08-20 Murray Cumming <murrayc@murrayc.com> RefPtr: Add move constructors and move operator=(). Roughly based on the same changes in Glib::RefPtr<>. 2015-08-12 Murray Cumming <murrayc@murrayc.com> 1.11.4 2015-07-31 Murray Cumming <murrayc@murrayc.com> C++11: Use = delete instead of private constructors. 2015-07-31 Murray Cumming <murrayc@murrayc.com> C++11: Use of nullptr. 2015-07-31 Murray Cumming <murrayc@murrayc.com> C++11: Use auto. 2015-07-31 Murray Cumming <murrayc@murrayc.com> C++11: Use the override keyword. 2015-07-31 Murray Cumming <murrayc@murrayc.com> C++11: Use noexcept instead of throw(). 2015-07-31 Murray Cumming <murrayc@murrayc.com> configure.ac: Add some more warnings for --enable-warnings=fatal. Not using -Wshadow because that breaks the build: matrix.cc:28:80: error: declaration of 'y0' shadows a member of 'this' [-Werror=shadow] Matrix::Matrix(double xx, double yx, double xy, double yy, double x0, double y0) 2015-07-31 Murray Cumming <murrayc@murrayc.com> configure.ac: Avoid deprecated libsigc++ API. No code changes were necessary. 2015-07-31 Murray Cumming <murrayc@murrayc.com> Use (and require) C++11. And use the latest version of libsigc++, which also requires C++11. 2014-04-09 David Weiß <david.weiss@ptvgroup.com> Update MSVC.Net 2010 project files. https://bugs.freedesktop.org/show_bug.cgi?id=76820 2014-02-21 Povilas Kanapickas <povilas@radix.lt> Wrap cairo script device and script surface APIs 2014-02-21 Povilas Kanapickas <povilas@radix.lt> Wrap FtFontFace::{get,set,unset}_synthesize 2014-02-21 Povilas Kanapickas <povilas@radix.lt> Remove no longer useful .cvsignore files 2014-02-11 Murray Cumming <murrayc@murrayc.com> Updating version to odd number for git. 2014-02-11 Murray Cumming <murrayc@murrayc.com> 1.11.2, because we use even micros for releases. 2014-02-11 Murray Cumming <murrayc@murrayc.com> 1.11.1 2014-02-11 Murray Cumming <murrayc@murrayc.com> Autogenerate the ChangeLog 2014-01-28 Murray Cumming <murrayc@murrayc.com> Improve some deprecation comments. 2014-01-28 Povilas Kanapickas <povilas@radix.lt> Add Pattern::{set_extend,get_extend} * cairomm/pattern.{cc,h}: set_extend and get_extend functions apply not only to surface patterns, but to linear and radial gradients too. Bug #73775 2014-01-28 Anton Bachin <antonbachin@yahoo.com> Allow use from Objective-C instead of just allowing building. * cairomm/fontface.h: Surround the include line in surface.h with some directives that undefine nil and then redefine it. * cairomm/surface.h: This aso undefined nil but this appears to be unnecessary. Bug #66328 2014-01-28 Murray Cumming <murrayc@murrayc.com> Avoid dereferencing empty std::vector<>s. * cairomm/context.cc: Check with empty() before using [0] on a vector. Apparently gcc allows this, but MSVC (probably correctly) does not. This fixes a crash on MS Windows. Bug #36020 (Robert Kurjata) 2014-01-28 Murray Cumming <murrayc@murrayc.com> ScaledFont: Add the missing get_extents() method implementation. Bug #53981 (cheshirekow) 2012-03-12 Mark Vender <markv743@yahoo.co.uk> Use GNOME style in the documentation 2012-03-12 Murray Cumming <murrayc@murrayc.com> Fix linker problem with the examples. * examples/Makefile.am: Add CAIROMM_LIBS. This is needed now to a change in behaviour of the linker in recent distro versions. 2012-03-12 Mark Vender <markv743@yahoo.co.uk> Update the documentation 2011-05-09 Murray Cumming <murrayc@murrayc.com> 1.10.0 2010-12-31 Jonathon Jongsma <jjongsma@gnome.org> Ignore some more msvc build files 2010-12-31 Jonathon Jongsma <jjongsma@gnome.org> Bump micro version after release 2010-12-31 Jonathon Jongsma <jjongsma@gnome.org> Disable fatal warnings on distcheck for now cairo.h has an extra comma at the end of an enumeration, which causes a warning, so making warnings fatal in distcheck makes it impossible to release. 2010-12-31 Jonathon Jongsma <jjongsma@gnome.org> Update NEWS for 1.9.8 release, bump version Also require a newer cairo (1.10.0) 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Wrap cairo_surface_create_for_rectangle() 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Add PDF versioning API New PdfSurface functions: get_versions() restrict_to_version() version_to_string() 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Add Device documentation 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Add Device::Lock for acquiring devices safely To aid in acquiring devices in an exception-safe manner, a convenience class Device::Lock was added that acquires the specified device for the duration of the object. 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Wrap cairo_device_acquire|release() 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Wrap cairo_surface_get_device() 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Add Region documentation 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Wrap cairo_region_xor_* 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Wrap cairo_region_create_rectangles() 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Wrap Region::copy() 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Provide static factory functions for Region Since Region objects are ref-counted, don't allow them to be instantiated manually, but provide static create() functions for automatically managing them with RefPtrs. Also, remember to check the error status when creating them. 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Fix Region api to throw exception rather than return status All other API throws exceptions instead of returning error statuses, so make this be consistent as well. (the only possible error for these operations is NO_MEMORY) 2010-12-30 Jonathon Jongsma <jjongsma@gnome.org> Add new surface type enums These are not really used in cairomm, but it's nice to have them defined in any case. 2010-11-03 Murray Cumming <murrayc@murrayc.com> A NEWS entry for a future release. 2010-11-03 Murray Cumming <murrayc@murrayc.com> Context::arc(): Correct the documentation, as in the C documentation. * cairomm/context.h: arc(): Update the documentation based on the latest version of the cairo_arc() documentation, which was apparently fixed since we last wrote the C++ documentation based on it. This fixes bug #31345 (Christopher Head) about bad math in arc() documentation. 2010-10-26 Murray Cumming <murrayc@murrayc.com> Post-release version increment 2010-10-26 Armin Burgmeier <armin@arbur.net> Fix the build with MSVC (really) The previous commit only included the ChangeLog for some reason. 2009-10-26 Armin Burgmeier <armin@arbur.net> * MSVC_Net2005/cairomm/cairomm.rc.in: * MSVC_Net2008/cairomm/cairomm.rc.in: Replaced GENERIC_MAJOR_VERSION et al. by CAIROMM_MAJOR_VERSION, so that they are properly replaced during configure. * MSVC_Net2005/examples/image-surface/image-surface.vcproj: * MSVC_Net2005/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2005/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2005/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2005/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2005/examples/toy-text/toy-text.vcproj: * MSVC_Net2005/examples/user-font/user-font.vcproj: * MSVC_Net2008/examples/image-surface/image-surface.vcproj: * MSVC_Net2008/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2008/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2008/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2008/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2008/examples/toy-text/toy-text.vcproj: * MSVC_Net2008/examples/user-font/user-font.vcproj: Added $(SolutionDir)/cairomm to the include search paths, so that cairommconfig.h is found even if configure did not run. * cairomm/fontface.cc: MSVC does not allow to reinterpret_cast a bool to void*, so use an int instead. * examples/surfaces/image-surface.cc: * examples/surfaces/pdf-surface.cc: * examples/surfaces/ps-surface.cc: * examples/surfaces/svg-surface.cc: * examples/text/text-rotate.cc: Define _USE_MATH_DEFINES before including anything, to make sure we get the defines even if math.h is included indirectly via another header. * cairomm/context.cc: In set_dash(std::valarray<double>), copy the valarray into a vector and then call set_dash(std::vector<double>). The reason is that there is no guarantee that the memory in a std::valarray is contiguous, and also that in MSVC's STL (and also in the C++ standard) std::valarray<T>::operator[](size_t) const returns a T, not a const T&, so &dashes[0] is a compiler error if dashes is a const std::valarray<double>&. 2010-10-22 Armin Burgmeier <armin@arbur.net> Added support for 64 bit and Visual Studio 2010. * MSVC_Net2008/.cvsignore: * MSVC_Net2005/examples/png-file/png-file.vcproj: * MSVC_Net2008/examples/png-file/png-file.vcproj: Removed. * MSVC_Net2005/README: * MSVC_Net2005/cairomm.sln: * MSVC_Net2005/cairomm/cairomm.vcproj: * MSVC_Net2005/examples/image-surface/image-surface.vcproj: * MSVC_Net2005/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2005/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2005/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2005/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2005/examples/toy-text/toy-text.vcproj: * MSVC_Net2005/examples/user-font/user-font.vcproj: * MSVC_Net2005/gendef/gendef.vcproj: * MSVC_Net2008/README: * MSVC_Net2008/cairomm.sln: * MSVC_Net2008/cairomm/cairomm.vcproj: * MSVC_Net2008/examples/image-surface/image-surface.vcproj: * MSVC_Net2008/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2008/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2008/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2008/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2008/examples/toy-text/toy-text.vcproj: * MSVC_Net2008/examples/user-font/user-font.vcproj: * MSVC_Net2008/gendef/gendef.vcproj: * MSVC_Net2010/README: * MSVC_Net2010/cairomm.sln: * MSVC_Net2010/cairomm/cairomm.rc.in: * MSVC_Net2010/cairomm/cairomm.vcxproj: * MSVC_Net2010/cairomm/cairomm.vcxproj.filters: * MSVC_Net2010/examples/image-surface/image-surface.vcxproj: * MSVC_Net2010/examples/image-surface/image-surface.vcxproj.filters: * MSVC_Net2010/examples/pdf-surface/pdf-surface.vcxproj: * MSVC_Net2010/examples/pdf-surface/pdf-surface.vcxproj.filters: * MSVC_Net2010/examples/ps-surface/ps-surface.vcxproj: * MSVC_Net2010/examples/ps-surface/ps-surface.vcxproj.filters: * MSVC_Net2010/examples/svg-surface/svg-surface.vcxproj: * MSVC_Net2010/examples/svg-surface/svg-surface.vcxproj.filters: * MSVC_Net2010/examples/text-rotate/text-rotate.vcxproj: * MSVC_Net2010/examples/text-rotate/text-rotate.vcxproj.filters: * MSVC_Net2010/examples/toy-text/toy-text.vcxproj: * MSVC_Net2010/examples/toy-text/toy-text.vcxproj.filters: * MSVC_Net2010/examples/user-font/user-font.vcxproj: * MSVC_Net2010/examples/user-font/user-font.vcxproj.filters: * MSVC_Net2010/filelist.am: * MSVC_Net2010/gendef/gendef.cc: * MSVC_Net2010/gendef/gendef.vcxproj: * MSVC_Net2010/gendef/gendef.vcxproj.filters: * Makefile.am: * configure.ac: Added support for 64 bit and Visual Studio 2010. 2010-10-22 Murray Cumming <murrayc@murrayc.com> Update for the 1.9.4 release that I made without pulling 2010-09-10 Murray Cumming <murrayc@murrayc.com> Context, Surface: Add some new methods. * cairomm/context.[h|cc]: Added in_clip(). * cairomm/surface.[h|cc]: Added get_mime_data(), set_mime_data(), unset_mime_data(). 2010-09-07 Murray Cumming <murrayc@murrayc.com> Added Device class. * cairomm/device.[h|cc]: Added these files, wrapping cairo_device_t. * cairomm/filelist.am: * cairomm/cairomm.h: Mention the new file. 2010-09-06 Murray Cumming <murrayc@murrayc.com> 1.9.2 2010-09-02 Murray Cumming <murrayc@murrayc.com> Context: set_dash(): Make the dashes parameter const. * cairomm/context.[h|cc]: set_dash(): Add versions that take a const vector parameter, deprecating the old versions. 2010-09-02 Murray Cumming <murrayc@murrayc.com> Context: Make some methods const, deprecating the non-const versions. * cairomm/context.h: device_to_user(, device_to_user_distance(), user_to_device(), user_to_device_distance(): Deprecate the non-const versions, adding const versions. 2010-09-02 Ian Britten <britten@dilbert.caris.priv> 2010-06-10 Ian Britten <britten@caris.com> Cleanup of most -Weffc++ warnings (Continuation of previous commit) Bug #28246 * cairomm/fontface.h (FontFace::FontFace): * cairomm/path.h (Path::Path): * cairomm/pattern.h (Pattern::Pattern): * cairomm/scaledfont.h (ScaledFont::ScaledFont): * cairomm/surface.h (Surface::Surface): Declare a private copy constructor and assignment operator in order to explicitly prevent objects from being copied by value. That was never valid, and not disallowing it seems to have been merely an oversight. * cairomm/fontoptions.cc: * cairomm/scaledfont.cc: Initialize member(s) in initialization list. * cairomm/scaledfont.h: Declared ~ScaledFont() virtual 2010-07-19 Murray Cumming <murrayc@murrayc.com> 1.9.1 2010-07-06 Murray Cumming <murrayc@murrayc.com> Add Region, wrapping cairo_region_t, new in cairo 1.10. * cairomm/region.[h|cc]: Added this class, wrapping it like other reference-counted types, such as Pattern. * cairomm/cairomm.h: Add an include of it here. * cairomm/filelist.am: Mention the new files here. 2010-06-07 Daniel Elstner <danielk@openismus.com> Disallow copying of Cairo::Context objects * cairomm/context.h (Cairo::Context): Declare a private copy constructor and assignment operator in order to explicitly prevent objects from being copied by value. That was never valid, and not disallowing it seems to have been merely an oversight. 2010-06-07 Daniel Elstner <danielk@openismus.com> Do not unnecessarily cast booleans to pointers * cairomm/fontface.cc (USER_DATA_KEY_DEFAULT_TEXT_TO_GLYPHS): Put dummy object into an anonymous namespace and make it static. (UserFontFace::text_to_glyphs): Do not cast a boolean to a pointer in order to indicate state via the font face's user data. There are fairly safe alternative casts to do this, but it is much simpler to just take the address of any existing object to get a non-0 pointer. (UserFontFace::UserFontFace): Remove unnecessary casts. 2010-06-07 Armin Burgmeier <armin@arbur.net> Fix the build with MSVC 2009-10-26 Armin Burgmeier <armin@arbur.net> * MSVC_Net2005/cairomm/cairomm.rc.in: * MSVC_Net2008/cairomm/cairomm.rc.in: Replaced GENERIC_MAJOR_VERSION et al. by CAIROMM_MAJOR_VERSION, so that they are properly replaced during configure. * MSVC_Net2005/examples/image-surface/image-surface.vcproj: * MSVC_Net2005/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2005/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2005/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2005/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2005/examples/toy-text/toy-text.vcproj: * MSVC_Net2005/examples/user-font/user-font.vcproj: * MSVC_Net2008/examples/image-surface/image-surface.vcproj: * MSVC_Net2008/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2008/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2008/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2008/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2008/examples/toy-text/toy-text.vcproj: * MSVC_Net2008/examples/user-font/user-font.vcproj: Added $(SolutionDir)/cairomm to the include search paths, so that cairommconfig.h is found even if configure did not run. * cairomm/fontface.cc: MSVC does not allow to reinterpret_cast a bool to void*, so use an int instead. * cairomm/context.cc: * examples/surfaces/image-surface.cc: * examples/surfaces/pdf-surface.cc: * examples/surfaces/ps-surface.cc: * examples/surfaces/svg-surface.cc: * examples/text/text-rotate.cc: Define _USE_MATH_DEFINES before including anything, to make sure we get the defines even if math.h is included indirectly via another header. 2010-06-07 Augusto Jun Devegili <monipol@gmx.com> Put ifdefs around 32-bit-only API, to fix the build on 64-bit machines. * cairomm/quartz_font.[h|cc]: Use #ifndef __LP64__, as cairo does. 2010-06-07 Murray Cumming <murrayc@murrayc.com> Fix the ChangeLog. 2010-06-07 Murray Cumming <murrayc@murrayc.com> Actually install cairomm-xlib-xrender-1.0.pc. * configure.ac: Fix a typo in the check for xlib-xrender support in cairo. Fixes bug #27066. 2010-04-20 Daniel Elstner <daniel.kitta@gmail.com> Clean up configure.ac and add silent rules support * configure.ac (AC_INIT): Specify correct URLs for bug reports and the project home page. (AM_SILENT_RULES): Call macro if defined. (MM_PREREQ): Require mm-common 0.8. (BOOST_UNIT_TEST_FRAMEWORK_STATIC_LIB): Rewrite the fragile shell code of the boost check. 2009-10-19 Jonathon Jongsma <jjongsma@gnome.org> bump to 1.8.4, update NEWS 2009-08-13 Jonathon Jongsma <jjongsma@gnome.org> Don't force tests to be enabled when CAIROMM_DEVEL is defined This was hacked in to ensure that I always built with tests enabled, but the boost configure detection scripts are broken right now on my setup, so this just hinders my ability to get things done. remove it. 2009-08-13 Daniel Elstner <danielk@openismus.com> Distribute mm-common documentation utilities * docs/Makefile.am (dist_noinst_DATA): List the utility scripts installed by mm-common-prepare here, so they will be distributed. 2009-08-13 Daniel Elstner <danielk@openismus.com> Add missing call to MM_CONFIG_DOCTOOL_DIR * configure.ac: Call MM_CONFIG_DOCTOOL_DIR([docs]) to indicate to mm-common-prepare that this module cannot depend on the utilities shipped with glibmm, and needs its own copies. 2009-08-13 Daniel Elstner <danielk@openismus.com> Fix left-over cairomm/cairommconfig.h includes * cairomm/cairomm.h: Remove directory prefix from cairommconfig.h include statement. * cairomm/context.cc: Include <cmath> unconditionally instead of conditionally including <math.h>. * examples/surfaces/*.cc: ditto, * examples/text/text-rotate.cc: ditto. 2009-08-13 Daniel Elstner <danielk@openismus.com> Review and clean up after build overhaul * autogen.sh: Pass --enable-maintainer-mode to ./configure since the automatic rebuild of the reference documentation is only enabled in maintainer mode. AM_MAINTAINER_MODE is already in configure.ac. * configure.ac (AC_CONFIG_HEADERS): Prepend build/config.h to the list of header files, because the first file in the list has its .in file generated by autoheader, and will thus include every AC_DEFINE from every Autoconf macro that is used. The macros defined in the installed cairommconfig.h header should be namespaced and limited to meta information about the installed cairomm library. Also move cairommconfig.h to the top-level directory, in order to avoid the need to add the cairomm/ subdirectory to the include path. (PKG_CHECK_MODULES): Collapse the checks for optional cairo modules into a loop, and use PKG_CHECK_EXISTS() instead of the full-blown PKG_CHECK_MODULES(). Also, be a bit cleverer about the lists of .pc files and module names generated along the way. (AC_CONFIG_FILES): List all potentially installed files literally, instead of creating the list of output files dynamically. This is much simpler and also gets us free shipping. Remove data/Makefile. * cairommconfig.h.in: Add file to repository, as it should not be autogenerated. Of the content, keep only the CAIROMM_ namespaced macros. * cairomm/context*.cc: Remove cairomm/ prefix from cairommconfig.h include statements. This was already wrong before, but moving the file around made it visible. * Makefile.am: Clean up a bit. (DIST_SUBDIRS): Have Automake figure it out automatically. (cairomm_include_HEADERS): Remove, as cairomm/cairomm.h is already installed in cairomm/Makefile.am. (nodist_cairomm_libinclude_HEADERS): Relocate cairommconfig.h to the top-level directory. (nodist_pkgconfig_DATA): Use $(CAIROMM_INSTALL_PC) substitution from configure.ac to install the appropriate pkg-config data files. * cairomm/Makefile.am: Rewrite without using compile-binding.am, as it is not really the appropriate tool for the cairomm job. * cairomm/filelist.am (cairomm_cc): Rename from $(files_extra_cc). (cairomm_public_h): Rename variable from $(files_extra_h) and remove cairommconfig.h from the list. (cairomm_private_h): Rename variable from $(files_extra_ph). * docs/Makefile.am (doc_input): Adjust variable names. (dist_noinst_DATA): Add reference/cairomm.css to the list. (pubdocbase): Define for completeness. (htmlrefpub): Correct documentation URL. * docs/Doxyfile.in: Strip trailing whitespace from every line. (STRIP_FROM_PATH), (STRIP_FROM_INC_PATH), (INCLUDE_PATH): Do not strip the cairomm/ subdirectory prefix from the displayed filenames. (EXCLUDE): Remove list of files to exclude, since the list of input files is specified explicitly with the new build organization. (EXPAND_AS_DEFINED): Expand version number macros, although at the moment they are probably not used anywhere in the public headers. * data/cairomm-*.pc.in: Use @PACKAGE_VERSION@ instead of @VERSION@. * data/cairomm-1.0.pc.in (htmlrefpub): Correct documentation URL. (Cflags): Add missing -I${libdir}/@CAIROMM_MODULE_NAME@/include. * data/Makefile.am: Delete now unused build file. * docs/reference/Makefile.am: Delete left-over build file. 2009-08-13 David King <davidk@openismus.com> Get rid of all Makefile.am in the MSVC dirs * MSVC_Net2005/**/.cvsignore: * MSVC_Net2008/**/.cvsignore: Remove obsolete .cvsignore files. * MSVC_Net2005/**/Makefile.am: * MSVC_Net2008/**/Makefile.am: Remove recursive build files. * MSVC_Net2005/filelist.am: * MSVC_Net2008/filelist.am: Recursively list all files that should go into the distribution. * configure.ac (AC_CONFIG_FILES): Remove all Makefile outputs to the MSVC subdirectories. (AC_CONFIG_COMMANDS): Copy the configuration header files into the MSVC subdirectories by making config.status execute custom configuration commands. This is easier than doing it at the Makefile level, where it was previously implemented. * Makefile.am: Include the filelist.am files from the MSVC subdirectories. (SUBDIRS): Remove MSVC_Net200[58] directories from the list. (dist_noinst_DATA): Distribute the MSVC project files. (DISTCLEANFILES): Include the copied configuration header files in a distclean. 2009-08-13 David King <davidk@openismus.com> Switch to mm-common documentation build infrastructure * .gitignore: Add new generated documentation files. * Makefile.am: Remove old documentation generation build. * configure.ac: * docs/reference/Makefile.am: Remove, with switch to non-recursive documentation build. * data/cairomm-1.0.pc.in: * docs/Makefile.am: Switch to new documentation build infrastructure from mm-common. * docs/reference/Doxyfile.in: Modernise and disable several unused features of the Doxygen output. 2009-08-13 David King <davidk@openismus.com> Simplify build system of examples and cairomm subdirectores * .gitignore: Add INSTALL, mm-common *.am files and .dirstamp. * Makefile.am: Change VERSION to PACKAGE_VERSION. Begin transition to use of new build infrastructure. * cairomm/Makefile.am: Simplify by moving significant portions to toplevel Makefile.am. * cairomm/filelist.am: List of files for libcairomm. Move private source files to files_extra_cc. * configure.ac: Use MM_INIT_MODULE and remove example subdirectory Makefile.am. * examples/surfaces/Makefile.am: * examples/text/Makefile.am: Remove. * examples/Makefile.am: Convert examples tree to non-recursive build, with single, slimmer Makefile.am. 2009-08-13 David King <davidk@openismus.com> Initial changes to ease transition to mm-common build infrastructure * autogen.sh: Replace with a simple wrapper around mm-common-prepare and autoreconf. * build/*.m4: Move from m4 directory. * Makefile.am: Rename m4 directory to build. * configure.ac: Rename from configure.in, as it is recommended by Autoconf developers and currently required by mm-common-prepare. Major update to take advantage of mm-common build infrastructure. * INSTALL: Remove from repository, using GNU install instructions instead. * cairomm/Makefile.am: Remove unnecessary win32 conditionals. 2009-08-07 Christopher Harvey <chris@basementcode.com> Added some documentation to the rel_* functions in the Context class 2009-07-08 Jonathon Jongsma <jjongsma@gnome.org> update NEWS for release 2009-07-06 Jonathon Jongsma <jjongsma@gnome.org> Bump version number for release 1.8.2 2009-07-05 Jānis Rukšāns <thedogfarted@gmail.com> Restore 1.6.x API / ABI that was unintentionally broken in 1.8.x 2009-01-26 Jonathon Jongsma <jjongsma@gnome.org> Bump version to 1.8.0 release 2009-01-20 Jonathon Jongsma <jjongsma@gnome.org> Fix documentation of ImageSurface::create() * cairomm/surface.h: fixed the documentation for ImageSurface::create() to match the cairo C documentation (it must have changed since we initially copied the documentation -- it'd really be nice to have a way to automatically generate the C++ documentation...) 2008-12-20 Jonathon Jongsma <jjongsma@gnome.org> fix some distcheck failures 2008-12-20 Jonathon Jongsma <jjongsma@gnome.org> Update NEWS and bump version to 1.7.2 2008-12-20 Jonathon Jongsma <jjongsma@gnome.org> scaled_matrix() -> scaling_matrix() 2008-12-20 Armin Burgmeier <armin@arbur.net> Updated MSVC project files 2008-12-20 Armin Burgmeier <armin@openismus.com> * cairomm/pattern.h: Forward-declared Matrix as a class instead of as a struct, to prevent MSVC from complaining about "'Cairo::Matrix' : type name first seen using 'struct' now seen using 'class'". * MSVC_Net2005/examples/png_file: * MSVC_Net2008/examples/png_file: Removed, as the corresponding example has been removed. * MSVC_Net2005/cairomm/cairomm.vcproj: * MSVC_Net2008/cairomm/cairomm.vcproj: Link against libsigc++, added matrix.h, win32_font.h, matrix.cc and win32_font.cc to the project. * MSVC_Net2005/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2005/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2005/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2005/examples/pdf-surface/pdf-surface.vcproj: * MSVC_Net2008/examples/ps-surface/ps-surface.vcproj: * MSVC_Net2008/examples/svg-surface/svg-surface.vcproj: * MSVC_Net2008/examples/text-rotate/text-rotate.vcproj: * MSVC_Net2008/examples/text-rotate/text-rotate.vcproj: Adapt path to source files. * MSVC_Net2005/examples/image-surface/image-surface.vcproj: * MSVC_Net2005/examples/image-surface/Makefile.am: * MSVC_Net2005/examples/toy-text/toy-text.vcproj: * MSVC_Net2005/examples/toy-text/Makefile.am: * MSVC_Net2005/examples/user-font/user-font.vcproj: * MSVC_Net2005/examples/user-font/Makefile.am: * MSVC_Net2005/examples/Makefile.am: Added MSVC2005 projects for these examples. * MSVC_Net2008/examples/image-surface/image-surface.vcproj: * MSVC_Net2008/examples/image-surface/Makefile.am: * MSVC_Net2008/examples/toy-text/toy-text.vcproj: * MSVC_Net2008/examples/toy-text/Makefile.am: * MSVC_Net2008/examples/user-font/user-font.vcproj: * MSVC_Net2008/examples/user-font/Makefile.am: * MSVC_Net2008/examples/Makefile.am: Added MSVC2008 projects for these examples. * MSVC_Net2005/cairomm.sln: * MSVC_Net2008/cairomm.sln: Added the new example projects to the corresponding solution. * configure.in: Create Makefiles in the newly added directories. 2008-12-15 Jonathon Jongsma <jjongsma@gnome.org> Revert virtual ScaledFont destructor (no ABI break) * cairomm/scaledfont.h: revert the virtual destructor since it's unnecessary and an ABI change. The ScaledFont subclasses don't have any virtual functions or any subclass-specific data that needs to be cleaned up, so a virtual destructor is not really necessary here. * tests/test-scaled-font.cc: a little paranoia test just to ensure that the base destructor is called correctly reducing the ref count when we delete a FtFontFace 2008-12-15 Jonathon Jongsma <jjongsma@gnome.org> Add tests and fix a bug in UserFontFace * cairomm/fontface.cc: fixed a bug in UserFont where I was incorrectly using a function static variable and so it was not returning negative numbers for num_glyphs when I expected it to * tests/Makefile.am: * tests/test-font-face.cc: * tests/test-user-font.cc: Added tests for UserFontFace 2008-12-14 Jonathon Jongsma <jjongsma@gnome.org> Really fix ScaledFont::get_font_face() bug * cairomm/scaledfont.cc: actually fix a reference-counting issue with ScaledFont::get_font_face() that I thought I had fixed in b1d01ff7 * tests/test-scaled-font.cc: add a test for the get_font_face() bug 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> update ignores again 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> bump version since we forgot to do it after release 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> Cross-reference typedef-ed structs * cairomm/types.h: add cross-reference links to the cairo manual for all types that are just typedefs of C structs 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> Minor changes to text-rotate example * .gitignore: ignore the new example executable names * examples/text/Makefile.am: normalize the text-rotate example executable name * examples/text/text-rotate.cc: print a message to the terminal explaining that a file was written 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> Add surface examples to doxygen documentation 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> Restructure examples directory Restructure the examples directory so that there aren't so many subdirs, which tends to slow down builds since they can't be done in parallel. Also 'standardize' the executable names a bit more and give the source files meaningful names rather than 'main.cc' or similar * configure.in: * examples/.cvsignore: Removed. * examples/Makefile.am: * examples/README: * examples/pdf-surface/.cvsignore: Removed. * examples/pdf-surface/Makefile.am: Removed. * examples/png_file/.cvsignore: Removed. * examples/png_file/Makefile.am: Removed. * examples/ps-surface/.cvsignore: Removed. * examples/ps-surface/Makefile.am: Removed. * examples/surfaces/image-surface.cc: Renamed from examples/png_file/main.cc. * examples/surfaces/pdf-surface.cc: Renamed from examples/pdf-surface/main.cc. * examples/surfaces/ps-surface.cc: Renamed from examples/ps-surface/main.cc. * examples/surfaces/svg-surface.cc: Renamed from examples/svg-surface/main.cc. * examples/svg-surface/.cvsignore: Removed. * examples/svg-surface/Makefile.am: Removed. 2008-12-12 Jonathon Jongsma <jjongsma@gnome.org> Add clear warning about lifetime of UserFontFace objects Also include examples in doxygen documentation 2008-12-11 Jonathon Jongsma <jjongsma@gnome.org> update ignores 2008-12-11 Jonathon Jongsma <jjongsma@gnome.org> Enhance the UserFontFace example * examples/text/user-font.cc: enhanced the UserFontFace example quite a bit so that it shows a few different virtual functions and actually draws different sized boxes for different characters 2008-12-11 Jonathon Jongsma <jjongsma@gnome.org> Fix up UserFontFace documentation from redesign 2008-12-08 Jonathon Jongsma <jjongsma@gnome.org> Added a very simple UserFontFace example * examples/text/Makefile.am: * examples/text/user-font.cc: Added a very simple example of using a UserFontFace to draw text 2008-12-08 Jonathon Jongsma <jjongsma@gnome.org> Fix UserFontFace::init() * cairomm/fontface.cc: Fix the default implementation of UserFontFace::init() to set up the font extents parameter correctly according to the documentation 2008-12-08 Jonathon Jongsma <jjongsma@gnome.org> Fix the UserFontFace::text_to_glyphs default vfunc * cairomm/fontface.cc: 'fix' the text_to_glyphs implementation so that the default virtual function will be bypassed and the unicode_to_glyph will be called instead. This is done in the C implementation by passing a negative value for the num_glyphs output parameter, but since we're using a std::vector for the glyphs, it's not possible to return a negative value. So I'm using an ugly hack that will set a boolean flag the first time the default text_to_glyphs vfunc is called (which implies that that function has not been reimplemented in a derived class), and if we check that boolean flag and it is set, we will pass a negative value down to the C caller 2008-12-08 Jonathon Jongsma <jjongsma@gnome.org> UserFontFace redesign to use virtual functions * cairomm/fontface.cc: * cairomm/fontface.h: Change UserFontFace implementation to a vfunc-based implementation rather than requiring people to supply callbacks at runtime as sigc::slot objects. This was requested by Ian Britten on the mailing list and was my original plan but ran into issues in my original implementation. This isn't a fully-working implementation yet, but I think I can overcome the issues now, so I'm moving forward on the redesign. * tests/test-font-face.cc: disable UserFontFace tests for now Conflicts: ChangeLog cairomm/fontface.cc cairomm/fontface.h 2008-12-05 Jonathon Jongsma <jjongsma@gnome.org> Fix some ScaledFont referencing issues Fix an error in ScaledFont::get_font_face() where we were releasing a reference we didn't hold. Also fix a rather severe memory leak where we weren't calling cairo_scaled_font_destroy in the ScaledFont destructor. I added a virtual destructor to ScaledFont, which theoretically changes ABI, but I don't see how anybody could be using ScaledFont in cairomm currently without serious memory leaks, so I think it's worthwhile to make this change 2008-11-14 Jonathon Jongsma <jjongsma@gnome.org> win32 build fixes 2008-11-14 Jonathon Jongsma <jjongsma@gnome.org> Support --with-boost configure option * configure.in: support the --with-boost=[boost_path] option for specifying the install path of boost libraries 2008-10-30 Dave Evans <devans@macports.org> Undefine 'nil' on OSX before including sigc++ header to fix compile 2008-10-29 Jonathon Jongsma <jjongsma@gnome.org> distribute autogen.sh 2008-10-25 Jonathon Jongsma <jjongsma@gnome.org> distcheck fixes 2008-10-25 Jonathon Jongsma <jjongsma@gnome.org> mark 1.7.0 as unstable in the NEWS file 2008-10-22 Jonathon Jongsma <jjongsma@gnome.org> add NEWS for 1.7.x 2008-10-22 Jonathon Jongsma <jjongsma@gnome.org> Minor doxygen fixes * cairomm/matrix.h: add a link to the cairo reference for cairo_matrix_t * docs/reference/Doxyfile.in: don't generate docs for the members of the Cairo::Private namespace 2008-10-22 Jonathon Jongsma <jjongsma@gnome.org> bump version to 1.7.0
Generated by dwww version 1.15 on Sun Jun 16 16:43:07 CEST 2024.