diff CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/gtk-doc/html/cairo/language-bindings.html @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/gtk-doc/html/cairo/language-bindings.html	Tue Mar 18 16:23:26 2025 -0400
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Appendix A. Creating a language binding for cairo: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.16.html" title="Index of new symbols in 1.16">
+<link rel="next" href="bindings-memory.html" title="Memory management">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.16.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-memory.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="appendix">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="language-bindings"></a>Appendix A. Creating a language binding for cairo</h1></div></div></div>
+<p>
+    While cairo is implemented and C, and has a C API, it is expected
+    that many users of cairo will be using it from languages other
+    than C. The glue that connects the core cairo library to another
+    language is known as a <em class="firstterm">language
+    binding</em>. This appendix attempts to collect together
+    issues that come up when creating a language bindings for cairo
+    and present standardized solutions to promote consistency among
+    the different language bindings.
+  </p>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-general"></a>General considerations</h2></div></div></div>
+<p>
+      The naming of the central <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> type is a
+      special exception. The object is “a cairo context” not “a
+      cairo”, and names such as <span class="type">cairo_t</span> rather than
+      <span class="type">cairo_context_t</span> and
+      <code class="function">cairo_set_source()</code> rather than
+      <code class="function">cairo_context_set_source()</code> are simply
+      abbreviations to make the C API more palatable. In languages
+      which have object-oriented syntax, this abbreviation is much
+      less useful. In fact, if ‘Cairo’ is used as a namespace, then
+      in many languages, you'd end up with a ridiculous type name
+      like ‘Cairo.Cairo’. For this reason, and for inter-language
+      consistency all object-oriented languages should name this
+      type as if it were <span class="type">cairo_context_t</span>.
+    </p>
+<p>
+      The punctuation and casing of the type names and
+      method names of cairo should be changed to match the general
+      convention of the language. In Java, where type names are written
+      in StudlyCaps and method names in javaCaps, cairo_font_extents_t
+      will become FontExtents and
+      <code class="literal">cairo_set_source(cr,source)</code>,
+      <code class="literal">cr.setSource(source)</code>.
+      As compared to changing the punctuation, and casing, much
+      more reluctance should be used in changing the method names
+      themselves. Even if get is usually omitted from getters in
+      your language, you shouldn't bind cairo_get_source() as
+      cr.source().
+    </p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file