summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-11-031.8.61.8.6really21.8.6reallycairomm-1.8Murray Cumming3-14/+31
2010-11-03Context::arc(): Correct the documentation, as in the C documentation.v1.8.6Murray Cumming2-10/+22
* 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-11-03Fix the build with MSVC (really)Armin Burgmeier22-64/+72
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-11-03Added support for 64 bit and Visual Studio 2010.Armin Burgmeier53-533/+5682
* 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-11-032010-06-10 Ian Britten <britten@caris.com>Ian Britten8-1/+42
Cleanup of most -Weffc++ warnings 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-11-03Do not unnecessarily cast booleans to pointersDaniel Elstner2-6/+24
* 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-11-03Fix the build with MSVCArmin Burgmeier1-0/+36
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-11-03Put ifdefs around 32-bit-only API, to fix the build on 64-bit machines.Augusto Jun Devegili3-5/+18
* cairomm/quartz_font.[h|cc]: Use #ifndef __LP64__, as cairo does.
2010-11-03Fix the ChangeLog.Murray Cumming1-0/+23
2010-11-03Actually install cairomm-xlib-xrender-1.0.pc.Murray Cumming2-92/+98
* configure.ac: Fix a typo in the check for xlib-xrender support in cairo. Fixes bug #27066.
2010-11-03Clean up configure.ac and add silent rules supportDaniel Elstner2-34/+37
* 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-19bump to 1.8.4, update NEWSv1.8.4Jonathon Jongsma2-2/+11
2009-08-13Don't force tests to be enabled when CAIROMM_DEVEL is definedJonathon Jongsma1-10/+0
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-13Distribute mm-common documentation utilitiesDaniel Elstner3-1/+17
* docs/Makefile.am (dist_noinst_DATA): List the utility scripts installed by mm-common-prepare here, so they will be distributed.
2009-08-13Add missing call to MM_CONFIG_DOCTOOL_DIRDaniel Elstner2-0/+9
* 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-13Fix left-over cairomm/cairommconfig.h includesDaniel Elstner9-24/+24
* 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-13Review and clean up after build overhaulDaniel Elstner29-431/+359
* 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-13Get rid of all Makefile.am in the MSVC dirsDavid King46-154/+74
* 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-13Switch to mm-common documentation build infrastructureDavid King7-89/+141
* .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-13Simplify build system of examples and cairomm subdirectoresDavid King9-58/+124
* .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-13Initial changes to ease transition to mm-common build infrastructureDavid King12-200/+73
* 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-07Added some documentation to the rel_* functions in the Context classChristopher Harvey2-0/+19
2009-07-08update NEWS for releasev1.8.2Jonathon Jongsma1-0/+5
2009-07-06Bump version number for release 1.8.2Jonathon Jongsma1-2/+2
2009-07-05Restore 1.6.x API / ABI that was unintentionally broken in 1.8.xJānis Rukšāns7-4/+102
2009-01-26Bump version to 1.8.0 releasev1.8.0Jonathon Jongsma3-2/+11
2009-01-20Fix documentation of ImageSurface::create()Jonathon Jongsma2-32/+34
* 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-20fix some distcheck failuresv1.7.2Jonathon Jongsma4-5/+11
2008-12-20Update NEWS and bump version to 1.7.2Jonathon Jongsma3-1/+22
2008-12-20scaled_matrix() -> scaling_matrix()Jonathon Jongsma3-3/+11
2008-12-20Updated MSVC project filesArmin Burgmeier31-1809/+3238
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-15Revert virtual ScaledFont destructor (no ABI break)Jonathon Jongsma3-5/+52
* 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-15Add tests and fix a bug in UserFontFaceJonathon Jongsma6-251/+346
* 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-14Really fix ScaledFont::get_font_face() bugJonathon Jongsma3-1/+28
* 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-12update ignores againJonathon Jongsma1-1/+9
2008-12-12bump version since we forgot to do it after releaseJonathon Jongsma2-1/+5
2008-12-12Cross-reference typedef-ed structsJonathon Jongsma2-2/+33
* cairomm/types.h: add cross-reference links to the cairo manual for all types that are just typedefs of C structs
2008-12-12Minor changes to text-rotate exampleJonathon Jongsma4-9/+19
* .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-12Add surface examples to doxygen documentationJonathon Jongsma2-0/+19
2008-12-12Restructure examples directoryJonathon Jongsma18-63/+42
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-12Add clear warning about lifetime of UserFontFace objectsJonathon Jongsma3-3/+66
Also include examples in doxygen documentation
2008-12-11update ignoresJonathon Jongsma1-0/+10
2008-12-11Enhance the UserFontFace exampleJonathon Jongsma2-18/+100
* 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-11Fix up UserFontFace documentation from redesignJonathon Jongsma2-97/+103
2008-12-08Added a very simple UserFontFace exampleJonathon Jongsma3-2/+75
* examples/text/Makefile.am: * examples/text/user-font.cc: Added a very simple example of using a UserFontFace to draw text
2008-12-08Fix UserFontFace::init()Jonathon Jongsma2-2/+13
* cairomm/fontface.cc: Fix the default implementation of UserFontFace::init() to set up the font extents parameter correctly according to the documentation
2008-12-08Fix the UserFontFace::text_to_glyphs default vfuncJonathon Jongsma2-2/+33
* 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-08UserFontFace redesign to use virtual functionsJonathon Jongsma4-201/+112
* 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-05Fix some ScaledFont referencing issuesJonathon Jongsma3-1/+19
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-14win32 build fixesJonathon Jongsma3-4/+10