Wrapping pangocairo.h
- From: Murray Cumming <murrayc murrayc com>
- To: gtkmm-list gnome org
- Subject: Wrapping pangocairo.h
- Date: Mon, 29 May 2006 22:10:35 +0200
This patch tries to wrap the new Pango+Cairo functions from here:
http://cvs.gnome.org/viewcvs/pango/pango/pangocairo.h?view=markup
However, these additions are not very object orientated, and my attempt
to add them to the appropriate classes also seems a bit awkward. I'd
welcome better suggestions.
For instance, this:
/**
* pango_cairo_update_context:
* @cr: a Cairo context
* @context: a #PangoContext, from pango_cairo_font_map_create_context()
*
* Updates a #PangoContext previously created for use with Cairo to
* match the current transformation and target surface of a Cairo
* context. If any layouts have been created for the context,
* it's necessary to call pango_layout_context_changed() on those
* layouts.
*
* Since: 1.10
**/
void
pango_cairo_update_context (cairo_t *cr,
PangoContext *context)
is wrapped as:
void Pango::Context::update_from_cairo_context(const
Cairo::RefPtr<Cairo::Context>& context);
--
Murray Cumming
murrayc murrayc com
www.murrayc.com
www.openismus.com
? Increased version.
? cairopangomm.patch
? gtkmm-2.9.2
? prop.patch
? rc.patch
? temp.patc
? temp.patch
? MSVC_Net2003/gdkmm/gdkmmconfig.h
? MSVC_Net2003/gtkmm/gtkmmconfig.h
? docs/tutorial/icons/Makefile
? docs/tutorial/icons/Makefile.in
? examples/book/custom/Makefile
? examples/book/custom/Makefile.in
? examples/book/custom/custom_widget/temp.txt
? examples/book/custom/custom_widget/test.txt
? examples/book/drawingarea/arcs/drawingareaarcs
? examples/book/drawingarea/clock/cairoclock
? examples/book/drawingarea/curve/drawingareacurve
? examples/book/drawingarea/joins/cairojoins
? examples/book/iconview/Makefile
? examples/book/iconview/Makefile.in
? examples/book/iconview/example
? examples/book/input/example
? examples/book/treeview/listviewtext/Makefile
? examples/book/treeview/listviewtext/Makefile.in
? examples/book/treeview/listviewtext/example
? examples/book/treeview/popup/Makefile
? examples/book/treeview/popup/Makefile.in
? examples/book/treeview/popup/example
? examples/book/update_ui/Makefile
? examples/book/update_ui/Makefile.in
? examples/book/update_ui/example
? gtk/temp.patch
? gtk/gtkmm/assistant.cc
? gtk/gtkmm/assistant.h
? gtk/gtkmm/cellrendereraccel.cc
? gtk/gtkmm/cellrendereraccel.h
? gtk/gtkmm/cellrendererspin.cc
? gtk/gtkmm/cellrendererspin.h
? gtk/gtkmm/linkbutton.cc
? gtk/gtkmm/linkbutton.h
? gtk/gtkmm/pagesetup.cc
? gtk/gtkmm/pagesetup.h
? gtk/gtkmm/pagesetupunixdialog.cc
? gtk/gtkmm/pagesetupunixdialog.h
? gtk/gtkmm/papersize.cc
? gtk/gtkmm/papersize.h
? gtk/gtkmm/printcontext.cc
? gtk/gtkmm/printcontext.h
? gtk/gtkmm/printer.cc
? gtk/gtkmm/printer.h
? gtk/gtkmm/printjob.cc
? gtk/gtkmm/printjob.h
? gtk/gtkmm/printoperation.cc
? gtk/gtkmm/printoperation.h
? gtk/gtkmm/printsettings.cc
? gtk/gtkmm/printsettings.h
? gtk/gtkmm/printunixdialog.cc
? gtk/gtkmm/printunixdialog.h
? gtk/gtkmm/recentchooser.cc
? gtk/gtkmm/recentchooser.h
? gtk/gtkmm/recentchooserdialog.cc
? gtk/gtkmm/recentchooserdialog.h
? gtk/gtkmm/recentchoosermenu.cc
? gtk/gtkmm/recentchoosermenu.h
? gtk/gtkmm/recentchooserwidget.cc
? gtk/gtkmm/recentchooserwidget.h
? gtk/gtkmm/recentfilter.cc
? gtk/gtkmm/recentfilter.h
? gtk/gtkmm/recentinfo.cc
? gtk/gtkmm/recentinfo.h
? gtk/gtkmm/recentmanager.cc
? gtk/gtkmm/recentmanager.h
? gtk/gtkmm/statusicon.cc
? gtk/gtkmm/statusicon.h
? gtk/gtkmm/private/assistant_p.h
? gtk/gtkmm/private/cellrendereraccel_p.h
? gtk/gtkmm/private/cellrendererspin_p.h
? gtk/gtkmm/private/linkbutton_p.h
? gtk/gtkmm/private/pagesetup_p.h
? gtk/gtkmm/private/pagesetupunixdialog_p.h
? gtk/gtkmm/private/papersize_p.h
? gtk/gtkmm/private/printcontext_p.h
? gtk/gtkmm/private/printer_p.h
? gtk/gtkmm/private/printjob_p.h
? gtk/gtkmm/private/printoperation_p.h
? gtk/gtkmm/private/printsettings_p.h
? gtk/gtkmm/private/printunixdialog_p.h
? gtk/gtkmm/private/recentchooser_p.h
? gtk/gtkmm/private/recentchooserdialog_p.h
? gtk/gtkmm/private/recentchoosermenu_p.h
? gtk/gtkmm/private/recentchooserwidget_p.h
? gtk/gtkmm/private/recentfilter_p.h
? gtk/gtkmm/private/recentinfo_p.h
? gtk/gtkmm/private/recentmanager_p.h
? gtk/gtkmm/private/statusicon_p.h
? pango/temp.patch
? pango/pangomm/cairofontmap.cc
? pango/pangomm/cairofontmap.h
? pango/pangomm/renderer.cc
? pango/pangomm/renderer.h
? pango/pangomm/private/cairofontmap_p.h
? pango/pangomm/private/renderer_p.h
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gtkmm/ChangeLog,v
retrieving revision 1.481
diff -u -p -r1.481 ChangeLog
--- ChangeLog 26 May 2006 19:24:56 -0000 1.481
+++ ChangeLog 29 May 2006 20:05:35 -0000
@@ -1,3 +1,22 @@
+2006-05-29 Murray Cumming <murrayc murrayc com>
+
+ * pango/src/Makefile_list_of_hg.am_fragment:
+ * pango/src/cairofontmap.ccg:
+ * pango/src/cairofontmap.hg: Added wrapper of the CairoFontMap interface.
+ * pango/src/context.ccg:
+ * pango/src/context.hg: Added update_from_cairo_context(),
+ set_cairo_font_options(), set_cairo_font_options(), get_font_options(),
+ set_resolution(), get_resolution().
+ * pango/src/glyphstring.ccg:
+ * pango/src/glyphstring.hg: Added TODO for pango_cairo_glyph_string_path().
+ * pango/src/layout.ccg:
+ * pango/src/layout.hg: Added create_from_cairo_context(), update_from_cairo_context(),
+ add_to_cairo_context()
+ * pango/src/layoutline.ccg:
+ * pango/src/layoutline.hg: Added show_in_cairo_context(), add_to_cairo_context().
+ * pango/src/pango_methods.defs: Updated with h2defs.py.
+ * tools/m4/convert_pango.m4: Added necessary conversions.
+
2006-05-26 Jonathon Jongsma <jonathon jongsma gmail com>
* examples/treemodelcustom/exampletreemodel.cc: remove interface
Index: pango/src/Makefile_list_of_hg.am_fragment
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/Makefile_list_of_hg.am_fragment,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile_list_of_hg.am_fragment
--- pango/src/Makefile_list_of_hg.am_fragment 1 Dec 2004 11:46:29 -0000 1.5
+++ pango/src/Makefile_list_of_hg.am_fragment 29 May 2006 20:05:36 -0000
@@ -4,7 +4,7 @@
files_posix_hg =
files_win32_hg =
-files_general_hg = attributes.hg attriter.hg attrlist.hg color.hg context.hg coverage.hg \
+files_general_hg = attributes.hg attriter.hg attrlist.hg cairofontmap.hg color.hg context.hg coverage.hg \
font.hg fontdescription.hg fontface.hg fontfamily.hg fontmap.hg fontmetrics.hg fontset.hg \
glyph.hg glyphstring.hg item.hg language.hg layout.hg layoutiter.hg layoutline.hg layoutrun.hg \
rectangle.hg renderer.hg tabarray.hg
Index: pango/src/context.ccg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/context.ccg,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 context.ccg
--- pango/src/context.ccg 21 Jan 2003 13:41:02 -0000 1.1.1.1
+++ pango/src/context.ccg 29 May 2006 20:05:36 -0000
@@ -21,6 +21,8 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <pango/pangocairo.h>
+
namespace Pango
{
@@ -57,6 +59,11 @@ ListHandle_Item Context::itemize(const G
text.c_str(), start_index, length,
const_cast<PangoAttrList*>(attrs.gobj()), cached_iter.gobj()),
Glib::OWNERSHIP_DEEP);
+}
+
+void Context::update_from_cairo_context(const Cairo::RefPtr<Cairo::Context>& context)
+{
+ pango_cairo_update_context(context->cobj(), gobj());
}
} /* namespace Pango */
Index: pango/src/context.hg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/context.hg,v
retrieving revision 1.5
diff -u -p -r1.5 context.hg
--- pango/src/context.hg 1 Dec 2004 11:46:29 -0000 1.5
+++ pango/src/context.hg 29 May 2006 20:05:36 -0000
@@ -31,6 +31,8 @@
#include <pangomm/attrlist.h>
#include <pangomm/types.h> //For Matrix
#include <pango/pango-context.h>
+#include <cairomm/context.h>
+#include <cairomm/fontoptions.h>
_DEFS(pangomm,pango)
_PINCLUDE(glibmm/private/object_p.h)
@@ -136,6 +138,26 @@ public:
*/
ListHandle_Item itemize(const Glib::ustring& text, int start_index, int length,
const AttrList& attrs, AttrIter& cached_iter) const;
+
+ /** Updates a Pango Context previously created for use with Cairo to
+ * match the current transformation and target surface of a Cairo
+ * Context. If any layouts have been created for the context,
+ * it's necessary to call Pango::Layout::context_changed() on those
+ * layouts.
+ *
+ * @param context A Cairo context, from CairoFontMap::create_context().
+ */
+ void update_from_cairo_context(const Cairo::RefPtr<Cairo::Context>& context);
+
+
+ _WRAP_METHOD(void set_cairo_font_options(const Cairo::FontOptions& options), pango_cairo_context_set_font_options)
+
+#m4 _CONVERSION(`const cairo_font_options_t*',`Cairo::FontOptions',`Cairo::FontOptions(const_cast< cairo_font_options_t*>($3), false /* take_copy */)')
+ _WRAP_METHOD(Cairo::FontOptions get_font_options() const, pango_cairo_context_get_font_options)
+
+ _WRAP_METHOD(void set_resolution(double dpi), pango_cairo_context_set_resolution)
+ _WRAP_METHOD(double get_resolution() const, pango_cairo_context_get_resolution)
+
};
} /* namespace Pango */
Index: pango/src/glyphstring.ccg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/glyphstring.ccg,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 glyphstring.ccg
--- pango/src/glyphstring.ccg 21 Jan 2003 13:41:04 -0000 1.1.1.1
+++ pango/src/glyphstring.ccg 29 May 2006 20:05:36 -0000
@@ -21,7 +21,7 @@
*/
#include <glibmm/utility.h>
-
+#include <pango/pangocairo.h>
namespace Pango
{
Index: pango/src/glyphstring.hg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/glyphstring.hg,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 glyphstring.hg
--- pango/src/glyphstring.hg 21 Jan 2003 13:41:05 -0000 1.1.1.1
+++ pango/src/glyphstring.hg 29 May 2006 20:05:36 -0000
@@ -22,6 +22,7 @@
#include <pangomm/font.h>
#include <pangomm/glyph.h>
#include <pangomm/item.h>
+#include <cairomm/context.h>
#include <pango/pango-glyph.h>
#include <pango/pango-item.h> //For PangoAnalysis.
@@ -118,6 +119,8 @@ public:
* @return An array of Pango::GlyphInfo objects.
*/
Glib::ArrayHandle<GlyphInfo> get_glyphs() const;
+
+ //TODO: Wrap pango_cairo_glyph_string_path().
};
} //namespace Pango
Index: pango/src/layout.ccg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/layout.ccg,v
retrieving revision 1.2
diff -u -p -r1.2 layout.ccg
--- pango/src/layout.ccg 4 Nov 2003 18:11:37 -0000 1.2
+++ pango/src/layout.ccg 29 May 2006 20:05:36 -0000
@@ -20,6 +20,8 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <pango/pangocairo.h>
+
namespace Pango
{
@@ -28,6 +30,16 @@ Layout::Layout(const Glib::RefPtr<Contex
Glib::Object(G_OBJECT(pango_layout_new(context->gobj())))
{}
+Glib::RefPtr<Layout> Layout::create_from_cairo_context(const Cairo::RefPtr<Cairo::Context>& context)
+{
+ return Glib::wrap( pango_cairo_create_layout(context->cobj()) );
+}
+
+void Layout::update_from_cairo_context(const Cairo::RefPtr<Cairo::Context>& context)
+{
+ pango_cairo_update_layout(context->cobj(), gobj());
+}
+
void Layout::set_text(const Glib::ustring& text)
{
pango_layout_set_text(gobj(), text.c_str(), text.bytes());
@@ -110,6 +122,11 @@ void Layout::get_iter(LayoutIter& iter)
void Layout::unset_font_description()
{
pango_layout_set_font_description(gobj(), 0);
+}
+
+void Layout::add_to_cairo_context(const Cairo::RefPtr<Cairo::Context>& context)
+{
+ pango_cairo_layout_path(context->cobj(), gobj());
}
} /* namespace Pango */
Index: pango/src/layout.hg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/layout.hg,v
retrieving revision 1.7
diff -u -p -r1.7 layout.hg
--- pango/src/layout.hg 11 Sep 2004 09:16:10 -0000 1.7
+++ pango/src/layout.hg 29 May 2006 20:05:36 -0000
@@ -60,6 +60,32 @@ protected:
public:
_WRAP_CREATE(const Glib::RefPtr<Context>& context)
+ /** Creates a layout object set up to match the current transformation
+ * and target surface of the Cairo context. This layout can then be
+ * used for text measurement with functions like
+ * get_size() or drawing with methods like show_in_cairo_contet().
+ * If you change the transformation or target surface for @a context,
+ * you need to call update_from_cairo_context()
+ *
+ * This is the most convenient way to use Cairo with Pango.
+ * However it is slightly inefficient since it creates a separate
+ * Pango Context object for each layout. This might matter in an
+ * application that is laying out large amounts of text.
+ *
+ * @param context A Cairo context.
+ * @result The newly created Pango Layout.
+ */
+ static Glib::RefPtr<Layout> create_from_cairo_context(const Cairo::RefPtr<Cairo::Context>& context);
+
+ /** Updates the private Pango Context of a Pango Layout created with
+ * create_from_cairo_contex() to match the current transformation
+ * and target surface of a Cairo Context.
+ *
+ * @param context A Cairo context.
+ */
+ void update_from_cairo_context(const Cairo::RefPtr<Cairo::Context>& context);
+
+
_WRAP_METHOD(Glib::RefPtr<Layout> copy(), pango_layout_copy)
_WRAP_METHOD(Glib::RefPtr<Context> get_context() const, pango_layout_get_context, refreturn)
_WRAP_METHOD(void set_attributes(AttrList& attrs), pango_layout_set_attributes)
@@ -197,6 +223,15 @@ public:
* @param iter Location to store the iterator.
*/
void get_iter(LayoutIter& iter);
+
+
+ /** Adds the text in this LayoutLine to the current path in the
+ * specified Cairo @a context. The origin of the glyphs (the left edge
+ * of the line) will be at the current point of the cairo context.
+ *
+ * @param context A Cairo context.
+ */
+ void add_to_cairo_context(const Cairo::RefPtr<Cairo::Context>& context);
};
} /* namespace Pango */
Index: pango/src/layoutline.ccg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/layoutline.ccg,v
retrieving revision 1.2
diff -u -p -r1.2 layoutline.ccg
--- pango/src/layoutline.ccg 19 Dec 2003 15:28:08 -0000 1.2
+++ pango/src/layoutline.ccg 29 May 2006 20:05:36 -0000
@@ -21,6 +21,7 @@
*/
#include <pangomm/layout.h>
+#include <pango/pangocairo.h>
namespace Pango {
@@ -65,6 +66,16 @@ Glib::ArrayHandle<std::pair<int,int> > L
int n_ranges = 0;
pango_layout_line_get_x_ranges(const_cast<PangoLayoutLine*>(gobj()), start_index, end_index, &ranges, &n_ranges);
return Glib::ArrayHandle<std::pair<int,int> >(reinterpret_cast<std::pair<int,int>*>(ranges), n_ranges, Glib::OWNERSHIP_SHALLOW);
+}
+
+void LayoutLine::show_in_cairo_context(const Cairo::RefPtr<Cairo::Context>& context)
+{
+ pango_cairo_show_layout_line(context->cobj(), gobj());
+}
+
+void LayoutLine::add_to_cairo_context(const Cairo::RefPtr<Cairo::Context>& context)
+{
+ pango_cairo_layout_line_path(context->cobj(), gobj());
}
} /* namespace Pango */
Index: pango/src/layoutline.hg
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/layoutline.hg,v
retrieving revision 1.4
diff -u -p -r1.4 layoutline.hg
--- pango/src/layoutline.hg 3 Feb 2004 11:06:52 -0000 1.4
+++ pango/src/layoutline.hg 29 May 2006 20:05:36 -0000
@@ -21,6 +21,7 @@
#include <glibmm/slisthandle.h> // For the Glib::SListHandle typedef
#include <pangomm/rectangle.h>
+#include <cairomm/context.h>
#include <pango/pango-layout.h>
_DEFS(pangomm,pango)
@@ -91,6 +92,22 @@ public:
* @return The logical extents of the layout line.
*/
Rectangle get_pixel_logical_extents() const;
+
+ /** Draws this LayoutLine in the specified Cairo context.
+ * The origin of the glyphs (the left edge of the line) will
+ * be drawn at the current point of the cairo context.
+ *
+ * @param context A Cairo context.
+ */
+ void show_in_cairo_context(const Cairo::RefPtr<Cairo::Context>& context);
+
+ /** Adds the text in this LayoutLine to the current path in the
+ * specified Cairo @a context. The origin of the glyphs (the left edge
+ * of the line) will be at the current point of the cairo context.
+ *
+ * @param context A Cairo context.
+ */
+ void add_to_cairo_context(const Cairo::RefPtr<Cairo::Context>& context);
_MEMBER_GET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*)
//_MEMBER_SET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*)
Index: pango/src/pango_methods.defs
===================================================================
RCS file: /cvs/gnome/gtkmm/pango/src/pango_methods.defs,v
retrieving revision 1.5
diff -u -p -r1.5 pango_methods.defs
--- pango/src/pango_methods.defs 1 Dec 2004 11:46:29 -0000 1.5
+++ pango/src/pango_methods.defs 29 May 2006 20:05:37 -0000
@@ -1,5 +1,17 @@
;; -*- scheme -*-
; object definitions ...
+(define-object CairoFont
+ (in-module "Pango")
+ (c-name "PangoCairoFont")
+ (gtype-id "PANGO_TYPE_CAIRO_FONT")
+)
+
+(define-object CairoFontMap
+ (in-module "Pango")
+ (c-name "PangoCairoFontMap")
+ (gtype-id "PANGO_TYPE_CAIRO_FONT_MAP")
+)
+
(define-object Engine
(in-module "Pango")
(parent "GObject")
@@ -42,6 +54,13 @@
(gtype-id "PANGO_TYPE_FC_FONT")
)
+(define-object ATSUIFont
+ (in-module "Pango")
+ (parent "PangoFont")
+ (c-name "PangoATSUIFont")
+ (gtype-id "PANGO_TYPE_ATSUI_FONT")
+)
+
(define-object FontFace
(in-module "Pango")
(parent "GObject")
@@ -70,6 +89,13 @@
(gtype-id "PANGO_TYPE_FC_FONT_MAP")
)
+(define-object ATSUIFontMap
+ (in-module "Pango")
+ (parent "PangoFontMap")
+ (c-name "PangoATSUIFontMap")
+ (gtype-id "PANGO_TYPE_ATSUI_FONT_MAP")
+)
+
(define-object Fontset
(in-module "Pango")
(parent "GObject")
@@ -77,6 +103,20 @@
(gtype-id "PANGO_TYPE_FONTSET")
)
+(define-object OTInfo
+ (in-module "Pango")
+ (parent "GObject")
+ (c-name "PangoOTInfo")
+ (gtype-id "PANGO_TYPE_OT_INFO")
+)
+
+(define-object OTRuleset
+ (in-module "Pango")
+ (parent "GObject")
+ (c-name "PangoOTRuleset")
+ (gtype-id "PANGO_TYPE_OT_RULESET")
+)
+
(define-object Renderer
(in-module "Pango")
(parent "GObject")
@@ -84,6 +124,20 @@
(gtype-id "PANGO_TYPE_RENDERER")
)
+(define-object Win32Font
+ (in-module "Pango")
+ (parent "PangoFont")
+ (c-name "PangoWin32Font")
+ (gtype-id "PANGO_TYPE_WIN32_FONT")
+)
+
+(define-object Win32FontMap
+ (in-module "Pango")
+ (parent "PangoFontMap")
+ (c-name "PangoWin32FontMap")
+ (gtype-id "PANGO_TYPE_WIN32_FONT_MAP")
+)
+
(define-object XftRenderer
(in-module "Pango")
(parent "PangoRenderer")
@@ -118,6 +172,7 @@
'("letter-spacing" "PANGO_ATTR_LETTER_SPACING")
'("underline-color" "PANGO_ATTR_UNDERLINE_COLOR")
'("strikethrough-color" "PANGO_ATTR_STRIKETHROUGH_COLOR")
+ '("absolute-size" "PANGO_ATTR_ABSOLUTE_SIZE")
)
)
@@ -175,6 +230,7 @@
'("ultralight" "PANGO_WEIGHT_ULTRALIGHT")
'("light" "PANGO_WEIGHT_LIGHT")
'("normal" "PANGO_WEIGHT_NORMAL")
+ '("semibold" "PANGO_WEIGHT_SEMIBOLD")
'("bold" "PANGO_WEIGHT_BOLD")
'("ultrabold" "PANGO_WEIGHT_ULTRABOLD")
'("heavy" "PANGO_WEIGHT_HEAVY")
@@ -328,6 +384,13 @@
'("linear-b" "PANGO_SCRIPT_LINEAR_B")
'("tai-le" "PANGO_SCRIPT_TAI_LE")
'("ugaritic" "PANGO_SCRIPT_UGARITIC")
+ '("new-tai-lue" "PANGO_SCRIPT_NEW_TAI_LUE")
+ '("buginese" "PANGO_SCRIPT_BUGINESE")
+ '("glagolitic" "PANGO_SCRIPT_GLAGOLITIC")
+ '("tifinagh" "PANGO_SCRIPT_TIFINAGH")
+ '("syloti-nagri" "PANGO_SCRIPT_SYLOTI_NAGRI")
+ '("old-persian" "PANGO_SCRIPT_OLD_PERSIAN")
+ '("kharoshthi" "PANGO_SCRIPT_KHAROSHTHI")
)
)
@@ -356,15 +419,33 @@
)
-;; From /home/murrayc/cvs/gnome210/pango/pango/module-defs.h
+;; From module-defs.h
+
+
+
+;; From modules.h
+
+
+
+;; From pangoatsui.h
+
+
+;; From pangoatsui-private.h
+(define-function pango_atsui_font_map_get_type
+ (c-name "pango_atsui_font_map_get_type")
+ (return-type "GType")
+)
-;; From /home/murrayc/cvs/gnome210/pango/pango/modules.h
+(define-function pango_atsui_font_get_type
+ (c-name "pango_atsui_font_get_type")
+ (return-type "GType")
+)
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-attributes.h
+;; From pango-attributes.h
(define-function pango_color_get_type
(c-name "pango_color_get_type")
@@ -470,6 +551,14 @@
)
)
+(define-function pango_attr_size_new_absolute
+ (c-name "pango_attr_size_new_absolute")
+ (return-type "PangoAttribute*")
+ (parameters
+ '("int" "size")
+ )
+)
+
(define-function pango_attr_style_new
(c-name "pango_attr_style_new")
(is-constructor-of "PangoAttrStyle")
@@ -627,7 +716,7 @@
(define-method ref
(of-object "PangoAttrList")
(c-name "pango_attr_list_ref")
- (return-type "none")
+ (return-type "PangoAttrList*")
)
(define-method unref
@@ -766,7 +855,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-break.h
+;; From pango-break.h
(define-function pango_break
(c-name "pango_break")
@@ -818,7 +907,224 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-context.h
+;; From pangocairo-atsuifont.h
+
+(define-function pango_cairo_atsui_font_get_type
+ (c-name "pango_cairo_atsui_font_get_type")
+ (return-type "GType")
+)
+
+(define-method get_atsu_font_id
+ (of-object "PangoCairoATSUIFont")
+ (c-name "pango_cairo_atsui_font_get_atsu_font_id")
+ (return-type "ATSUFontID")
+)
+
+
+
+;; From pangocairo-atsui.h
+
+(define-function pango_cairo_atsui_font_map_get_type
+ (c-name "pango_cairo_atsui_font_map_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From pangocairo-fc.h
+
+(define-function pango_cairo_fc_font_map_get_type
+ (c-name "pango_cairo_fc_font_map_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From pangocairo.h
+
+(define-function pango_cairo_font_map_get_type
+ (c-name "pango_cairo_font_map_get_type")
+ (return-type "GType")
+)
+
+(define-function pango_cairo_font_map_new
+ (c-name "pango_cairo_font_map_new")
+ (is-constructor-of "PangoCairoFontMap")
+ (return-type "PangoFontMap*")
+)
+
+(define-function pango_cairo_font_map_get_default
+ (c-name "pango_cairo_font_map_get_default")
+ (return-type "PangoFontMap*")
+)
+
+(define-method set_resolution
+ (of-object "PangoCairoFontMap")
+ (c-name "pango_cairo_font_map_set_resolution")
+ (return-type "none")
+ (parameters
+ '("double" "dpi")
+ )
+)
+
+(define-method get_resolution
+ (of-object "PangoCairoFontMap")
+ (c-name "pango_cairo_font_map_get_resolution")
+ (return-type "double")
+)
+
+(define-method create_context
+ (of-object "PangoCairoFontMap")
+ (c-name "pango_cairo_font_map_create_context")
+ (return-type "PangoContext*")
+)
+
+(define-function pango_cairo_update_context
+ (c-name "pango_cairo_update_context")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoContext*" "context")
+ )
+)
+
+(define-function pango_cairo_context_set_font_options
+ (c-name "pango_cairo_context_set_font_options")
+ (return-type "none")
+ (parameters
+ '("PangoContext*" "context")
+ '("const-cairo_font_options_t*" "options")
+ )
+)
+
+(define-function pango_cairo_context_get_font_options
+ (c-name "pango_cairo_context_get_font_options")
+ (return-type "const-cairo_font_options_t*")
+ (parameters
+ '("PangoContext*" "context")
+ )
+)
+
+(define-function pango_cairo_context_set_resolution
+ (c-name "pango_cairo_context_set_resolution")
+ (return-type "none")
+ (parameters
+ '("PangoContext*" "context")
+ '("double" "dpi")
+ )
+)
+
+(define-function pango_cairo_context_get_resolution
+ (c-name "pango_cairo_context_get_resolution")
+ (return-type "double")
+ (parameters
+ '("PangoContext*" "context")
+ )
+)
+
+(define-function pango_cairo_create_layout
+ (c-name "pango_cairo_create_layout")
+ (return-type "PangoLayout*")
+ (parameters
+ '("cairo_t*" "cr")
+ )
+)
+
+(define-function pango_cairo_update_layout
+ (c-name "pango_cairo_update_layout")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoLayout*" "layout")
+ )
+)
+
+(define-function pango_cairo_show_glyph_string
+ (c-name "pango_cairo_show_glyph_string")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoFont*" "font")
+ '("PangoGlyphString*" "glyphs")
+ )
+)
+
+(define-function pango_cairo_show_layout_line
+ (c-name "pango_cairo_show_layout_line")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoLayoutLine*" "line")
+ )
+)
+
+(define-function pango_cairo_show_layout
+ (c-name "pango_cairo_show_layout")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoLayout*" "layout")
+ )
+)
+
+(define-function pango_cairo_glyph_string_path
+ (c-name "pango_cairo_glyph_string_path")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoFont*" "font")
+ '("PangoGlyphString*" "glyphs")
+ )
+)
+
+(define-function pango_cairo_layout_line_path
+ (c-name "pango_cairo_layout_line_path")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoLayoutLine*" "line")
+ )
+)
+
+(define-function pango_cairo_layout_path
+ (c-name "pango_cairo_layout_path")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("PangoLayout*" "layout")
+ )
+)
+
+
+
+;; From pangocairo-private.h
+
+(define-function pango_cairo_font_get_type
+ (c-name "pango_cairo_font_get_type")
+ (return-type "GType")
+)
+
+(define-function pango_cairo_renderer_get_type
+ (c-name "pango_cairo_renderer_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From pangocairo-win32.h
+
+(define-function pango_cairo_win32_font_map_get_type
+ (c-name "pango_cairo_win32_font_map_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From pango-color-table.h
+
+
+
+;; From pango-context.h
(define-function pango_context_get_type
(c-name "pango_context_get_type")
@@ -974,7 +1280,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-coverage.h
+;; From pango-coverage.h
(define-function pango_coverage_new
(c-name "pango_coverage_new")
@@ -1049,7 +1355,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-engine.h
+;; From pango-engine.h
(define-function pango_engine_get_type
(c-name "pango_engine_get_type")
@@ -1098,11 +1404,11 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-engine-private.h
+;; From pango-engine-private.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-enum-types.h
+;; From pango-enum-types.h
(define-function pango_attr_type_get_type
(c-name "pango_attr_type_get_type")
@@ -1181,7 +1487,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangofc-decoder.h
+;; From pangofc-decoder.h
(define-function pango_fc_decoder_get_type
(c-name "pango_fc_decoder_get_type")
@@ -1209,7 +1515,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangofc-font.h
+;; From pangofc-font.h
(define-method has_char
(of-object "PangoFcFont")
@@ -1266,7 +1572,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangofc-fontmap.h
+;; From pangofc-fontmap.h
(define-method create_context
(of-object "PangoFcFontMap")
@@ -1313,7 +1619,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangofc-private.h
+;; From pangofc-private.h
(define-method get_raw_extents
(of-object "PangoFcFont")
@@ -1327,9 +1633,18 @@
)
)
+(define-method create_metrics_for_context
+ (of-object "PangoFcFont")
+ (c-name "pango_fc_font_create_metrics_for_context")
+ (return-type "PangoFontMetrics*")
+ (parameters
+ '("PangoContext*" "context")
+ )
+)
+
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-font.h
+;; From pango-font.h
(define-function pango_font_description_get_type
(c-name "pango_font_description_get_type")
@@ -1483,6 +1798,21 @@
(return-type "gint")
)
+(define-method set_absolute_size
+ (of-object "PangoFontDescription")
+ (c-name "pango_font_description_set_absolute_size")
+ (return-type "none")
+ (parameters
+ '("double" "size")
+ )
+)
+
+(define-method get_size_is_absolute
+ (of-object "PangoFontDescription")
+ (c-name "pango_font_description_get_size_is_absolute")
+ (return-type "gboolean")
+)
+
(define-method get_set_fields
(of-object "PangoFontDescription")
(c-name "pango_font_description_get_set_fields")
@@ -1684,6 +2014,12 @@
(return-type "PangoFontDescription*")
)
+(define-method describe_with_absolute_size
+ (of-object "PangoFont")
+ (c-name "pango_font_describe_with_absolute_size")
+ (return-type "PangoFontDescription*")
+)
+
(define-method get_coverage
(of-object "PangoFont")
(c-name "pango_font_get_coverage")
@@ -1723,9 +2059,15 @@
)
)
+(define-method get_font_map
+ (of-object "PangoFont")
+ (c-name "pango_font_get_font_map")
+ (return-type "PangoFontMap*")
+)
+
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-fontmap.h
+;; From pango-fontmap.h
(define-function pango_font_map_get_type
(c-name "pango_font_map_get_type")
@@ -1771,7 +2113,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-fontset.h
+;; From pango-fontset.h
(define-function pango_fontset_get_type
(c-name "pango_fontset_get_type")
@@ -1834,7 +2176,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangoft2.h
+;; From pangoft2.h
(define-function pango_ft2_render
(c-name "pango_ft2_render")
@@ -2005,7 +2347,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangoft2-private.h
+;; From pangoft2-private.h
(define-function pango_ft2_font_get_type
(c-name "pango_ft2_font_get_type")
@@ -2019,7 +2361,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-glyph.h
+;; From pango-glyph.h
(define-function pango_glyph_string_new
(c-name "pango_glyph_string_new")
@@ -2123,7 +2465,7 @@
(parameters
'("const-gchar*" "text")
'("gint" "length")
- '("PangoAnalysis*" "analysis")
+ '("const-PangoAnalysis*" "analysis")
'("PangoGlyphString*" "glyphs")
)
)
@@ -2138,7 +2480,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-glyph-item.h
+;; From pango-glyph-item.h
(define-method split
(of-object "PangoGlyphItem")
@@ -2179,19 +2521,24 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-glyph-item-private.h
+;; From pango-glyph-item-private.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango.h
+;; From pango.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-impl-utils.h
+;; From pango-impl-utils.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-item.h
+;; From pango-item.h
+
+(define-function pango_item_get_type
+ (c-name "pango_item_get_type")
+ (return-type "GType")
+)
(define-function pango_item_new
(c-name "pango_item_new")
@@ -2223,7 +2570,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-layout.h
+;; From pango-layout.h
(define-function pango_layout_get_type
(c-name "pango_layout_get_type")
@@ -2313,6 +2660,12 @@
)
)
+(define-method get_font_description
+ (of-object "PangoLayout")
+ (c-name "pango_layout_get_font_description")
+ (return-type "const-PangoFontDescription*")
+)
+
(define-method set_width
(of-object "PangoLayout")
(c-name "pango_layout_set_width")
@@ -2489,6 +2842,18 @@
)
)
+(define-method index_to_line_x
+ (of-object "PangoLayout")
+ (c-name "pango_layout_index_to_line_x")
+ (return-type "none")
+ (parameters
+ '("int" "index_")
+ '("gboolean" "trailing")
+ '("int*" "line")
+ '("int*" "x_pos")
+ )
+)
+
(define-method get_cursor_pos
(of-object "PangoLayout")
(c-name "pango_layout_get_cursor_pos")
@@ -2587,10 +2952,15 @@
(return-type "GSList*")
)
+(define-function pango_layout_line_get_type
+ (c-name "pango_layout_line_get_type")
+ (return-type "GType")
+)
+
(define-method ref
(of-object "PangoLayoutLine")
(c-name "pango_layout_line_ref")
- (return-type "none")
+ (return-type "PangoLayoutLine*")
)
(define-method unref
@@ -2785,11 +3155,11 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-layout-private.h
+;; From pango-layout-private.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-modules.h
+;; From pango-modules.h
(define-function pango_find_map
(c-name "pango_find_map")
@@ -2831,7 +3201,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-ot.h
+;; From pango-ot.h
(define-function pango_ot_info_get
(c-name "pango_ot_info_get")
@@ -2945,7 +3315,7 @@
(c-name "pango_ot_buffer_add_glyph")
(return-type "none")
(parameters
- '("guint" "glyph_index")
+ '("guint" "glyph")
'("guint" "properties")
'("guint" "cluster")
)
@@ -3019,7 +3389,39 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-renderer.h
+;; From pango-ot-private.h
+
+(define-function pango_ot_info_get_type
+ (c-name "pango_ot_info_get_type")
+ (return-type "GType")
+)
+
+(define-method get_gdef
+ (of-object "PangoOTInfo")
+ (c-name "pango_ot_info_get_gdef")
+ (return-type "HB_GDEF")
+)
+
+(define-method get_gsub
+ (of-object "PangoOTInfo")
+ (c-name "pango_ot_info_get_gsub")
+ (return-type "HB_GSUB")
+)
+
+(define-method get_gpos
+ (of-object "PangoOTInfo")
+ (c-name "pango_ot_info_get_gpos")
+ (return-type "HB_GPOS")
+)
+
+(define-function pango_ot_ruleset_get_type
+ (c-name "pango_ot_ruleset_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From pango-renderer.h
(define-function pango_renderer_get_type
(c-name "pango_renderer_get_type")
@@ -3091,7 +3493,7 @@
(return-type "none")
(parameters
'("PangoRenderPart" "part")
- '("double" "y1")
+ '("double" "y1_")
'("double" "x11")
'("double" "x21")
'("double" "y2")
@@ -3169,7 +3571,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-script.h
+;; From pango-script.h
(define-function pango_script_for_unichar
(c-name "pango_script_for_unichar")
@@ -3229,15 +3631,15 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-script-lang-table.h
+;; From pango-script-lang-table.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-script-table.h
+;; From pango-script-table.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-tabs.h
+;; From pango-tabs.h
(define-function pango_tab_array_new
(c-name "pango_tab_array_new")
@@ -3333,7 +3735,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-types.h
+;; From pango-types.h
(define-function pango_matrix_get_type
(c-name "pango_matrix_get_type")
@@ -3390,6 +3792,12 @@
)
)
+(define-method get_font_scale_factor
+ (of-object "PangoMatrix")
+ (c-name "pango_matrix_get_font_scale_factor")
+ (return-type "double")
+)
+
(define-function pango_language_get_type
(c-name "pango_language_get_type")
(return-type "GType")
@@ -3440,7 +3848,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pango-utils.h
+;; From pango-utils.h
(define-function pango_split_file_list
(c-name "pango_split_file_list")
@@ -3572,12 +3980,11 @@
(define-function pango_log2vis_get_embedding_levels
(c-name "pango_log2vis_get_embedding_levels")
- (return-type "gboolean")
+ (return-type "guint8*")
(parameters
- '("gunichar*" "str")
- '("int" "len")
+ '("const-gchar*" "text")
+ '("int" "length")
'("PangoDirection*" "pbase_dir")
- '("guint8*" "embedding_level_list")
)
)
@@ -3587,9 +3994,26 @@
(return-type "const-char*")
)
+(define-function pango_is_zero_width
+ (c-name "pango_is_zero_width")
+ (return-type "gboolean")
+ (parameters
+ '("gunichar" "ch")
+ )
+)
+
+(define-function pango_quantize_line_geometry
+ (c-name "pango_quantize_line_geometry")
+ (return-type "none")
+ (parameters
+ '("int*" "thickness")
+ '("int*" "position")
+ )
+)
+
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangowin32.h
+;; From pangowin32.h
(define-function pango_win32_get_context
(c-name "pango_win32_get_context")
@@ -3671,6 +4095,31 @@
(return-type "gboolean")
)
+(define-function pango_win32_font_select_font
+ (c-name "pango_win32_font_select_font")
+ (return-type "gboolean")
+ (parameters
+ '("PangoFont*" "font")
+ '("HDC" "hdc")
+ )
+)
+
+(define-function pango_win32_font_done_font
+ (c-name "pango_win32_font_done_font")
+ (return-type "none")
+ (parameters
+ '("PangoFont*" "font")
+ )
+)
+
+(define-function pango_win32_font_get_metrics_factor
+ (c-name "pango_win32_font_get_metrics_factor")
+ (return-type "double")
+ (parameters
+ '("PangoFont*" "font")
+ )
+)
+
(define-function pango_win32_font_cache_new
(c-name "pango_win32_font_cache_new")
(is-constructor-of "PangoWin32FontCache")
@@ -3727,9 +4176,22 @@
)
)
+(define-function pango_win32_font_description_from_logfont
+ (c-name "pango_win32_font_description_from_logfont")
+ (return-type "PangoFontDescription*")
+ (parameters
+ '("const-LOGFONT*" "lfp")
+ )
+)
+
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangowin32-private.h
+;; From pangowin32-private.h
+
+(define-function pango_win32_font_get_type
+ (c-name "pango_win32_font_get_type")
+ (return-type "GType")
+)
(define-function pango_win32_font_new
(c-name "pango_win32_font_new")
@@ -3789,6 +4251,11 @@
)
)
+(define-function pango_win32_font_map_get_type
+ (c-name "pango_win32_font_map_get_type")
+ (return-type "GType")
+)
+
(define-function pango_win32_fontmap_cache_add
(c-name "pango_win32_fontmap_cache_add")
(return-type "none")
@@ -3836,7 +4303,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangoxft.h
+;; From pangoxft.h
(define-function pango_xft_get_font_map
(c-name "pango_xft_get_font_map")
@@ -3957,11 +4424,11 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangoxft-private.h
+;; From pangoxft-private.h
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangoxft-render.h
+;; From pangoxft-render.h
(define-function pango_xft_renderer_get_type
(c-name "pango_xft_renderer_get_type")
@@ -4063,7 +4530,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangox.h
+;; From pangox.h
(define-function pango_x_get_context
(c-name "pango_x_get_context")
@@ -4272,7 +4739,7 @@
-;; From /home/murrayc/cvs/gnome210/pango/pango/pangox-private.h
+;; From pangox-private.h
(define-function pango_x_font_map_get_type
(c-name "pango_x_font_map_get_type")
Index: tools/m4/convert_pango.m4
===================================================================
RCS file: /cvs/gnome/gtkmm/tools/m4/convert_pango.m4,v
retrieving revision 1.8
diff -u -p -r1.8 convert_pango.m4
--- tools/m4/convert_pango.m4 9 May 2006 16:51:35 -0000 1.8
+++ tools/m4/convert_pango.m4 29 May 2006 20:05:37 -0000
@@ -97,6 +97,8 @@ _CONVERSION(`PangoFontMap*',`Glib::RefPt
_CONVERSION(`PangoFontMap*',`Glib::RefPtr<const FontMap>',Glib::wrap($3))
_CONVERSION(`const Glib::RefPtr<FontMap>&',`PangoFontMap*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`PangoCairoFontMap*',`Glib::RefPtr<CairoFontMap>',Glib::wrap($3))
+
_CONVERSION(`PangoFontSet*',`Glib::RefPtr<FontSet>',Glib::wrap($3))
_CONVERSION(`const Glib::RefPtr<FontSet>&',`PangoFontSet*',__CONVERT_REFPTR_TO_P)
@@ -147,3 +149,6 @@ _CONVERSION(`GSList*',`SListHandle_Layou
_CONVERSION(`GSList*',`SListHandle_ConstLayoutLine',__FL2H_SHALLOW)
_CONVERSION(`PangoFontMap*',`Glib::RefPtr<Pango::FontMap>',`Glib::wrap($3)')
+
+_CONVERSION(`const Cairo::FontOptions&',`const cairo_font_options_t*',`($3).cobj()')
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]