Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
* 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.
|
|
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>&.
|
|
* 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.
|
|
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
|
|
* 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.
|
|
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.
|
|
* cairomm/quartz_font.[h|cc]: Use #ifndef __LP64__, as cairo does.
|
|
|
|
* configure.ac: Fix a typo in the check for xlib-xrender support in
cairo. Fixes bug #27066.
|
|
* 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.
|
|
|
|
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.
|
|
* docs/Makefile.am (dist_noinst_DATA): List the utility scripts
installed by mm-common-prepare here, so they will be distributed.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* .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.
|
|
* .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.
|
|
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
* 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 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.
|
|
* 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
|
|
* 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
|
|
* 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
|
|
|
|
|
|
* cairomm/types.h: add cross-reference links to the cairo manual for all types
that are just typedefs of C structs
|
|
* .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
|
|
|
|
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.
|
|
Also include examples in doxygen documentation
|
|
|
|
* 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
|
|
|
|
* examples/text/Makefile.am:
* examples/text/user-font.cc: Added a very simple example of using a
UserFontFace to draw text
|
|
* cairomm/fontface.cc: Fix the default implementation of UserFontFace::init()
to set up the font extents parameter correctly according to the documentation
|
|
* 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
|
|
* 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
|
|
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
|
|
|