[gtkmm-documentation] Updated Spanish translation



commit 93ff2fc6a23a402aa71342d62835942044573541
Author: Daniel Mustieles <daniel mustieles gmail com>
Date:   Thu Sep 5 13:16:16 2013 +0200

    Updated Spanish translation

 docs/tutorial/es/es.po | 3291 ++++++++++++++++++++++++++----------------------
 1 files changed, 1819 insertions(+), 1472 deletions(-)
---
diff --git a/docs/tutorial/es/es.po b/docs/tutorial/es/es.po
index 8efe093..cebe61e 100644
--- a/docs/tutorial/es/es.po
+++ b/docs/tutorial/es/es.po
@@ -19,8 +19,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gtkmm-documentation.tutorial.master\n"
-"POT-Creation-Date: 2013-03-03 18:05+0000\n"
-"PO-Revision-Date: 2013-03-08 10:52+0100\n"
+"POT-Creation-Date: 2013-08-07 08:02+0000\n"
+"PO-Revision-Date: 2013-09-05 13:07+0200\n"
 "Last-Translator: Daniel Mustieles <daniel mustieles gmail com>\n"
 "Language-Team: Español <gnome-es-list gnome org>\n"
 "Language: es\n"
@@ -731,18 +731,19 @@ msgstr ""
 #: C/gtkmm-tutorial-in.xml:3653(ulink) C/gtkmm-tutorial-in.xml:3906(ulink)
 #: C/gtkmm-tutorial-in.xml:3968(ulink) C/gtkmm-tutorial-in.xml:3995(ulink)
 #: C/gtkmm-tutorial-in.xml:4018(ulink) C/gtkmm-tutorial-in.xml:4042(ulink)
-#: C/gtkmm-tutorial-in.xml:4244(ulink) C/gtkmm-tutorial-in.xml:4334(ulink)
-#: C/gtkmm-tutorial-in.xml:4362(ulink) C/gtkmm-tutorial-in.xml:4438(ulink)
-#: C/gtkmm-tutorial-in.xml:4510(ulink) C/gtkmm-tutorial-in.xml:4573(ulink)
-#: C/gtkmm-tutorial-in.xml:4599(ulink) C/gtkmm-tutorial-in.xml:4812(ulink)
-#: C/gtkmm-tutorial-in.xml:4972(ulink) C/gtkmm-tutorial-in.xml:4992(ulink)
-#: C/gtkmm-tutorial-in.xml:5366(ulink) C/gtkmm-tutorial-in.xml:5587(ulink)
-#: C/gtkmm-tutorial-in.xml:5721(ulink) C/gtkmm-tutorial-in.xml:5845(ulink)
-#: C/gtkmm-tutorial-in.xml:5913(ulink) C/gtkmm-tutorial-in.xml:5974(ulink)
-#: C/gtkmm-tutorial-in.xml:6071(ulink) C/gtkmm-tutorial-in.xml:6108(ulink)
-#: C/gtkmm-tutorial-in.xml:6435(ulink) C/gtkmm-tutorial-in.xml:6503(ulink)
-#: C/gtkmm-tutorial-in.xml:7147(ulink) C/gtkmm-tutorial-in.xml:7204(ulink)
-#: C/gtkmm-tutorial-in.xml:8316(ulink)
+#: C/gtkmm-tutorial-in.xml:4074(ulink) C/gtkmm-tutorial-in.xml:4275(ulink)
+#: C/gtkmm-tutorial-in.xml:4365(ulink) C/gtkmm-tutorial-in.xml:4393(ulink)
+#: C/gtkmm-tutorial-in.xml:4469(ulink) C/gtkmm-tutorial-in.xml:4541(ulink)
+#: C/gtkmm-tutorial-in.xml:4604(ulink) C/gtkmm-tutorial-in.xml:4630(ulink)
+#: C/gtkmm-tutorial-in.xml:4843(ulink) C/gtkmm-tutorial-in.xml:5009(ulink)
+#: C/gtkmm-tutorial-in.xml:5029(ulink) C/gtkmm-tutorial-in.xml:5403(ulink)
+#: C/gtkmm-tutorial-in.xml:5624(ulink) C/gtkmm-tutorial-in.xml:5758(ulink)
+#: C/gtkmm-tutorial-in.xml:5882(ulink) C/gtkmm-tutorial-in.xml:5950(ulink)
+#: C/gtkmm-tutorial-in.xml:6011(ulink) C/gtkmm-tutorial-in.xml:6108(ulink)
+#: C/gtkmm-tutorial-in.xml:6145(ulink) C/gtkmm-tutorial-in.xml:6472(ulink)
+#: C/gtkmm-tutorial-in.xml:6540(ulink) C/gtkmm-tutorial-in.xml:7184(ulink)
+#: C/gtkmm-tutorial-in.xml:7241(ulink) C/gtkmm-tutorial-in.xml:7497(ulink)
+#: C/gtkmm-tutorial-in.xml:8382(ulink)
 msgid "Source Code"
 msgstr "Código fuente"
 
@@ -953,7 +954,7 @@ msgstr ""
 "Openismus tiene más <ulink url=\"http://www.openismus.com/documents/linux/";
 "automake/automake.shtml\">ayuda básica con automake y autoconf</ulink>"
 
-#: C/gtkmm-tutorial-in.xml:399(title) C/gtkmm-tutorial-in.xml:6131(title)
+#: C/gtkmm-tutorial-in.xml:399(title) C/gtkmm-tutorial-in.xml:6168(title)
 msgid "Widgets"
 msgstr "Widgets"
 
@@ -1057,8 +1058,8 @@ msgstr ""
 "memoria</link>."
 
 #: C/gtkmm-tutorial-in.xml:420(title) C/gtkmm-tutorial-in.xml:772(title)
-#: C/gtkmm-tutorial-in.xml:4730(title) C/gtkmm-tutorial-in.xml:5021(title)
-#: C/gtkmm-tutorial-in.xml:7709(title)
+#: C/gtkmm-tutorial-in.xml:4761(title) C/gtkmm-tutorial-in.xml:5058(title)
+#: C/gtkmm-tutorial-in.xml:7775(title)
 msgid "Signals"
 msgstr "Señales"
 
@@ -1120,7 +1121,7 @@ msgstr ""
 "application>, consulte el <link linkend=\"chapter-custom-signals\">apéndice</"
 "link>."
 
-#: C/gtkmm-tutorial-in.xml:441(title) C/gtkmm-tutorial-in.xml:9768(classname)
+#: C/gtkmm-tutorial-in.xml:441(title) C/gtkmm-tutorial-in.xml:9893(classname)
 msgid "Glib::ustring"
 msgstr "Glib::ustring"
 
@@ -1239,9 +1240,9 @@ msgstr ""
 #: C/gtkmm-tutorial-in.xml:3394(ulink) C/gtkmm-tutorial-in.xml:3888(ulink)
 #: C/gtkmm-tutorial-in.xml:3945(ulink) C/gtkmm-tutorial-in.xml:3956(ulink)
 #: C/gtkmm-tutorial-in.xml:3983(ulink) C/gtkmm-tutorial-in.xml:4006(ulink)
-#: C/gtkmm-tutorial-in.xml:4030(ulink) C/gtkmm-tutorial-in.xml:4840(ulink)
-#: C/gtkmm-tutorial-in.xml:5111(ulink) C/gtkmm-tutorial-in.xml:5143(ulink)
-#: C/gtkmm-tutorial-in.xml:7581(ulink)
+#: C/gtkmm-tutorial-in.xml:4030(ulink) C/gtkmm-tutorial-in.xml:4062(ulink)
+#: C/gtkmm-tutorial-in.xml:4876(ulink) C/gtkmm-tutorial-in.xml:5148(ulink)
+#: C/gtkmm-tutorial-in.xml:5180(ulink) C/gtkmm-tutorial-in.xml:7647(ulink)
 msgid "Reference"
 msgstr "Referencia"
 
@@ -2002,13 +2003,14 @@ msgstr ""
 #: C/gtkmm-tutorial-in.xml:2321(title) C/gtkmm-tutorial-in.xml:3891(title)
 #: C/gtkmm-tutorial-in.xml:3959(title) C/gtkmm-tutorial-in.xml:3986(title)
 #: C/gtkmm-tutorial-in.xml:4009(title) C/gtkmm-tutorial-in.xml:4033(title)
-#: C/gtkmm-tutorial-in.xml:4206(title) C/gtkmm-tutorial-in.xml:4350(title)
-#: C/gtkmm-tutorial-in.xml:4425(title) C/gtkmm-tutorial-in.xml:4497(title)
-#: C/gtkmm-tutorial-in.xml:4562(title) C/gtkmm-tutorial-in.xml:4802(title)
-#: C/gtkmm-tutorial-in.xml:5347(title) C/gtkmm-tutorial-in.xml:5827(title)
-#: C/gtkmm-tutorial-in.xml:5876(title) C/gtkmm-tutorial-in.xml:6429(title)
-#: C/gtkmm-tutorial-in.xml:6498(title) C/gtkmm-tutorial-in.xml:7134(title)
-#: C/gtkmm-tutorial-in.xml:7193(title) C/gtkmm-tutorial-in.xml:8310(title)
+#: C/gtkmm-tutorial-in.xml:4065(title) C/gtkmm-tutorial-in.xml:4237(title)
+#: C/gtkmm-tutorial-in.xml:4381(title) C/gtkmm-tutorial-in.xml:4456(title)
+#: C/gtkmm-tutorial-in.xml:4528(title) C/gtkmm-tutorial-in.xml:4593(title)
+#: C/gtkmm-tutorial-in.xml:4833(title) C/gtkmm-tutorial-in.xml:5384(title)
+#: C/gtkmm-tutorial-in.xml:5864(title) C/gtkmm-tutorial-in.xml:5913(title)
+#: C/gtkmm-tutorial-in.xml:6466(title) C/gtkmm-tutorial-in.xml:6535(title)
+#: C/gtkmm-tutorial-in.xml:7171(title) C/gtkmm-tutorial-in.xml:7230(title)
+#: C/gtkmm-tutorial-in.xml:7473(title) C/gtkmm-tutorial-in.xml:8376(title)
 msgid "Example"
 msgstr "Ejemplo"
 
@@ -2298,7 +2300,7 @@ msgstr ""
 "uno sea parte de <literal>group</literal>."
 
 #: C/gtkmm-tutorial-in.xml:961(title) C/gtkmm-tutorial-in.xml:1456(title)
-#: C/gtkmm-tutorial-in.xml:4673(title)
+#: C/gtkmm-tutorial-in.xml:4704(title)
 msgid "Methods"
 msgstr "Métodos"
 
@@ -5119,8 +5121,8 @@ msgid "TreeModelSort Reference"
 msgstr "Referencia de TreeModelSort"
 
 #: C/gtkmm-tutorial-in.xml:2861(title) C/gtkmm-tutorial-in.xml:2968(title)
-#: C/gtkmm-tutorial-in.xml:3637(title) C/gtkmm-tutorial-in.xml:4644(title)
-#: C/gtkmm-tutorial-in.xml:4806(title)
+#: C/gtkmm-tutorial-in.xml:3637(title) C/gtkmm-tutorial-in.xml:4675(title)
+#: C/gtkmm-tutorial-in.xml:4837(title)
 msgid "Drag and Drop"
 msgstr "Arrastrar y soltar"
 
@@ -5228,7 +5230,7 @@ msgid "This is demonstrated in the Popup Custom Menu example."
 msgstr "Esto queda demostrado en el ejemplo del menú emergente personalizado."
 
 #: C/gtkmm-tutorial-in.xml:2910(title) C/gtkmm-tutorial-in.xml:3398(title)
-#: C/gtkmm-tutorial-in.xml:3573(title) C/gtkmm-tutorial-in.xml:4955(title)
+#: C/gtkmm-tutorial-in.xml:3573(title) C/gtkmm-tutorial-in.xml:4992(title)
 msgid "Examples"
 msgstr "Ejemplos"
 
@@ -6118,7 +6120,7 @@ msgstr ""
 "madre que responda a los atajos del teclado especificados, usando "
 "<methodname>add_accel_group()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:3483(para) C/gtkmm-tutorial-in.xml:4873(para)
+#: C/gtkmm-tutorial-in.xml:3483(para) C/gtkmm-tutorial-in.xml:4913(para)
 msgid "For instance,"
 msgstr "Por ejemplo,"
 
@@ -7034,11 +7036,39 @@ msgstr ""
 "tipografía. El <classname>FontButton</classname> abre un diálogo de "
 "selección de tipografía cuando se pulsa."
 
-#: C/gtkmm-tutorial-in.xml:4051(title)
+#: C/gtkmm-tutorial-in.xml:4047(title)
+msgid "Non-modal AboutDialog"
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:4048(para)
+msgid ""
+"The <classname>AboutDialog</classname> offers a simple way to display "
+"information about a program, like its logo, name, copyright, website and "
+"license."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:4052(para)
+msgid ""
+"Most dialogs in this chapter are modal, that is, they freeze the rest of the "
+"application while they are shown. It's also possible to create a non-modal "
+"dialog, which does not freeze other windows in the application. The "
+"following example shows a non-modal <classname>AboutDialog</classname>. This "
+"is perhaps not the kind of dialog you would normally make non-modal, but non-"
+"modal dialogs can be useful in other cases. E.g. <application>gedit</"
+"application>'s search-and-replace dialog is non-modal."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:4068(title)
+#, fuzzy
+#| msgid "Dialogs"
+msgid "AboutDialog"
+msgstr "Diálogos"
+
+#: C/gtkmm-tutorial-in.xml:4082(title)
 msgid "The Drawing Area Widget"
 msgstr "El widget de área de dibujo"
 
-#: C/gtkmm-tutorial-in.xml:4052(para)
+#: C/gtkmm-tutorial-in.xml:4083(para)
 msgid ""
 "The <classname>DrawingArea</classname> widget is a blank window that gives "
 "you the freedom to create any graphic you desire. Along with that freedom "
@@ -7059,7 +7089,7 @@ msgstr ""
 "contenidos del widget. La mayor parte de las veces, esto se hace "
 "sobrecargando la función miembro virtual <methodname>on_draw()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4064(para)
+#: C/gtkmm-tutorial-in.xml:4095(para)
 msgid ""
 "GTK+ uses the <ulink url=\"http://cairographics.org\";>Cairo</ulink> drawing "
 "API. With gtkmm, you may use the <ulink url=\"http://www.cairographics.org/";
@@ -7069,7 +7099,7 @@ msgstr ""
 "ulink>. Con Gtkmm, puede usar la API C++ <ulink url=\"http://www.";
 "cairographics.org/cairomm/\">cairomm</ulink> para Cairo."
 
-#: C/gtkmm-tutorial-in.xml:4069(para)
+#: C/gtkmm-tutorial-in.xml:4100(para)
 msgid ""
 "You can draw very sophisticated shapes using Cairo, but the methods to do so "
 "are quite basic. Cairo provides methods for drawing straight lines, curved "
@@ -7087,11 +7117,11 @@ msgstr ""
 "realizar transformaciones complejas, componer imágenes, y generar texto con "
 "«antialiasing»."
 
-#: C/gtkmm-tutorial-in.xml:4079(title)
+#: C/gtkmm-tutorial-in.xml:4110(title)
 msgid "Cairo and Pango"
 msgstr "Cairo y Pango"
 
-#: C/gtkmm-tutorial-in.xml:4080(para)
+#: C/gtkmm-tutorial-in.xml:4111(para)
 msgid ""
 "Although Cairo can render text, it's not meant to be a replacement for "
 "Pango. Pango is a better choice if you need to perform more advanced text "
@@ -7103,7 +7133,7 @@ msgstr ""
 "por ejemplo, con ajuste de línea o elipses. Sólo debe dibujar texto con "
 "Cairo si éste es parte de un gráfico."
 
-#: C/gtkmm-tutorial-in.xml:4085(para)
+#: C/gtkmm-tutorial-in.xml:4116(para)
 msgid ""
 "In this section of the tutorial, we'll cover the basic Cairo drawing model, "
 "describe each of the basic drawing elements in some detail (with examples), "
@@ -7115,11 +7145,11 @@ msgstr ""
 "ejemplos), y luego se prsentará una aplicación simple que usa Cairo para "
 "dibujar un widget de reloj personalizado."
 
-#: C/gtkmm-tutorial-in.xml:4092(title)
+#: C/gtkmm-tutorial-in.xml:4123(title)
 msgid "The Cairo Drawing Model"
 msgstr "El modelo de dibujo de Cairo"
 
-#: C/gtkmm-tutorial-in.xml:4093(para)
+#: C/gtkmm-tutorial-in.xml:4124(para)
 msgid ""
 "The basic concept of drawing in Cairo involves defining 'invisible' paths "
 "and then stroking or filling them to make them visible."
@@ -7127,7 +7157,7 @@ msgstr ""
 "El concepto básico de dibujar con Cairo implica definir caminos «invisibles» "
 "y luego tacharlos o rellenarlos para hacerlos visibles."
 
-#: C/gtkmm-tutorial-in.xml:4097(para)
+#: C/gtkmm-tutorial-in.xml:4128(para)
 msgid ""
 "To do any drawing in <application>gtkmm</application> with Cairo, you must "
 "first create a <classname>Cairo::Context</classname> object. This class "
@@ -7152,7 +7182,7 @@ msgstr ""
 "objetos contados por referencia, esta función devuelve un objeto "
 "<classname>Cairo::RefPtr&lt;Cairo::Context&gt;</classname>"
 
-#: C/gtkmm-tutorial-in.xml:4110(para)
+#: C/gtkmm-tutorial-in.xml:4141(para)
 msgid ""
 "The following example shows how to set up a Cairo context with a foreground "
 "color of red and a width of 2. Any drawing functions that use this context "
@@ -7162,7 +7192,7 @@ msgstr ""
 "frente rojo y un ancho de 2. Cualquier función de dibujo que use este "
 "contexto usará esta configuración"
 
-#: C/gtkmm-tutorial-in.xml:4115(programlisting)
+#: C/gtkmm-tutorial-in.xml:4146(programlisting)
 #, no-wrap
 msgid ""
 "Gtk::DrawingArea myArea;\n"
@@ -7175,7 +7205,7 @@ msgstr ""
 "myContext-&gt;set_source_rgb(1.0, 0.0, 0.0);\n"
 "myContext-&gt;set_line_width(2.0);"
 
-#: C/gtkmm-tutorial-in.xml:4119(para)
+#: C/gtkmm-tutorial-in.xml:4150(para)
 msgid ""
 "Each <classname>Cairo::Context</classname> is associated with a particular "
 "<classname>Gdk::Window</classname>, so the first line of the above example "
@@ -7191,7 +7221,7 @@ msgstr ""
 "objeto <classname>Cairo::Context</classname>. Las dos últimas líneas cambian "
 "el estado gráfico del contexto."
 
-#: C/gtkmm-tutorial-in.xml:4128(para)
+#: C/gtkmm-tutorial-in.xml:4159(para)
 msgid ""
 "There are a number of graphics state variables that can be set for a Cairo "
 "context. The most common context attributes are color (using "
@@ -7221,7 +7251,7 @@ msgstr ""
 "Para obtener más información, consulte la documentación de la API de <ulink "
 "url=\"http://www.cairographics.org/cairomm/\";>cairomm</ulink>."
 
-#: C/gtkmm-tutorial-in.xml:4160(para)
+#: C/gtkmm-tutorial-in.xml:4191(para)
 msgid ""
 "It is good practice to put all modifications to the graphics state between "
 "<methodname>save()</methodname>/<methodname>restore()</methodname> function "
@@ -7235,7 +7265,7 @@ msgstr ""
 "<classname>Cairo::Context</classname> como argumento, puede implementarlo "
 "como sigue:"
 
-#: C/gtkmm-tutorial-in.xml:4166(programlisting)
+#: C/gtkmm-tutorial-in.xml:4197(programlisting)
 #, no-wrap
 msgid ""
 "void doSomething(const Cairo::RefPtr&lt;Cairo::Context&gt;&amp; context, int x)\n"
@@ -7254,7 +7284,7 @@ msgstr ""
 "    context-&gt;restore();\n"
 "}"
 
-#: C/gtkmm-tutorial-in.xml:4143(para)
+#: C/gtkmm-tutorial-in.xml:4174(para)
 msgid ""
 "The current state of a <classname>Cairo::Context</classname> can be saved to "
 "an internal stack of saved states and later be restored to the state it was "
@@ -7285,7 +7315,7 @@ msgstr ""
 "estado de su par <methodname>save()</methodname> correspondiente. "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4175(para)
+#: C/gtkmm-tutorial-in.xml:4206(para)
 msgid ""
 "The virtual <methodname>on_draw()</methodname> method provides a Cairo "
 "context that you shall use for drawing in the <classname>Gtk::DrawingArea</"
@@ -7297,11 +7327,11 @@ msgstr ""
 "classname>. No es necesario guardar y restaurar este contexto Cairo en "
 "<methodname>on_draw()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4183(title)
+#: C/gtkmm-tutorial-in.xml:4214(title)
 msgid "Drawing Straight Lines"
 msgstr "Dibujar Lineas Rectas"
 
-#: C/gtkmm-tutorial-in.xml:4192(para)
+#: C/gtkmm-tutorial-in.xml:4223(para)
 msgid ""
 "Since the Cairo graphics library was written with support for multiple "
 "output targets (the X window system, PNG images, OpenGL, etc), there is a "
@@ -7325,7 +7355,7 @@ msgstr ""
 "aplicación. Esto puede realizarse con la función <methodname>Cairo::Context::"
 "scale()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4184(para)
+#: C/gtkmm-tutorial-in.xml:4215(para)
 msgid ""
 "Now that we understand the basics of the Cairo graphics library, we're "
 "almost ready to start drawing. We'll start with the simplest of drawing "
@@ -7341,7 +7371,7 @@ msgstr ""
 "la esquina superior izquierda de la ventana, con valores positivos de x "
 "hacia la derecha y valores positivos de y hacia abajo. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4207(para)
+#: C/gtkmm-tutorial-in.xml:4238(para)
 msgid ""
 "In this example, we'll construct a small but fully functional "
 "<application>gtkmm</application> program and draw some lines into the "
@@ -7363,7 +7393,7 @@ msgstr ""
 "entre el punto en el que estaba y el punto al que se movió. Para dibujar una "
 "línea entre dos puntos, use la función <methodname>line_to()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4219(para)
+#: C/gtkmm-tutorial-in.xml:4250(para)
 msgid ""
 "After you've finished creating your path, you still haven't drawn anything "
 "visible yet. To make the path visible, you must use the function "
@@ -7379,7 +7409,7 @@ msgstr ""
 "Después de rellenar, el camino actual se despejará para que pueda comenzar "
 "el próximo."
 
-#: C/gtkmm-tutorial-in.xml:4228(para)
+#: C/gtkmm-tutorial-in.xml:4259(para)
 msgid ""
 "Many Cairo drawing functions have a <methodname>_preserve()</methodname> "
 "variant. Normally drawing functions such as <methodname>clip()</methodname>, "
@@ -7395,11 +7425,11 @@ msgstr ""
 "<methodname>_preserve()</methodname>, el camino actual se retendrá, por lo "
 "que podrá usar el mismo camino con la próxima función de dibujo."
 
-#: C/gtkmm-tutorial-in.xml:4238(title) C/gtkmm-tutorial-in.xml:4356(title)
+#: C/gtkmm-tutorial-in.xml:4269(title) C/gtkmm-tutorial-in.xml:4387(title)
 msgid "Drawing Area - Lines"
 msgstr "Área de dibujo: líneas"
 
-#: C/gtkmm-tutorial-in.xml:4246(para)
+#: C/gtkmm-tutorial-in.xml:4277(para)
 msgid ""
 "This program contains a single class, <classname>MyArea</classname>, which "
 "is a subclass of <classname>Gtk::DrawingArea</classname> and contains an "
@@ -7427,11 +7457,11 @@ msgstr ""
 "<methodname>move_to()</methodname> y <methodname>line_to()</methodname>, y "
 "luego lo rellenamos usando <methodname>stroke()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4263(title)
+#: C/gtkmm-tutorial-in.xml:4294(title)
 msgid "Drawing with relative coordinates"
 msgstr "Dibujar con coordenadas relativas"
 
-#: C/gtkmm-tutorial-in.xml:4264(para)
+#: C/gtkmm-tutorial-in.xml:4295(para)
 msgid ""
 "In the example above we drew everything using absolute coordinates. You can "
 "also draw using relative coordinates. For a straight line, this is done with "
@@ -7442,11 +7472,11 @@ msgstr ""
 "esto se hace con la función <methodname>Cairo::Context::rel_line_to()</"
 "methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4270(title)
+#: C/gtkmm-tutorial-in.xml:4301(title)
 msgid "Line styles"
 msgstr "Estilos de línea"
 
-#: C/gtkmm-tutorial-in.xml:4271(para)
+#: C/gtkmm-tutorial-in.xml:4302(para)
 msgid ""
 "In addition to drawing basic straight lines, there are a number of things "
 "that you can customize about a line. You've already seen examples of setting "
@@ -7456,7 +7486,7 @@ msgstr ""
 "cosas de las líneas. Ya ha visto ejemplos de cómo establecer el color y "
 "anchura de una línea, pero también hay otras cosas."
 
-#: C/gtkmm-tutorial-in.xml:4277(para)
+#: C/gtkmm-tutorial-in.xml:4308(para)
 msgid ""
 "If you've drawn a series of lines that form a path, you may want them to "
 "join together in a certain way. Cairo offers three different ways to join "
@@ -7466,11 +7496,11 @@ msgstr ""
 "se junten de alguna manera. Cairo le ofrece tres maneras distintas de juntar "
 "líneas: «Miter», «Bevel», y «Round». Se muestran a continuación:"
 
-#: C/gtkmm-tutorial-in.xml:4284(title)
+#: C/gtkmm-tutorial-in.xml:4315(title)
 msgid "Different join types in Cairo"
 msgstr "Distintos tipos de uniones en Cairo"
 
-#: C/gtkmm-tutorial-in.xml:4289(para)
+#: C/gtkmm-tutorial-in.xml:4320(para)
 msgid ""
 "The line join style is set using the function <methodname>Cairo::Context::"
 "set_line_join()</methodname>."
@@ -7478,7 +7508,7 @@ msgstr ""
 "El estilo de unión de línea se establece usando la función "
 "<methodname>Cairo::Context::set_line_join()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4293(para)
+#: C/gtkmm-tutorial-in.xml:4324(para)
 msgid ""
 "Line ends can have different styles as well. The default style is for the "
 "line to start and stop exactly at the destination points of the line. This "
@@ -7495,7 +7525,7 @@ msgstr ""
 "cuadrado en el último punto). Esta opción se establece usando la función "
 "<methodname>Cairo::Context::set_line_cap()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4303(para)
+#: C/gtkmm-tutorial-in.xml:4334(para)
 msgid ""
 "There are other things you can customize as well, including creating dashed "
 "lines and other things. For more information, see the Cairo API "
@@ -7505,11 +7535,11 @@ msgstr ""
 "líneas punteadas y otras cosas. Para obtener más información, consulte la "
 "documentación de la API de Cairo."
 
-#: C/gtkmm-tutorial-in.xml:4310(title)
+#: C/gtkmm-tutorial-in.xml:4341(title)
 msgid "Drawing thin lines"
 msgstr "Dibujar líneas estrechas"
 
-#: C/gtkmm-tutorial-in.xml:4311(para)
+#: C/gtkmm-tutorial-in.xml:4342(para)
 msgid ""
 "If you try to draw one pixel wide lines, you may notice that the line "
 "sometimes comes up blurred and wider than it ought to be. This happens "
@@ -7529,7 +7559,7 @@ msgstr ""
 "unidad posible). Esto sucede cuando la anchura de la línea es un número "
 "impar de píxeles (no sólo uno)."
 
-#: C/gtkmm-tutorial-in.xml:4321(para)
+#: C/gtkmm-tutorial-in.xml:4352(para)
 msgid ""
 "The trick is to position in the middle of the pixel where you want the line "
 "to be drawn, and thus guaranteeing you get the desired results. See <ulink "
@@ -7540,15 +7570,15 @@ msgstr ""
 "Consulte las <ulink url=\"http://cairographics.org/FAQ/#sharp_lines";
 "\">preguntas más frecuentes de Cairo</ulink>."
 
-#: C/gtkmm-tutorial-in.xml:4328(title)
+#: C/gtkmm-tutorial-in.xml:4359(title)
 msgid "Drawing Area - Thin Lines"
 msgstr "Área de dibujo: líneas estrechas"
 
-#: C/gtkmm-tutorial-in.xml:4339(title)
+#: C/gtkmm-tutorial-in.xml:4370(title)
 msgid "Drawing Curved Lines"
 msgstr "Dibujar líneas curvas"
 
-#: C/gtkmm-tutorial-in.xml:4340(para)
+#: C/gtkmm-tutorial-in.xml:4371(para)
 msgid ""
 "In addition to drawing straight lines Cairo allows you to easily draw curved "
 "lines (technically a cubic Bézier spline) using the <methodname>Cairo::"
@@ -7564,7 +7594,7 @@ msgstr ""
 "de un punto de destino y de dos puntos de «control». Esto se entiende mejor "
 "con un ejemplo, así que analícelo en profundidad."
 
-#: C/gtkmm-tutorial-in.xml:4351(para)
+#: C/gtkmm-tutorial-in.xml:4382(para)
 msgid ""
 "This simple application draws a curve with Cairo and displays the control "
 "points for each end of the curve."
@@ -7572,7 +7602,7 @@ msgstr ""
 "Esta aplicación simple dibuja una curva con Cairo y muestra los puntos de "
 "control para cada punta de la curva."
 
-#: C/gtkmm-tutorial-in.xml:4363(para)
+#: C/gtkmm-tutorial-in.xml:4394(para)
 msgid ""
 "The only difference between this example and the straight line example is in "
 "the <methodname>on_draw()</methodname> function, but there are a few new "
@@ -7582,7 +7612,7 @@ msgstr ""
 "función <methodname>on_draw()</methodname>, pero hay unos conceptos y "
 "funciones nuevas presentadas aquí, así que se examinarán brevemente."
 
-#: C/gtkmm-tutorial-in.xml:4369(para)
+#: C/gtkmm-tutorial-in.xml:4400(para)
 msgid ""
 "We make a call to <methodname>Cairo::Context::scale()</methodname>, passing "
 "in the width and height of the drawing area. This scales the user-space "
@@ -7597,7 +7627,7 @@ msgstr ""
 "para escalar el sistema de coordenadas en este caso, pero a veces, puede "
 "hacer las operaciones de dibujo más fáciles."
 
-#: C/gtkmm-tutorial-in.xml:4378(para)
+#: C/gtkmm-tutorial-in.xml:4409(para)
 msgid ""
 "The call to <methodname>Cairo::Context::curve_to()</methodname> should be "
 "fairly self-explanatory. The first pair of coordinates define the control "
@@ -7624,11 +7654,11 @@ msgstr ""
 "argumento que especifica el valor de alfa del color (los valores válidos "
 "están entre 0 y 1)."
 
-#: C/gtkmm-tutorial-in.xml:4396(title)
+#: C/gtkmm-tutorial-in.xml:4427(title)
 msgid "Drawing Arcs and Circles"
 msgstr "Dibujar arcos y círculos"
 
-#: C/gtkmm-tutorial-in.xml:4397(para)
+#: C/gtkmm-tutorial-in.xml:4428(para)
 msgid ""
 "With Cairo, the same function is used to draw arcs, circles, or ellipses: "
 "<methodname>Cairo::Context::arc()</methodname>. This function takes five "
@@ -7657,7 +7687,7 @@ msgstr ""
 "incrementan en la dirección de las agujas del reloj (recuerde que el eje "
 "positivo de Y apunta hacia abajo)."
 
-#: C/gtkmm-tutorial-in.xml:4418(programlisting)
+#: C/gtkmm-tutorial-in.xml:4449(programlisting)
 #, no-wrap
 msgid ""
 "context-&gt;save();\n"
@@ -7672,7 +7702,7 @@ msgstr ""
 "context-&gt;arc(0.0, 0.0, 1.0, 0.0, 2 * M_PI);\n"
 "context-&gt;restore();"
 
-#: C/gtkmm-tutorial-in.xml:4412(para)
+#: C/gtkmm-tutorial-in.xml:4443(para)
 msgid ""
 "To draw an ellipse, you can scale the current transformation matrix by "
 "different amounts in the X and Y directions. For example, to draw an ellipse "
@@ -7684,7 +7714,7 @@ msgstr ""
 "una elipse con un centro en <varname>x</varname>, <varname>y</varname>, y de "
 "tamaño <varname>width</varname>, <varname>height</varname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4426(para)
+#: C/gtkmm-tutorial-in.xml:4457(para)
 msgid ""
 "Here's an example of a simple program that draws an arc, a circle and an "
 "ellipse into a drawing area."
@@ -7692,11 +7722,11 @@ msgstr ""
 "Aquí hay un programa simple de ejemplo que dibuja un arco, un círculo, y una "
 "elipse en un área de dibujo."
 
-#: C/gtkmm-tutorial-in.xml:4431(title)
+#: C/gtkmm-tutorial-in.xml:4462(title)
 msgid "Drawing Area - Arcs"
 msgstr "Área de dibujo: arcos"
 
-#: C/gtkmm-tutorial-in.xml:4440(para)
+#: C/gtkmm-tutorial-in.xml:4471(para)
 msgid ""
 "There are a couple of things to note about this example code. Again, the "
 "only real difference between this example and the previous ones is the "
@@ -7711,7 +7741,7 @@ msgstr ""
 "es casi idéntica a la de los ejemplos previos, por lo que se omitirá ese "
 "fragmento."
 
-#: C/gtkmm-tutorial-in.xml:4448(para)
+#: C/gtkmm-tutorial-in.xml:4479(para)
 msgid ""
 "Note that in this case, we've expressed nearly everything in terms of the "
 "height and width of the window, including the width of the lines. Because of "
@@ -7728,7 +7758,7 @@ msgstr ""
 "<methodname>restore()</methodname> para volver a un estado conocido después "
 "de cada dibujo."
 
-#: C/gtkmm-tutorial-in.xml:4457(para)
+#: C/gtkmm-tutorial-in.xml:4488(para)
 msgid ""
 "The section for drawing an arc introduces one new function, "
 "<methodname>close_path()</methodname>. This function will in effect draw a "
@@ -7749,11 +7779,11 @@ msgstr ""
 "las líneas terminarán en el mismo lugar, pero Cairo no las juntará de manera "
 "especial."
 
-#: C/gtkmm-tutorial-in.xml:4470(title)
+#: C/gtkmm-tutorial-in.xml:4501(title)
 msgid "Drawing counter-clockwise"
 msgstr "Dibujar en sentido anti-horario"
 
-#: C/gtkmm-tutorial-in.xml:4471(para)
+#: C/gtkmm-tutorial-in.xml:4502(para)
 msgid ""
 "The function <methodname>Cairo::Context::arc_negative()</methodname> is "
 "exactly the same as <methodname>Cairo::Context::arc()</methodname> but the "
@@ -7763,15 +7793,15 @@ msgstr ""
 "exactamente la misma que <methodname>Cairo::Context::arc()</methodname>, "
 "pero los ángulos van en la dirección opuesta."
 
-#: C/gtkmm-tutorial-in.xml:4483(title)
+#: C/gtkmm-tutorial-in.xml:4514(title)
 msgid "Drawing Text"
 msgstr "Dibujar texto"
 
-#: C/gtkmm-tutorial-in.xml:4485(title)
+#: C/gtkmm-tutorial-in.xml:4516(title)
 msgid "Drawing Text with Pango"
 msgstr "Dibujar texto con Pango"
 
-#: C/gtkmm-tutorial-in.xml:4486(para)
+#: C/gtkmm-tutorial-in.xml:4517(para)
 msgid ""
 "Text is drawn via Pango Layouts. The easiest way to create a "
 "<classname>Pango::Layout</classname> is to use <methodname>Gtk::Widget::"
@@ -7787,7 +7817,7 @@ msgstr ""
 "tipografía, etc. Finalmente, la disposición puede mostrarse usando el método "
 "<methodname>Pango::Layout::show_in_cairo_context()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4498(para)
+#: C/gtkmm-tutorial-in.xml:4529(para)
 msgid ""
 "Here is an example of a program that draws some text, some of it upside-"
 "down. The Printing chapter contains another <link linkend=\"sec-printing-"
@@ -7797,15 +7827,15 @@ msgstr ""
 "El capítulo de impresión contiene otro <link linkend=\"sec-printing-example"
 "\">ejemplo</link> de dibujo de texto."
 
-#: C/gtkmm-tutorial-in.xml:4504(title)
+#: C/gtkmm-tutorial-in.xml:4535(title)
 msgid "Drawing Area - Text"
 msgstr "Área de dibujo: texto"
 
-#: C/gtkmm-tutorial-in.xml:4521(title)
+#: C/gtkmm-tutorial-in.xml:4552(title)
 msgid "Drawing Images"
 msgstr "Dibujar imágenes"
 
-#: C/gtkmm-tutorial-in.xml:4522(para)
+#: C/gtkmm-tutorial-in.xml:4553(para)
 msgid ""
 "There is a method for drawing from a <classname>Gdk::Pixbuf</classname> to a "
 "<classname>Cairo::Context</classname>. A <classname>Gdk::Pixbuf</classname> "
@@ -7817,7 +7847,7 @@ msgstr ""
 "classname> es un envoltorio útil alrededor de un grupo de píxeles, que puede "
 "leerse desde archivos y manipularse de varias maneras."
 
-#: C/gtkmm-tutorial-in.xml:4529(para)
+#: C/gtkmm-tutorial-in.xml:4560(para)
 msgid ""
 "Probably the most common way of creating <classname>Gdk::Pixbuf</classname>s "
 "is to use <methodname>Gdk::Pixbuf::create_from_file()</methodname>, which "
@@ -7828,7 +7858,7 @@ msgstr ""
 "que puede leer un archivo de imagen, como un archivo png, hacia un «pixbuf» "
 "listo para procesar."
 
-#: C/gtkmm-tutorial-in.xml:4536(para)
+#: C/gtkmm-tutorial-in.xml:4567(para)
 msgid ""
 "The <classname>Gdk::Pixbuf</classname> can be rendered by setting it as the "
 "source pattern of the Cairo context with <methodname>Gdk::Cairo::"
@@ -7850,7 +7880,7 @@ msgstr ""
 "de <classname>Cairo::Context</classname>. Toma un <classname>Cairo::Context</"
 "classname> como primer parámetro."
 
-#: C/gtkmm-tutorial-in.xml:4547(para)
+#: C/gtkmm-tutorial-in.xml:4578(para)
 msgid ""
 "Here is a small bit of code to tie it all together: (Note that usually you "
 "wouldn't load the image every time in the draw signal handler! It's just "
@@ -7860,7 +7890,7 @@ msgstr ""
 "no cargaría la imagen cada vez en el manejador de señal de dibujo. Se "
 "muestra aquí sólo para mantener a todo junto)."
 
-#: C/gtkmm-tutorial-in.xml:4552(programlisting)
+#: C/gtkmm-tutorial-in.xml:4583(programlisting)
 #, no-wrap
 msgid ""
 "bool MyArea::on_draw(const Cairo::RefPtr&lt;Cairo::Context&gt;&amp; cr)\n"
@@ -7883,19 +7913,19 @@ msgstr ""
 "  return true;\n"
 "}"
 
-#: C/gtkmm-tutorial-in.xml:4563(para)
+#: C/gtkmm-tutorial-in.xml:4594(para)
 msgid "Here is an example of a simple program that draws an image."
 msgstr "Aquí hay un ejemplo de un programa simple que dibuja una imagen."
 
-#: C/gtkmm-tutorial-in.xml:4567(title)
+#: C/gtkmm-tutorial-in.xml:4598(title)
 msgid "Drawing Area - Image"
 msgstr "Área de dibujo: imagen"
 
-#: C/gtkmm-tutorial-in.xml:4587(title)
+#: C/gtkmm-tutorial-in.xml:4618(title)
 msgid "Example Application: Creating a Clock with Cairo"
 msgstr "Aplicación de ejemplo: crear un reloj con Cairo"
 
-#: C/gtkmm-tutorial-in.xml:4588(para)
+#: C/gtkmm-tutorial-in.xml:4619(para)
 msgid ""
 "Now that we've covered the basics of drawing with Cairo, let's try to put it "
 "all together and create a simple application that actually does something. "
@@ -7909,7 +7939,7 @@ msgstr ""
 "reloj tiene una manecilla de segundos, una de minutos, y una de horas; y se "
 "actualiza cada segundo."
 
-#: C/gtkmm-tutorial-in.xml:4600(para)
+#: C/gtkmm-tutorial-in.xml:4631(para)
 msgid ""
 "As before, almost all of the interesting stuff is done in the draw signal "
 "handler <methodname>on_draw()</methodname>. Before we dig into the draw "
@@ -7931,7 +7961,7 @@ msgstr ""
 "única responsabilidad de esta función es invalidar la ventana para que "
 "<application>gtkmm</application> se vea forzado a redibujarla."
 
-#: C/gtkmm-tutorial-in.xml:4611(para)
+#: C/gtkmm-tutorial-in.xml:4642(para)
 msgid ""
 "Now let's take a look at the code that performs the actual drawing. The "
 "first section of <methodname>on_draw()</methodname> should be pretty "
@@ -7950,7 +7980,7 @@ msgstr ""
 "se escala de tal manera que la coordinada (0, 0) esté justo en el centro de "
 "la ventana."
 
-#: C/gtkmm-tutorial-in.xml:4621(para)
+#: C/gtkmm-tutorial-in.xml:4652(para)
 msgid ""
 "The function <methodname>Cairo::Context::paint()</methodname> is used here "
 "to set the background color of the window. This function takes no arguments "
@@ -7972,7 +8002,7 @@ msgstr ""
 "preservar el camino actual, y después este mismo camino se recorta para "
 "asegurarse de que las próximas líneas no vayan por fuera del reloj."
 
-#: C/gtkmm-tutorial-in.xml:4633(para)
+#: C/gtkmm-tutorial-in.xml:4664(para)
 msgid ""
 "After drawing the outline, we go around the clock and draw ticks for every "
 "hour, with a larger tick at 12, 3, 6, and 9. Now we're finally ready to "
@@ -7986,7 +8016,7 @@ msgstr ""
 "la hora, lo que simplemente implica obtener los valores actuales de la hora, "
 "minutos, y segundos, y dibujar las manecillas en los ángulos correctos."
 
-#: C/gtkmm-tutorial-in.xml:4645(para)
+#: C/gtkmm-tutorial-in.xml:4676(para)
 msgid ""
 "<classname>Gtk::Widget</classname> has several methods and signals which are "
 "prefixed with \"drag_\". These are used for Drag and Drop."
@@ -7994,11 +8024,11 @@ msgstr ""
 "<classname>Gtk::Widget</classname> tiene varios métodos y señales cuyo "
 "prefijo es «drag_». Se usan para arrastrar y soltar."
 
-#: C/gtkmm-tutorial-in.xml:4650(title)
+#: C/gtkmm-tutorial-in.xml:4681(title)
 msgid "Sources and Destinations"
 msgstr "Orígenes y destinos"
 
-#: C/gtkmm-tutorial-in.xml:4651(para)
+#: C/gtkmm-tutorial-in.xml:4682(para)
 msgid ""
 "Things are dragged from <literal>sources</literal> to be dropped on "
 "<literal>destinations</literal>. Each source and destination has infomation "
@@ -8018,11 +8048,11 @@ msgstr ""
 "se emitirán entonces, comunicándole a los manejadores de señales qué "
 "<classname>Gtk::TargetEntry</classname> se usó."
 
-#: C/gtkmm-tutorial-in.xml:4664(para)
+#: C/gtkmm-tutorial-in.xml:4695(para)
 msgid "target: A name, such as \"STRING\""
 msgstr "target: un nombre, como por ejemplo «STRING»"
 
-#: C/gtkmm-tutorial-in.xml:4665(para)
+#: C/gtkmm-tutorial-in.xml:4696(para)
 msgid ""
 "info: An identifier which will be sent to your signals to tell you which "
 "TargetEntry was used."
@@ -8030,7 +8060,7 @@ msgstr ""
 "info: un identificador, que se enviará a sus señales para comunicarle qué "
 "«TargetEntry» se usó."
 
-#: C/gtkmm-tutorial-in.xml:4666(para)
+#: C/gtkmm-tutorial-in.xml:4697(para)
 msgid ""
 "flags: Used only for drag and drop, this specifies whether the data may be "
 "dragged to other widgets and applications, or only to the same ones."
@@ -8038,7 +8068,7 @@ msgstr ""
 "flags: se usan sólo para arrastrar y soltar, y especifican si los datos "
 "pueden arrastrarse a otros widgets y aplicaciones, o sólo a los mismos."
 
-#: C/gtkmm-tutorial-in.xml:4661(para)
+#: C/gtkmm-tutorial-in.xml:4692(para)
 msgid ""
 "<classname>Gtk::TargetEntry</classname> objects contain this information: "
 "<placeholder-1/>"
@@ -8046,7 +8076,7 @@ msgstr ""
 "Los objetos <classname>Gtk::TargetEntry</classname> contienen esta "
 "información: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4674(para)
+#: C/gtkmm-tutorial-in.xml:4705(para)
 msgid ""
 "<classname>Widgets</classname> can be identified as sources or destinations "
 "using these <classname>Gtk::Widget</classname> methods:"
@@ -8054,7 +8084,7 @@ msgstr ""
 "Los <classname>Widgets</classname> pueden identificarse como orígenes o "
 "destinos usando estos métodos de <classname>Gtk::Widget</classname>:"
 
-#: C/gtkmm-tutorial-in.xml:4678(programlisting)
+#: C/gtkmm-tutorial-in.xml:4709(programlisting)
 #, no-wrap
 msgid ""
 "void drag_source_set(const ArrayHandle_TargetEntry&amp; targets,\n"
@@ -8063,7 +8093,7 @@ msgstr ""
 "void drag_source_set(const ArrayHandle_TargetEntry&amp; targets,\n"
 "      GdkModifierType start_button_mask, GdkDragAction actions);"
 
-#: C/gtkmm-tutorial-in.xml:4683(para)
+#: C/gtkmm-tutorial-in.xml:4714(para)
 msgid ""
 "<literal>targets</literal> is a container of <classname>Gtk::TargetEntry</"
 "classname> (<classname>std::list&lt;Gtk::TargetEntry&gt;</classname> or "
@@ -8075,7 +8105,7 @@ msgstr ""
 "classname> o <classname>std::vector&lt;Gtk::TargetEntry&gt;</classname>, por "
 "ejemplo)."
 
-#: C/gtkmm-tutorial-in.xml:4692(para)
+#: C/gtkmm-tutorial-in.xml:4723(para)
 msgid ""
 "<literal>start_button_mask</literal> is an ORed combination of values, which "
 "specify which modifier key or mouse button must be pressed to start the drag."
@@ -8084,7 +8114,7 @@ msgstr ""
 "complementarios, que especifica qué tecla modificadora o botón del ratón "
 "debe presionarse para empezar a arrastrar."
 
-#: C/gtkmm-tutorial-in.xml:4699(para)
+#: C/gtkmm-tutorial-in.xml:4730(para)
 msgid ""
 "<literal>actions</literal> is an ORed combination of values, which specified "
 "which Drag and Drop operations will be possible from this source - for "
@@ -8100,7 +8130,7 @@ msgstr ""
 "para cambiar de <literal>copiar</literal> a <literal>mover</literal>, y esto "
 "se mostrará con un cursor diferente."
 
-#: C/gtkmm-tutorial-in.xml:4710(programlisting)
+#: C/gtkmm-tutorial-in.xml:4741(programlisting)
 #, no-wrap
 msgid ""
 "void drag_dest_set(const ArrayHandle_TargetEntry&amp; targets,\n"
@@ -8109,7 +8139,7 @@ msgstr ""
 "void drag_dest_set(const ArrayHandle_TargetEntry&amp; targets,\n"
 "    GtkDestDefaults flags, GdkDragAction actions);"
 
-#: C/gtkmm-tutorial-in.xml:4715(para)
+#: C/gtkmm-tutorial-in.xml:4746(para)
 msgid ""
 "<literal>flags</literal> is an ORed combination of values which indicates "
 "how the widget will respond visually to Drag and Drop items."
@@ -8118,7 +8148,7 @@ msgstr ""
 "indica cómo responderá el widget visualmente a los objetos que se arrastran "
 "y sueltan."
 
-#: C/gtkmm-tutorial-in.xml:4721(para)
+#: C/gtkmm-tutorial-in.xml:4752(para)
 msgid ""
 "<literal>actions</literal> indicates the Drag and Drop actions which this "
 "destination can receive - see the description above."
@@ -8126,7 +8156,7 @@ msgstr ""
 "<literal>actions</literal> indica las acciones de arrastrar y soltar que "
 "este destino puede recibir: consulte la descripción arriba."
 
-#: C/gtkmm-tutorial-in.xml:4731(para)
+#: C/gtkmm-tutorial-in.xml:4762(para)
 msgid ""
 "When a drop destination has accepted a dragged item, certain signals will be "
 "emitted, depending on what action has been selected. For instance, the user "
@@ -8144,15 +8174,15 @@ msgstr ""
 "especificado en sus llamadas a <methodname>drag_dest_set()</methodname> y "
 "<methodname>drag_source_set()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:4742(title) C/gtkmm-tutorial-in.xml:4865(title)
+#: C/gtkmm-tutorial-in.xml:4773(title) C/gtkmm-tutorial-in.xml:4905(title)
 msgid "Copy"
 msgstr "Copiar"
 
-#: C/gtkmm-tutorial-in.xml:4746(para)
+#: C/gtkmm-tutorial-in.xml:4777(para)
 msgid "<literal>drag_begin</literal>: Provides DragContext."
 msgstr "<literal>drag_begin</literal>: proporciona DragContext."
 
-#: C/gtkmm-tutorial-in.xml:4747(para)
+#: C/gtkmm-tutorial-in.xml:4778(para)
 msgid ""
 "<literal>drag_motion</literal>: Provides DragContext and coordinates. You "
 "can call the drag_status() method of the DragContext to indicate which "
@@ -8162,7 +8192,7 @@ msgstr ""
 "llamar al método drag_status() del DragContext para indicar qué objetivo se "
 "aceptará."
 
-#: C/gtkmm-tutorial-in.xml:4748(para)
+#: C/gtkmm-tutorial-in.xml:4779(para)
 msgid ""
 "<literal>drag_get</literal>: Provides <literal>info</literal> about the "
 "dragged data format, and a <literal>GtkSelectionData</literal> structure, in "
@@ -8172,21 +8202,21 @@ msgstr ""
 "formato de datos arrastrado, y una estructura <literal>GtkSelectionData</"
 "literal>, en la que debe poner los datos pedidos."
 
-#: C/gtkmm-tutorial-in.xml:4749(para)
+#: C/gtkmm-tutorial-in.xml:4780(para)
 msgid "<literal>drag_drop</literal>: Provides DragContext and coordinates."
 msgstr "<literal>drag_drop</literal>: proporciona DragContext y coordenadas."
 
-#: C/gtkmm-tutorial-in.xml:4750(para)
+#: C/gtkmm-tutorial-in.xml:4781(para)
 msgid "<literal>drag_end</literal>: Provides DragContext."
 msgstr "<literal>drag_end</literal>: proporciona DragContext."
 
-#: C/gtkmm-tutorial-in.xml:4743(para)
+#: C/gtkmm-tutorial-in.xml:4774(para)
 msgid ""
 "The source widget will emit these signals, in this order: <placeholder-1/>"
 msgstr ""
 "El widget origen emitirá estas señales, en este orden: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4757(para)
+#: C/gtkmm-tutorial-in.xml:4788(para)
 msgid ""
 "<literal>drag_data_received</literal>: Provides <literal>info</literal> "
 "about the dragged data format, and a <literal>GtkSelectionData</literal> "
@@ -8200,7 +8230,7 @@ msgstr ""
 "llamar al método <methodname>drag_finish()</methodname> del "
 "<literal>DragContext</literal> para indicar si la operación tuvo éxito."
 
-#: C/gtkmm-tutorial-in.xml:4753(para)
+#: C/gtkmm-tutorial-in.xml:4784(para)
 msgid ""
 "The destination widget will emit this signal, after the source destination "
 "has emitted the <literal>drag_get</literal> signal: <placeholder-1/>"
@@ -8208,11 +8238,11 @@ msgstr ""
 "El widget de destino emitirá esta señal, después de que el destino de origen "
 "haya emitido la señal <literal>drag_get</literal>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4772(title)
+#: C/gtkmm-tutorial-in.xml:4803(title)
 msgid "Move"
 msgstr "Mover"
 
-#: C/gtkmm-tutorial-in.xml:4775(para)
+#: C/gtkmm-tutorial-in.xml:4806(para)
 msgid ""
 "<literal>drag_delete</literal>: Gives the source the opportunity to delete "
 "the original data if that's appropriate."
@@ -8220,7 +8250,7 @@ msgstr ""
 "<literal>drag_delete</literal>: le da al origen la oportunidad de eliminar "
 "los datos originales si es lo apropiado."
 
-#: C/gtkmm-tutorial-in.xml:4773(para)
+#: C/gtkmm-tutorial-in.xml:4804(para)
 msgid ""
 "During a <literal>move</literal>, the source widget will also emit this "
 "signal: <placeholder-1/>"
@@ -8228,11 +8258,11 @@ msgstr ""
 "Mientras se realice un <literal>movimiento</literal>, el widget origen "
 "también emitirá esta señal: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4789(title)
+#: C/gtkmm-tutorial-in.xml:4820(title)
 msgid "DragContext"
 msgstr "DragContext"
 
-#: C/gtkmm-tutorial-in.xml:4790(para)
+#: C/gtkmm-tutorial-in.xml:4821(para)
 msgid ""
 "The drag and drop signals provide a DragContext, which contains some "
 "information about the drag and drop operation and can be used to influence "
@@ -8251,7 +8281,7 @@ msgstr ""
 "<literal>drag_data_received</literal> para indicar si la operación tuvo "
 "éxito."
 
-#: C/gtkmm-tutorial-in.xml:4803(para)
+#: C/gtkmm-tutorial-in.xml:4834(para)
 msgid ""
 "Here is a very simple example, demonstrating a drag and drop <literal>Copy</"
 "literal> operation:"
@@ -8259,43 +8289,63 @@ msgstr ""
 "Aquí hay un ejemplo muy simple, demostrando arrastrar y soltar en una "
 "operación de <literal>copia</literal>:"
 
-#: C/gtkmm-tutorial-in.xml:4814(para)
+#: C/gtkmm-tutorial-in.xml:4845(para)
 msgid "There is a more complex example in examples/others/dnd."
 msgstr "Hay un ejemplo más complejo en examples/others/dnd."
 
-#: C/gtkmm-tutorial-in.xml:4823(title)
+#: C/gtkmm-tutorial-in.xml:4854(title)
 msgid "The Clipboard"
 msgstr "El portapapeles"
 
-#: C/gtkmm-tutorial-in.xml:4824(para)
+#: C/gtkmm-tutorial-in.xml:4855(para)
+#| msgid ""
+#| "Simple text copy-paste functionality is provided for free by widgets such "
+#| "as Gtk::Entry and Gtk::TextView, but you might need special code to deal "
+#| "with your own data formats. For instance, a drawing program would need "
+#| "special code to allow copy and paste within a view, or between documents."
 msgid ""
 "Simple text copy-paste functionality is provided for free by widgets such as "
-"Gtk::Entry and Gtk::TextView, but you might need special code to deal with "
-"your own data formats. For instance, a drawing program would need special "
-"code to allow copy and paste within a view, or between documents."
+"<classname>Gtk::Entry</classname> and <classname>Gtk::TextView</classname>, "
+"but you might need special code to deal with your own data formats. For "
+"instance, a drawing program would need special code to allow copy and paste "
+"within a view, or between documents."
 msgstr ""
-"Widgets libres como Gtk::Entry y Gtk::TextView proporcionan una función de "
-"copiar y pegar texto simple, pero tal vez necesite código especial para "
-"manejar sus propios formatos de datos. Por ejemplo, un programa de dibujo "
-"necesitaría código especial para permitir copiar y pegar dentro de una "
-"vista, o entre documentos."
+"Widgets libres como <classname>Gtk::Entry</classname> y <classname>Gtk::"
+"TextView</classname>proporcionan una función de copiar y pegar texto simple, "
+"pero tal vez necesite código especial para manejar sus propios formatos de "
+"datos. Por ejemplo, un programa de dibujo necesitaría código especial para "
+"permitir copiar y pegar dentro de una vista, o entre documentos."
 
-#: C/gtkmm-tutorial-in.xml:4826(para)
-msgid ""
-"<classname>Gtk::Clipboard</classname> is a singleton. You can get the one "
-"and only instance with <methodname>Gtk::Clipboard::get()</methodname>."
-msgstr ""
-"<classname>Gtk::Clipboard</classname> es un «singleton». Puede obtener su "
-"única instancia con <methodname>Gtk::Clipboard::get()</methodname>."
-
-#: C/gtkmm-tutorial-in.xml:4831(para)
-msgid ""
-"So your application doesn't need to wait for clipboard operations, "
-"particularly between the time when the user chooses Copy and then later "
-"chooses Paste, most <classname>Gtk::Clipboard</classname> methods take "
-"<classname>sigc::slot</classname>s which specify callback methods. When "
-"<classname>Gtk::Clipboard</classname> is ready, it will call these methods, "
-"either providing the requested data, or asking for data."
+#: C/gtkmm-tutorial-in.xml:4861(para)
+#| msgid ""
+#| "<classname>Gtk::Clipboard</classname> is a singleton. You can get the one "
+#| "and only instance with <methodname>Gtk::Clipboard::get()</methodname>."
+msgid ""
+"You can usually pretend that <classname>Gtk::Clipboard</classname> is a "
+"singleton. You can get the default clipboard instance with <methodname>Gtk::"
+"Clipboard::get()</methodname>. This is probably the only clipboard you will "
+"ever need."
+msgstr ""
+"<classname>Gtk::Clipboard</classname> es un «singleton». Puede obtener la "
+"instancia predeterminada del portapapeles con <methodname>Gtk::Clipboard::get"
+"()</methodname>. Esta es, probablemente, el único portapapeles que "
+"necesitará."
+
+#: C/gtkmm-tutorial-in.xml:4867(para)
+#| msgid ""
+#| "So your application doesn't need to wait for clipboard operations, "
+#| "particularly between the time when the user chooses Copy and then later "
+#| "chooses Paste, most <classname>Gtk::Clipboard</classname> methods take "
+#| "<classname>sigc::slot</classname>s which specify callback methods. When "
+#| "<classname>Gtk::Clipboard</classname> is ready, it will call these "
+#| "methods, either providing the requested data, or asking for data."
+msgid ""
+"Your application doesn't need to wait for clipboard operations, particularly "
+"between the time when the user chooses Copy and then later chooses Paste. "
+"Most <classname>Gtk::Clipboard</classname> methods take <classname>sigc::"
+"slot</classname>s which specify callback methods. When <classname>Gtk::"
+"Clipboard</classname> is ready, it will call these methods, either providing "
+"the requested data, or asking for data."
 msgstr ""
 "Para que su aplicación no necesite esperar a operaciones de portapapeles, "
 "particularmente en el tiempo en el que el usuario elige «copiar» y luego "
@@ -8304,11 +8354,11 @@ msgstr ""
 "de llamada. Cuando <classname>Gtk::Clipboard</classname> esté listo, llamará "
 "a estos métodos, proporcionándoles los datos o bien pidiéndolos."
 
-#: C/gtkmm-tutorial-in.xml:4843(title)
+#: C/gtkmm-tutorial-in.xml:4879(title)
 msgid "Targets"
 msgstr "Objetivos"
 
-#: C/gtkmm-tutorial-in.xml:4844(para)
+#: C/gtkmm-tutorial-in.xml:4880(para)
 msgid ""
 "Different applications contain different types of data, and they might make "
 "that data available in a variety of formats. <application>gtkmm</"
@@ -8318,24 +8368,33 @@ msgstr ""
 "esos datos disponibles en una variedad de formatos. <application>gtkmm</"
 "application> llama a estos tipos de datos <literal>objetivos</literal>."
 
-#: C/gtkmm-tutorial-in.xml:4848(para)
-msgid ""
-"For instance, gedit can supply and receive the <literal>\"UTF8_STRING\"</"
-"literal> target, so you can paste data into gedit from any application that "
-"supplies that target. Or two different image editing applications might "
-"supply and receive a variety of image formats as targets. As long as one "
-"application can receive one of the targets that the other supplies then you "
-"will be able to copy data from one to the other."
-msgstr ""
-"Por ejemplo, gedit puede proporcionar y recibir el objetivo <literal>"
-"\"UTF8_STRING\"</literal>, para que pueda pegar datos en gedit desde "
-"cualquier aplicación que proporcione ese objetivo. O bien, dos aplicaciones "
-"de edición de imágenes diferentes podrían proporcionar y recibir una "
-"variedad de formatos de imágenes como objetivos. Mientras que una aplicación "
-"pueda recibir uno de los objetivos que la otra proporciona, entonces podrá "
-"copiar los datos de una a la otra."
-
-#: C/gtkmm-tutorial-in.xml:4852(para)
+#: C/gtkmm-tutorial-in.xml:4884(para)
+#| msgid ""
+#| "For instance, gedit can supply and receive the <literal>\"UTF8_STRING\"</"
+#| "literal> target, so you can paste data into gedit from any application "
+#| "that supplies that target. Or two different image editing applications "
+#| "might supply and receive a variety of image formats as targets. As long "
+#| "as one application can receive one of the targets that the other supplies "
+#| "then you will be able to copy data from one to the other."
+msgid ""
+"For instance, <application>gedit</application> can supply and receive the "
+"<literal>\"UTF8_STRING\"</literal> target, so you can paste data into "
+"<application>gedit</application> from any application that supplies that "
+"target. Or two different image editing applications might supply and receive "
+"a variety of image formats as targets. As long as one application can "
+"receive one of the targets that the other supplies then you will be able to "
+"copy data from one to the other."
+msgstr ""
+"Por ejemplo, <application>gedit</application> puede proporcionar y recibir "
+"el objetivo <literal>\"UTF8_STRING\"</literal>, para que pueda pegar datos "
+"en <application>gedit</application> desde cualquier aplicación que "
+"proporcione ese objetivo. O bien, dos aplicaciones de edición de imágenes "
+"diferentes podrían proporcionar y recibir una variedad de formatos de "
+"imágenes como objetivos. Mientras que una aplicación pueda recibir uno de "
+"los objetivos que la otra proporciona, entonces podrá copiar los datos de "
+"una a la otra."
+
+#: C/gtkmm-tutorial-in.xml:4891(para)
 msgid ""
 "A target can be in a variety of binary formats. This chapter, and the "
 "examples, assume that the data is 8-bit text. This would allow us to use an "
@@ -8351,87 +8410,120 @@ msgstr ""
 "<classname>Gtk::Clipboard</classname> proporciona sobrecargas que le "
 "permiten especificar el formato en mayor detalle si es necesario."
 
-#: C/gtkmm-tutorial-in.xml:4861(para)
+#: C/gtkmm-tutorial-in.xml:4900(para)
+#| msgid ""
+#| "The <link linkend=\"chapter-draganddrop\">Drag and Drop</link> API uses "
+#| "the same mechanism. You should probably use the same data targets and "
+#| "formats for both Clipboard and Drag and Drap operations."
 msgid ""
 "The <link linkend=\"chapter-draganddrop\">Drag and Drop</link> API uses the "
 "same mechanism. You should probably use the same data targets and formats "
-"for both Clipboard and Drag and Drap operations."
+"for both Clipboard and Drag and Drop operations."
 msgstr ""
 "La API <link linkend=\"chapter-draganddrop\">Arrastrar y soltar</link> usa "
 "el mismo mecanismo. Probablemente deba usar los mismos objetivos de datos y "
 "formatos para las operaciones de arrastrar y soltar así como para las de "
 "portapapeles."
 
-#: C/gtkmm-tutorial-in.xml:4866(para)
+#: C/gtkmm-tutorial-in.xml:4906(para)
+#| msgid ""
+#| "When the user asks to copy some data, you should tell the "
+#| "<classname>Clipboard</classname> what targets are available, and provide "
+#| "the callback methods that it can use to get the data. At this point you "
+#| "should store a copy of the data, to be provided when the clipboard calls "
+#| "your callback method in repsonse to a paste."
 msgid ""
 "When the user asks to copy some data, you should tell the "
 "<classname>Clipboard</classname> what targets are available, and provide the "
 "callback methods that it can use to get the data. At this point you should "
 "store a copy of the data, to be provided when the clipboard calls your "
-"callback method in repsonse to a paste."
+"callback method in response to a paste."
 msgstr ""
 "Cuando el usuario pide copiar datos, debe decirle al <classname>Clipboard</"
 "classname> qué objetivos están disponibles y proporcionar los métodos de "
-"retorno de llamadas que puede usar para obtener los datos. En este punto, "
+"retorno de llamada que puede usar para obtener los datos. En este punto, "
 "debe almacenar una copia de los datos, para proporcionarla cuando el "
 "portapapeles llame a su método de retorno de llamada en respuesta a la "
 "acción de pegar."
 
-#: C/gtkmm-tutorial-in.xml:4875(programlisting)
+#: C/gtkmm-tutorial-in.xml:4915(programlisting)
 #, no-wrap
+#| msgid ""
+#| "Glib::RefPtr&lt;Gtk::Clipboard&gt; refClipboard = Gtk::Clipboard::get();\n"
+#| "\n"
+#| "//Targets:\n"
+#| "std::list&lt;Gtk::TargetEntry&gt; listTargets;\n"
+#| "listTargets.push_back( Gtk::TargetEntry(\"example_custom_target\") );\n"
+#| "listTargets.push_back( Gtk::TargetEntry(\"UTF8_STRING\") );\n"
+#| "\n"
+#| "refClipboard-&gt;set( listTargets,\n"
+#| "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_get),\n"
+#| "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_clear) );"
 msgid ""
 "Glib::RefPtr&lt;Gtk::Clipboard&gt; refClipboard = Gtk::Clipboard::get();\n"
 "\n"
 "//Targets:\n"
-"std::list&lt;Gtk::TargetEntry&gt; listTargets;\n"
-"listTargets.push_back( Gtk::TargetEntry(\"example_custom_target\") );\n"
-"listTargets.push_back( Gtk::TargetEntry(\"UTF8_STRING\") );\n"
+"std::vector&lt;Gtk::TargetEntry&gt; targets;\n"
+"targets.push_back( Gtk::TargetEntry(\"example_custom_target\") );\n"
+"targets.push_back( Gtk::TargetEntry(\"UTF8_STRING\") );\n"
 "\n"
-"refClipboard-&gt;set( listTargets,\n"
+"refClipboard-&gt;set( targets,\n"
 "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_get),\n"
 "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_clear) );"
 msgstr ""
 "Glib::RefPtr&lt;Gtk::Clipboard&gt; refClipboard = Gtk::Clipboard::get();\n"
 "\n"
 "//Targets:\n"
-"std::list&lt;Gtk::TargetEntry&gt; listTargets;\n"
-"listTargets.push_back( Gtk::TargetEntry(\"example_custom_target\") );\n"
-"listTargets.push_back( Gtk::TargetEntry(\"UTF8_STRING\") );\n"
+"std::vector&lt;Gtk::TargetEntry&gt; targets;\n"
+"targets.push_back( Gtk::TargetEntry(\"example_custom_target\") );\n"
+"targets.push_back( Gtk::TargetEntry(\"UTF8_STRING\") );\n"
 "\n"
-"refClipboard-&gt;set( listTargets,\n"
+"refClipboard-&gt;set( targets,\n"
 "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_get),\n"
 "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_clear) );"
 
-#: C/gtkmm-tutorial-in.xml:4886(para)
+#: C/gtkmm-tutorial-in.xml:4926(para)
+#| msgid ""
+#| "Your callback will then provide the store data when the user chooses to "
+#| "paste the data. For instance:"
 msgid ""
-"Your callback will then provide the store data when the user chooses to "
+"Your callback will then provide the stored data when the user chooses to "
 "paste the data. For instance:"
 msgstr ""
 "Su retorno de llamada proporcionará entonces los datos almacenados cuando el "
 "usuario elija pegarlos. Por ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:4888(programlisting)
+#: C/gtkmm-tutorial-in.xml:4928(programlisting)
 #, no-wrap
+#| msgid ""
+#| "void ExampleWindow::on_clipboard_get(\n"
+#| "    Gtk::SelectionData&amp; selection_data, guint info)\n"
+#| "{\n"
+#| "  const Glib::ustring target = selection_data.get_target();\n"
+#| "\n"
+#| "  if(target == \"example_custom_target\")\n"
+#| "    selection_data.set(\"example_custom_target\", m_ClipboardStore);\n"
+#| "}"
 msgid ""
 "void ExampleWindow::on_clipboard_get(\n"
-"    Gtk::SelectionData&amp; selection_data, guint info)\n"
+"    Gtk::SelectionData&amp; selection_data, guint /* info */)\n"
 "{\n"
-"  const Glib::ustring target = selection_data.get_target();\n"
+"  const std::string target = selection_data.get_target();\n"
 "\n"
 "  if(target == \"example_custom_target\")\n"
 "    selection_data.set(\"example_custom_target\", m_ClipboardStore);\n"
 "}"
 msgstr ""
 "void ExampleWindow::on_clipboard_get(\n"
-"    Gtk::SelectionData&amp; selection_data, guint info)\n"
+"    Gtk::SelectionData&amp; selection_data, guint /* info */)\n"
 "{\n"
-"  const Glib::ustring target = selection_data.get_target();\n"
+"  const std::string target = selection_data.get_target();\n"
 "\n"
 "  if(target == \"example_custom_target\")\n"
 "    selection_data.set(\"example_custom_target\", m_ClipboardStore);\n"
 "}"
 
-#: C/gtkmm-tutorial-in.xml:4896(para)
+#: C/gtkmm-tutorial-in.xml:4936(para)
 msgid ""
 "The <literal>ideal</literal> example below can supply more than one "
 "clipboard target."
@@ -8439,7 +8531,7 @@ msgstr ""
 "El ejemplo <literal>ideal</literal> a continuación puede proporcionar más de "
 "un objetivo para el portapapeles."
 
-#: C/gtkmm-tutorial-in.xml:4900(para)
+#: C/gtkmm-tutorial-in.xml:4940(para)
 msgid ""
 "The clear callback allows you to free the memory used by your stored data "
 "when the clipboard replaces its data with something else."
@@ -8447,11 +8539,11 @@ msgstr ""
 "El retorno de llamada «clear» le permite liberar la memoria que sus datos "
 "almacenados usan cuando el portapapeles reemplaza sus datos con otra cosa."
 
-#: C/gtkmm-tutorial-in.xml:4906(title)
+#: C/gtkmm-tutorial-in.xml:4946(title)
 msgid "Paste"
 msgstr "Pegar"
 
-#: C/gtkmm-tutorial-in.xml:4907(para)
+#: C/gtkmm-tutorial-in.xml:4947(para)
 msgid ""
 "When the user asks to paste data from the <classname>Clipboard</classname>, "
 "you should request a specific format and provide a callback method which "
@@ -8461,7 +8553,7 @@ msgstr ""
 "classname>, debe pedir un formato específico y proporcionar un método de "
 "retorno de llamada que se llamará con los datos en sí. Por ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:4912(programlisting)
+#: C/gtkmm-tutorial-in.xml:4952(programlisting)
 #, no-wrap
 msgid ""
 "refClipboard-&gt;request_contents(\"example_custom_target\",\n"
@@ -8470,11 +8562,11 @@ msgstr ""
 "refClipboard-&gt;request_contents(\"example_custom_target\",\n"
 "    sigc::mem_fun(*this, &amp;ExampleWindow::on_clipboard_received) );"
 
-#: C/gtkmm-tutorial-in.xml:4915(para)
+#: C/gtkmm-tutorial-in.xml:4955(para)
 msgid "Here is an example callback method:"
 msgstr "Aquí hay un ejemplo de un método de retorno de llamada:"
 
-#: C/gtkmm-tutorial-in.xml:4917(programlisting)
+#: C/gtkmm-tutorial-in.xml:4957(programlisting)
 #, no-wrap
 msgid ""
 "void ExampleWindow::on_clipboard_received(\n"
@@ -8491,11 +8583,11 @@ msgstr ""
 "  //Do something with the pasted data.\n"
 "}"
 
-#: C/gtkmm-tutorial-in.xml:4925(title)
+#: C/gtkmm-tutorial-in.xml:4965(title)
 msgid "Discovering the available targets"
 msgstr "Descubrir los objetivos disponibles"
 
-#: C/gtkmm-tutorial-in.xml:4926(para)
+#: C/gtkmm-tutorial-in.xml:4966(para)
 msgid ""
 "To find out what targets are currently available on the "
 "<classname>Clipboard</classname> for pasting, call the "
@@ -8507,7 +8599,7 @@ msgstr ""
 "<methodname>request_targets()</methodname>, especificando un método al que "
 "llamar con la información. Por ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:4932(programlisting)
+#: C/gtkmm-tutorial-in.xml:4972(programlisting)
 #, no-wrap
 msgid ""
 "refClipboard-&gt;request_targets( sigc::mem_fun(*this,\n"
@@ -8516,26 +8608,42 @@ msgstr ""
 "refClipboard-&gt;request_targets( sigc::mem_fun(*this,\n"
 "    &amp;ExampleWindow::on_clipboard_received_targets) );"
 
-#: C/gtkmm-tutorial-in.xml:4935(para)
+#: C/gtkmm-tutorial-in.xml:4975(para)
+#| msgid ""
+#| "In your callback, compare the list of available targets with those that "
+#| "your application supports for pasting. You could enable or disable a "
+#| "Paste menu item, depending on whether pasting is currently possible. For "
+#| "instance:"
 msgid ""
-"In your callback, compare the list of available targets with those that your "
-"application supports for pasting. You could enable or disable a Paste menu "
-"item, depending on whether pasting is currently possible. For instance:"
+"In your callback, compare the vector of available targets with those that "
+"your application supports for pasting. You could enable or disable a Paste "
+"menu item, depending on whether pasting is currently possible. For instance:"
 msgstr ""
 "En su retorno de llamada, compare la lista de objetivos disponibles con "
 "aquellos que su aplicación soporta pegar. Puede activar o no el elemento en "
 "el menú «pegar», dependiendo de si pegar es posible o no actualmente. Por "
 "ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:4938(programlisting)
+#: C/gtkmm-tutorial-in.xml:4978(programlisting)
 #, no-wrap
+#| msgid ""
+#| "void ExampleWindow::on_clipboard_received_targets(\n"
+#| "  const Glib::StringArrayHandle&amp; targets_array)\n"
+#| "{\n"
+#| "  // Get the list of available clipboard targets:\n"
+#| "  std::list&lt;std::string&gt; targets = targets_array;\n"
+#| "\n"
+#| "  const bool bPasteIsPossible =\n"
+#| "    std::find(targets.begin(), targets.end(),\n"
+#| "      example_target_custom) != targets.end();\n"
+#| "\n"
+#| "  // Enable/Disable the Paste button appropriately:\n"
+#| "  m_Button_Paste.set_sensitive(bPasteIsPossible);\n"
+#| "}"
 msgid ""
 "void ExampleWindow::on_clipboard_received_targets(\n"
-"  const Glib::StringArrayHandle&amp; targets_array)\n"
+"  const std::vector&lt;Glib::ustring&gt;&amp; targets)\n"
 "{\n"
-"  // Get the list of available clipboard targets:\n"
-"  std::list&lt;std::string&gt; targets = targets_array;\n"
-"\n"
 "  const bool bPasteIsPossible =\n"
 "    std::find(targets.begin(), targets.end(),\n"
 "      example_target_custom) != targets.end();\n"
@@ -8545,11 +8653,8 @@ msgid ""
 "}"
 msgstr ""
 "void ExampleWindow::on_clipboard_received_targets(\n"
-"  const Glib::StringArrayHandle&amp; targets_array)\n"
+"  const std::vector&lt;Glib::ustring&gt;&amp; targets)\n"
 "{\n"
-"  // Get the list of available clipboard targets:\n"
-"  std::list&lt;std::string&gt; targets = targets_array;\n"
-"\n"
 "  const bool bPasteIsPossible =\n"
 "    std::find(targets.begin(), targets.end(),\n"
 "      example_target_custom) != targets.end();\n"
@@ -8558,11 +8663,11 @@ msgstr ""
 "  m_Button_Paste.set_sensitive(bPasteIsPossible);\n"
 "}"
 
-#: C/gtkmm-tutorial-in.xml:4957(title) C/gtkmm-tutorial-in.xml:5350(title)
+#: C/gtkmm-tutorial-in.xml:4994(title) C/gtkmm-tutorial-in.xml:5387(title)
 msgid "Simple"
 msgstr "Simple"
 
-#: C/gtkmm-tutorial-in.xml:4958(para)
+#: C/gtkmm-tutorial-in.xml:4995(para)
 msgid ""
 "This example allows copy and pasting of application-specific data, using the "
 "standard text target. Although this is simple, it's not ideal because it "
@@ -8574,15 +8679,15 @@ msgstr ""
 "lo ideal porque no identifica los datos del <classname>Clipboard</classname> "
 "como un tipo particular."
 
-#: C/gtkmm-tutorial-in.xml:4966(title)
+#: C/gtkmm-tutorial-in.xml:5003(title)
 msgid "Clipboard - Simple"
 msgstr "Portapapeles: simple"
 
-#: C/gtkmm-tutorial-in.xml:4976(title)
+#: C/gtkmm-tutorial-in.xml:5013(title)
 msgid "Ideal"
 msgstr "Ideal"
 
-#: C/gtkmm-tutorial-in.xml:4979(simpara)
+#: C/gtkmm-tutorial-in.xml:5016(simpara)
 msgid ""
 "Defines a custom clipboard target, though the format of that target is still "
 "text."
@@ -8590,7 +8695,7 @@ msgstr ""
 "Define un objetivo personalizado de portapapeles, a pesar de que el formato "
 "del objetivo es sólo texto."
 
-#: C/gtkmm-tutorial-in.xml:4980(simpara)
+#: C/gtkmm-tutorial-in.xml:5017(simpara)
 msgid ""
 "It supports pasting of 2 targets - both the custom one and a text one that "
 "creates an arbitrary text representation of the custom data."
@@ -8598,7 +8703,7 @@ msgstr ""
 "Soporta pegar dos objetivos: tanto el personalizado como el de texto que "
 "crea una representación de texto arbitraria de los datos personalizados."
 
-#: C/gtkmm-tutorial-in.xml:4981(simpara)
+#: C/gtkmm-tutorial-in.xml:5018(simpara)
 msgid ""
 "It uses <methodname>request_targets()</methodname> and the "
 "<literal>owner_change</literal> signal and disables the Paste button if it "
@@ -8608,19 +8713,19 @@ msgstr ""
 "<literal>owner_change</literal>, y desactiva el botón «pegar» si no puede "
 "usar nada en el portapapeles."
 
-#: C/gtkmm-tutorial-in.xml:4977(para)
+#: C/gtkmm-tutorial-in.xml:5014(para)
 msgid "This is like the simple example, but it <placeholder-1/>"
 msgstr "Es como el ejemplo simple, pero <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:4986(title)
+#: C/gtkmm-tutorial-in.xml:5023(title)
 msgid "Clipboard - Ideal"
 msgstr "Portapapeles: ideal"
 
-#: C/gtkmm-tutorial-in.xml:5002(title)
+#: C/gtkmm-tutorial-in.xml:5039(title)
 msgid "Printing"
 msgstr "Impresión"
 
-#: C/gtkmm-tutorial-in.xml:5004(para)
+#: C/gtkmm-tutorial-in.xml:5041(para)
 msgid ""
 "At the application development level, <application>gtkmm</application>'s "
 "printing API provides dialogs that are consistent across applications and "
@@ -8635,11 +8740,11 @@ msgstr ""
 "API común, se usan «backends» específicos de cada plataforma y controladores "
 "específicos de cada impresora."
 
-#: C/gtkmm-tutorial-in.xml:5010(title)
+#: C/gtkmm-tutorial-in.xml:5047(title)
 msgid "PrintOperation"
 msgstr "PrintOperation"
 
-#: C/gtkmm-tutorial-in.xml:5012(para)
+#: C/gtkmm-tutorial-in.xml:5049(para)
 msgid ""
 "The primary object is <classname>Gtk::PrintOperation</classname>, allocated "
 "for each print operation. To handle page drawing connect to its signals, or "
@@ -8653,7 +8758,7 @@ msgstr ""
 "virtuales predeterminados. <classname>PrintOperation</classname> maneja "
 "automáticamente todas las opciones que afectan al bucle de impresión."
 
-#: C/gtkmm-tutorial-in.xml:5029(para)
+#: C/gtkmm-tutorial-in.xml:5066(para)
 msgid ""
 "<literal>begin_print</literal>: You must handle this signal, because this is "
 "where you create and set up a <classname>Pango::Layout</classname> using the "
@@ -8665,7 +8770,7 @@ msgstr ""
 "<classname>Gtk::PrintContext</classname> proporcionado y divide la salida de "
 "impresión en páginas."
 
-#: C/gtkmm-tutorial-in.xml:5039(para)
+#: C/gtkmm-tutorial-in.xml:5076(para)
 msgid ""
 "<literal>paginate</literal>: Pagination is potentially slow so if you need "
 "to monitor it you can call the <methodname>PrintOperation::set_show_progress"
@@ -8676,7 +8781,7 @@ msgstr ""
 "<methodname>PrintOperation::set_show_progress()</methodname> y manejar esta "
 "señal."
 
-#: C/gtkmm-tutorial-in.xml:5053(para)
+#: C/gtkmm-tutorial-in.xml:5090(para)
 msgid ""
 "<literal>request_page_setup</literal>: Provides a <classname>PrintContext</"
 "classname>, page number and <classname>Gtk::PageSetup</classname>. Handle "
@@ -8687,7 +8792,7 @@ msgstr ""
 "PageSetup</classname>. Maneje esta señal si necesita modificar la "
 "configuración de cada página."
 
-#: C/gtkmm-tutorial-in.xml:5062(para)
+#: C/gtkmm-tutorial-in.xml:5099(para)
 msgid ""
 "<literal>draw_page</literal>: You must handle this signal, which provides a "
 "<classname>PrintContext</classname> and a page number. The "
@@ -8703,7 +8808,7 @@ msgstr ""
 "dibujarse. Para procesar texto, itere sobre el <classname>Pango::Layout</"
 "classname> que creó en el manejador <literal>begin_print</literal>."
 
-#: C/gtkmm-tutorial-in.xml:5048(para)
+#: C/gtkmm-tutorial-in.xml:5085(para)
 msgid ""
 "For each page that needs to be rendered, the following signals are emitted: "
 "<placeholder-1/>"
@@ -8711,7 +8816,7 @@ msgstr ""
 "Para cada página que necesita procesarse, se emiten las siguientes señales: "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5077(para)
+#: C/gtkmm-tutorial-in.xml:5114(para)
 msgid ""
 "<literal>end_print</literal>: A handler for it is a safe place to free any "
 "resources related to a <classname>PrintOperation</classname>. If you have "
@@ -8723,7 +8828,7 @@ msgstr ""
 "Si tiene una clase personalizada que herede de <classname>PrintOperation</"
 "classname>, es naturalmente más simple hacerlo en el destructor."
 
-#: C/gtkmm-tutorial-in.xml:5087(para)
+#: C/gtkmm-tutorial-in.xml:5124(para)
 msgid ""
 "<literal>done</literal>: This signal is emitted when printing is finished, "
 "meaning when the print data is spooled. Note that the provided <literal>Gtk::"
@@ -8736,7 +8841,7 @@ msgstr ""
 "un error. En cualquier caso, probablemente quiera notificar al usuario el "
 "estado final."
 
-#: C/gtkmm-tutorial-in.xml:5097(para)
+#: C/gtkmm-tutorial-in.xml:5134(para)
 msgid ""
 "<literal>status_changed</literal>: Emitted whenever a print job's status "
 "changes, until it is finished. Call the <methodname>PrintOperation::"
@@ -8751,7 +8856,7 @@ msgstr ""
 "Para ver el estado, use <methodname>get_status()</methodname> o "
 "<methodname>get_status_string()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:5023(para)
+#: C/gtkmm-tutorial-in.xml:5060(para)
 msgid ""
 "The <methodname>PrintOperation::run()</methodname> method starts the print "
 "loop, during which various signals are emitted: <placeholder-1/>"
@@ -8759,11 +8864,11 @@ msgstr ""
 "El método <methodname>PrintOperation::run()</methodname> comienza el ciclo "
 "de impresión, durante el que se emiten varias señales: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5119(title)
+#: C/gtkmm-tutorial-in.xml:5156(title)
 msgid "Page setup"
 msgstr "Configuración de página"
 
-#: C/gtkmm-tutorial-in.xml:5121(para)
+#: C/gtkmm-tutorial-in.xml:5158(para)
 msgid ""
 "The <classname>PrintOperation</classname> class has a method called "
 "<methodname>set_default_page_setup()</methodname> which selects the default "
@@ -8784,7 +8889,7 @@ msgstr ""
 "<classname>Gtk::PaperSize</classname>, <literal>Gtk::PageOrientation</"
 "literal> y los márgenes específicos de la impresora."
 
-#: C/gtkmm-tutorial-in.xml:5131(para)
+#: C/gtkmm-tutorial-in.xml:5168(para)
 msgid ""
 "You should save the chosen <classname>Gtk::PageSetup</classname> so you can "
 "use it again if the page setup dialog is shown again."
@@ -8792,7 +8897,7 @@ msgstr ""
 "Debe guardar la <classname>Gtk::PageSetup</classname> elegida para poder "
 "usarla luego si se vuelve a mostrar el diálogo de configuración de la página."
 
-#: C/gtkmm-tutorial-in.xml:5135(programlisting)
+#: C/gtkmm-tutorial-in.xml:5172(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -8805,12 +8910,12 @@ msgstr ""
 "Glib::RefPtr&lt;Gtk::PageSetup&gt; new_page_setup = Gtk::run_page_setup_dialog(*this, m_refPageSetup, 
m_refSettings);\n"
 "m_refPageSetup = new_page_setup;\n"
 
-#: C/gtkmm-tutorial-in.xml:5134(para) C/gtkmm-tutorial-in.xml:5199(para)
-#: C/gtkmm-tutorial-in.xml:9911(para)
+#: C/gtkmm-tutorial-in.xml:5171(para) C/gtkmm-tutorial-in.xml:5236(para)
+#: C/gtkmm-tutorial-in.xml:10036(para)
 msgid "For instance, <placeholder-1/>"
 msgstr "Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5146(para)
+#: C/gtkmm-tutorial-in.xml:5183(para)
 msgid ""
 "The Cairo coordinate system, in the <literal>draw_page</literal> handler, is "
 "automatically rotated to the current page orientation. It is normally within "
@@ -8827,11 +8932,11 @@ msgstr ""
 "Para seleccionar otras unidades, use el método <methodname>PrintOperation::"
 "set_unit()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:5158(title)
+#: C/gtkmm-tutorial-in.xml:5195(title)
 msgid "Rendering text"
 msgstr "Renderizar texto"
 
-#: C/gtkmm-tutorial-in.xml:5160(para)
+#: C/gtkmm-tutorial-in.xml:5197(para)
 msgid ""
 "Text rendering is done using Pango. The <classname>Pango::Layout</classname> "
 "object for printing should be created by calling the "
@@ -8858,7 +8963,7 @@ msgstr ""
 "las <classname>Pango::LayoutLine</classname> que aparecen dentro del número "
 "de página pedido."
 
-#: C/gtkmm-tutorial-in.xml:5175(para)
+#: C/gtkmm-tutorial-in.xml:5212(para)
 msgid ""
 "See <link linkend=\"sec-printing-example-simple\">an example</link> of "
 "exactly how this can be done."
@@ -8866,11 +8971,11 @@ msgstr ""
 "Consulte <link linkend=\"sec-printing-example-simple\">un ejemplo</link> de "
 "cómo realizar esto exactamente. "
 
-#: C/gtkmm-tutorial-in.xml:5183(title)
+#: C/gtkmm-tutorial-in.xml:5220(title)
 msgid "Asynchronous operations"
 msgstr "Operaciones asíncronas"
 
-#: C/gtkmm-tutorial-in.xml:5185(para)
+#: C/gtkmm-tutorial-in.xml:5222(para)
 msgid ""
 "By default, <methodname>PrintOperation::run()</methodname> returns when a "
 "print operation is completed. If you need to run a non-blocking print "
@@ -8885,7 +8990,7 @@ msgstr ""
 "las plataformas soportan <methodname>set_allow_async()</methodname>, la "
 "señal <literal>done</literal> se emitirá de todos modos."
 
-#: C/gtkmm-tutorial-in.xml:5192(para)
+#: C/gtkmm-tutorial-in.xml:5229(para)
 msgid ""
 "<methodname>run()</methodname> may return "
 "<literal>PRINT_OPERATION_RESULT_IN_PROGRESS</literal>. To track status and "
@@ -8897,7 +9002,7 @@ msgstr ""
 "estado y manejar el resultado de un error, necesita implementar manejadores "
 "de las señales <literal>done</literal> y <literal>status_changed</literal>."
 
-#: C/gtkmm-tutorial-in.xml:5200(programlisting)
+#: C/gtkmm-tutorial-in.xml:5237(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -8914,7 +9019,7 @@ msgstr ""
 "op-&gt;signal_done().connect(sigc::bind(sigc::mem_fun(*this, &amp;ExampleWindow::on_printoperation_done), 
op));\n"
 "// run the op\n"
 
-#: C/gtkmm-tutorial-in.xml:5210(programlisting)
+#: C/gtkmm-tutorial-in.xml:5247(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -8941,7 +9046,7 @@ msgstr ""
 "    op-&gt;signal_status_changed().connect(sigc::bind(sigc::mem_fun(*this, 
&amp;ExampleWindow::on_printoperation_status_changed), op));\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:5209(para)
+#: C/gtkmm-tutorial-in.xml:5246(para)
 msgid ""
 "Second, check for an error and connect to the <literal>status_changed</"
 "literal> signal. For instance: <placeholder-1/>"
@@ -8949,7 +9054,7 @@ msgstr ""
 "Segundo, comprobar si hay errores y conectar la señal "
 "<literal>status_changed</literal>. Por ejemplo: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5225(programlisting)
+#: C/gtkmm-tutorial-in.xml:5262(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -8974,15 +9079,15 @@ msgstr ""
 "  //update UI\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:5224(para)
+#: C/gtkmm-tutorial-in.xml:5261(para)
 msgid "Finally, check the status. For instance, <placeholder-1/>"
 msgstr "Por último, comprobar el estado. Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5241(title)
+#: C/gtkmm-tutorial-in.xml:5278(title)
 msgid "Export to PDF"
 msgstr "Exportar a PDF"
 
-#: C/gtkmm-tutorial-in.xml:5245(programlisting)
+#: C/gtkmm-tutorial-in.xml:5282(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -8997,7 +9102,7 @@ msgstr ""
 "op-&gt;set_export_filename(\"test.pdf\");\n"
 "Gtk::PrintOperationResult res = op-&gt;run(Gtk::PRINT_OPERATION_ACTION_EXPORT);\n"
 
-#: C/gtkmm-tutorial-in.xml:5242(para)
+#: C/gtkmm-tutorial-in.xml:5279(para)
 msgid ""
 "The 'Print to file' option is available in the print dialog, without the "
 "need for extra implementation. However, it is sometimes useful to generate a "
@@ -9008,11 +9113,11 @@ msgstr ""
 "generar un archivo pdf directamente desde el código. Por ejemplo, "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5257(title)
+#: C/gtkmm-tutorial-in.xml:5294(title)
 msgid "Extending the print dialog"
 msgstr "Extender el diálogo de impresión"
 
-#: C/gtkmm-tutorial-in.xml:5264(para)
+#: C/gtkmm-tutorial-in.xml:5301(para)
 msgid ""
 "Set the title of the tab via <methodname>PrintOperation::set_custom_tab_label"
 "()</methodname>, create a new widget and return it from the "
@@ -9025,7 +9130,7 @@ msgstr ""
 "Probablemente quiera que este sea un widget contenedor, empaquetado con "
 "algunos otros."
 
-#: C/gtkmm-tutorial-in.xml:5274(para)
+#: C/gtkmm-tutorial-in.xml:5311(para)
 msgid ""
 "Get the data from the widgets in the <literal>custom_widget_apply</literal> "
 "signal handler."
@@ -9033,13 +9138,13 @@ msgstr ""
 "Obtenga los datos de los widgets en el manejador de señales "
 "<literal>custom_widget_apply</literal>."
 
-#: C/gtkmm-tutorial-in.xml:5259(para)
+#: C/gtkmm-tutorial-in.xml:5296(para)
 msgid "You may add a custom tab to the print dialog: <placeholder-1/>"
 msgstr ""
 "Puede añadir una pestaña personalizada al diálogo de impresión: <placeholder-"
 "1/>"
 
-#: C/gtkmm-tutorial-in.xml:5289(programlisting)
+#: C/gtkmm-tutorial-in.xml:5326(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -9090,7 +9195,7 @@ msgstr ""
 "  //...\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:5282(para)
+#: C/gtkmm-tutorial-in.xml:5319(para)
 msgid ""
 "Although the <literal>custom_widget_apply</literal> signal provides the "
 "widget you previously created, to simplify things you can keep the widgets "
@@ -9106,15 +9211,15 @@ msgstr ""
 "<literal>m_Entry</literal> como miembro de su clase "
 "<classname>CustomPrintOperation</classname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5316(para)
+#: C/gtkmm-tutorial-in.xml:5353(para)
 msgid "The example in examples/book/printing/advanced demonstrates this."
 msgstr "El ejemplo en examples/book/printing/advanced demuestra esto."
 
-#: C/gtkmm-tutorial-in.xml:5323(title)
+#: C/gtkmm-tutorial-in.xml:5360(title)
 msgid "Preview"
 msgstr "Vista previa"
 
-#: C/gtkmm-tutorial-in.xml:5329(programlisting)
+#: C/gtkmm-tutorial-in.xml:5366(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -9129,7 +9234,7 @@ msgstr ""
 "// ...set up op...\n"
 "op-&gt;run(Gtk::PRINT_OPERATION_ACTION_PREVIEW, *this);\n"
 
-#: C/gtkmm-tutorial-in.xml:5325(para)
+#: C/gtkmm-tutorial-in.xml:5362(para)
 msgid ""
 "The native GTK+ print dialog has a preview button, but you may also start a "
 "preview directly from an application: <placeholder-1/>"
@@ -9138,7 +9243,7 @@ msgstr ""
 "pero también puede comenzar una previsualización directamente desde una "
 "aplicación: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5337(para)
+#: C/gtkmm-tutorial-in.xml:5374(para)
 msgid ""
 "On Unix, the default preview handler uses an external viewer program. On "
 "Windows, the native preview dialog will be shown. If necessary you may "
@@ -9151,7 +9256,7 @@ msgstr ""
 "proporcionar un diálogo de previsualización personalizado. Consulte el "
 "ejemplo en /examples/book/printing/advanced."
 
-#: C/gtkmm-tutorial-in.xml:5352(para)
+#: C/gtkmm-tutorial-in.xml:5389(para)
 msgid ""
 "The following example demonstrates how to print some input from a user "
 "interface. It shows how to implement <literal>on_begin_print</literal> and "
@@ -9163,15 +9268,15 @@ msgstr ""
 "<literal>on_draw_page</literal>, como también cómo rastrear el estado de la "
 "impresión y actualizar sus opciones."
 
-#: C/gtkmm-tutorial-in.xml:5360(title)
+#: C/gtkmm-tutorial-in.xml:5397(title)
 msgid "Printing - Simple"
 msgstr "Impresión simple"
 
-#: C/gtkmm-tutorial-in.xml:5375(title)
+#: C/gtkmm-tutorial-in.xml:5412(title)
 msgid "Recently Used Documents"
 msgstr "Documentos usados recientemente"
 
-#: C/gtkmm-tutorial-in.xml:5377(para)
+#: C/gtkmm-tutorial-in.xml:5414(para)
 msgid ""
 "<application>gtkmm</application> provides an easy way to manage recently "
 "used documents. The classes involved in implementing this functionality are "
@@ -9188,7 +9293,7 @@ msgstr ""
 "classname>, <classname>RecentAction</classname>, y <classname>RecentFilter</"
 "classname>."
 
-#: C/gtkmm-tutorial-in.xml:5387(para)
+#: C/gtkmm-tutorial-in.xml:5424(para)
 msgid ""
 "Each item in the list of recently used files is identified by its URI, and "
 "can have associated metadata. The metadata can be used to specify how the "
@@ -9202,11 +9307,11 @@ msgstr ""
 "MIME, qué aplicación lo registró, si es privado de esta aplicación y muchas "
 "otras cosas."
 
-#: C/gtkmm-tutorial-in.xml:5395(title)
+#: C/gtkmm-tutorial-in.xml:5432(title)
 msgid "RecentManager"
 msgstr "RecentManager"
 
-#: C/gtkmm-tutorial-in.xml:5396(para)
+#: C/gtkmm-tutorial-in.xml:5433(para)
 msgid ""
 "<classname>RecentManager</classname> acts as a database of recently used "
 "files. You use this class to register new files, remove files from the list, "
@@ -9218,7 +9323,7 @@ msgstr ""
 "nuevos, eliminarlos o buscarlos. Hay una lista de archivos usados "
 "recientemente por cada usuario."
 
-#: C/gtkmm-tutorial-in.xml:5402(para)
+#: C/gtkmm-tutorial-in.xml:5439(para)
 msgid ""
 "You can create a new <classname>RecentManager</classname>, but you'll most "
 "likely just want to use the default one. You can get a reference to the "
@@ -9230,7 +9335,7 @@ msgstr ""
 "del <classname>RecentManager</classname> predeterminado con "
 "<methodname>get_default()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:5408(para)
+#: C/gtkmm-tutorial-in.xml:5445(para)
 msgid ""
 "<classname>RecentManager</classname> is the model of a model-view pattern, "
 "where the view is a class that implements the <classname>RecentChooser</"
@@ -9240,11 +9345,11 @@ msgstr ""
 "cuya vista es la clase que implementa la interfaz <classname>RecentChooser</"
 "classname>."
 
-#: C/gtkmm-tutorial-in.xml:5414(title)
+#: C/gtkmm-tutorial-in.xml:5451(title)
 msgid "Adding Items to the List of Recent Files"
 msgstr "Agregar elementos a la lista de archivos recientes"
 
-#: C/gtkmm-tutorial-in.xml:5415(para)
+#: C/gtkmm-tutorial-in.xml:5452(para)
 msgid ""
 "To add a new file to the list of recent documents, in the simplest case, you "
 "only need to provide the URI. For example:"
@@ -9252,7 +9357,7 @@ msgstr ""
 "Para añadir un archivo nuevo a la lista de documentos recientes, en el caso "
 "más simple, sólo necesita proporcionar su URI. Por ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:5419(programlisting)
+#: C/gtkmm-tutorial-in.xml:5456(programlisting)
 #, no-wrap
 msgid ""
 "Glib::RefPtr&lt;Gtk::RecentManager&gt; recent_manager = Gtk::RecentManager::get_default();\n"
@@ -9261,7 +9366,7 @@ msgstr ""
 "Glib::RefPtr&lt;Gtk::RecentManager&gt; recent_manager = Gtk::RecentManager::get_default();\n"
 "recent_manager-&gt;add_item(uri);"
 
-#: C/gtkmm-tutorial-in.xml:5421(para)
+#: C/gtkmm-tutorial-in.xml:5458(para)
 msgid ""
 "If you want to register a file with metadata, you can pass a "
 "<classname>RecentManager::Data</classname> parameter to <methodname>add_item"
@@ -9273,7 +9378,7 @@ msgstr ""
 "methodname>. Los metadatos que pueden establecerse en un elemento archivo "
 "particular son los siguientes:"
 
-#: C/gtkmm-tutorial-in.xml:5429(para)
+#: C/gtkmm-tutorial-in.xml:5466(para)
 msgid ""
 "<varname>app_exec</varname>: The command line to be used to launch this "
 "resource. This string may contain the \"f\" and \"u\" escape characters "
@@ -9283,7 +9388,7 @@ msgstr ""
 "este recurso. La cadena puede contener los caracteres de escape «f» y «u» que "
 "se expandirán en la ruta del archivo de recursos y el URI respectivamente"
 
-#: C/gtkmm-tutorial-in.xml:5435(para)
+#: C/gtkmm-tutorial-in.xml:5472(para)
 msgid ""
 "<varname>app_name</varname>: The name of the application that registered the "
 "resource"
@@ -9291,7 +9396,7 @@ msgstr ""
 "<varname>app_name</varname>: el nombre de la aplicación que registró el "
 "recurso"
 
-#: C/gtkmm-tutorial-in.xml:5439(para)
+#: C/gtkmm-tutorial-in.xml:5476(para)
 msgid ""
 "<varname>description</varname>: A short description of the resource as a UTF-"
 "8 encoded string"
@@ -9299,7 +9404,7 @@ msgstr ""
 "<varname>description</varname>: una descripción corta del recurso en una "
 "cadena codificada en UTF-8"
 
-#: C/gtkmm-tutorial-in.xml:5443(para)
+#: C/gtkmm-tutorial-in.xml:5480(para)
 msgid ""
 "<varname>display_name</varname>: The name of the resource to be used for "
 "display as a UTF-8 encoded string"
@@ -9307,7 +9412,7 @@ msgstr ""
 "<varname>display_name</varname>: el nombre del recurso que se mostrará como "
 "una cadena codificada en UTF-8"
 
-#: C/gtkmm-tutorial-in.xml:5447(para)
+#: C/gtkmm-tutorial-in.xml:5484(para)
 msgid ""
 "<varname>groups</varname>: A list of groups associated with this item. "
 "Groups are essentially arbitrary strings associated with a particular "
@@ -9319,7 +9424,7 @@ msgstr ""
 "particular. Puede pensar en ellos como «categorías» (como «correo-e», "
 "«gráficos», etc), o etiquetas del recurso"
 
-#: C/gtkmm-tutorial-in.xml:5453(para)
+#: C/gtkmm-tutorial-in.xml:5490(para)
 msgid ""
 "<varname>is_private</varname>: Whether this resource should be visible only "
 "to applications that have registered it or not"
@@ -9327,11 +9432,11 @@ msgstr ""
 "<varname>is_private</varname>: determina si el recurso debe ser visible sólo "
 "a las aplicaciones que lo han registrado o no"
 
-#: C/gtkmm-tutorial-in.xml:5457(para)
+#: C/gtkmm-tutorial-in.xml:5494(para)
 msgid "<varname>mime_type</varname>: The MIME type of the resource"
 msgstr "<varname>mime_type</varname>: el tipo MIME del recurso"
 
-#: C/gtkmm-tutorial-in.xml:5460(para)
+#: C/gtkmm-tutorial-in.xml:5497(para)
 msgid ""
 "In addition to adding items to the list, you can also look up items from the "
 "list and modify or remove items."
@@ -9339,11 +9444,11 @@ msgstr ""
 "Además de añadir elementos a la lista, puede buscarlos y modificarlos o "
 "eliminarlos."
 
-#: C/gtkmm-tutorial-in.xml:5466(title)
+#: C/gtkmm-tutorial-in.xml:5503(title)
 msgid "Looking up Items in the List of Recent Files"
 msgstr "Buscar elementos en la lista de archivos recientes"
 
-#: C/gtkmm-tutorial-in.xml:5467(para)
+#: C/gtkmm-tutorial-in.xml:5504(para)
 msgid ""
 "To look up recently used files, <classname>RecentManager</classname> "
 "provides several functions. To look up a specific item by its URI, you can "
@@ -9360,7 +9465,7 @@ msgstr ""
 "<methodname>lookup_item()</methodname> arroja una excepción "
 "<classname>RecentManagerError</classname>. Por ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:5476(programlisting)
+#: C/gtkmm-tutorial-in.xml:5513(programlisting)
 #, no-wrap
 msgid ""
 "Glib::RefPtr&lt;Gtk::RecentInfo&gt; info;\n"
@@ -9391,7 +9496,7 @@ msgstr ""
 "  // item was found\n"
 "}"
 
-#: C/gtkmm-tutorial-in.xml:5489(para)
+#: C/gtkmm-tutorial-in.xml:5526(para)
 msgid ""
 "A <classname>RecentInfo</classname> object is essentially an object "
 "containing all of the metadata about a single recently-used file. You can "
@@ -9403,7 +9508,7 @@ msgstr ""
 "Puede utilizar este objeto para buscar cualquiera de las propiedades "
 "enumeradas <link linkend=\"list-file-metadata\">anteriormente</link>."
 
-#: C/gtkmm-tutorial-in.xml:5495(para)
+#: C/gtkmm-tutorial-in.xml:5532(para)
 msgid ""
 "If you don't want to look for a specific URI, but instead want to get a list "
 "of all recently used items, <classname>RecentManager</classname> provides "
@@ -9419,12 +9524,12 @@ msgstr ""
 "archivos usados recientemente. El siguiente código demuestra cómo puede "
 "obtener una lista de todos los archivos usados recientemente:"
 
-#: C/gtkmm-tutorial-in.xml:5503(programlisting)
+#: C/gtkmm-tutorial-in.xml:5540(programlisting)
 #, no-wrap
 msgid "std::vector&lt; Glib::RefPtr&lt;Gtk::RecentInfo&gt; &gt; info_list = recent_manager-&gt;get_items();"
 msgstr "std::vector&lt; Glib::RefPtr&lt;Gtk::RecentInfo&gt; &gt; info_list = recent_manager-&gt;get_items();"
 
-#: C/gtkmm-tutorial-in.xml:5504(para)
+#: C/gtkmm-tutorial-in.xml:5541(para)
 msgid ""
 "The maximum age of items in the recently used files list can be set with "
 "<methodname>Gtk::Settings::property_gtk_recent_files_max_age()</methodname>. "
@@ -9435,11 +9540,11 @@ msgstr ""
 "property_gtk_recent_files_max_age()</methodname>. El valor predeterminado es "
 "30 días."
 
-#: C/gtkmm-tutorial-in.xml:5511(title)
+#: C/gtkmm-tutorial-in.xml:5548(title)
 msgid "Modifying the List of Recent Files"
 msgstr "Modificar la lista de archivos recientes"
 
-#: C/gtkmm-tutorial-in.xml:5512(para)
+#: C/gtkmm-tutorial-in.xml:5549(para)
 msgid ""
 "There may be times when you need to modify the list of recent files. For "
 "instance, if a file is moved or renamed, you may need to update the file's "
@@ -9454,7 +9559,7 @@ msgstr ""
 "actualizar la localización de un elemento usando <methodname>move_item()</"
 "methodname>."
 
-#: C/gtkmm-tutorial-in.xml:5519(para)
+#: C/gtkmm-tutorial-in.xml:5556(para)
 msgid ""
 "In addition to changing a file's URI, you can also remove items from the "
 "list, either one at a time or by clearing them all at once. The former is "
@@ -9466,7 +9571,7 @@ msgstr ""
 "<methodname>remove_item()</methodname>, y lo último con "
 "<methodname>purge_items()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:5526(para)
+#: C/gtkmm-tutorial-in.xml:5563(para)
 msgid ""
 "The functions <methodname>move_item()</methodname>, <methodname>remove_item()"
 "</methodname> and <methodname>purge_items()</methodname> have no effect on "
@@ -9478,11 +9583,11 @@ msgstr ""
 "los archivos en sí a los que se refieren los URI, sólo modifican la lista de "
 "archivos recientes."
 
-#: C/gtkmm-tutorial-in.xml:5538(title)
+#: C/gtkmm-tutorial-in.xml:5575(title)
 msgid "RecentChooser"
 msgstr "RecentChooser"
 
-#: C/gtkmm-tutorial-in.xml:5539(para)
+#: C/gtkmm-tutorial-in.xml:5576(para)
 msgid ""
 "<classname>RecentChooser</classname> is an interface that can be implemented "
 "by widgets displaying the list of recently used files. <application>gtkmm</"
@@ -9499,7 +9604,7 @@ msgstr ""
 "<classname>RecentChooserMenu</classname>, y <classname>RecentAction</"
 "classname>."
 
-#: C/gtkmm-tutorial-in.xml:5548(para)
+#: C/gtkmm-tutorial-in.xml:5585(para)
 msgid ""
 "<classname>RecentChooserWidget</classname> is a simple widget for displaying "
 "a list of recently used files. <classname>RecentChooserWidget</classname> is "
@@ -9512,7 +9617,7 @@ msgstr ""
 "<classname>RecentChooserDialog</classname>, pero puede empotrarlo en su "
 "interfaz de usuario si quiere."
 
-#: C/gtkmm-tutorial-in.xml:5555(para)
+#: C/gtkmm-tutorial-in.xml:5592(para)
 msgid ""
 "<classname>RecentChooserMenu</classname> and <classname>RecentAction</"
 "classname> allow you to list recently used files as a menu."
@@ -9520,11 +9625,11 @@ msgstr ""
 "<classname>RecentChooserMenu</classname> y <classname>RecentAction</"
 "classname> le permiten listar archivos usados recientemente en un menú."
 
-#: C/gtkmm-tutorial-in.xml:5561(title)
+#: C/gtkmm-tutorial-in.xml:5598(title)
 msgid "Simple RecentChooserDialog example"
 msgstr "Ejemplo de RecentChooserDialog"
 
-#: C/gtkmm-tutorial-in.xml:5562(para)
+#: C/gtkmm-tutorial-in.xml:5599(para)
 msgid ""
 "Shown below is a simple example of how to use the "
 "<classname>RecentChooserDialog</classname> and the <classname>RecentAction</"
@@ -9539,7 +9644,7 @@ msgstr ""
 "seleccione este elemento, aparecerá un diálogo mostrando la lista de "
 "archivos recientemente usados."
 
-#: C/gtkmm-tutorial-in.xml:5572(para)
+#: C/gtkmm-tutorial-in.xml:5609(para)
 msgid ""
 "If this is the first time you're using a program that uses the Recent Files "
 "framework, the dialog may be empty at first. Otherwise it should show the "
@@ -9550,7 +9655,7 @@ msgstr ""
 "mostrar la lista de documentos recientemente usados registrados por otras "
 "aplicaciones."
 
-#: C/gtkmm-tutorial-in.xml:5579(para)
+#: C/gtkmm-tutorial-in.xml:5616(para)
 msgid ""
 "After selecting the <guimenuitem>Recent Files Dialog</guimenuitem> menu "
 "item, you should see something similar to the following window."
@@ -9558,7 +9663,7 @@ msgstr ""
 "Después de haber seleccionado el elemento del menú <guimenuitem>Recent Files "
 "Dialog</guimenuitem>, debería ver algo similar a la siguiente ventana."
 
-#: C/gtkmm-tutorial-in.xml:5588(para)
+#: C/gtkmm-tutorial-in.xml:5625(para)
 msgid ""
 "The constructor for <classname>ExampleWindow</classname> creates the menu "
 "using <classname>UIManager</classname> (see <xref linkend=\"chapter-menus-"
@@ -9570,11 +9675,11 @@ msgstr ""
 "and-toolbars\"/> para obtener más información). Luego, añade el menú y la "
 "barra de herramientas a la ventana."
 
-#: C/gtkmm-tutorial-in.xml:5596(title)
+#: C/gtkmm-tutorial-in.xml:5633(title)
 msgid "Filtering Recent Files"
 msgstr "Filtrar los archivos recientes"
 
-#: C/gtkmm-tutorial-in.xml:5597(para)
+#: C/gtkmm-tutorial-in.xml:5634(para)
 msgid ""
 "For any of the <classname>RecentChooser</classname> classes, if you don't "
 "wish to display all of the items in the list of recent files, you can filter "
@@ -9598,7 +9703,7 @@ msgstr ""
 "methodname>). También proporciona la posibilidad de filtrar de acuerdo a "
 "cuánto tiempo pasó desde que el archivo se modificó y a qué grupo pertenece."
 
-#: C/gtkmm-tutorial-in.xml:5610(para)
+#: C/gtkmm-tutorial-in.xml:5647(para)
 msgid ""
 "After you've created and set up the filter to match only the items you want, "
 "you can apply a filter to a chooser widget with the "
@@ -9608,15 +9713,15 @@ msgstr ""
 "elementos que quiera, podrá aplicárselo a un widget selector con la función "
 "<methodname>RecentChooser::add_filter()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:5620(title)
+#: C/gtkmm-tutorial-in.xml:5657(title)
 msgid "Plugs and Sockets"
 msgstr "«Plugs» y «Sockets»"
 
-#: C/gtkmm-tutorial-in.xml:5622(title) C/gtkmm-tutorial-in.xml:5779(title)
+#: C/gtkmm-tutorial-in.xml:5659(title) C/gtkmm-tutorial-in.xml:5816(title)
 msgid "Overview"
 msgstr "Vista general"
 
-#: C/gtkmm-tutorial-in.xml:5623(para)
+#: C/gtkmm-tutorial-in.xml:5660(para)
 msgid ""
 "From time to time, it may be useful to be able to embed a widget from "
 "another application within your application. <application>gtkmm</"
@@ -9634,7 +9739,7 @@ msgstr ""
 "que esté ejecutándose en un proceso completamente diferente, estas clases "
 "pueden resultar muy útiles."
 
-#: C/gtkmm-tutorial-in.xml:5632(para)
+#: C/gtkmm-tutorial-in.xml:5669(para)
 msgid ""
 "The communication between a <classname>Socket</classname> and a "
 "<classname>Plug</classname> follows the XEmbed protocol. This protocol has "
@@ -9647,7 +9752,7 @@ msgstr ""
 "mismo nivel de integración cuando se incrusta un widget Qt en uno GTK+ o "
 "viceversa."
 
-#: C/gtkmm-tutorial-in.xml:5638(para)
+#: C/gtkmm-tutorial-in.xml:5675(para)
 msgid ""
 "The way that <classname>Sockets</classname> and <classname>Plugs</classname> "
 "work together is through their window ids. Both a <classname>Socket</"
@@ -9663,11 +9768,11 @@ msgstr ""
 "<methodname>get_id()</methodname>. El uso de estos ID se explicará a "
 "continuación en la <xref linkend=\"sec-connecting-plugs-sockets\"/>."
 
-#: C/gtkmm-tutorial-in.xml:5647(title)
+#: C/gtkmm-tutorial-in.xml:5684(title)
 msgid "Sockets"
 msgstr "«Sockets»"
 
-#: C/gtkmm-tutorial-in.xml:5648(para)
+#: C/gtkmm-tutorial-in.xml:5685(para)
 msgid ""
 "A <classname>Socket</classname> is a special kind of container widget that "
 "provides the ability to embed widgets from one process into another process "
@@ -9677,11 +9782,11 @@ msgstr ""
 "que ofrece la posibilidad de incorporar widgets de un proceso en otro "
 "proceso de manera que sea transparente para el usuario."
 
-#: C/gtkmm-tutorial-in.xml:5655(title)
+#: C/gtkmm-tutorial-in.xml:5692(title)
 msgid "Plugs"
 msgstr "«Plugs»"
 
-#: C/gtkmm-tutorial-in.xml:5656(para)
+#: C/gtkmm-tutorial-in.xml:5693(para)
 msgid ""
 "A <classname>Plug</classname> is a special kind of Window that can be "
 "plugged into a <classname>Socket</classname>. Besides the normal properties "
@@ -9698,7 +9803,7 @@ msgstr ""
 "<classname>Plug</classname> en el <classname>Socket</classname> que coincide "
 "con el ID."
 
-#: C/gtkmm-tutorial-in.xml:5665(para)
+#: C/gtkmm-tutorial-in.xml:5702(para)
 msgid ""
 "Since a <classname>Plug</classname> is just a special type of "
 "<classname>Gtk::Window</classname> class, you can add containers or widgets "
@@ -9708,11 +9813,11 @@ msgstr ""
 "<classname>Gtk::Window</classname>, puede añadirle contenedores o widgets "
 "como si fuera cualquier otra ventana."
 
-#: C/gtkmm-tutorial-in.xml:5672(title)
+#: C/gtkmm-tutorial-in.xml:5709(title)
 msgid "Connecting Plugs and Sockets"
 msgstr "Conectar «plugs» y «sockets»"
 
-#: C/gtkmm-tutorial-in.xml:5673(para)
+#: C/gtkmm-tutorial-in.xml:5710(para)
 msgid ""
 "After a <classname>Socket</classname> or <classname>Plug</classname> object "
 "is realized, you can obtain its ID with its <methodname>get_id()</"
@@ -9724,7 +9829,7 @@ msgstr ""
 "<methodname>get_id()</methodname>. Este ID puede entonces compartirse con "
 "otros procesos para que estos sepan cómo conectarse entre sí."
 
-#: C/gtkmm-tutorial-in.xml:5684(para)
+#: C/gtkmm-tutorial-in.xml:5721(para)
 msgid ""
 "Create a <classname>Socket</classname> object in one process and pass the ID "
 "of that <classname>Socket</classname> to another process so that it can "
@@ -9742,7 +9847,7 @@ msgstr ""
 "particular después de su creación, por lo que le debe pasar el ID del "
 "<classname>Socket</classname> al constructor del <classname>Plug</classname>."
 
-#: C/gtkmm-tutorial-in.xml:5697(para)
+#: C/gtkmm-tutorial-in.xml:5734(para)
 msgid ""
 "Create a <classname>Plug</classname> independantly from any particular "
 "<classname>Socket</classname> and pass the ID of the <classname>Plug</"
@@ -9758,15 +9863,15 @@ msgstr ""
 "particular usando la función <methodname>Socket::add_id()</methodname>. Este "
 "es el enfoque utilizado en el siguiente ejemplo."
 
-#: C/gtkmm-tutorial-in.xml:5680(para)
+#: C/gtkmm-tutorial-in.xml:5717(para)
 msgid "There are two basic strategies that can be used: <placeholder-1/>"
 msgstr "Existen dos estrategias básicas que pueden usarse: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5712(title)
+#: C/gtkmm-tutorial-in.xml:5749(title)
 msgid "Plugs and Sockets Example"
 msgstr "Ejemplo de «Plugs» y «Sockets»."
 
-#: C/gtkmm-tutorial-in.xml:5713(para)
+#: C/gtkmm-tutorial-in.xml:5750(para)
 msgid ""
 "The following is a simple example of using sockets and plugs. The method of "
 "communication between processes is deliberately kept very simple: The "
@@ -9782,7 +9887,7 @@ msgstr ""
 "archivo. En un programa real, probablemente quiera usar un método más "
 "sofisticado de comunicación entre procesos."
 
-#: C/gtkmm-tutorial-in.xml:5722(para)
+#: C/gtkmm-tutorial-in.xml:5759(para)
 msgid ""
 "This example creates two executable programs: <filename>socket</filename> "
 "and <filename>plug</filename>. The idea is that <filename>socket</filename> "
@@ -9800,7 +9905,7 @@ msgstr ""
 "<filename>socket</filename>. Para ver el ejemplo en acción, ejecute los "
 "siguientes comandos en orden desde la carpeta de ejemplos:"
 
-#: C/gtkmm-tutorial-in.xml:5731(para)
+#: C/gtkmm-tutorial-in.xml:5768(para)
 msgid ""
 "Start the <filename>plug</filename> program and send it to the background "
 "(or just use a different terminal)."
@@ -9808,30 +9913,30 @@ msgstr ""
 "Ejecute el programa <filename>plug</filename> y envíelo a segundo plano (o "
 "simplemente use otra terminal)."
 
-#: C/gtkmm-tutorial-in.xml:5735(screen)
+#: C/gtkmm-tutorial-in.xml:5772(screen)
 #, no-wrap
 msgid "$ ./plug &amp;"
 msgstr "$ ./plug &amp;"
 
-#: C/gtkmm-tutorial-in.xml:5736(para)
+#: C/gtkmm-tutorial-in.xml:5773(para)
 msgid "After which you should see something like the following:"
 msgstr "Después de esto debería ver algo así:"
 
-#: C/gtkmm-tutorial-in.xml:5739(screen)
+#: C/gtkmm-tutorial-in.xml:5776(screen)
 #, no-wrap
 msgid "The window ID is: 69206019"
 msgstr "The window ID is: 69206019"
 
-#: C/gtkmm-tutorial-in.xml:5740(para)
+#: C/gtkmm-tutorial-in.xml:5777(para)
 msgid "Then start the <filename>socket</filename> program:"
 msgstr "Entonces, ejecute el programa <filename>socket</filename>:"
 
-#: C/gtkmm-tutorial-in.xml:5741(screen)
+#: C/gtkmm-tutorial-in.xml:5778(screen)
 #, no-wrap
 msgid "$ ./socket"
 msgstr "$ ./socket"
 
-#: C/gtkmm-tutorial-in.xml:5742(para)
+#: C/gtkmm-tutorial-in.xml:5779(para)
 msgid ""
 "After starting <filename>socket</filename>, you should see the following "
 "output in the terminal:"
@@ -9839,7 +9944,7 @@ msgstr ""
 "Después de haber ejecutado <filename>socket</filename>, debería ver la "
 "siguiente salida en la terminal:"
 
-#: C/gtkmm-tutorial-in.xml:5746(screen)
+#: C/gtkmm-tutorial-in.xml:5783(screen)
 #, no-wrap
 msgid ""
 "I've been embedded.\n"
@@ -9848,7 +9953,7 @@ msgstr ""
 "I've been embedded.\n"
 "A plug was added"
 
-#: C/gtkmm-tutorial-in.xml:5748(para)
+#: C/gtkmm-tutorial-in.xml:5785(para)
 msgid ""
 "The first line of output is from <filename>plug</filename>, after it has "
 "been notified that it has been embedded inside of a <classname>Socket</"
@@ -9864,7 +9969,7 @@ msgstr ""
 "describió anteriormente, la ventana <filename>socket</filename> debería "
 "verse más o menos así:"
 
-#: C/gtkmm-tutorial-in.xml:5760(para)
+#: C/gtkmm-tutorial-in.xml:5797(para)
 msgid ""
 "If for some reason the <classname>Socket</classname> couldn't attach the "
 "<classname>Plug</classname>, the window would look something like this:"
@@ -9872,11 +9977,11 @@ msgstr ""
 "Si, por alguna razón, el <classname>Socket</classname> no pudiera adjuntar "
 "el <classname>Plug</classname>, la ventana se vería más o menos así:"
 
-#: C/gtkmm-tutorial-in.xml:5771(title)
+#: C/gtkmm-tutorial-in.xml:5808(title)
 msgid "Keyboard Events"
 msgstr "Eventos de teclado"
 
-#: C/gtkmm-tutorial-in.xml:5772(para)
+#: C/gtkmm-tutorial-in.xml:5809(para)
 msgid ""
 "X events differ in some ways from other signals. These differences are "
 "described in the <link linkend=\"sec-xeventsignals\">X Event signals</link> "
@@ -9888,7 +9993,7 @@ msgstr ""
 "eventos de X</link> en el apéndice. Aquí se usarán los eventos del teclado "
 "para mostrar cómo pueden usarse en un programa los eventos de X."
 
-#: C/gtkmm-tutorial-in.xml:5780(para)
+#: C/gtkmm-tutorial-in.xml:5817(para)
 msgid ""
 "Whenever you press or release a key, an event is emitted. You can connect a "
 "signal handler to handle such events."
@@ -9896,7 +10001,7 @@ msgstr ""
 "Siempre que presiona o suelta una tecla, se emite un evento. Puede conectar "
 "un manejador de señales para manejar tales eventos."
 
-#: C/gtkmm-tutorial-in.xml:5784(para)
+#: C/gtkmm-tutorial-in.xml:5821(para)
 msgid ""
 "To receive the keyboard events, you must first call the <methodname>Gtk::"
 "Widget::add_events()</methodname> function with a bit mask of the events "
@@ -9917,7 +10022,7 @@ msgstr ""
 "completamente la señal (<literal>true</literal>) o permitir la propagación "
 "del evento (<literal>false</literal>)."
 
-#: C/gtkmm-tutorial-in.xml:5795(para)
+#: C/gtkmm-tutorial-in.xml:5832(para)
 msgid ""
 "To determine which key was pressed or released, you read the value of "
 "<varname>GdkEventKey::keyval</varname> and compare it with a constant in the "
@@ -9931,7 +10036,7 @@ msgstr ""
 "estados de las teclas modificadoras (mayús, control, etc.) están disponibles "
 "como banderas de bits en <varname>GdkEventKey::state</varname>."
 
-#: C/gtkmm-tutorial-in.xml:5804(programlisting)
+#: C/gtkmm-tutorial-in.xml:5841(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -9974,11 +10079,11 @@ msgstr ""
 "m_entry.signal_key_release_event().connect( sigc::ptr_fun(&amp;on_key_press_or_release_event) );\n"
 "m_entry.add_events(Gdk::KEY_PRESS_MASK | Gdk::KEY_RELEASE_MASK);\n"
 
-#: C/gtkmm-tutorial-in.xml:5802(para) C/gtkmm-tutorial-in.xml:8076(para)
+#: C/gtkmm-tutorial-in.xml:5839(para) C/gtkmm-tutorial-in.xml:8142(para)
 msgid "Here's a simple example: <placeholder-1/>"
 msgstr "Un ejemplo sencillo: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5828(para)
+#: C/gtkmm-tutorial-in.xml:5865(para)
 msgid ""
 "In this example there are three keyboard shortcuts: <keycap>Alt</keycap>"
 "+<keycap>1</keycap> selects the first radio button, <keycap>Alt</keycap>"
@@ -9995,15 +10100,15 @@ msgstr ""
 "default-signal-handlers\">Sobrecargar los manejadores de señales "
 "predeterminados</link> en el apéndice."
 
-#: C/gtkmm-tutorial-in.xml:5839(title)
+#: C/gtkmm-tutorial-in.xml:5876(title)
 msgid "Keyboard Events - Simple"
 msgstr "Eventos del teclado: simple"
 
-#: C/gtkmm-tutorial-in.xml:5850(title)
+#: C/gtkmm-tutorial-in.xml:5887(title)
 msgid "Event Propagation"
 msgstr "Propagación de eventos"
 
-#: C/gtkmm-tutorial-in.xml:5851(para)
+#: C/gtkmm-tutorial-in.xml:5888(para)
 msgid ""
 "Event propagation means that, when an event is emitted on a particular "
 "widget, it can be passed to its parent widget (and that widget can pass it "
@@ -10015,7 +10120,7 @@ msgstr ""
 "su padre, y así sucesivamente) y, si el padre tiene un manejador de eventos, "
 "se llamará."
 
-#: C/gtkmm-tutorial-in.xml:5857(para)
+#: C/gtkmm-tutorial-in.xml:5894(para)
 msgid ""
 "Contrary to other events, keyboard events are first sent to the toplevel "
 "window (<classname>Gtk::Window</classname>), where it will be checked for "
@@ -10031,7 +10136,7 @@ msgstr ""
 "teclado). Después de esto (y asumuiendo que no se manejó el evento), se "
 "envía al widget que tiene el foco, y la propagación comienza desde allí."
 
-#: C/gtkmm-tutorial-in.xml:5865(para)
+#: C/gtkmm-tutorial-in.xml:5902(para)
 msgid ""
 "The event will propagate until it reaches the top-level widget, or until you "
 "stop the propagation by returning <literal>true</literal> from an event "
@@ -10041,7 +10146,7 @@ msgstr ""
 "que detenga la propagación devolviendo <literal>true</literal> desde un "
 "manejador de eventos."
 
-#: C/gtkmm-tutorial-in.xml:5870(para)
+#: C/gtkmm-tutorial-in.xml:5907(para)
 msgid ""
 "Notice, that after canceling an event, no other function will be called "
 "(even if it is from the same widget)."
@@ -10049,7 +10154,7 @@ msgstr ""
 "Tenga en cuenta que, después de haber cancelado un evento, no se llamará a "
 "ninguna otra función (incluso si es del mismo widget)."
 
-#: C/gtkmm-tutorial-in.xml:5877(para)
+#: C/gtkmm-tutorial-in.xml:5914(para)
 msgid ""
 "In this example there are three event handlers that are called after "
 "<classname>Gtk::Window</classname>'s default event handler, one in the "
@@ -10061,7 +10166,7 @@ msgstr ""
 "uno en la <classname>Gtk::Entry</classname>, uno en el <classname>Gtk::Grid</"
 "classname> y uno en la <classname>Gtk::Window</classname>."
 
-#: C/gtkmm-tutorial-in.xml:5883(para)
+#: C/gtkmm-tutorial-in.xml:5920(para)
 msgid ""
 "In the <classname>Gtk::Window</classname>, we have also the default handler "
 "overridden (<methodname>on_key_release_event()</methodname>), and another "
@@ -10073,7 +10178,7 @@ msgstr ""
 "y otro manejador que se llama antes del predeterminado "
 "(<methodname>windowKeyReleaseBefore()</methodname>)."
 
-#: C/gtkmm-tutorial-in.xml:5889(para)
+#: C/gtkmm-tutorial-in.xml:5926(para)
 msgid ""
 "The purpose of this example is to show the steps the event takes when it is "
 "emitted."
@@ -10081,7 +10186,7 @@ msgstr ""
 "El propósito de este ejemplo es mostrar los pasos que el evento sigue cuando "
 "se emite."
 
-#: C/gtkmm-tutorial-in.xml:5892(para)
+#: C/gtkmm-tutorial-in.xml:5929(para)
 msgid ""
 "When you write in the entry, a key release event will be emitted, which will "
 "go first to the toplevel window (<classname>Gtk::Window</classname>), since "
@@ -10106,19 +10211,19 @@ msgstr ""
 "propaga, el texto que esté escribiendo aparecerá en el <classname>Label</"
 "classname> arriba del <classname>Entry</classname>."
 
-#: C/gtkmm-tutorial-in.xml:5907(title)
+#: C/gtkmm-tutorial-in.xml:5944(title)
 msgid "Keyboard Events - Event Propagation"
 msgstr "Eventos de teclado: propagación de eventos"
 
-#: C/gtkmm-tutorial-in.xml:5919(title)
+#: C/gtkmm-tutorial-in.xml:5956(title)
 msgid "Timeouts, I/O and Idle Functions"
 msgstr "Tiempos de espera, E/S y funciones en espera"
 
-#: C/gtkmm-tutorial-in.xml:5922(title)
+#: C/gtkmm-tutorial-in.xml:5959(title)
 msgid "Timeouts"
 msgstr "Tiempos de espera"
 
-#: C/gtkmm-tutorial-in.xml:5924(para)
+#: C/gtkmm-tutorial-in.xml:5961(para)
 msgid ""
 "You may be wondering how to make <application>gtkmm</application> do useful "
 "work while it's idling along. Happily, you have several options. Using the "
@@ -10130,7 +10235,7 @@ msgstr ""
 "opciones. Usando los siguientes métodos puede crear un método de tiempo de "
 "espera que se llamará cada una cierta cantidad de milisegundos."
 
-#: C/gtkmm-tutorial-in.xml:5931(programlisting)
+#: C/gtkmm-tutorial-in.xml:5968(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10139,7 +10244,7 @@ msgstr ""
 "\n"
 "sigc::connection Glib::SignalTimeout::connect(const sigc::slot&lt;bool&gt;&amp; slot, unsigned int 
interval, int priority = Glib::PRIORITY_DEFAULT);\n"
 
-#: C/gtkmm-tutorial-in.xml:5936(para)
+#: C/gtkmm-tutorial-in.xml:5973(para)
 msgid ""
 "The first argument is a <classname>slot</classname> you wish to have called "
 "when the timeout occurs. The second argument is the number of milliseconds "
@@ -10153,7 +10258,7 @@ msgstr ""
 "<classname>sigc::connection</classname> que podrá usar para desactivar la "
 "conexión utilizando su método <methodname>disconnect()</methodname>:"
 
-#: C/gtkmm-tutorial-in.xml:5946(programlisting)
+#: C/gtkmm-tutorial-in.xml:5983(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10162,7 +10267,7 @@ msgstr ""
 "\n"
 "my_connection.disconnect();\n"
 
-#: C/gtkmm-tutorial-in.xml:5958(programlisting)
+#: C/gtkmm-tutorial-in.xml:5995(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10171,7 +10276,7 @@ msgstr ""
 "\n"
 "bool MyCallback() { std::cout &lt;&lt; \"Hello World!\\n\" &lt;&lt; std::endl; return true; }\n"
 
-#: C/gtkmm-tutorial-in.xml:5951(para)
+#: C/gtkmm-tutorial-in.xml:5988(para)
 msgid ""
 "Another way of destroying the connection is your signal handler. It has to "
 "be of the type <classname>sigc::slot&lt;bool&gt;</classname>. As you see "
@@ -10185,7 +10290,7 @@ msgstr ""
 "valor del tipo <literal>bool</literal>. Una definición de un método de "
 "ejemplo podría verse así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:5964(para)
+#: C/gtkmm-tutorial-in.xml:6001(para)
 msgid ""
 "You can stop the timeout method by returning <literal>false</literal> from "
 "your signal handler. Therefore, if you want your method to be called "
@@ -10196,15 +10301,15 @@ msgstr ""
 "quiere que su método se llame repetidamente, debe devolver <literal>true</"
 "literal>."
 
-#: C/gtkmm-tutorial-in.xml:5970(para)
+#: C/gtkmm-tutorial-in.xml:6007(para)
 msgid "Here's an example of this technique:"
 msgstr "Un ejemplo de esta técnica:"
 
-#: C/gtkmm-tutorial-in.xml:5979(title)
+#: C/gtkmm-tutorial-in.xml:6016(title)
 msgid "Monitoring I/O"
 msgstr "Monitorizar E/S"
 
-#: C/gtkmm-tutorial-in.xml:5981(para)
+#: C/gtkmm-tutorial-in.xml:6018(para)
 msgid ""
 "A nifty feature of Glib (one of the libraries underlying <application>gtkmm</"
 "application>) is the ability to have it check for data on a file descriptor "
@@ -10216,7 +10321,7 @@ msgstr ""
 "un descriptor de archivos. Esto es especialmente útil para aplicaciones de "
 "red. Se usa el siguiente método para lograrlo:"
 
-#: C/gtkmm-tutorial-in.xml:5989(programlisting)
+#: C/gtkmm-tutorial-in.xml:6026(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10229,7 +10334,7 @@ msgstr ""
 "                                    int fd, Glib::IOCondition condition,\n"
 "                                    int priority = Glib::PRIORITY_DEFAULT);\n"
 
-#: C/gtkmm-tutorial-in.xml:5996(para)
+#: C/gtkmm-tutorial-in.xml:6033(para)
 msgid ""
 "The first argument is a slot you wish to have called when then the specified "
 "event (see argument 3) occurs on the file descriptor you specify using "
@@ -10241,7 +10346,7 @@ msgstr ""
 "que especifica usando el segundo argumento. El tercer argumento puede ser "
 "uno o más (usando <literal>|</literal>) de:"
 
-#: C/gtkmm-tutorial-in.xml:6006(para)
+#: C/gtkmm-tutorial-in.xml:6043(para)
 msgid ""
 "Glib::IO_IN - Call your method when there is data ready for reading on your "
 "file descriptor."
@@ -10249,7 +10354,7 @@ msgstr ""
 "Glib::IO_IN: llame a su método cuando haya datos listos para leerse en su "
 "descriptor de archivos."
 
-#: C/gtkmm-tutorial-in.xml:6014(para)
+#: C/gtkmm-tutorial-in.xml:6051(para)
 msgid ""
 "Glib::IO_OUT - Call your method when the file descriptor is ready for "
 "writing."
@@ -10257,7 +10362,7 @@ msgstr ""
 "Glib::IO_OUT: llame a su método cuando el descriptor de archivos esté listo "
 "para la escritura."
 
-#: C/gtkmm-tutorial-in.xml:6022(para)
+#: C/gtkmm-tutorial-in.xml:6059(para)
 msgid ""
 "Glib::IO_PRI - Call your method when the file descriptor has urgent data to "
 "be read."
@@ -10265,7 +10370,7 @@ msgstr ""
 "Glib::IO_PRI: llame a su método cuando el descriptor de archivos tenga datos "
 "urgentes para leer."
 
-#: C/gtkmm-tutorial-in.xml:6029(para)
+#: C/gtkmm-tutorial-in.xml:6066(para)
 msgid ""
 "Glib::IO_ERR - Call your method when an error has occurred on the file "
 "descriptor."
@@ -10273,7 +10378,7 @@ msgstr ""
 "Glib::IO_ERR: llame a su método cuando haya ocurrido un error en el "
 "descriptor de archivos."
 
-#: C/gtkmm-tutorial-in.xml:6036(para)
+#: C/gtkmm-tutorial-in.xml:6073(para)
 msgid ""
 "Glib::IO_HUP - Call your method when hung up (the connection has been broken "
 "usually for pipes and sockets)."
@@ -10281,7 +10386,7 @@ msgstr ""
 "Glib::IO_HUP: llame a su método cuando se cuelgue (la conexión se ha roto, "
 "normalmente por tuberías y «sockets»)."
 
-#: C/gtkmm-tutorial-in.xml:6043(para)
+#: C/gtkmm-tutorial-in.xml:6080(para)
 msgid ""
 "The return value is a <classname>sigc::connection</classname> that may be "
 "used to stop monitoring this file descriptor using its <methodname>disconnect"
@@ -10293,7 +10398,7 @@ msgstr ""
 "método <methodname>disconnect()</methodname>. El manejador de señales "
 "<parameter>slot</parameter> debe declararse de la siguiente manera:"
 
-#: C/gtkmm-tutorial-in.xml:6050(programlisting)
+#: C/gtkmm-tutorial-in.xml:6087(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10302,7 +10407,7 @@ msgstr ""
 "\n"
 "bool input_callback(Glib::IOCondition condition);\n"
 
-#: C/gtkmm-tutorial-in.xml:6055(para)
+#: C/gtkmm-tutorial-in.xml:6092(para)
 msgid ""
 "where <parameter>condition</parameter> is as specified above. As usual the "
 "slot is created with <function>sigc::mem_fun()</function> (for a member "
@@ -10314,7 +10419,7 @@ msgstr ""
 "()</function> (para un método miembro de un objeto), o <function>sigc::"
 "ptr_fun()</function> (para una función)."
 
-#: C/gtkmm-tutorial-in.xml:6062(para)
+#: C/gtkmm-tutorial-in.xml:6099(para)
 msgid ""
 "A little example follows. To use the example just execute it from a "
 "terminal; it doesn't create a window. It will create a pipe named "
@@ -10330,11 +10435,11 @@ msgstr ""
 "literal>. El ejemplo imprimirá cada línea que introduzca hasta que ejecute "
 "<literal>echo \"Q\" &gt; testfifo</literal>."
 
-#: C/gtkmm-tutorial-in.xml:6076(title)
+#: C/gtkmm-tutorial-in.xml:6113(title)
 msgid "Idle Functions"
 msgstr "Funciones en espera"
 
-#: C/gtkmm-tutorial-in.xml:6078(para)
+#: C/gtkmm-tutorial-in.xml:6115(para)
 msgid ""
 "If you want to specify a method that gets called when nothing else is "
 "happening, use the following:"
@@ -10342,7 +10447,7 @@ msgstr ""
 "Si quiere especificar un método que se llame cuando no está sucediendo nada "
 "más, use lo siguiente:"
 
-#: C/gtkmm-tutorial-in.xml:6083(programlisting)
+#: C/gtkmm-tutorial-in.xml:6120(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10351,7 +10456,7 @@ msgstr ""
 "\n"
 "sigc::connection  Glib::SignalIdle::connect(const sigc::slot&lt;bool&gt;&amp; slot, int priority = 
Glib::PRIORITY_DEFAULT_IDLE);\n"
 
-#: C/gtkmm-tutorial-in.xml:6088(para)
+#: C/gtkmm-tutorial-in.xml:6125(para)
 msgid ""
 "This causes <application>gtkmm</application> to call the specified method "
 "whenever nothing else is happening. You can add a priority (lower numbers "
@@ -10368,7 +10473,7 @@ msgstr ""
 "devolviendo <literal>false</literal> en el manejador de señales, que debe "
 "declararse como se indica a continuación:"
 
-#: C/gtkmm-tutorial-in.xml:6098(programlisting)
+#: C/gtkmm-tutorial-in.xml:6135(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10377,7 +10482,7 @@ msgstr ""
 "\n"
 "bool idleFunc();\n"
 
-#: C/gtkmm-tutorial-in.xml:6103(para)
+#: C/gtkmm-tutorial-in.xml:6140(para)
 msgid ""
 "Since this is very similar to the methods above this explanation should be "
 "sufficient to understand what's going on. However, here's a little example:"
@@ -10386,7 +10491,7 @@ msgstr ""
 "explicación es suficiente para entender lo que sucede. Sin embargo, aquí hay "
 "un pequeño ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:6110(para)
+#: C/gtkmm-tutorial-in.xml:6147(para)
 msgid ""
 "This example points out the difference of idle and timeout methods a little. "
 "If you need methods that are called periodically, and speed is not very "
@@ -10400,7 +10505,7 @@ msgstr ""
 "Si quiere métodos que se llamen tan a menudo como sea posible (como calcular "
 "un fractal en segundo plano), entonces use métodos de espera."
 
-#: C/gtkmm-tutorial-in.xml:6118(para)
+#: C/gtkmm-tutorial-in.xml:6155(para)
 msgid ""
 "Try executing the example and increasing the system load. The upper progress "
 "bar will increase steadily; the lower one will slow down."
@@ -10409,15 +10514,15 @@ msgstr ""
 "de progreso superior incrementará progresivamente, la inferior irá más "
 "lentamente."
 
-#: C/gtkmm-tutorial-in.xml:6128(title)
+#: C/gtkmm-tutorial-in.xml:6165(title)
 msgid "Memory management"
 msgstr "Gestión de la memoria"
 
-#: C/gtkmm-tutorial-in.xml:6134(title)
+#: C/gtkmm-tutorial-in.xml:6171(title)
 msgid "Normal C++ memory management"
 msgstr "Gestión normal de la memoria en C++"
 
-#: C/gtkmm-tutorial-in.xml:6136(para)
+#: C/gtkmm-tutorial-in.xml:6173(para)
 msgid ""
 "<application>gtkmm</application> allows the programmer to control the "
 "lifetime (that is, the construction and destruction) of any widget in the "
@@ -10440,15 +10545,15 @@ msgstr ""
 "permiten al programador usar un subconjunto de las características de "
 "gestión de memoria de C++."
 
-#: C/gtkmm-tutorial-in.xml:6148(para)
+#: C/gtkmm-tutorial-in.xml:6185(para)
 msgid "Here are some examples of normal C++ memory management:"
 msgstr "Algunos ejemplos de gestión normal de la memoria en C++:"
 
-#: C/gtkmm-tutorial-in.xml:6151(title)
+#: C/gtkmm-tutorial-in.xml:6188(title)
 msgid "Class Scope widgets"
 msgstr "Widgets de alcance de clase"
 
-#: C/gtkmm-tutorial-in.xml:6153(para)
+#: C/gtkmm-tutorial-in.xml:6190(para)
 msgid ""
 "If a programmer does not need dynamic memory allocation, automatic widgets "
 "in class scope may be used. One advantage of automatic widgets in class "
@@ -10461,7 +10566,7 @@ msgstr ""
 "en un único lugar. El programador no se arriesga a fugas de memoria por no "
 "<literal>eliminar</literal> un widget."
 
-#: C/gtkmm-tutorial-in.xml:6160(para)
+#: C/gtkmm-tutorial-in.xml:6197(para)
 msgid ""
 "The primary disadvantage of using class scope widgets is revealing the class "
 "implementation rather than the class interface in the class header."
@@ -10469,7 +10574,7 @@ msgstr ""
 "La principal desventaja de usar widgets de alcance de clase es revelar la "
 "implementación de la clase en lugar de la interfaz en su cabecera."
 
-#: C/gtkmm-tutorial-in.xml:6166(programlisting)
+#: C/gtkmm-tutorial-in.xml:6203(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10492,11 +10597,11 @@ msgstr ""
 "  // will be destroyed when the Foo object is destroyed\n"
 "};\n"
 
-#: C/gtkmm-tutorial-in.xml:6180(title)
+#: C/gtkmm-tutorial-in.xml:6217(title)
 msgid "Function scope widgets"
 msgstr "Widgets de alcance de función"
 
-#: C/gtkmm-tutorial-in.xml:6186(programlisting)
+#: C/gtkmm-tutorial-in.xml:6223(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10515,7 +10620,7 @@ msgstr ""
 "  app-&gt;run();\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:6182(para)
+#: C/gtkmm-tutorial-in.xml:6219(para)
 msgid ""
 "If a programmer does not need a class scope widget, a function scope widget "
 "may also be used. The advantages to function scope over class scope are the "
@@ -10526,11 +10631,11 @@ msgstr ""
 "sobre el alcance de clase consisten en una mayor cantidad de datos ocultos y "
 "menos dependencias. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6198(title)
+#: C/gtkmm-tutorial-in.xml:6235(title)
 msgid "Dynamic allocation with new and delete"
 msgstr "Asignación dinámica con new y delete"
 
-#: C/gtkmm-tutorial-in.xml:6206(programlisting)
+#: C/gtkmm-tutorial-in.xml:6243(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10547,7 +10652,7 @@ msgstr ""
 "\n"
 "delete pButton;\n"
 
-#: C/gtkmm-tutorial-in.xml:6200(para)
+#: C/gtkmm-tutorial-in.xml:6237(para)
 msgid ""
 "Although, in most cases, the programmer will prefer to allow containers to "
 "automatically destroy their children using <function>Gtk::manage()</"
@@ -10564,11 +10669,11 @@ msgstr ""
 "pueden usarse. <placeholder-1/> Aquí, el programador elimina "
 "<varname>pButton</varname> para evitar una fuga de memoria."
 
-#: C/gtkmm-tutorial-in.xml:6220(title)
+#: C/gtkmm-tutorial-in.xml:6257(title)
 msgid "Managed Widgets"
 msgstr "Widgets gestionados"
 
-#: C/gtkmm-tutorial-in.xml:6222(para)
+#: C/gtkmm-tutorial-in.xml:6259(para)
 msgid ""
 "Alternatively, you can let a widget's container control when the widget is "
 "destroyed. In most cases, you want a widget to last only as long as the "
@@ -10587,11 +10692,11 @@ msgstr ""
 "pack_start()</methodname>, o un método similar. Ahora el widget se destruirá "
 "cuando se destruya su contenedor."
 
-#: C/gtkmm-tutorial-in.xml:6233(title)
+#: C/gtkmm-tutorial-in.xml:6270(title)
 msgid "Dynamic allocation with manage() and add()"
 msgstr "Asignación dinamica mediante el uso de manage() y add()"
 
-#: C/gtkmm-tutorial-in.xml:6235(para)
+#: C/gtkmm-tutorial-in.xml:6272(para)
 msgid ""
 "<application>gtkmm</application> provides the <function>manage()</function> "
 "function and <methodname>add()</methodname> methods to create and destroy "
@@ -10607,7 +10712,7 @@ msgstr ""
 "function> marca un widget para que, cuando se añada a un contenedor, este se "
 "vuelva responsable de su eliminación."
 
-#: C/gtkmm-tutorial-in.xml:6245(programlisting)
+#: C/gtkmm-tutorial-in.xml:6282(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10624,7 +10729,7 @@ msgstr ""
 "  add(*pButton); //add *pButton to MyContainer\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:6244(para)
+#: C/gtkmm-tutorial-in.xml:6281(para)
 msgid ""
 "<placeholder-1/> Now, when objects of type <classname>MyContainer</"
 "classname> are destroyed, the button will also be deleted. It is no longer "
@@ -10637,7 +10742,7 @@ msgstr ""
 "eliminar <varname>pButton</varname> para liberar su memoria; su eliminación "
 "se ha delegado al objeto <classname>MyContainer</classname>."
 
-#: C/gtkmm-tutorial-in.xml:6258(para)
+#: C/gtkmm-tutorial-in.xml:6295(para)
 msgid ""
 "Of course, a top-level container will not be added to another container. The "
 "programmer is responsible for destroying the top-level container using one "
@@ -10650,11 +10755,11 @@ msgstr ""
 "ejemplo, una ventana de nivel superior podría ser sólo una instancia en su "
 "función <function>main()</function>."
 
-#: C/gtkmm-tutorial-in.xml:6270(title)
+#: C/gtkmm-tutorial-in.xml:6307(title)
 msgid "Shared resources"
 msgstr "Recursos compartidos"
 
-#: C/gtkmm-tutorial-in.xml:6272(para)
+#: C/gtkmm-tutorial-in.xml:6309(para)
 msgid ""
 "Some objects, such as <classname>Gdk::Pixbuf</classname>s and "
 "<classname>Pango::Font</classname>s, are obtained from a shared store. "
@@ -10673,7 +10778,7 @@ msgstr ""
 "tiene su propio puntero inteligente, <classname>Cairo::RefPtr&lt;&gt;</"
 "classname>."
 
-#: C/gtkmm-tutorial-in.xml:6285(programlisting)
+#: C/gtkmm-tutorial-in.xml:6322(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10682,7 +10787,7 @@ msgstr ""
 "\n"
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; pixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 
-#: C/gtkmm-tutorial-in.xml:6282(para)
+#: C/gtkmm-tutorial-in.xml:6319(para)
 msgid ""
 "Objects such as <classname>Gdk::Pixbuf</classname> can only be instantiated "
 "with a <methodname>create()</methodname> function. For instance, "
@@ -10692,7 +10797,7 @@ msgstr ""
 "instanciarse con una función <methodname>create()</methodname>. Por ejemplo, "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6294(programlisting)
+#: C/gtkmm-tutorial-in.xml:6331(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10709,7 +10814,7 @@ msgstr ""
 "  width = pixbuf-&gt;get_width();\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:6290(para)
+#: C/gtkmm-tutorial-in.xml:6327(para)
 msgid ""
 "You have no way of getting a bare <classname>Gdk::Pixbuf</classname>. In the "
 "example, <varname>pixbuf</varname> is a smart pointer, so you can do this, "
@@ -10720,7 +10825,7 @@ msgstr ""
 "que puede hacer esto, de manera muy similar a un puntero normal: "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6303(para)
+#: C/gtkmm-tutorial-in.xml:6340(para)
 msgid ""
 "When <varname>pixbuf</varname> goes out of scope an <methodname>unref()</"
 "methodname> will happen in the background and you don't need to worry about "
@@ -10732,7 +10837,7 @@ msgstr ""
 "él. No hay <literal>new</literal>, por lo que no hay <literal>delete</"
 "literal>."
 
-#: C/gtkmm-tutorial-in.xml:6311(programlisting)
+#: C/gtkmm-tutorial-in.xml:6348(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10741,7 +10846,7 @@ msgstr ""
 "\n"
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; pixbuf2 = pixbuf;\n"
 
-#: C/gtkmm-tutorial-in.xml:6309(para)
+#: C/gtkmm-tutorial-in.xml:6346(para)
 msgid ""
 "If you copy a <classname>RefPtr</classname>, for instance <placeholder-1/> , "
 "or if you pass it as a method argument or a return type, then "
@@ -10755,7 +10860,7 @@ msgstr ""
 "asegurarse de que la instancia no se destruirá hasta que el último "
 "<classname>RefPtr</classname> haya salido del alcance."
 
-#: C/gtkmm-tutorial-in.xml:6319(para)
+#: C/gtkmm-tutorial-in.xml:6356(para)
 msgid ""
 "See the <link linkend=\"chapter-refptr\">appendix</link> for detailed "
 "information about RefPtr."
@@ -10763,15 +10868,15 @@ msgstr ""
 "Consulte el <link linkend=\"chapter-refptr\">apéndice</link> para obtener "
 "información detallada acerca de «RefPtr»."
 
-#: C/gtkmm-tutorial-in.xml:6324(para)
+#: C/gtkmm-tutorial-in.xml:6361(para)
 msgid "Bjarne Stroustrup, \"The C++ Programming Language\" - section 14.4.2"
 msgstr "Bjarne Stroustrup, «The C++ Programming Language»: sección 14.4.2"
 
-#: C/gtkmm-tutorial-in.xml:6327(para)
+#: C/gtkmm-tutorial-in.xml:6364(para)
 msgid "Nicolai M. Josuttis, \"The C++ Standard Library\" - section 4.2"
 msgstr "Nicolai M. Josuttis, «The C++ Standard Library» - sección 4.2"
 
-#: C/gtkmm-tutorial-in.xml:6320(para)
+#: C/gtkmm-tutorial-in.xml:6357(para)
 msgid ""
 "If you wish to learn more about smartpointers, you might look in these "
 "books: <placeholder-1/>"
@@ -10779,11 +10884,11 @@ msgstr ""
 "Si quiere aprender más acerca de punteros inteligentes, puede echarle un "
 "vistazo a estos libros: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6338(title)
+#: C/gtkmm-tutorial-in.xml:6375(title)
 msgid "Glade and Gtk::Builder"
 msgstr "Glade y Gtk::Builder"
 
-#: C/gtkmm-tutorial-in.xml:6339(para)
+#: C/gtkmm-tutorial-in.xml:6376(para)
 msgid ""
 "Although you can use C++ code to instantiate and arrange widgets, this can "
 "soon become tedious and repetitive. And it requires a recompilation to show "
@@ -10802,26 +10907,26 @@ msgstr ""
 "tiempo de ejecución y obtener un puntero a instancias de widgets nombradas "
 "específicamente."
 
-#: C/gtkmm-tutorial-in.xml:6352(simpara)
+#: C/gtkmm-tutorial-in.xml:6389(simpara)
 msgid "Less C++ code is required."
 msgstr "Se requiere menos código en C++."
 
-#: C/gtkmm-tutorial-in.xml:6353(simpara)
+#: C/gtkmm-tutorial-in.xml:6390(simpara)
 msgid "UI changes can be seen more quickly, so UIs are able to improve."
 msgstr ""
 "Los cambios en la IU pueden observarse más rápidamente, por lo se pueden "
 "mejorar las IU."
 
-#: C/gtkmm-tutorial-in.xml:6354(simpara)
+#: C/gtkmm-tutorial-in.xml:6391(simpara)
 msgid "Designers without programming skills can create and edit UIs."
 msgstr ""
 "Los diseñadores sin conocimientos de programación pueden crear y editar IU."
 
-#: C/gtkmm-tutorial-in.xml:6349(para)
+#: C/gtkmm-tutorial-in.xml:6386(para)
 msgid "This has the following advantages: <placeholder-1/>"
 msgstr "Esto tiene las siguientes ventajas: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6358(para)
+#: C/gtkmm-tutorial-in.xml:6395(para)
 msgid ""
 "You still need C++ code to deal with User Interface changes triggered by "
 "user actions, but using <application>Gtk::Builder</application> for the "
@@ -10832,11 +10937,11 @@ msgstr ""
 "<application>Gtk::Builder</application> para la distribución de los widgets "
 "le permite enfocarse en la implementación de esa funcionalidad."
 
-#: C/gtkmm-tutorial-in.xml:6365(title)
+#: C/gtkmm-tutorial-in.xml:6402(title)
 msgid "Loading the .glade file"
 msgstr "Cargar el archivo .glade"
 
-#: C/gtkmm-tutorial-in.xml:6370(programlisting)
+#: C/gtkmm-tutorial-in.xml:6407(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10845,7 +10950,7 @@ msgstr ""
 "\n"
 "Glib::RefPtr&lt;Gtk::Builder&gt; builder = Gtk::Builder::create_from_file(\"basic.glade\");\n"
 
-#: C/gtkmm-tutorial-in.xml:6366(para)
+#: C/gtkmm-tutorial-in.xml:6403(para)
 msgid ""
 "<classname>Gtk::Builder</classname> must be used via a <classname>Glib::"
 "RefPtr</classname>. Like all such classes, you need to use a "
@@ -10863,7 +10968,7 @@ msgstr ""
 "especificado así mediante la ventana <guilabel>Propiedades</guilabel> en "
 "<application>Glade</application>. "
 
-#: C/gtkmm-tutorial-in.xml:6379(programlisting)
+#: C/gtkmm-tutorial-in.xml:6416(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10872,7 +10977,7 @@ msgstr ""
 "\n"
 "Glib::RefPtr&lt;Gtk::Builder&gt; builder = Gtk::Builder::create_from_file(\"basic.glade\", 
\"treeview_products\");\n"
 
-#: C/gtkmm-tutorial-in.xml:6378(para)
+#: C/gtkmm-tutorial-in.xml:6415(para)
 msgid ""
 "To instantiate just one window, or just one of the child widgets, you can "
 "specify the name of a widget as the second parameter. For instance, "
@@ -10882,11 +10987,11 @@ msgstr ""
 "especificar el nombre del widget como segundo parámetro. Por ejemplo, "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6387(title)
+#: C/gtkmm-tutorial-in.xml:6424(title)
 msgid "Accessing widgets"
 msgstr "Acceso a widgets"
 
-#: C/gtkmm-tutorial-in.xml:6395(programlisting)
+#: C/gtkmm-tutorial-in.xml:6432(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -10897,7 +11002,7 @@ msgstr ""
 "Gtk::Dialog* pDialog = 0;\n"
 "builder-&gt;get_widget(\"DialogBasic\", pDialog);\n"
 
-#: C/gtkmm-tutorial-in.xml:6389(para)
+#: C/gtkmm-tutorial-in.xml:6426(para)
 msgid ""
 "To access a widget, for instance to <methodname>show()</methodname> a "
 "dialog, use the <methodname>get_widget()</methodname> method, providing the "
@@ -10912,7 +11017,7 @@ msgstr ""
 "el widget, o si es del tipo incorrecto, se asignará 0 al puntero. "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6401(para)
+#: C/gtkmm-tutorial-in.xml:6438(para)
 msgid ""
 "<application>Gtk::Builder</application> checks for a null pointer, and "
 "checks that the widget is of the expected type, and will show warnings on "
@@ -10922,7 +11027,7 @@ msgstr ""
 "el widget es del tipo esperado, y le advertirá en la línea de comandos de "
 "estos casos."
 
-#: C/gtkmm-tutorial-in.xml:6407(para)
+#: C/gtkmm-tutorial-in.xml:6444(para)
 msgid ""
 "Remember that you are not instantiating a widget with <methodname>get_widget"
 "()</methodname>, you are just obtaining a pointer to one that already "
@@ -10938,7 +11043,7 @@ msgstr ""
 "classname> con el mismo nombre de widget. Los widgets se instancian durante "
 "<methodname>Gtk::Builder::create_from_file()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:6416(para)
+#: C/gtkmm-tutorial-in.xml:6453(para)
 msgid ""
 "<methodname>get_widget()</methodname> returns child widgets that are "
 "<function>manage()</function>ed (see the <link linkend=\"chapter-memory"
@@ -10960,7 +11065,7 @@ msgstr ""
 "pueden gestionarse porque no tienen contenedor padre, por lo que debe "
 "eliminarlas en algún momento."
 
-#: C/gtkmm-tutorial-in.xml:6430(para)
+#: C/gtkmm-tutorial-in.xml:6467(para)
 msgid ""
 "This simple example shows how to load a <application>Glade</application> "
 "file at runtime and access the widgets with <application>Gtk::Builder</"
@@ -10970,11 +11075,11 @@ msgstr ""
 "application> en tiempo de ejecución y acceder a los widgets con "
 "<application>Gtk::Builder</application>."
 
-#: C/gtkmm-tutorial-in.xml:6443(title)
+#: C/gtkmm-tutorial-in.xml:6480(title)
 msgid "Using derived widgets"
 msgstr "Usar widgets derivados"
 
-#: C/gtkmm-tutorial-in.xml:6444(para)
+#: C/gtkmm-tutorial-in.xml:6481(para)
 msgid ""
 "You can use <application>Glade</application> to layout your own custom "
 "widgets derived from <application>gtkmm</application> widget classes. This "
@@ -10992,7 +11097,7 @@ msgstr ""
 "especificar su ubicación, widgets hijos y las propiedades de su clase base "
 "de <application>gtkmm</application>."
 
-#: C/gtkmm-tutorial-in.xml:6453(programlisting)
+#: C/gtkmm-tutorial-in.xml:6490(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -11003,7 +11108,7 @@ msgstr ""
 "DerivedDialog* pDialog = 0;\n"
 "builder-&gt;get_widget_derived(\"DialogBasic\", pDialog);\n"
 
-#: C/gtkmm-tutorial-in.xml:6452(para)
+#: C/gtkmm-tutorial-in.xml:6489(para)
 msgid ""
 "Use <methodname>Gtk::Builder::get_widget_derived()</methodname> like so: "
 "<placeholder-1/>"
@@ -11011,7 +11116,7 @@ msgstr ""
 "Use <methodname>Gtk::Builder::get_widget_derived()</methodname> así: "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6459(para)
+#: C/gtkmm-tutorial-in.xml:6496(para)
 msgid ""
 "Your derived class must have a constructor that takes a pointer to the "
 "underlying C type, and the <classname>Gtk::Builder</classname> instance. All "
@@ -11028,7 +11133,7 @@ msgstr ""
 "<classname>BaseObjectType</classname> como <type>GtkDialog</type>, por "
 "ejemplo)."
 
-#: C/gtkmm-tutorial-in.xml:6469(programlisting)
+#: C/gtkmm-tutorial-in.xml:6506(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -11043,7 +11148,7 @@ msgstr ""
 "{\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:6466(para)
+#: C/gtkmm-tutorial-in.xml:6503(para)
 msgid ""
 "You must call the base class's constructor in the initialization list, "
 "providing the C pointer. For instance, <placeholder-1/>"
@@ -11051,7 +11156,7 @@ msgstr ""
 "Debe llamar al constructor de la clase base en la lista de inicialización, "
 "proporcionándole el puntero de C. Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6481(programlisting)
+#: C/gtkmm-tutorial-in.xml:6518(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -11082,7 +11187,7 @@ msgstr ""
 "  }\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:6477(para)
+#: C/gtkmm-tutorial-in.xml:6514(para)
 msgid ""
 "You could then encapsulate the manipulation of the child widgets in the "
 "constructor of the derived class, maybe using <methodname>get_widget()</"
@@ -11094,7 +11199,7 @@ msgstr ""
 "methodname> o <methodname>get_widget_derived()</methodname> nuevamente. Por "
 "ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6499(para)
+#: C/gtkmm-tutorial-in.xml:6536(para)
 msgid ""
 "This example shows how to load a <application>Glade</application> file at "
 "runtime and access the widgets via a derived class."
@@ -11102,11 +11207,11 @@ msgstr ""
 "Este ejemplo mustra cómo cargar un archivo <application>Glade</application> "
 "en tiempo de ejecución y acceder a los widgets mediante una clase derivada."
 
-#: C/gtkmm-tutorial-in.xml:6512(title)
+#: C/gtkmm-tutorial-in.xml:6549(title)
 msgid "Internationalization and Localization"
 msgstr "Internacionalización y localización"
 
-#: C/gtkmm-tutorial-in.xml:6514(para)
+#: C/gtkmm-tutorial-in.xml:6551(para)
 msgid ""
 "<application>gtkmm</application> applications can easily support multiple "
 "languages, including non-European languages such as Chinese and right-to-"
@@ -11120,7 +11225,7 @@ msgstr ""
 "application> escrita apropiadamente y traducida usará el lenguaje apropiado "
 "en tiempo de ejecución basado en el entorno del usuario."
 
-#: C/gtkmm-tutorial-in.xml:6520(para)
+#: C/gtkmm-tutorial-in.xml:6557(para)
 msgid ""
 "You might not anticipate the need to support additional languages, but you "
 "can never rule it out. And it's easier to develop the application properly "
@@ -11130,7 +11235,7 @@ msgstr ""
 "nunca puede excluirla. Y es más fácil desarrollar la aplicación "
 "apropiadamente en primer lugar en vez de adecuarla después."
 
-#: C/gtkmm-tutorial-in.xml:6526(para)
+#: C/gtkmm-tutorial-in.xml:6563(para)
 msgid ""
 "The process of writing source code that allows for translation is called "
 "<literal>internationalization</literal>, often abbreviated to <literal>i18n</"
@@ -11144,7 +11249,7 @@ msgstr ""
 "veces abreviado <literal>l10n</literal>, proporciona el texto traducido a "
 "otros lenguajes, basado en ese código fuente."
 
-#: C/gtkmm-tutorial-in.xml:6534(para)
+#: C/gtkmm-tutorial-in.xml:6571(para)
 msgid ""
 "The main activity in the internationalization process is finding strings "
 "seen by users and marking them for translation. You do not need to do it all "
@@ -11158,7 +11263,7 @@ msgstr ""
 "correctamente, entonces su aplicación funcionará normalmente sin importar "
 "cuántas cadenas ha cubierto."
 
-#: C/gtkmm-tutorial-in.xml:6542(para)
+#: C/gtkmm-tutorial-in.xml:6579(para)
 msgid ""
 "String literals should be typed in the source code in English, but "
 "surrounded by a macro. The <application>gettext</application> (or intltool) "
@@ -11170,11 +11275,11 @@ msgstr ""
 "intltool) puede entonces extraer las cadenas marcadas para traducción, y "
 "sustituir el texto traducido en tiempo de ejecución."
 
-#: C/gtkmm-tutorial-in.xml:6550(title)
+#: C/gtkmm-tutorial-in.xml:6587(title)
 msgid "Preparing your project"
 msgstr "Preparar su proyecto"
 
-#: C/gtkmm-tutorial-in.xml:6553(para)
+#: C/gtkmm-tutorial-in.xml:6590(para)
 msgid ""
 "In the instructions below we will assume that you will not be using "
 "<application>gettext</application> directly, but <application>intltool</"
@@ -11196,7 +11301,7 @@ msgstr ""
 "como archivos <application>Glade</application>, en archivos "
 "<application>gettext</application><filename>.pot/.po</filename> estándar."
 
-#: C/gtkmm-tutorial-in.xml:6564(para)
+#: C/gtkmm-tutorial-in.xml:6601(para)
 msgid ""
 "We also assume that you are using autotools (e.g. <application>automake</"
 "application> and <application>autoconf</application>) to build your project, "
@@ -11213,7 +11318,7 @@ msgstr ""
 "cosas, se ocupa de parte de la inicialización de <application>intltool</"
 "application>."
 
-#: C/gtkmm-tutorial-in.xml:6577(para)
+#: C/gtkmm-tutorial-in.xml:6614(para)
 msgid ""
 "Create a sub-directory named <literal>po</literal> in your project's root "
 "directory. This directory will eventually contain all of your translations. "
@@ -11229,7 +11334,7 @@ msgstr ""
 "archivo <literal>ChangeLog</literal> en la carpeta <literal>po</literal> "
 "para que los traductores puedan rastrear los cambios de las traducciones."
 
-#: C/gtkmm-tutorial-in.xml:6587(para)
+#: C/gtkmm-tutorial-in.xml:6624(para)
 msgid ""
 "<literal>LINGUAS</literal> contains an alphabetically sorted list of codes "
 "identifying the languages for which your program is translated (comment "
@@ -11246,7 +11351,7 @@ msgstr ""
 "programa estuviera traducido al alemán y al japonés, su archivo "
 "<literal>LINGUAS</literal> se vería así:"
 
-#: C/gtkmm-tutorial-in.xml:6596(programlisting)
+#: C/gtkmm-tutorial-in.xml:6633(programlisting)
 #, no-wrap
 msgid ""
 "# keep this file sorted alphabetically, one language code per line\n"
@@ -11257,7 +11362,7 @@ msgstr ""
 "de\n"
 "ja"
 
-#: C/gtkmm-tutorial-in.xml:6599(para)
+#: C/gtkmm-tutorial-in.xml:6636(para)
 msgid ""
 "(In addition, you'd have the files <literal>ja.po</literal> and <literal>de."
 "po</literal> in your <literal>po</literal> directory which contain the "
@@ -11267,7 +11372,7 @@ msgstr ""
 "literal> en su carpeta <literal>po</literal> que contendrían las "
 "traducciones al alemán y al japonés, respectivamente)."
 
-#: C/gtkmm-tutorial-in.xml:6606(para)
+#: C/gtkmm-tutorial-in.xml:6643(para)
 msgid ""
 "<literal>POTFILES.in</literal> is a list of paths to all files which contain "
 "strings marked up for translation, starting from the project root directory. "
@@ -11283,7 +11388,7 @@ msgstr ""
 "archivos conteniendo cadenas que deben traducirse, su archivo "
 "<literal>POTFILES.in</literal> se vería así:"
 
-#: C/gtkmm-tutorial-in.xml:6615(programlisting)
+#: C/gtkmm-tutorial-in.xml:6652(programlisting)
 #, no-wrap
 msgid ""
 "src/main.cc\n"
@@ -11292,7 +11397,7 @@ msgstr ""
 "src/main.cc\n"
 "src/other.cc"
 
-#: C/gtkmm-tutorial-in.xml:6618(para)
+#: C/gtkmm-tutorial-in.xml:6655(para)
 msgid ""
 "If you are using <application>gettext</application> directly, you can only "
 "mark strings for translation if they are in source code file. However, if "
@@ -11315,7 +11420,7 @@ msgstr ""
 "archivos <filename>.glade</filename> a la lista en <literal>POTFILES.in</"
 "literal>."
 
-#: C/gtkmm-tutorial-in.xml:6631(para)
+#: C/gtkmm-tutorial-in.xml:6668(para)
 msgid ""
 "Now that there is a place to put your translations, you need to initialize "
 "<application>intltool</application> and <application>gettext</application>. "
@@ -11327,7 +11432,7 @@ msgstr ""
 "application>. Añádale el siguiente código a su <literal>configure.ac</"
 "literal>, substituyendo «programname» con el nombre de su programa:"
 
-#: C/gtkmm-tutorial-in.xml:6638(programlisting)
+#: C/gtkmm-tutorial-in.xml:6675(programlisting)
 #, no-wrap
 msgid ""
 "IT_PROG_INTLTOOL([0.35.0])\n"
@@ -11352,7 +11457,7 @@ msgstr ""
 "PROGRAMNAME_LOCALEDIR=[${datadir}/locale]\n"
 "AC_SUBST(PROGRAMNAME_LOCALEDIR)"
 
-#: C/gtkmm-tutorial-in.xml:6649(para)
+#: C/gtkmm-tutorial-in.xml:6686(para)
 msgid ""
 "This <varname>PROGRAMNAME_LOCALEDIR</varname> variable will be used later in "
 "the <literal>Makefile.am</literal> file, to define a macro that will be used "
@@ -11362,7 +11467,7 @@ msgstr ""
 "archivo <literal>Makefile.am</literal>, para definir una macro que se usará "
 "cuando inicialice <application>gettext</application> en su código fuente."
 
-#: C/gtkmm-tutorial-in.xml:6660(para)
+#: C/gtkmm-tutorial-in.xml:6697(para)
 msgid ""
 "Add <literal>po</literal> to the <literal>SUBDIRS</literal> variable. "
 "Without this, your translations won't get built and installed when you build "
@@ -11371,7 +11476,7 @@ msgstr ""
 "Añada <literal>po</literal> a la variable <literal>SUBDIRS</literal>. Sin "
 "esto, las traducciones no se construirán al construir el programa."
 
-#: C/gtkmm-tutorial-in.xml:6667(programlisting)
+#: C/gtkmm-tutorial-in.xml:6704(programlisting)
 #, no-wrap
 msgid ""
 "INTLTOOL_FILES = intltool-extract.in \\\n"
@@ -11382,11 +11487,11 @@ msgstr ""
 "                 intltool-merge.in \\\n"
 "                 intltool-update.in"
 
-#: C/gtkmm-tutorial-in.xml:6665(para)
+#: C/gtkmm-tutorial-in.xml:6702(para)
 msgid "Define <literal>INTLTOOL_FILES</literal> as: <placeholder-1/>"
 msgstr "Defina <literal>INTLTOOL_FILES</literal> como: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6673(para)
+#: C/gtkmm-tutorial-in.xml:6710(para)
 msgid ""
 "Add <literal>INTLTOOL_FILES</literal> to the <literal>EXTRA_DIST</literal> "
 "list of files. This ensures that when you do a <command>make dist</command>, "
@@ -11396,7 +11501,7 @@ msgstr ""
 "<literal>EXTRA_DIST</literal>. Esto asegura que cuando haga un <command>make "
 "dist</command>, este comando se incluya en el archivo fuente."
 
-#: C/gtkmm-tutorial-in.xml:6683(programlisting)
+#: C/gtkmm-tutorial-in.xml:6720(programlisting)
 #, no-wrap
 msgid ""
 "DISTCLEANFILES = ... intltool-extract \\\n"
@@ -11409,15 +11514,15 @@ msgstr ""
 "                 intltool-update \\\n"
 "                 po/.intltool-merge-cache"
 
-#: C/gtkmm-tutorial-in.xml:6681(para)
+#: C/gtkmm-tutorial-in.xml:6718(para)
 msgid "Update your <literal>DISTCLEANFILES</literal>: <placeholder-1/>"
 msgstr "Actualice su <literal>DISTCLEANFILES</literal>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6656(para)
+#: C/gtkmm-tutorial-in.xml:6693(para)
 msgid "In the top-level Makefile.am: <placeholder-1/>"
 msgstr "En el Makefile.am de nivel superior: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6692(para)
+#: C/gtkmm-tutorial-in.xml:6729(para)
 msgid ""
 "In your <literal>src/Makefile.am</literal>, update your "
 "<literal>AM_CPPFLAGS</literal> to add the following preprocessor macro "
@@ -11426,12 +11531,12 @@ msgstr ""
 "En su <literal>src/Makefile.am</literal>, actualice su <literal>AM_CPPFLAGS</"
 "literal> para añadir la siguiente definición de macro de preprocesador:"
 
-#: C/gtkmm-tutorial-in.xml:6697(programlisting)
+#: C/gtkmm-tutorial-in.xml:6734(programlisting)
 #, no-wrap
 msgid "AM_CPPFLAGS = ... -DPROGRAMNAME_LOCALEDIR=\\\"${PROGRAMNAME_LOCALEDIR}\\\""
 msgstr "AM_CPPFLAGS = ... -DPROGRAMNAME_LOCALEDIR=\\\"${PROGRAMNAME_LOCALEDIR}\\\""
 
-#: C/gtkmm-tutorial-in.xml:6698(para)
+#: C/gtkmm-tutorial-in.xml:6735(para)
 msgid ""
 "This macro will be used when you initialize <literal>gettext</literal> in "
 "your source code."
@@ -11439,11 +11544,11 @@ msgstr ""
 "Esta macro se usará cuando inicialice <literal>gettext</literal> en su "
 "código fuente."
 
-#: C/gtkmm-tutorial-in.xml:6705(title)
+#: C/gtkmm-tutorial-in.xml:6742(title)
 msgid "Marking strings for translation"
 msgstr "Marcar cadenas para traducir"
 
-#: C/gtkmm-tutorial-in.xml:6707(para)
+#: C/gtkmm-tutorial-in.xml:6744(para)
 msgid ""
 "String literals should be typed in the source code in English, but they "
 "should be surrounded by a call to the <function>gettext()</function> "
@@ -11455,7 +11560,7 @@ msgstr ""
 "Estas cadenas se extraerán para traducción y las traducciones podrán usarse "
 "en tiempo de ejecución en lugar de las cadenas originales en inglés."
 
-#: C/gtkmm-tutorial-in.xml:6715(para)
+#: C/gtkmm-tutorial-in.xml:6752(para)
 msgid ""
 "The <application>GNU gettext</application> package allows you to mark "
 "strings in source code, extract those strings for translation, and use the "
@@ -11465,17 +11570,17 @@ msgstr ""
 "en el código fuente, extraer esas cadenas para su traducción, y usar las "
 "cadenas traducidas en su aplicación."
 
-#: C/gtkmm-tutorial-in.xml:6727(programlisting)
+#: C/gtkmm-tutorial-in.xml:6764(programlisting)
 #, no-wrap
 msgid "display_message(\"Getting ready for i18n.\");"
 msgstr "display_message(\"Getting ready for i18n.\");"
 
-#: C/gtkmm-tutorial-in.xml:6729(programlisting)
+#: C/gtkmm-tutorial-in.xml:6766(programlisting)
 #, no-wrap
 msgid "display_message(_(\"Getting ready for i18n.\"));"
 msgstr "display_message(_(\"Getting ready for i18n.\"));"
 
-#: C/gtkmm-tutorial-in.xml:6721(para)
+#: C/gtkmm-tutorial-in.xml:6758(para)
 msgid ""
 "However, <application>Glib</application> defines <function>gettext()</"
 "function> support macros which are shorter wrappers in an easy-to-use form. "
@@ -11488,12 +11593,12 @@ msgstr ""
 "i18n.h&gt;</literal>, y luego, por ejemplo, substituya <placeholder-1/> con: "
 "<placeholder-2/>"
 
-#: C/gtkmm-tutorial-in.xml:6740(programlisting)
+#: C/gtkmm-tutorial-in.xml:6777(programlisting)
 #, no-wrap
 msgid "xgettext -a -o my-strings --omit-header *.cc *.h"
 msgstr "xgettext -a -o my-strings --omit-header *.cc *.h"
 
-#: C/gtkmm-tutorial-in.xml:6732(para)
+#: C/gtkmm-tutorial-in.xml:6769(para)
 msgid ""
 "For reference, it is possible to generate a file which contains all strings "
 "which appear in your code, even if they are not marked for translation, "
@@ -11508,7 +11613,7 @@ msgstr ""
 "ejecute el siguiente comando, dentro de la carpeta del código fuente: "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6747(programlisting)
+#: C/gtkmm-tutorial-in.xml:6784(programlisting)
 #, no-wrap
 msgid ""
 "bindtextdomain(GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR);\n"
@@ -11519,7 +11624,7 @@ msgstr ""
 "bind_textdomain_codeset(GETTEXT_PACKAGE, \"UTF-8\");\n"
 "textdomain(GETTEXT_PACKAGE);"
 
-#: C/gtkmm-tutorial-in.xml:6743(para)
+#: C/gtkmm-tutorial-in.xml:6780(para)
 msgid ""
 "Finally, to let you program use the translation for the current locale, add "
 "this code to the beginning of your <filename>main.cc</filename> file, to "
@@ -11529,11 +11634,11 @@ msgstr ""
 "actual, añádale este código al inicio de su archivo <filename>main.cc</"
 "filename>, para inicializar gettext. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6753(title)
+#: C/gtkmm-tutorial-in.xml:6790(title)
 msgid "How gettext works"
 msgstr "Cómo funciona gettext"
 
-#: C/gtkmm-tutorial-in.xml:6755(para)
+#: C/gtkmm-tutorial-in.xml:6792(para)
 msgid ""
 "<application>intltool</application> / <application>xgettext</application> "
 "script extracts the strings and puts them in a <filename>mypackage.pot</"
@@ -11556,7 +11661,7 @@ msgstr ""
 "<filename>localename.po</filename> del archivo <filename>.pot</filename> "
 "regenerado."
 
-#: C/gtkmm-tutorial-in.xml:6769(para)
+#: C/gtkmm-tutorial-in.xml:6806(para)
 msgid ""
 "At install time, the <filename>.po</filename> files are converted to a "
 "binary format (with the extension <filename>.mo</filename>) and placed in a "
@@ -11568,7 +11673,7 @@ msgstr ""
 "se ponen en una carpeta de sistema para archivos de localización, por "
 "ejemplo <filename>/usr/share/locale/</filename>."
 
-#: C/gtkmm-tutorial-in.xml:6776(para)
+#: C/gtkmm-tutorial-in.xml:6813(para)
 msgid ""
 "When the application runs, the <application>gettext</application> library "
 "checks the system-wide directory to see if there is a <filename>.mo</"
@@ -11586,16 +11691,16 @@ msgstr ""
 "<literal>gettext</literal>, buscará la traducción de la cadena particular. "
 "Si no encuentra ninguna, usará la cadena original."
 
-#: C/gtkmm-tutorial-in.xml:6788(title)
+#: C/gtkmm-tutorial-in.xml:6825(title)
 msgid "Testing and adding translations"
 msgstr "Comprobar y añadir las traducciones"
 
-#: C/gtkmm-tutorial-in.xml:6795(programlisting)
+#: C/gtkmm-tutorial-in.xml:6832(programlisting)
 #, no-wrap
 msgid "intltool-update --pot"
 msgstr "intltool-update --pot"
 
-#: C/gtkmm-tutorial-in.xml:6790(para)
+#: C/gtkmm-tutorial-in.xml:6827(para)
 msgid ""
 "To convince yourself that you've done well, you may wish to add a "
 "translation for a new locale. In order to do that, go to the <filename>po</"
@@ -11607,7 +11712,7 @@ msgstr ""
 "<filename>po</filename> de su proyecto y ejecute el siguiente comando: "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6798(para)
+#: C/gtkmm-tutorial-in.xml:6835(para)
 msgid ""
 "That will create a file named <filename>programname.pot</filename>. Now copy "
 "that file to <filename>languagecode.po</filename>, such as <filename>de.po</"
@@ -11627,7 +11732,7 @@ msgstr ""
 "codificación del archivo <filename>.po</filename> (especificada en la "
 "cabecera, pero también en el contenido) a <literal>UTF-8</literal>."
 
-#: C/gtkmm-tutorial-in.xml:6811(para)
+#: C/gtkmm-tutorial-in.xml:6848(para)
 msgid ""
 "It's possible that certain strings will be marked as <literal>fuzzy</"
 "literal> in the <filename>.po</filename> file. These translations will not "
@@ -11639,39 +11744,39 @@ msgstr ""
 "cadena original. Para hacerlas aparecer, simplemente elimine la etiqueta "
 "<literal>fuzzy</literal>."
 
-#: C/gtkmm-tutorial-in.xml:6821(title)
+#: C/gtkmm-tutorial-in.xml:6858(title)
 msgid "Resources"
 msgstr "Recursos"
 
-#: C/gtkmm-tutorial-in.xml:6830(ulink)
+#: C/gtkmm-tutorial-in.xml:6867(ulink)
 msgid "Internationalizing GNOME applications"
 msgstr "Internacionalizar aplicaciones de GNOME"
 
-#: C/gtkmm-tutorial-in.xml:6837(ulink)
+#: C/gtkmm-tutorial-in.xml:6874(ulink)
 msgid "Intltool README"
 msgstr "README de intltool"
 
-#: C/gtkmm-tutorial-in.xml:6843(ulink)
+#: C/gtkmm-tutorial-in.xml:6880(ulink)
 msgid "How to use Git for GNOME translators"
 msgstr "Cómo usar Git para traductores de GNOME"
 
-#: C/gtkmm-tutorial-in.xml:6849(ulink)
+#: C/gtkmm-tutorial-in.xml:6886(ulink)
 msgid "gettext manual"
 msgstr "manual de gettext"
 
-#: C/gtkmm-tutorial-in.xml:6855(literal)
+#: C/gtkmm-tutorial-in.xml:6892(literal)
 msgid "gtkmm_hello"
 msgstr "gtkmm_hello"
 
-#: C/gtkmm-tutorial-in.xml:6855(ulink) C/gtkmm-tutorial-in.xml:6861(ulink)
+#: C/gtkmm-tutorial-in.xml:6892(ulink) C/gtkmm-tutorial-in.xml:6898(ulink)
 msgid "<placeholder-1/> example package"
 msgstr "<placeholder-1/> paquete de ejemplo"
 
-#: C/gtkmm-tutorial-in.xml:6861(literal)
+#: C/gtkmm-tutorial-in.xml:6898(literal)
 msgid "gnomemm_hello"
 msgstr "gnomemm_hello"
 
-#: C/gtkmm-tutorial-in.xml:6823(para)
+#: C/gtkmm-tutorial-in.xml:6860(para)
 msgid ""
 "More information about what lies behind the internationalization and "
 "localization process is presented and demonstrated in: <placeholder-1/>"
@@ -11679,11 +11784,11 @@ msgstr ""
 "Se presenta y demuestra más información sobre lo que subyace al proceso de "
 "internacionalización y localización en: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6871(title)
+#: C/gtkmm-tutorial-in.xml:6908(title)
 msgid "Expecting UTF8"
 msgstr "Esperar UTF8"
 
-#: C/gtkmm-tutorial-in.xml:6872(para)
+#: C/gtkmm-tutorial-in.xml:6909(para)
 msgid ""
 "A properly internationalized application will not make assumptions about the "
 "number of bytes in a character. That means that you shouldn't use pointer "
@@ -11697,7 +11802,7 @@ msgstr ""
 "debe usar <classname>std::string</classname> o funciones estándar de C como "
 "<function>strlen()</function> porque asumen lo mismo."
 
-#: C/gtkmm-tutorial-in.xml:6879(para)
+#: C/gtkmm-tutorial-in.xml:6916(para)
 msgid ""
 "However, you probably already avoid bare char* arrays and pointer arithmetic "
 "by using <classname>std::string</classname>, so you just need to start using "
@@ -11711,11 +11816,11 @@ msgstr ""
 "el capítulo <link linkend=\"sec-basics-ustring\">Conceptos básicos</link> "
 "acerca de <classname>Glib::ustring</classname>."
 
-#: C/gtkmm-tutorial-in.xml:6887(title)
+#: C/gtkmm-tutorial-in.xml:6924(title)
 msgid "Glib::ustring and std::iostreams"
 msgstr "Glib::ustring y std::iostreams"
 
-#: C/gtkmm-tutorial-in.xml:6904(programlisting)
+#: C/gtkmm-tutorial-in.xml:6941(programlisting)
 #, no-wrap
 msgid ""
 "std::ostringstream output;\n"
@@ -11729,7 +11834,7 @@ msgstr ""
 "label-&gt;set_text(Glib::locale_to_utf8(output.str()));"
 
 #. <para>TODO: This section is not clear - it needs to spell things out more clearly and obviously.</para>
-#: C/gtkmm-tutorial-in.xml:6889(para)
+#: C/gtkmm-tutorial-in.xml:6926(para)
 msgid ""
 "Unfortunately, the integration with the standard iostreams is not completely "
 "foolproof. <application>gtkmm</application> converts <classname>Glib::"
@@ -11765,11 +11870,11 @@ msgstr ""
 "manual. Por ejemplo, para recuperar la <classname>std::string</classname> de "
 "un <classname>ostringstream</classname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6914(title)
+#: C/gtkmm-tutorial-in.xml:6951(title)
 msgid "Pitfalls"
 msgstr "Errores comunes"
 
-#: C/gtkmm-tutorial-in.xml:6916(para)
+#: C/gtkmm-tutorial-in.xml:6953(para)
 msgid ""
 "There are a few common mistakes that you would discover eventually yourself. "
 "But this section might help you to avoid them."
@@ -11777,11 +11882,11 @@ msgstr ""
 "Hay algunos errores comunes que eventualmente descubriría por sí mismo. Pero "
 "esta sección le ayudará a evitarlos."
 
-#: C/gtkmm-tutorial-in.xml:6919(title)
+#: C/gtkmm-tutorial-in.xml:6956(title)
 msgid "Same strings, different semantics"
 msgstr "Mismas cadenas, semánticas diferentes"
 
-#: C/gtkmm-tutorial-in.xml:6921(para)
+#: C/gtkmm-tutorial-in.xml:6958(para)
 msgid ""
 "Sometimes two english strings are identical but have different meanings in "
 "different contexts, so they would probably not be identical when translated. "
@@ -11792,7 +11897,7 @@ msgstr ""
 "idénticas al traducirlas. Dado que las cadenas en inglés se usan como claves "
 "de búsqueda, esto causa problemas."
 
-#: C/gtkmm-tutorial-in.xml:6925(para)
+#: C/gtkmm-tutorial-in.xml:6962(para)
 msgid ""
 "In these cases, you should add extra characters to the strings. For "
 "instance, use <literal>\"jumps[noun]\"</literal> and <literal>\"jumps[verb]"
@@ -11810,7 +11915,7 @@ msgstr ""
 "la llamada a <function>gettext</function>. Tales comentarios se mostrarán en "
 "los archivos <filename>.po</filename>. Por ejemplo:"
 
-#: C/gtkmm-tutorial-in.xml:6935(programlisting)
+#: C/gtkmm-tutorial-in.xml:6972(programlisting)
 #, no-wrap
 msgid ""
 "// note to translators: don't translate the \"[noun]\" part - it is\n"
@@ -11821,11 +11926,11 @@ msgstr ""
 "// just here to distinguish the string from another \"jumps\" string\n"
 "text = strip(gettext(\"jumps[noun]\"), \"[noun]\");"
 
-#: C/gtkmm-tutorial-in.xml:6941(title)
+#: C/gtkmm-tutorial-in.xml:6978(title)
 msgid "Composition of strings"
 msgstr "Composición de cadenas"
 
-#: C/gtkmm-tutorial-in.xml:6943(para)
+#: C/gtkmm-tutorial-in.xml:6980(para)
 msgid ""
 "C programmers use <function>sprintf()</function> to compose and concatenate "
 "strings. C++ favours streams, but unfortunately, this approach makes "
@@ -11839,11 +11944,11 @@ msgstr ""
 "traduce separadamente, sin permitirle a los traductores reordenarlos de "
 "acuerdo a la gramática del lenguaje."
 
-#: C/gtkmm-tutorial-in.xml:6950(para)
+#: C/gtkmm-tutorial-in.xml:6987(para)
 msgid "For instance, this code would be problematic:"
 msgstr "Por ejemplo, este código podría ser problemático:"
 
-#: C/gtkmm-tutorial-in.xml:6952(programlisting)
+#: C/gtkmm-tutorial-in.xml:6989(programlisting)
 #, no-wrap
 msgid ""
 "std::cout &lt;&lt; _(\"Current amount: \") &lt;&lt; amount\n"
@@ -11856,7 +11961,7 @@ msgstr ""
 "\n"
 "label.set_text(_(\"Really delete \") + filename + _(\" now?\"));"
 
-#: C/gtkmm-tutorial-in.xml:6961(programlisting)
+#: C/gtkmm-tutorial-in.xml:6998(programlisting)
 #, no-wrap
 msgid ""
 "std::cout &lt;&lt; Glib::ustring::compose(\n"
@@ -11869,7 +11974,7 @@ msgstr ""
 "\n"
 "label.set_text(Glib::ustring::compose(_(\"Really delete %1 now?\"), filename));"
 
-#: C/gtkmm-tutorial-in.xml:6957(para)
+#: C/gtkmm-tutorial-in.xml:6994(para)
 msgid ""
 "So you should either avoid this situation or use <ulink url=\"http://";
 "developer.gnome.org/glibmm/unstable/classGlib_1_1ustring.html"
@@ -11881,11 +11986,11 @@ msgstr ""
 "ustring::compose()</function></ulink> que soporta sintaxis como: "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:6969(title)
+#: C/gtkmm-tutorial-in.xml:7006(title)
 msgid "Assuming the displayed size of strings"
 msgstr "Asumir el tamaño de las cadenas mostradas"
 
-#: C/gtkmm-tutorial-in.xml:6971(para)
+#: C/gtkmm-tutorial-in.xml:7008(para)
 msgid ""
 "You never know how much space a string will take on screen when translated. "
 "It might very possibly be twice the size of the original English string. "
@@ -11897,11 +12002,11 @@ msgstr ""
 "Afortunadamente, la mayoría de los widgets de <application>gtkmm</"
 "application> se expandirán en tiempo de ejecución al tamaño requerido."
 
-#: C/gtkmm-tutorial-in.xml:6975(title)
+#: C/gtkmm-tutorial-in.xml:7012(title)
 msgid "Unusual words"
 msgstr "Palabras poco frecuentes"
 
-#: C/gtkmm-tutorial-in.xml:6977(para)
+#: C/gtkmm-tutorial-in.xml:7014(para)
 msgid ""
 "You should avoid cryptic abbreviations, slang, or jargon. They are usually "
 "difficult to translate, and are often difficult for even native speakers to "
@@ -11912,11 +12017,11 @@ msgstr ""
 "de entender a los hablantes nativos. Por ejemplo, es preferible «application» "
 "antes que «app»."
 
-#: C/gtkmm-tutorial-in.xml:6983(title)
+#: C/gtkmm-tutorial-in.xml:7020(title)
 msgid "Using non-ASCII characters in strings"
 msgstr "Usar caracteres no ASCII en cadenas"
 
-#: C/gtkmm-tutorial-in.xml:6985(para)
+#: C/gtkmm-tutorial-in.xml:7022(para)
 msgid ""
 "Currently, <application>gettext</application> does not support non-ASCII "
 "characters (i.e. any characters with a code above 127) in source code. For "
@@ -11926,7 +12031,7 @@ msgstr ""
 "ASCII (es decir, cualquier carácter con un código superior a 127) en el "
 "código fuente. Por ejemplo, no puede usar el signo de derechos de autor (©)."
 
-#: C/gtkmm-tutorial-in.xml:6991(para)
+#: C/gtkmm-tutorial-in.xml:7028(para)
 msgid ""
 "To work around this, you could write a comment in the source code just "
 "before the string, telling the translators to use the special character if "
@@ -11940,11 +12045,11 @@ msgstr ""
 "inglés, después puede hacer una traducción a inglés americano "
 "<filename>en_US.po</filename> que use ese carácter especial."
 
-#: C/gtkmm-tutorial-in.xml:6999(title)
+#: C/gtkmm-tutorial-in.xml:7036(title)
 msgid "Getting help with translations"
 msgstr "Obtener ayuda con las traducciones"
 
-#: C/gtkmm-tutorial-in.xml:7001(para)
+#: C/gtkmm-tutorial-in.xml:7038(para)
 msgid ""
 "If your program is free software, there is a whole <literal>GNOME</literal> "
 "subproject devoted to helping you make translations, the <ulink url="
@@ -11956,7 +12061,7 @@ msgstr ""
 "url=\"https://live.gnome.org/TranslationProject/\";>Proyecto de traducción de "
 "<literal>GNOME</literal></ulink>."
 
-#: C/gtkmm-tutorial-in.xml:7006(para)
+#: C/gtkmm-tutorial-in.xml:7043(para)
 msgid ""
 "The way it works is that you upload your source code to a git repository "
 "where translators can access it, then contact the gnome-i18n mailing list "
@@ -11968,7 +12073,7 @@ msgstr ""
 "añadir su proyecto a la <ulink url=\"http://l10n.gnome.org/module/\";>lista "
 "de módulos para traducir</ulink>."
 
-#: C/gtkmm-tutorial-in.xml:7011(para)
+#: C/gtkmm-tutorial-in.xml:7048(para)
 msgid ""
 "Then you make sure you update the file <filename>POTFILES.in</filename> in "
 "the <filename>po/</filename> subdirectory (<command>intltool-update -M</"
@@ -11988,7 +12093,7 @@ msgstr ""
 "que su programa contenga y cómo de popular sea, los traductores empezarán a "
 "generar archivos <filename>languagename.po</filename>."
 
-#: C/gtkmm-tutorial-in.xml:7023(para)
+#: C/gtkmm-tutorial-in.xml:7060(para)
 msgid ""
 "Note that most language teams only consist of 1-3 persons, so if your "
 "program contains a lot of strings, it might last a while before anyone has "
@@ -12005,11 +12110,11 @@ msgstr ""
 "realmente serio (en el sentido de que esté pulido y se mantenga) podrían "
 "decidir usar su tiempo en algún otro proyecto."
 
-#: C/gtkmm-tutorial-in.xml:7035(title) C/gtkmm-tutorial-in.xml:7153(title)
+#: C/gtkmm-tutorial-in.xml:7072(title) C/gtkmm-tutorial-in.xml:7190(title)
 msgid "Custom Widgets"
 msgstr "Widgets personalizados"
 
-#: C/gtkmm-tutorial-in.xml:7037(para)
+#: C/gtkmm-tutorial-in.xml:7074(para)
 msgid ""
 "<application>gtkmm</application> makes it very easy to derive new widgets by "
 "inheriting from an existing widget class, either by deriving from a "
@@ -12025,11 +12130,11 @@ msgstr ""
 "exista ningún punto de partida adecuado. En este caso, puede implementar un "
 "widget desde cero."
 
-#: C/gtkmm-tutorial-in.xml:7044(title)
+#: C/gtkmm-tutorial-in.xml:7081(title)
 msgid "Custom Containers"
 msgstr "Contenedores personalizados"
 
-#: C/gtkmm-tutorial-in.xml:7047(para)
+#: C/gtkmm-tutorial-in.xml:7084(para)
 msgid ""
 "<methodname>get_request_mode_vfunc()</methodname>: Return what <literal>Gtk::"
 "SizeRequestMode</literal> is preferred by the container."
@@ -12037,7 +12142,7 @@ msgstr ""
 "<methodname>get_request_mode_vfunc()</methodname>: devuelve qué "
 "<literal>Gtk::SizeRequestMode</literal> prefiere el contenedor."
 
-#: C/gtkmm-tutorial-in.xml:7048(para)
+#: C/gtkmm-tutorial-in.xml:7085(para)
 msgid ""
 "<methodname>get_preferred_width_vfunc()</methodname>: Calculate the minimum "
 "and natural width of the container."
@@ -12045,7 +12150,7 @@ msgstr ""
 "<methodname>get_preferred_width_vfunc()</methodname>: calcula la anchura "
 "mínima y natural del contenedor."
 
-#: C/gtkmm-tutorial-in.xml:7049(para)
+#: C/gtkmm-tutorial-in.xml:7086(para)
 msgid ""
 "<methodname>get_preferred_height_vfunc()</methodname>: Calculate the minimum "
 "and natural height of the container."
@@ -12053,7 +12158,7 @@ msgstr ""
 "<methodname>get_preferred_height_vfunc()</methodname>: calcula la altura "
 "mínima y natural del contenedor."
 
-#: C/gtkmm-tutorial-in.xml:7050(para)
+#: C/gtkmm-tutorial-in.xml:7087(para)
 msgid ""
 "<methodname>get_preferred_width_for_height_vfunc()</methodname>: Calculate "
 "the minimum and natural width of the container, if it would be given the "
@@ -12062,7 +12167,7 @@ msgstr ""
 "<methodname>get_preferred_width_for_height_vfunc()</methodname>: calcula la "
 "anchura mínima y natural del contenedor, si se le da la altura especificada."
 
-#: C/gtkmm-tutorial-in.xml:7051(para)
+#: C/gtkmm-tutorial-in.xml:7088(para)
 msgid ""
 "<methodname>get_preferred_height_for_width_vfunc()</methodname>: Calculate "
 "the minimum and natural height of the container, if it would be given the "
@@ -12071,7 +12176,7 @@ msgstr ""
 "<methodname>get_preferred_height_for_width_vfunc()</methodname>: calcula la "
 "altura mínima y natural del contenedor, si se le da la anchura especificada."
 
-#: C/gtkmm-tutorial-in.xml:7052(para)
+#: C/gtkmm-tutorial-in.xml:7089(para)
 msgid ""
 "<methodname>on_size_allocate()</methodname>: Position the child widgets, "
 "given the height and width that the container has actually been given."
@@ -12079,7 +12184,7 @@ msgstr ""
 "<methodname>on_size_allocate()</methodname>: posiciona a los widgets hijos "
 "de acuerdo a la altura y anchura que se le ha dado al contenedor."
 
-#: C/gtkmm-tutorial-in.xml:7053(para)
+#: C/gtkmm-tutorial-in.xml:7090(para)
 msgid ""
 "<methodname>forall_vfunc()</methodname>: Call the same callback for each of "
 "the children."
@@ -12087,18 +12192,18 @@ msgstr ""
 "<methodname>forall_vfunc()</methodname>: llama al mismo retorno de llamada "
 "para cada uno de los hijos."
 
-#: C/gtkmm-tutorial-in.xml:7054(para)
+#: C/gtkmm-tutorial-in.xml:7091(para)
 msgid "<methodname>on_add()</methodname>: Add a child widget to the container."
 msgstr "<methodname>on_add()</methodname>: añade un widget hijo al contenedor."
 
-#: C/gtkmm-tutorial-in.xml:7055(para)
+#: C/gtkmm-tutorial-in.xml:7092(para)
 msgid ""
 "<methodname>on_remove()</methodname>: Remove a child widget from the "
 "container."
 msgstr ""
 "<methodname>on_remove()</methodname>: elimina un widget hijo del contenedor."
 
-#: C/gtkmm-tutorial-in.xml:7056(para)
+#: C/gtkmm-tutorial-in.xml:7093(para)
 msgid ""
 "<methodname>child_type_vfunc()</methodname>: Return what type of child can "
 "be added."
@@ -12106,7 +12211,7 @@ msgstr ""
 "<methodname>child_type_vfunc()</methodname>: devuelve qué tipo de hijo puede "
 "añadirse."
 
-#: C/gtkmm-tutorial-in.xml:7045(para)
+#: C/gtkmm-tutorial-in.xml:7082(para)
 msgid ""
 "When deriving from <classname>Gtk::Container</classname>, you should "
 "override the following virtual methods: <placeholder-1/>"
@@ -12114,7 +12219,7 @@ msgstr ""
 "Cuando derive de un <classname>Gtk::Container</classname>, debe reemplazar "
 "los siguientes métodos virtuales: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:7060(para)
+#: C/gtkmm-tutorial-in.xml:7097(para)
 msgid ""
 "The <methodname>get_request_mode_vfunc()</methodname>, "
 "<methodname>get_preferred_width_vfunc()</methodname>, "
@@ -12152,7 +12257,7 @@ msgstr ""
 "suficiente, y no menos. Examinando al padre de cada widget, y a su padre, "
 "esta lógica eventualmente decidirá el tamaño de la ventana de nivel superior."
 
-#: C/gtkmm-tutorial-in.xml:7080(para)
+#: C/gtkmm-tutorial-in.xml:7117(para)
 msgid ""
 "You are not guaranteed to get the <literal>Gtk::SizeRequestMode</literal> "
 "that you request. Therefore all four of the "
@@ -12163,7 +12268,7 @@ msgstr ""
 "pida. Por lo tanto, los cuatro métodos <methodname>get_preferred_xxx_vfunc()"
 "</methodname> deben devolver valores razonables."
 
-#: C/gtkmm-tutorial-in.xml:7085(para)
+#: C/gtkmm-tutorial-in.xml:7122(para)
 msgid ""
 "<methodname>on_size_allocate()</methodname> receives the actual height and "
 "width that the parent container has decided to give to your widget. This "
@@ -12187,7 +12292,7 @@ msgstr ""
 "<methodname>on_size_allocate()</methodname> para usar realmente el espacio "
 "asignado que le ha ofrecido el contenedor padre."
 
-#: C/gtkmm-tutorial-in.xml:7097(para)
+#: C/gtkmm-tutorial-in.xml:7134(para)
 msgid ""
 "Unless your container is a top-level window that derives from "
 "<classname>Gtk::Window</classname>, you should probably also call "
@@ -12219,7 +12324,7 @@ msgstr ""
 "llamar a <methodname>set_redraw_on_allocate(false)</methodname> para mejorar "
 "el rendimiento."
 
-#: C/gtkmm-tutorial-in.xml:7113(para)
+#: C/gtkmm-tutorial-in.xml:7150(para)
 msgid ""
 "By overriding <methodname>forall_vfunc()</methodname> you can allow "
 "applications to operate on all of the container's child widgets. For "
@@ -12231,7 +12336,7 @@ msgstr ""
 "ejemplo, <methodname>show_all_children()</methodname> usa esto para "
 "encontrar a todos los widgets hijos y mostrarlos."
 
-#: C/gtkmm-tutorial-in.xml:7118(para)
+#: C/gtkmm-tutorial-in.xml:7155(para)
 msgid ""
 "Although your container might have its own method to set the child widgets, "
 "you should still provide an implementation for the virtual <methodname>on_add"
@@ -12245,7 +12350,7 @@ msgstr ""
 "methodname> de la clase base, para que los métodos add() y remove() hagan "
 "algo apropiado si se llaman."
 
-#: C/gtkmm-tutorial-in.xml:7124(para)
+#: C/gtkmm-tutorial-in.xml:7161(para)
 msgid ""
 "Your implementation of the <methodname>child_type_vfunc()</methodname> "
 "method should report the type of widget that may be added to your container, "
@@ -12263,7 +12368,7 @@ msgstr ""
 "puede contener más widgets, entonces este método debe devolver "
 "<literal>G_TYPE_NONE</literal>."
 
-#: C/gtkmm-tutorial-in.xml:7136(para)
+#: C/gtkmm-tutorial-in.xml:7173(para)
 msgid ""
 "This example implements a container with two child widgets, one above the "
 "other. Of course, in this case it would be far simpler just to use a "
@@ -12273,11 +12378,11 @@ msgstr ""
 "otro. Por supuesto, en este caso sería mucho más simple usar sólo una "
 "<classname>Gtk::Box</classname> vertical."
 
-#: C/gtkmm-tutorial-in.xml:7141(title)
+#: C/gtkmm-tutorial-in.xml:7178(title)
 msgid "Custom Container"
 msgstr "Contenedor personalizado"
 
-#: C/gtkmm-tutorial-in.xml:7154(para)
+#: C/gtkmm-tutorial-in.xml:7191(para)
 msgid ""
 "By deriving directly from <classname>Gtk::Widget</classname> you can do all "
 "the drawing for your widget directly, instead of just arranging child "
@@ -12289,7 +12394,7 @@ msgstr ""
 "hijos. Por ejemplo, una <classname>Gtk::Label</classname> dibuja el texto de "
 "la etiqueta, pero no hace esto usando a otros widgets."
 
-#: C/gtkmm-tutorial-in.xml:7165(para)
+#: C/gtkmm-tutorial-in.xml:7202(para)
 msgid ""
 "<methodname>get_request_mode_vfunc()</methodname>: (optional) Return what "
 "<literal>Gtk::SizeRequestMode</literal> is preferred by the widget."
@@ -12297,7 +12402,7 @@ msgstr ""
 "<methodname>get_request_mode_vfunc()</methodname>: (opcional) devuelve qué "
 "<literal>Gtk::SizeRequestMode</literal> prefiere el widget."
 
-#: C/gtkmm-tutorial-in.xml:7166(para)
+#: C/gtkmm-tutorial-in.xml:7203(para)
 msgid ""
 "<methodname>get_preferred_width_vfunc()</methodname>: Calculate the minimum "
 "and natural width of the widget."
@@ -12305,7 +12410,7 @@ msgstr ""
 "<methodname>get_preferred_width_vfunc()</methodname>: calcula la anchura "
 "mínima y natural del widget."
 
-#: C/gtkmm-tutorial-in.xml:7167(para)
+#: C/gtkmm-tutorial-in.xml:7204(para)
 msgid ""
 "<methodname>get_preferred_height_vfunc()</methodname>: Calculate the minimum "
 "and natural height of the widget."
@@ -12313,7 +12418,7 @@ msgstr ""
 "<methodname>get_preferred_height_vfunc()</methodname>: calcula la altura "
 "mínima y natural del widget."
 
-#: C/gtkmm-tutorial-in.xml:7168(para)
+#: C/gtkmm-tutorial-in.xml:7205(para)
 msgid ""
 "<methodname>get_preferred_width_for_height_vfunc()</methodname>: Calculate "
 "the minimum and natural width of the widget, if it would be given the "
@@ -12322,7 +12427,7 @@ msgstr ""
 "<methodname>get_preferred_width_for_height_vfunc()</methodname>: calcula la "
 "anchura mínima y natural del widget, si se le da la altura especificada."
 
-#: C/gtkmm-tutorial-in.xml:7169(para)
+#: C/gtkmm-tutorial-in.xml:7206(para)
 msgid ""
 "<methodname>get_preferred_height_for_width_vfunc()</methodname>: Calculate "
 "the minimum and natural height of the widget, if it would be given the "
@@ -12331,7 +12436,7 @@ msgstr ""
 "<methodname>get_preferred_height_for_width_vfunc()</methodname>: calcula la "
 "altura mínima y natural del widget, si se le da la anchura especificada."
 
-#: C/gtkmm-tutorial-in.xml:7170(para)
+#: C/gtkmm-tutorial-in.xml:7207(para)
 msgid ""
 "<methodname>on_size_allocate()</methodname>: Position the widget, given the "
 "height and width that it has actually been given."
@@ -12339,7 +12444,7 @@ msgstr ""
 "<methodname>on_size_allocate()</methodname>: posiciona al widget de acuerdo "
 "a la altura y anchura que se le ha dado."
 
-#: C/gtkmm-tutorial-in.xml:7171(para)
+#: C/gtkmm-tutorial-in.xml:7208(para)
 msgid ""
 "<methodname>on_realize()</methodname>: Associate a <classname>Gdk::Window</"
 "classname> with the widget."
@@ -12347,7 +12452,7 @@ msgstr ""
 "<methodname>on_realize()</methodname>: asocia una <methodname>Gdk::Window</"
 "methodname> al widget."
 
-#: C/gtkmm-tutorial-in.xml:7172(para)
+#: C/gtkmm-tutorial-in.xml:7209(para)
 msgid ""
 "<methodname>on_unrealize()</methodname>: (optional) Break the association "
 "with the <classname>Gdk::Window</classname>."
@@ -12355,15 +12460,15 @@ msgstr ""
 "<methodname>on_unrealize()</methodname>: (opcional) rompe la asociación con "
 "la <methodname>Gdk::Window</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7173(para)
+#: C/gtkmm-tutorial-in.xml:7210(para)
 msgid "<methodname>on_map()</methodname>: (optional)"
 msgstr "<methodname>on_map()</methodname>: (opcional)"
 
-#: C/gtkmm-tutorial-in.xml:7174(para)
+#: C/gtkmm-tutorial-in.xml:7211(para)
 msgid "<methodname>on_unmap()</methodname>: (optional)"
 msgstr "<methodname>on_unmap()</methodname>: (opcional)"
 
-#: C/gtkmm-tutorial-in.xml:7175(para)
+#: C/gtkmm-tutorial-in.xml:7212(para)
 msgid ""
 "<methodname>on_draw()</methodname>: Draw on the supplied <classname>Cairo::"
 "Context</classname>."
@@ -12371,7 +12476,7 @@ msgstr ""
 "<methodname>on_draw()</methodname>: dibuja en el <methodname>Cairo::Context</"
 "methodname> proporcionado."
 
-#: C/gtkmm-tutorial-in.xml:7160(para)
+#: C/gtkmm-tutorial-in.xml:7197(para)
 msgid ""
 "When deriving from <classname>Gtk::Widget</classname>, you should override "
 "the following virtual methods. The methods marked (optional) need not be "
@@ -12383,7 +12488,7 @@ msgstr ""
 "como (opcional) en todos los widgets personalizados. Los métodos de la clase "
 "base pueden ser apropiados. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:7179(para)
+#: C/gtkmm-tutorial-in.xml:7216(para)
 msgid ""
 "The first 6 methods in the previous table are also overridden in custom "
 "containers. They are briefly described in the <link linkend=\"sec-custom-"
@@ -12393,7 +12498,7 @@ msgstr ""
 "contenedores personalizados. Se describen brevemente en la sección <link "
 "linkend=\"sec-custom-containers\">Contenedores personalizados</link>."
 
-#: C/gtkmm-tutorial-in.xml:7184(para)
+#: C/gtkmm-tutorial-in.xml:7221(para)
 msgid ""
 "Most custom widgets need their own <classname>Gdk::Window</classname> to "
 "draw on. Then you can call <methodname>Gtk::Widget::set_has_window(true)</"
@@ -12411,23 +12516,23 @@ msgstr ""
 "methodname> y llamar a <methodname>Gtk::Widget::set_realized()</methodname> "
 "y a <methodname>Gtk::Widget::set_window()</methodname> desde allí."
 
-#: C/gtkmm-tutorial-in.xml:7195(para)
+#: C/gtkmm-tutorial-in.xml:7232(para)
 msgid "This example implements a widget which draws a Penrose triangle."
 msgstr "Este ejemplo implementa un widget que dibuja un triángulo de Penrose."
 
-#: C/gtkmm-tutorial-in.xml:7198(title)
+#: C/gtkmm-tutorial-in.xml:7235(title)
 msgid "Custom Widget"
 msgstr "Widget personalizado"
 
-#: C/gtkmm-tutorial-in.xml:7214(title)
+#: C/gtkmm-tutorial-in.xml:7251(title)
 msgid "Multi-threaded programs"
 msgstr "Programas con múltiples hilos"
 
-#: C/gtkmm-tutorial-in.xml:7217(title)
+#: C/gtkmm-tutorial-in.xml:7254(title)
 msgid "The constraints"
 msgstr "Las limitaciones"
 
-#: C/gtkmm-tutorial-in.xml:7219(para)
+#: C/gtkmm-tutorial-in.xml:7256(para)
 msgid ""
 "<application>glibmm</application> provides the normal set of thread "
 "launching functions, mutexes, condition variables and scoped locking classes "
@@ -12438,7 +12543,7 @@ msgstr ""
 "y clases de bloqueo de alcance requeridas para escribir programas de "
 "múltiples hilos usando C++."
 
-#: C/gtkmm-tutorial-in.xml:7234(para)
+#: C/gtkmm-tutorial-in.xml:7271(para)
 msgid ""
 "These interactions arise from the fact that, amongst other things, a class "
 "inheriting from <classname>sigc::trackable</classname> will, via that "
@@ -12473,7 +12578,7 @@ msgstr ""
 "a cualquier objeto <classname>sigc::connection</classname> relacionado a "
 "dicha conexión."
 
-#: C/gtkmm-tutorial-in.xml:7225(para)
+#: C/gtkmm-tutorial-in.xml:7262(para)
 msgid ""
 "However, care is required when writing programs based on <application>gtkmm</"
 "application> using multiple threads of execution, arising from the fact that "
@@ -12491,11 +12596,11 @@ msgstr ""
 "<application>libsigc++</application> están protegidas por una exclusión "
 "mutua u otros métodos de sincronización. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:7258(title)
+#: C/gtkmm-tutorial-in.xml:7295(title)
 msgid "The rules"
 msgstr "Las reglas"
 
-#: C/gtkmm-tutorial-in.xml:7260(para)
+#: C/gtkmm-tutorial-in.xml:7297(para)
 msgid ""
 "This requires a number of rules to be observed when writing multi-threaded "
 "programs using <application>gtkmm</application>. These are set out below, "
@@ -12510,7 +12615,7 @@ msgstr ""
 "porque los efectos no son intuitivos (consulte particularmente los puntos 4 "
 "y 5 debajo)."
 
-#: C/gtkmm-tutorial-in.xml:7271(para)
+#: C/gtkmm-tutorial-in.xml:7308(para)
 msgid ""
 "Use <classname>Glib::Dispatcher</classname> to invoke <application>gtkmm</"
 "application> functions from worker threads (this is dealt with in more "
@@ -12520,7 +12625,7 @@ msgstr ""
 "<application>gtkmm</application> desde hilos de trabajo (esto se explica con "
 "má detalle en la próxima sección)."
 
-#: C/gtkmm-tutorial-in.xml:7279(para)
+#: C/gtkmm-tutorial-in.xml:7316(para)
 msgid ""
 "A <classname>sigc::signal</classname> object should be regarded as owned by "
 "the thread which created it. Only that thread should connect a "
@@ -12546,7 +12651,7 @@ msgstr ""
 "referenciados por «slots» conectados al objeto de señal solo deben destruirse "
 "en ese hilo."
 
-#: C/gtkmm-tutorial-in.xml:7295(para)
+#: C/gtkmm-tutorial-in.xml:7332(para)
 msgid ""
 "Any <classname>sigc::connection</classname> object should be regarded as "
 "owned by the thread in which the method returning the <classname>sigc::"
@@ -12558,7 +12663,7 @@ msgstr ""
 "objeto <classname>sigc::connection</classname>. Solo ese hilo debe llamar a "
 "métodos de <classname>sigc::connection</classname> sobre el objeto."
 
-#: C/gtkmm-tutorial-in.xml:7305(para)
+#: C/gtkmm-tutorial-in.xml:7342(para)
 msgid ""
 "A <classname>sigc::slot</classname> object created by a call to "
 "<function>sigc::mem_fun()</function> which references a method of a class "
@@ -12584,7 +12689,7 @@ msgstr ""
 "un método así usando, por ejemplo, <function>boost::bind()</function> o, en C"
 "++11, <function>std::bin()</function> o una expresión lambda de C++11)."
 
-#: C/gtkmm-tutorial-in.xml:7323(para)
+#: C/gtkmm-tutorial-in.xml:7360(para)
 msgid ""
 "If a particular class object derives from <classname>sigc::trackable</"
 "classname>, only one thread should create <classname>sigc::slot</classname> "
@@ -12604,7 +12709,7 @@ msgstr ""
 "emphasis> de sus métodos no estáticos que usan esa función, o anulando "
 "aquellos «slots» desconectándolos o destruyendo el objeto «trackable»."
 
-#: C/gtkmm-tutorial-in.xml:7337(para)
+#: C/gtkmm-tutorial-in.xml:7374(para)
 msgid ""
 "Although <application>glib</application> is itself thread-safe, any "
 "<application>glibmm</application> wrappers which use <application>libsigc++</"
@@ -12625,7 +12730,7 @@ msgstr ""
 "manipular cualquier objeto <classname>sigc::connection</classname> que "
 "devuelvan."
 
-#: C/gtkmm-tutorial-in.xml:7349(para)
+#: C/gtkmm-tutorial-in.xml:7386(para)
 msgid ""
 "The connect*_once() variants, <methodname>Glib::SignalIdle::connect_once()</"
 "methodname>, <methodname>Glib::SignalTimeout::connect_once()</methodname>, "
@@ -12645,11 +12750,11 @@ msgstr ""
 "methodname>. Esto es similar a <methodname>Glib::Threads::Thread::create()</"
 "methodname> como se menciona en el punto 4."
 
-#: C/gtkmm-tutorial-in.xml:7368(title)
+#: C/gtkmm-tutorial-in.xml:7405(title)
 msgid "Using Glib::Dispatcher"
 msgstr "Usar Glib::Dispatcher"
 
-#: C/gtkmm-tutorial-in.xml:7370(para)
+#: C/gtkmm-tutorial-in.xml:7407(para)
 msgid ""
 "The slots connected to <classname>sigc::signal</classname> objects execute "
 "in the thread which calls <methodname>emit()</methodname> or "
@@ -12673,7 +12778,7 @@ msgstr ""
 "hilo de trabajo puede emitir sobre él y sus «slot» conectados podrán ejecutar "
 "funciones de <application>gtkmm</application> con seguridad."
 
-#: C/gtkmm-tutorial-in.xml:7384(para)
+#: C/gtkmm-tutorial-in.xml:7421(para)
 msgid ""
 "Some thread safety rules on the use of <classname>Glib::Dispatcher</"
 "classname> still apply. As mentioned, a <classname>Glib::Dispatcher</"
@@ -12709,7 +12814,7 @@ msgstr ""
 "hilo de trabajo arranque (si se construye después, normalmente se requerirá "
 "sincronización adicional para asegurar la visibilidad)."
 
-#: C/gtkmm-tutorial-in.xml:7404(para)
+#: C/gtkmm-tutorial-in.xml:7441(para)
 msgid ""
 "Aside from the fact that connected slots always execute in the receiver "
 "thread, <classname>Glib::Dispatcher</classname> objects are similar to "
@@ -12731,7 +12836,7 @@ msgstr ""
 "disponible (son relativamente fáciles de escribir a pesar de que son "
 "detalles de combinar seguridad de hilos con seguridad fuerte de excepciones)."
 
-#: C/gtkmm-tutorial-in.xml:7417(para)
+#: C/gtkmm-tutorial-in.xml:7454(para)
 msgid ""
 "A <classname>Glib::Dispatcher</classname> object can be emitted on by the "
 "receiver thread as well as by a worker thread, although this should be done "
@@ -12759,11 +12864,34 @@ msgstr ""
 "un objeto <classname>sigc::signal&lt;void&gt;</classname> normal puede "
 "usarse en su lugar."
 
-#: C/gtkmm-tutorial-in.xml:7438(title)
+#: C/gtkmm-tutorial-in.xml:7474(para)
+msgid ""
+"This is an example program with two threads, one GUI thread, like in all "
+"<application>gtkmm</application> programs, and one worker thread. The worker "
+"thread is created when you press the <literal>Start work</literal> button. "
+"It is deleted when the work is finished, when you press the <literal>Stop "
+"work</literal> button, or when you press the <literal>Quit</literal> button."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:7482(para)
+msgid ""
+"A <classname>Glib::Dispatcher</classname> is used for sending notifications "
+"from the worker thread to the GUI thread. The <classname>ExampleWorker</"
+"classname> class contains data which is accessed by both threads. This data "
+"is protected by a <classname>Glib::Threads::Mutex</classname>. Only the GUI "
+"thread updates the GUI."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:7491(title)
+#| msgid "Multi-threaded programs"
+msgid "Multi-Threaded Program"
+msgstr "Programa con múltiples hilos"
+
+#: C/gtkmm-tutorial-in.xml:7504(title)
 msgid "Recommended Techniques"
 msgstr "Técnicas recomendadas"
 
-#: C/gtkmm-tutorial-in.xml:7440(para)
+#: C/gtkmm-tutorial-in.xml:7506(para)
 msgid ""
 "This section is simply a gathering of wisdom, general style guidelines and "
 "hints for creating <application>gtkmm</application> applications."
@@ -12772,7 +12900,7 @@ msgstr ""
 "estilo y consejos para crear aplicaciones en <application>gtkmm</"
 "application>."
 
-#: C/gtkmm-tutorial-in.xml:7444(para)
+#: C/gtkmm-tutorial-in.xml:7510(para)
 msgid ""
 "Use GNU <application>autoconf</application> and <application>automake</"
 "application>! They are your friends :) <application>Automake</application> "
@@ -12790,7 +12918,7 @@ msgstr ""
 "automática de la instalación de software, manipulando un gran número de "
 "peculiaridades de cada sistema para incrementar la portabilidad."
 
-#: C/gtkmm-tutorial-in.xml:7454(para)
+#: C/gtkmm-tutorial-in.xml:7520(para)
 msgid ""
 "Subclass Widgets to better organize your code. You should probably subclass "
 "your main <classname>Window</classname> at least. Then you can make your "
@@ -12800,7 +12928,7 @@ msgstr ""
 "heredar al menos su <classname>Window</classname> principal. Entonces podrá "
 "hacer widgets hijos y manejadores de señales miembros de esa clase."
 
-#: C/gtkmm-tutorial-in.xml:7459(para)
+#: C/gtkmm-tutorial-in.xml:7525(para)
 msgid ""
 "Create your own signals instead of passing pointers around. Objects can "
 "communicate with each other via signals and signal handlers. This is much "
@@ -12818,11 +12946,11 @@ msgstr ""
 "<classname>sigc::signal</classname> normales, como se describe en la "
 "documentación de <application>libsigc++</application>."
 
-#: C/gtkmm-tutorial-in.xml:7468(title)
+#: C/gtkmm-tutorial-in.xml:7534(title)
 msgid "Application Lifetime"
 msgstr "Tiempo de vida de la aplicación"
 
-#: C/gtkmm-tutorial-in.xml:7469(para)
+#: C/gtkmm-tutorial-in.xml:7535(para)
 msgid ""
 "Most applications will have only one <classname>Window</classname>, or only "
 "one main window. These applications can use the <methodname>Gtk::"
@@ -12842,15 +12970,15 @@ msgstr ""
 "ejemplo, si hay cambios sin guardar) sobrecargando <methodname>Gtk::Window::"
 "on_delete_event()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7477(para)
+#: C/gtkmm-tutorial-in.xml:7543(para)
 msgid "Most of our examples use this technique."
 msgstr "La mayoría de los ejemplos usan esta técnica."
 
-#: C/gtkmm-tutorial-in.xml:7481(title)
+#: C/gtkmm-tutorial-in.xml:7547(title)
 msgid "Using a <application>gtkmm</application> widget"
 msgstr "Usar un widget de <application>gtkmm</application>"
 
-#: C/gtkmm-tutorial-in.xml:7483(para)
+#: C/gtkmm-tutorial-in.xml:7549(para)
 msgid ""
 "Our examples all tend to have the same structure. They follow these steps "
 "for using a <classname>Widget</classname>:"
@@ -12858,7 +12986,7 @@ msgstr ""
 "Todos los ejemplos tienden a tener la misma estructura. Siguen estos pasos "
 "para usar un <classname>widget</classname>:"
 
-#: C/gtkmm-tutorial-in.xml:7492(para)
+#: C/gtkmm-tutorial-in.xml:7558(para)
 msgid ""
 "Declare a variable of the type of <classname>Widget</classname> you wish to "
 "use, generally as member variable of a derived container class. You could "
@@ -12874,7 +13002,7 @@ msgstr ""
 "puntero, probablemente lo mejor sea hacer que el puntero sea una variable "
 "miembro de una clase contenedora para que pueda acceder a él más tarde."
 
-#: C/gtkmm-tutorial-in.xml:7503(para)
+#: C/gtkmm-tutorial-in.xml:7569(para)
 msgid ""
 "Set the attributes of the widget. If the widget has no default constructor, "
 "then you will need to initialize the widget in the initalizer list of your "
@@ -12884,11 +13012,11 @@ msgstr ""
 "predeterminado, tendrá que inicializar el widget en la lista inicializadora "
 "del constructor de su clase contenedora."
 
-#: C/gtkmm-tutorial-in.xml:7509(para)
+#: C/gtkmm-tutorial-in.xml:7575(para)
 msgid "Connect any signals you wish to use to the appropriate handlers."
 msgstr "Conecte las señales que quiere usar a los manejadores apropiados."
 
-#: C/gtkmm-tutorial-in.xml:7515(para)
+#: C/gtkmm-tutorial-in.xml:7581(para)
 msgid ""
 "Pack the widget into a container using the appropriate call, e.g. "
 "<methodname>Gtk::Container::add()</methodname> or <methodname>pack_start()</"
@@ -12898,11 +13026,11 @@ msgstr ""
 "ejemplo, <methodname>Gtk::Container::add()</methodname> o "
 "<methodname>pack_start()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7523(para)
+#: C/gtkmm-tutorial-in.xml:7589(para)
 msgid "Call <methodname>show()</methodname> to display the widget."
 msgstr "Llame a <methodname>show()</methodname> para mostrar al widget."
 
-#: C/gtkmm-tutorial-in.xml:7532(para)
+#: C/gtkmm-tutorial-in.xml:7598(para)
 msgid ""
 "<methodname>Gtk::Widget::show()</methodname> lets <application>gtkmm</"
 "application> know that we have finished setting the attributes of the "
@@ -12923,11 +13051,11 @@ msgstr ""
 "usuario verá primero una ventana vacía, en la que los widgets se dibujarán "
 "gradualmente."
 
-#: C/gtkmm-tutorial-in.xml:7546(title)
+#: C/gtkmm-tutorial-in.xml:7612(title)
 msgid "Contributing"
 msgstr "Contribuir"
 
-#: C/gtkmm-tutorial-in.xml:7548(para)
+#: C/gtkmm-tutorial-in.xml:7614(para)
 msgid ""
 "This document, like so much other great software out there, was created for "
 "free by volunteers. If you are at all knowledgeable about any aspect of "
@@ -12939,7 +13067,7 @@ msgstr ""
 "aspecto de <application>gtkmm</application> que todavía no esté documentado, "
 "por favor considere contribuir a este documento."
 
-#: C/gtkmm-tutorial-in.xml:7554(para)
+#: C/gtkmm-tutorial-in.xml:7620(para)
 msgid ""
 "Ideally, we would like you to <ulink url=\"http://www.gtkmm.org/bugs.shtml";
 "\">provide a patch</ulink> to the <filename>docs/tutorial/C/gtkmm-tutorial-"
@@ -12951,7 +13079,7 @@ msgstr ""
 "gtkmm-tutorial-in.xml</filename>. Este archivo está actualmente en el módulo "
 "<literal>gtkmm-documentation</literal> en el git de GNOME."
 
-#: C/gtkmm-tutorial-in.xml:7560(para)
+#: C/gtkmm-tutorial-in.xml:7626(para)
 msgid ""
 "If you do decide to contribute, please post your contribution to the "
 "<application>gtkmm</application> mailing list at <ulink url=\"mailto:gtkmm-";
@@ -12969,11 +13097,11 @@ msgstr ""
 "porción de sus ejemplos en sus programas, y las copias de este documento "
 "(incluyendo su contribución) se pueden distribuir libremente."
 
-#: C/gtkmm-tutorial-in.xml:7572(title)
+#: C/gtkmm-tutorial-in.xml:7638(title)
 msgid "The RefPtr smartpointer"
 msgstr "El puntero inteligente RefPtr"
 
-#: C/gtkmm-tutorial-in.xml:7573(para)
+#: C/gtkmm-tutorial-in.xml:7639(para)
 msgid ""
 "<classname>Glib::RefPtr</classname> is a smartpointer. Specifically, it is a "
 "reference-counting smartpointer. You might be familiar with <literal>std::"
@@ -12992,18 +13120,18 @@ msgstr ""
 "compartido, y una versión futura de <application>gtkmm</application> "
 "posiblemente use este en su lugar."
 
-#: C/gtkmm-tutorial-in.xml:7583(para)
+#: C/gtkmm-tutorial-in.xml:7649(para)
 msgid ""
 "A smartpointer acts much like a normal pointer. Here are a few examples."
 msgstr ""
 "Un puntero inteligente actúa como un puntero normal. Aquí hay algunos "
 "ejemplos."
 
-#: C/gtkmm-tutorial-in.xml:7586(title)
+#: C/gtkmm-tutorial-in.xml:7652(title)
 msgid "Copying"
 msgstr "Copiado"
 
-#: C/gtkmm-tutorial-in.xml:7587(para)
+#: C/gtkmm-tutorial-in.xml:7653(para)
 msgid ""
 "You can copy <classname>RefPtr</classname>s, just like normal pointers. But "
 "unlike normal pointers, you don't need to worry about deleting the "
@@ -13013,7 +13141,7 @@ msgstr ""
 "diferencia de los punteros normales, no necesita preocuparse por la "
 "eliminación de la instancia subyacente."
 
-#: C/gtkmm-tutorial-in.xml:7593(programlisting)
+#: C/gtkmm-tutorial-in.xml:7659(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13024,7 +13152,7 @@ msgstr ""
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; refPixbuf2 = refPixbuf;\n"
 
-#: C/gtkmm-tutorial-in.xml:7598(para)
+#: C/gtkmm-tutorial-in.xml:7664(para)
 msgid ""
 "Of course this means that you can store <classname>RefPtr</classname>s in "
 "standard containers, such as <classname>std::vector</classname> or "
@@ -13034,7 +13162,7 @@ msgstr ""
 "classname> en contenedores estándar, como <classname>std::vector</classname> "
 "o <classname>std::list</classname>."
 
-#: C/gtkmm-tutorial-in.xml:7603(programlisting)
+#: C/gtkmm-tutorial-in.xml:7669(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13047,11 +13175,11 @@ msgstr ""
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "listPixbufs.push_back(refPixbuf);\n"
 
-#: C/gtkmm-tutorial-in.xml:7611(title)
+#: C/gtkmm-tutorial-in.xml:7677(title)
 msgid "Dereferencing"
 msgstr "Eliminar referencia"
 
-#: C/gtkmm-tutorial-in.xml:7612(para)
+#: C/gtkmm-tutorial-in.xml:7678(para)
 msgid ""
 "You can dereference a smartpointer with the -&gt; operator, to call the "
 "methods of the underlying instance, just like a normal pointer."
@@ -13060,7 +13188,7 @@ msgstr ""
 "llamar a los métodos de la instancia subyacente, al igual que un puntero "
 "normal."
 
-#: C/gtkmm-tutorial-in.xml:7616(programlisting)
+#: C/gtkmm-tutorial-in.xml:7682(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13071,7 +13199,7 @@ msgstr ""
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "int width = refPixbuf-&gt;get_width();\n"
 
-#: C/gtkmm-tutorial-in.xml:7621(para)
+#: C/gtkmm-tutorial-in.xml:7687(para)
 msgid ""
 "But unlike most smartpointers, you can't use the * operator to access the "
 "underlying instance."
@@ -13079,7 +13207,7 @@ msgstr ""
 "Pero a diferencia de la mayoría de punteros inteligentes, no se puede "
 "utilizar el operador * para acceder a la instancia de base."
 
-#: C/gtkmm-tutorial-in.xml:7625(programlisting)
+#: C/gtkmm-tutorial-in.xml:7691(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13090,11 +13218,11 @@ msgstr ""
 "Glib::RefPtr&lt;Gdk::Pixbuf&gt; refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
 "Gdk::Pixbuf&amp; underlying = *refPixbuf; //Syntax error - will not compile.\n"
 
-#: C/gtkmm-tutorial-in.xml:7632(title)
+#: C/gtkmm-tutorial-in.xml:7698(title)
 msgid "Casting"
 msgstr "Conversión de tipos"
 
-#: C/gtkmm-tutorial-in.xml:7633(para)
+#: C/gtkmm-tutorial-in.xml:7699(para)
 msgid ""
 "You can cast <classname>RefPtrs</classname> to base types, just like normal "
 "pointers."
@@ -13102,7 +13230,7 @@ msgstr ""
 "Puede convertir <classname>RefPtr</classname> a tipos base, al igual que a "
 "los punteros normales."
 
-#: C/gtkmm-tutorial-in.xml:7638(programlisting)
+#: C/gtkmm-tutorial-in.xml:7704(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13113,7 +13241,7 @@ msgstr ""
 "Glib::RefPtr&lt;Gtk::TreeStore&gt; refStore = Gtk::TreeStore::create(columns);\n"
 "Glib::RefPtr&lt;Gtk::TreeModel&gt; refModel = refStore;\n"
 
-#: C/gtkmm-tutorial-in.xml:7643(para)
+#: C/gtkmm-tutorial-in.xml:7709(para)
 msgid ""
 "This means that any method which takes a <type>const Glib::RefPtr&lt;"
 "BaseType&gt;</type> argument can also take a <type>const Glib::RefPtr&lt;"
@@ -13125,7 +13253,7 @@ msgstr ""
 "RefPtr&lt;DerivedType&gt;</type>. La conversión es implícita, al igual que "
 "lo sería con un puntero normal."
 
-#: C/gtkmm-tutorial-in.xml:7647(para)
+#: C/gtkmm-tutorial-in.xml:7713(para)
 msgid ""
 "You can also cast to a derived type, but the syntax is a little different "
 "than with a normal pointer."
@@ -13133,7 +13261,7 @@ msgstr ""
 "También puede convertir a un tipo derivado, pero la sintaxis es un poco "
 "diferente que con un puntero normal."
 
-#: C/gtkmm-tutorial-in.xml:7651(programlisting)
+#: C/gtkmm-tutorial-in.xml:7717(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13148,11 +13276,11 @@ msgstr ""
 "Glib::RefPtr&lt;Gtk::TreeStore&gt; refStore2 =\n"
 "Glib::RefPtr&lt;Gtk::TreeStore&gt;::cast_static(refModel);\n"
 
-#: C/gtkmm-tutorial-in.xml:7661(title)
+#: C/gtkmm-tutorial-in.xml:7727(title)
 msgid "Checking for null"
 msgstr "Verificar si es nulo"
 
-#: C/gtkmm-tutorial-in.xml:7662(para)
+#: C/gtkmm-tutorial-in.xml:7728(para)
 msgid ""
 "Just like normal pointers, you can check whether a <classname>RefPtr</"
 "classname> points to anything."
@@ -13160,7 +13288,7 @@ msgstr ""
 "Al igual que con los punteros normales, puede verificar si un "
 "<classname>RefPtr</classname> apunta a algo."
 
-#: C/gtkmm-tutorial-in.xml:7667(programlisting)
+#: C/gtkmm-tutorial-in.xml:7733(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13179,7 +13307,7 @@ msgstr ""
 "  ...\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:7676(para)
+#: C/gtkmm-tutorial-in.xml:7742(para)
 msgid ""
 "But unlike normal pointers, <classname>RefPtr</classname>s are automatically "
 "initialized to null so you don't need to remember to do that yourself."
@@ -13188,11 +13316,11 @@ msgstr ""
 "classname> se inicializan automáticamente a nulo, por lo que no necesita "
 "recordar hacerlo."
 
-#: C/gtkmm-tutorial-in.xml:7683(title)
+#: C/gtkmm-tutorial-in.xml:7749(title)
 msgid "Constness"
 msgstr "Constancia"
 
-#: C/gtkmm-tutorial-in.xml:7684(para)
+#: C/gtkmm-tutorial-in.xml:7750(para)
 msgid ""
 "The use of the <literal>const</literal> keyword in C++ is not always clear. "
 "You might not realise that <type>const Something*</type> declares a pointer "
@@ -13204,7 +13332,7 @@ msgstr ""
 "puntero a un <type>const Algo</type>. El puntero puede cambiarse, pero no el "
 "<type>Algo</type> al que apunta."
 
-#: C/gtkmm-tutorial-in.xml:7690(para)
+#: C/gtkmm-tutorial-in.xml:7756(para)
 msgid ""
 "Therefore, the <classname>RefPtr</classname> equivalent of <type>Something*</"
 "type> for a method parameter is <type>const Glib::RefPtr&lt;Something&gt;"
@@ -13216,7 +13344,7 @@ msgstr ""
 "Something&gt;&amp;</type>, y el equivalente de <type>const Algo*</type> es "
 "<type>const Glib::RefPtr&lt;const Something&gt;&amp;</type>."
 
-#: C/gtkmm-tutorial-in.xml:7697(para)
+#: C/gtkmm-tutorial-in.xml:7763(para)
 msgid ""
 "The <literal>const ... &amp;</literal> around both is just for efficiency, "
 "like using <classname>const std::string&amp;</classname> instead of "
@@ -13228,11 +13356,11 @@ msgstr ""
 "<classname>std::string</classname> como método de parámetro para evitar una "
 "copia innecesaria."
 
-#: C/gtkmm-tutorial-in.xml:7712(title)
+#: C/gtkmm-tutorial-in.xml:7778(title)
 msgid "Connecting signal handlers"
 msgstr "Conectar manejadores de señales"
 
-#: C/gtkmm-tutorial-in.xml:7713(para)
+#: C/gtkmm-tutorial-in.xml:7779(para)
 msgid ""
 "<application>gtkmm</application> widget classes have signal accessor "
 "methods, such as <methodname>Gtk::Button::signal_clicked()</methodname>, "
@@ -13253,12 +13381,12 @@ msgstr ""
 "<application>GTK+</application>, estos manejadores de señales a menudo se "
 "llaman retornos de llamada."
 
-#: C/gtkmm-tutorial-in.xml:7723(para)
+#: C/gtkmm-tutorial-in.xml:7789(para)
 msgid "Here's an example of a signal handler being connected to a signal:"
 msgstr ""
 "Aquí hay un ejemplo de un manejador de señales que se conecta a una señal:"
 
-#: C/gtkmm-tutorial-in.xml:7728(programlisting)
+#: C/gtkmm-tutorial-in.xml:7794(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13289,7 +13417,7 @@ msgstr ""
 "    button.signal_clicked().connect(sigc::ptr_fun(&amp;on_button_clicked));\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:7744(para)
+#: C/gtkmm-tutorial-in.xml:7810(para)
 msgid ""
 "There's rather a lot to think about in this (non-functional) code. First "
 "let's identify the parties involved:"
@@ -13297,12 +13425,12 @@ msgstr ""
 "Hay mucho para pensar en este código no funcional. Primero, identifique a "
 "los grupos involucrados:"
 
-#: C/gtkmm-tutorial-in.xml:7752(para)
+#: C/gtkmm-tutorial-in.xml:7818(para)
 msgid "The signal handler is <methodname>on_button_clicked()</methodname>."
 msgstr ""
 "El manejador de señales es <methodname>on_button_clicked()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7758(para)
+#: C/gtkmm-tutorial-in.xml:7824(para)
 msgid ""
 "We're hooking it up to the <classname>Gtk::Button</classname> object called "
 "<varname>button</varname>."
@@ -13310,7 +13438,7 @@ msgstr ""
 "Se engancha al objeto <classname>Gtk::Button</classname> llamado "
 "<varname>button</varname>."
 
-#: C/gtkmm-tutorial-in.xml:7765(para)
+#: C/gtkmm-tutorial-in.xml:7831(para)
 msgid ""
 "When the Button emits its <literal>clicked</literal> signal, "
 "<methodname>on_button_clicked()</methodname> will be called."
@@ -13318,11 +13446,11 @@ msgstr ""
 "Cuando el botón emita su señal <literal>clicked</literal>, se llamará a "
 "<methodname>on_button_clicked()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7773(para)
+#: C/gtkmm-tutorial-in.xml:7839(para)
 msgid "Now let's look at the connection again:"
 msgstr "Ahora, mire la conexión nuevamente:"
 
-#: C/gtkmm-tutorial-in.xml:7778(programlisting)
+#: C/gtkmm-tutorial-in.xml:7844(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13335,7 +13463,7 @@ msgstr ""
 "    button.signal_clicked().connect(sigc::ptr_fun(&amp;on_button_clicked));\n"
 "    ...\n"
 
-#: C/gtkmm-tutorial-in.xml:7785(para)
+#: C/gtkmm-tutorial-in.xml:7851(para)
 msgid ""
 "Note that we don't pass a pointer to <methodname>on_button_clicked()</"
 "methodname> directly to the signal's <methodname>connect()</methodname> "
@@ -13347,7 +13475,7 @@ msgstr ""
 "methodname>. En su lugar, se llama a <function>sigc::ptr_fun()</function>, y "
 "se le pasa el resultado a <methodname>connect()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7792(para)
+#: C/gtkmm-tutorial-in.xml:7858(para)
 msgid ""
 "<function>sigc::ptr_fun()</function> generates a <classname>sigc::slot</"
 "classname>. A slot is an object which looks and feels like a function, but "
@@ -13363,11 +13491,11 @@ msgstr ""
 "independiente o un método estático. <function>sigc::mem_fun()</function> "
 "genera un «slot» para un método miembro de una instancia particular."
 
-#: C/gtkmm-tutorial-in.xml:7801(para)
+#: C/gtkmm-tutorial-in.xml:7867(para)
 msgid "Here's a slightly larger example of slots in action:"
 msgstr "Aquí hay un ejemplo ligeramente más amplio de los «slots» en acción:"
 
-#: C/gtkmm-tutorial-in.xml:7806(programlisting)
+#: C/gtkmm-tutorial-in.xml:7872(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13404,7 +13532,7 @@ msgstr ""
 "    button.signal_clicked().connect( sigc::mem_fun(some_object, &amp;some_class::on_button_clicked) );\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:7825(para)
+#: C/gtkmm-tutorial-in.xml:7891(para)
 msgid ""
 "The first call to <methodname>connect()</methodname> is just like the one we "
 "saw last time; nothing new here."
@@ -13412,7 +13540,7 @@ msgstr ""
 "La primera llamada a <methodname>connect()</methodname> es igual a la que "
 "vio la última vez; no hay nada nuevo aquí."
 
-#: C/gtkmm-tutorial-in.xml:7828(para)
+#: C/gtkmm-tutorial-in.xml:7894(para)
 msgid ""
 "The next is more interesting. <function>sigc::mem_fun()</function> is called "
 "with two arguments. The first argument is <parameter>some_object</"
@@ -13430,7 +13558,7 @@ msgstr ""
 "al que apunta del objeto especificado, en este caso, <methodname>some_object."
 "on_button_clicked()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7838(para)
+#: C/gtkmm-tutorial-in.xml:7904(para)
 msgid ""
 "Another thing to note about this example is that we made the call to "
 "<methodname>connect()</methodname> twice for the same signal object. This is "
@@ -13442,7 +13570,7 @@ msgstr ""
 "Esto está perfectamente bien: cuando se pulse el botón, se llamará a ambos "
 "manejadores de señales."
 
-#: C/gtkmm-tutorial-in.xml:7845(para)
+#: C/gtkmm-tutorial-in.xml:7911(para)
 msgid ""
 "We just told you that the button's <literal>clicked</literal> signal is "
 "expecting to call a method with no arguments. All signals have requirements "
@@ -13459,11 +13587,11 @@ msgstr ""
 "importante saber qué tipo de manejador de señales se esperará que conecte a "
 "una señal dada."
 
-#: C/gtkmm-tutorial-in.xml:7857(title)
+#: C/gtkmm-tutorial-in.xml:7923(title)
 msgid "Writing signal handlers"
 msgstr "Escribir manejadores de señales"
 
-#: C/gtkmm-tutorial-in.xml:7859(para)
+#: C/gtkmm-tutorial-in.xml:7925(para)
 msgid ""
 "To find out what type of signal handler you can connect to a signal, you can "
 "look it up in the reference documentation or the header file. Here's an "
@@ -13475,7 +13603,7 @@ msgstr ""
 "Aquí hay un ejemplo de una declaración de señal que puede ver en las "
 "cabeceras de <application>gtkmm</application>:"
 
-#: C/gtkmm-tutorial-in.xml:7866(programlisting)
+#: C/gtkmm-tutorial-in.xml:7932(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13484,7 +13612,7 @@ msgstr ""
 "\n"
 "Glib::SignalProxy1&lt;bool, Gtk::DirectionType&gt; signal_focus()\n"
 
-#: C/gtkmm-tutorial-in.xml:7871(para)
+#: C/gtkmm-tutorial-in.xml:7937(para)
 msgid ""
 "Other than the signal's name (<literal>focus</literal>), two things are "
 "important to note here: the number following the word "
@@ -13506,7 +13634,7 @@ msgstr ""
 "del primer y único argumento de esta señal. Mirando la documentación de "
 "referencia, también puede ver los nombres de los argumentos."
 
-#: C/gtkmm-tutorial-in.xml:7883(para)
+#: C/gtkmm-tutorial-in.xml:7949(para)
 msgid ""
 "The same principles apply for signals which have more arguments. Here's one "
 "with three (taken from <filename>&lt;gtkmm/editable.h&gt;</filename>):"
@@ -13515,7 +13643,7 @@ msgstr ""
 "Aquí hay una con tres (tomada de <filename>&lt;gtkmm/editable.h&gt;</"
 "filename>):"
 
-#: C/gtkmm-tutorial-in.xml:7889(programlisting)
+#: C/gtkmm-tutorial-in.xml:7955(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13526,7 +13654,7 @@ msgstr ""
 "Glib::SignalProxy3&lt;void, const Glib::ustring&amp;, int, int*&gt; signal_insert_text()\n"
 "\n"
 
-#: C/gtkmm-tutorial-in.xml:7895(para)
+#: C/gtkmm-tutorial-in.xml:7961(para)
 msgid ""
 "It follows the same form. The number 3 at the end of the type's name "
 "indicates that our signal handler will need three arguments. The first type "
@@ -13540,7 +13668,7 @@ msgstr ""
 "de señales. Los tres tipos siguientes son los de los argumentos, en orden. "
 "El prototipo de manejador de señales se podría ver así:"
 
-#: C/gtkmm-tutorial-in.xml:7904(programlisting)
+#: C/gtkmm-tutorial-in.xml:7970(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13549,16 +13677,16 @@ msgstr ""
 "\n"
 "void on_insert_text(const Glib::ustring&amp; text, int length, int* position);\n"
 
-#: C/gtkmm-tutorial-in.xml:7911(title)
+#: C/gtkmm-tutorial-in.xml:7977(title)
 msgid "Disconnecting signal handlers"
 msgstr "Desconectar manejadores de señales"
 
-#: C/gtkmm-tutorial-in.xml:7913(para)
+#: C/gtkmm-tutorial-in.xml:7979(para)
 msgid ""
 "Let's take another look at a Signal's <literal>connect</literal> method:"
 msgstr "Eche otro vistazo al método <literal>connect</literal> de la señal:"
 
-#: C/gtkmm-tutorial-in.xml:7918(programlisting)
+#: C/gtkmm-tutorial-in.xml:7984(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13567,7 +13695,7 @@ msgstr ""
 "\n"
 "sigc::signal&lt;void,int&gt;::iterator signal&lt;void,int&gt;::connect( const 
sigc::slot&lt;void,int&gt;&amp; );\n"
 
-#: C/gtkmm-tutorial-in.xml:7923(para)
+#: C/gtkmm-tutorial-in.xml:7989(para)
 msgid ""
 "Notice that the return value is of type <classname>sigc::signal&lt;void,"
 "int&gt;::iterator</classname>. This can be implicitely converted into a "
@@ -13583,11 +13711,11 @@ msgstr ""
 "puede desconectar su manejador de señales asociado usando el método "
 "<methodname>sigc::connection::disconnect()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:7934(title)
+#: C/gtkmm-tutorial-in.xml:8000(title)
 msgid "Overriding default signal handlers"
 msgstr "Reemplazar manejadores de señales predeterminados"
 
-#: C/gtkmm-tutorial-in.xml:7936(para)
+#: C/gtkmm-tutorial-in.xml:8002(para)
 msgid ""
 "So far we've told you to perform actions in response to button-presses and "
 "the like by handling signals. That's certainly a good way to do things, but "
@@ -13597,7 +13725,7 @@ msgstr ""
 "de botones o eventos similares manejando señales. Esa es seguramente una "
 "buena manera de hacer las cosas, pero no es la única."
 
-#: C/gtkmm-tutorial-in.xml:7943(para)
+#: C/gtkmm-tutorial-in.xml:8009(para)
 msgid ""
 "Instead of laboriously connecting signal handlers to signals, you can simply "
 "make a new class which inherits from a widget - say, a Button - and then "
@@ -13610,7 +13738,7 @@ msgstr ""
 "Button::on_clicked(). Esto puede ser mucho más simple que enganchar "
 "manejadores de señales para todo."
 
-#: C/gtkmm-tutorial-in.xml:7950(para)
+#: C/gtkmm-tutorial-in.xml:8016(para)
 msgid ""
 "Subclassing isn't always the best way to accomplish things. It is only "
 "useful when you want the widget to handle its own signal by itself. If you "
@@ -13626,7 +13754,7 @@ msgstr ""
 "manejen la misma señal, o si quiere que un manejador de señales responda a "
 "la misma señal desde diferentes objetos."
 
-#: C/gtkmm-tutorial-in.xml:7955(para)
+#: C/gtkmm-tutorial-in.xml:8021(para)
 msgid ""
 "<application>gtkmm</application> classes are designed with overriding in "
 "mind; they contain virtual member methods specifically intended to be "
@@ -13636,11 +13764,11 @@ msgstr ""
 "reemplazos en mente; contienen métodos miembro virtuales específicamente "
 "pensados para reemplazarse."
 
-#: C/gtkmm-tutorial-in.xml:7960(para)
+#: C/gtkmm-tutorial-in.xml:8026(para)
 msgid "Let's look at an example of overriding:"
 msgstr "Eche un vistazo a un ejemplo de reemplazo:"
 
-#: C/gtkmm-tutorial-in.xml:7965(programlisting)
+#: C/gtkmm-tutorial-in.xml:8031(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13677,7 +13805,7 @@ msgstr ""
 "    Gtk::Button::on_clicked();\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:7984(para)
+#: C/gtkmm-tutorial-in.xml:8050(para)
 msgid ""
 "Here we define a new class called <classname>OverriddenButton</classname>, "
 "which inherits from <classname>Gtk::Button</classname>. The only thing we "
@@ -13697,7 +13825,7 @@ msgstr ""
 "para dejarle a <classname>Gtk::Button</classname> hacer lo que hubiera hecho "
 "si no se hubiera reemplazado."
 
-#: C/gtkmm-tutorial-in.xml:7995(para)
+#: C/gtkmm-tutorial-in.xml:8061(para)
 msgid ""
 "You don't always need to call the parent's method; there are times when you "
 "might not want to. Note that we called the parent method <emphasis>after</"
@@ -13717,11 +13845,11 @@ msgstr ""
 "puede llamar al método padre en la <emphasis>mitad</emphasis> de su código "
 "personalizado."
 
-#: C/gtkmm-tutorial-in.xml:8009(title)
+#: C/gtkmm-tutorial-in.xml:8075(title)
 msgid "Binding extra arguments"
 msgstr "Enlazar argumentos adicionales"
 
-#: C/gtkmm-tutorial-in.xml:8017(programlisting)
+#: C/gtkmm-tutorial-in.xml:8083(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13730,7 +13858,7 @@ msgstr ""
 "\n"
 "m_button1.signal_clicked().connect( sigc::bind&lt;Glib::ustring&gt;( sigc::mem_fun(*this, 
&amp;HelloWorld::on_button_clicked), \"button 1\") );\n"
 
-#: C/gtkmm-tutorial-in.xml:8024(programlisting)
+#: C/gtkmm-tutorial-in.xml:8090(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13739,7 +13867,7 @@ msgstr ""
 "\n"
 "virtual void on_button_clicked(Glib::ustring data);\n"
 
-#: C/gtkmm-tutorial-in.xml:8010(para)
+#: C/gtkmm-tutorial-in.xml:8076(para)
 msgid ""
 "If you use one signal handler to catch the same signal from several widgets, "
 "you might like that signal handler to receive some extra information. For "
@@ -13765,7 +13893,7 @@ msgstr ""
 "<placeholder-2/> Naturalmente, un manejador de señal «clicked» normal no "
 "tendría argumentos."
 
-#: C/gtkmm-tutorial-in.xml:8029(para)
+#: C/gtkmm-tutorial-in.xml:8095(para)
 msgid ""
 "<function>sigc::bind()</function> is not commonly used, but you might find "
 "it helpful sometimes. If you are familiar with <application>GTK+</"
@@ -13786,11 +13914,11 @@ msgstr ""
 "muy difícil en C. Hay mucha menos necesidad de este «hack» en "
 "<application>gtkmm</application>."
 
-#: C/gtkmm-tutorial-in.xml:8041(title)
+#: C/gtkmm-tutorial-in.xml:8107(title)
 msgid "X Event signals"
 msgstr "Señales de eventos de X"
 
-#: C/gtkmm-tutorial-in.xml:8042(para)
+#: C/gtkmm-tutorial-in.xml:8108(para)
 msgid ""
 "The <classname>Widget</classname> class has some special signals which "
 "correspond to the underlying X-Windows events. These are suffixed by "
@@ -13802,7 +13930,7 @@ msgstr ""
 "<literal>_event</literal>; por ejemplo, <methodname>Widget::"
 "signal_button_pressed_event()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:8048(para)
+#: C/gtkmm-tutorial-in.xml:8114(para)
 msgid ""
 "You might occasionally find it useful to handle X events when there's "
 "something you can't accomplish with normal signals. <classname>Gtk::Button</"
@@ -13818,7 +13946,7 @@ msgstr ""
 "<literal>button_pressed_event</literal> si necesita esta información. Los "
 "eventos de X también se usan a menudo para manejar pulsaciones de teclas."
 
-#: C/gtkmm-tutorial-in.xml:8057(para)
+#: C/gtkmm-tutorial-in.xml:8123(para)
 msgid ""
 "These signals behave slightly differently. The value returned from the "
 "signal handler indicates whether it has fully \"handled\" the event. If the "
@@ -13833,7 +13961,7 @@ msgstr ""
 "<literal>true</literal>, entonces no se necesitará llamar a ningún otro "
 "manejador de señales."
 
-#: C/gtkmm-tutorial-in.xml:8062(para)
+#: C/gtkmm-tutorial-in.xml:8128(para)
 msgid ""
 "Handling an X event doesn't affect the Widget's other signals. If you handle "
 "<literal>button_pressed_event</literal> for <classname>Gtk::Button</"
@@ -13845,7 +13973,7 @@ msgstr ""
 "classname>, igualmente podrá obtener la señal <literal>clicked</literal>. Se "
 "emiten (casi) al mismo tiempo."
 
-#: C/gtkmm-tutorial-in.xml:8069(para)
+#: C/gtkmm-tutorial-in.xml:8135(para)
 msgid ""
 "Note also that not all widgets receive all X events by default. To receive "
 "additional X events, you can use <methodname>Gtk::Widget::set_events()</"
@@ -13863,7 +13991,7 @@ msgstr ""
 "widget <classname>EventBox</classname> primero. Consulte el capítulo <link "
 "linkend=\"chapter-widgets-without-xwindows\">Widgets sin X-Windows</link>."
 
-#: C/gtkmm-tutorial-in.xml:8078(programlisting)
+#: C/gtkmm-tutorial-in.xml:8144(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13876,7 +14004,7 @@ msgstr ""
 "Gtk::Button button(\"label\");\n"
 "button.signal_button_press_event().connect( sigc::ptr_fun(&amp;on_button_press) );\n"
 
-#: C/gtkmm-tutorial-in.xml:8084(para)
+#: C/gtkmm-tutorial-in.xml:8150(para)
 msgid ""
 "When the mouse is over the button and a mouse button is pressed, "
 "<methodname>on_button_press()</methodname> will be called."
@@ -13884,7 +14012,7 @@ msgstr ""
 "Cuando el ratón esté sobre el botón y el botón del ratón se presione, se "
 "llamará a <methodname>on_button_press()</methodname>."
 
-#: C/gtkmm-tutorial-in.xml:8089(para)
+#: C/gtkmm-tutorial-in.xml:8155(para)
 msgid ""
 "<type>GdkEventButton</type> is a structure containing the event's "
 "parameters, such as the coordinates of the mouse pointer at the time the "
@@ -13896,11 +14024,11 @@ msgstr ""
 "que se presionó el botón. Hay varios tipos diferentes de estructuras "
 "<type>GdkEvent</type> para la variedad de eventos."
 
-#: C/gtkmm-tutorial-in.xml:8097(title)
+#: C/gtkmm-tutorial-in.xml:8163(title)
 msgid "Signal Handler sequence"
 msgstr "Secuencia de los manejadores de señales"
 
-#: C/gtkmm-tutorial-in.xml:8105(programlisting)
+#: C/gtkmm-tutorial-in.xml:8171(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -13909,7 +14037,7 @@ msgstr ""
 "\n"
 "button.signal_button_press_event().connect( sigc::ptr_fun(&amp;on_mywindow_button_press), false );\n"
 
-#: C/gtkmm-tutorial-in.xml:8098(para)
+#: C/gtkmm-tutorial-in.xml:8164(para)
 msgid ""
 "By default, your signal handlers are called after any previously-connected "
 "signal handlers. However, this can be a problem with the X Event signals. "
@@ -13930,7 +14058,7 @@ msgstr ""
 "literal> al parámetro opcional <literal>after</literal>. Por ejemplo, "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8109(para)
+#: C/gtkmm-tutorial-in.xml:8175(para)
 msgid ""
 "The event is delivered first to the widget the event occurred in. If all "
 "signal handlers in that widget return <literal>false</literal> (indicating "
@@ -13944,11 +14072,11 @@ msgstr ""
 "al widget padre y se emitirá allí. Esto continúa hasta el widget de nivel "
 "superior si ninguno maneja el evento."
 
-#: C/gtkmm-tutorial-in.xml:8120(title)
+#: C/gtkmm-tutorial-in.xml:8186(title)
 msgid "Exceptions in signal handlers"
 msgstr "Excepciones en manejadores de señales"
 
-#: C/gtkmm-tutorial-in.xml:8121(para)
+#: C/gtkmm-tutorial-in.xml:8187(para)
 msgid ""
 "When a program is aborted because of an unhandled C++ exception, it's "
 "sometimes possible to use a debugger to find the location where the "
@@ -13960,7 +14088,7 @@ msgstr ""
 "se lanzó. Esto es más difícil de lo normal si un manejador de señales lanzó "
 "la excepción."
 
-#: C/gtkmm-tutorial-in.xml:8126(para)
+#: C/gtkmm-tutorial-in.xml:8192(para)
 msgid ""
 "This section describes primarily what you can expect on a Linux system, when "
 "you use <ulink url=\"http://www.gnu.org/software/gdb/\";>the gdb debugger</"
@@ -13970,7 +14098,7 @@ msgstr ""
 "cuando usa el <ulink url=\"http://www.gnu.org/software/gdb/\";>depurador gdb</"
 "ulink>."
 
-#: C/gtkmm-tutorial-in.xml:8133(programlisting)
+#: C/gtkmm-tutorial-in.xml:8199(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14009,7 +14137,7 @@ msgstr ""
 "  return app-&gt;run();\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:8130(para)
+#: C/gtkmm-tutorial-in.xml:8196(para)
 msgid ""
 "First, let's look at a simple example where an exception is thrown from a "
 "normal function (no signal handler). <placeholder-1/>"
@@ -14017,7 +14145,7 @@ msgstr ""
 "Primero, mire el ejemplo simple en el que se lanza una excepción desde una "
 "función normal (sin manejador de señales). <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8155(programlisting)
+#: C/gtkmm-tutorial-in.xml:8221(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14040,7 +14168,7 @@ msgstr ""
 "#7  0x08048864 in throwSomething () at without_signal.cc:6\n"
 "#8  0x0804887d in main (argc=1, argv=0xbfffecd4) at without_signal.cc:12\n"
 
-#: C/gtkmm-tutorial-in.xml:8152(para)
+#: C/gtkmm-tutorial-in.xml:8218(para)
 msgid ""
 "Here is an excerpt from a <application>gdb</application> session. Only the "
 "most interesting parts of the output are shown. <placeholder-1/> You can see "
@@ -14052,7 +14180,7 @@ msgstr ""
 "ver que la excepción se lanzó desde <filename>without_signal.cc</filename>, "
 "en la línea 6 (<code>throw \"Something\";</code>)."
 
-#: C/gtkmm-tutorial-in.xml:8171(programlisting)
+#: C/gtkmm-tutorial-in.xml:8237(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14093,7 +14221,7 @@ msgstr ""
 "  return app-&gt;run();\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:8168(para)
+#: C/gtkmm-tutorial-in.xml:8234(para)
 msgid ""
 "Now let's see what happens when an exception is thrown from a signal "
 "handler. Here's the source code. <placeholder-1/>"
@@ -14101,7 +14229,7 @@ msgstr ""
 "Ahora vea qué pasa cuando una excepción se lanza desde un manejador de "
 "señales. Aquí está el código fuente. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8193(programlisting)
+#: C/gtkmm-tutorial-in.xml:8259(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14132,7 +14260,7 @@ msgstr ""
 "#13 0x002e1b31 in Gtk::Application::run (this=0x804f300) at application.cc:178\n"
 "#14 0x08048ccc in main (argc=1, argv=0xbfffecd4) at with_signal.cc:16\n"
 
-#: C/gtkmm-tutorial-in.xml:8191(para)
+#: C/gtkmm-tutorial-in.xml:8257(para)
 msgid ""
 "And here's an excerpt from a <application>gdb</application> session. "
 "<placeholder-1/> The exception is caught in <application>glibmm</"
@@ -14150,7 +14278,7 @@ msgstr ""
 "en <application>glibmm</application> o <application>gtkmm</application>, y "
 "<application>gdb</application> no puede ver dónde se lanzó."
 
-#: C/gtkmm-tutorial-in.xml:8216(programlisting)
+#: C/gtkmm-tutorial-in.xml:8282(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14185,7 +14313,7 @@ msgstr ""
 "\n"
 "Program received signal SIGTRAP, Trace/breakpoint trap.\n"
 
-#: C/gtkmm-tutorial-in.xml:8213(para)
+#: C/gtkmm-tutorial-in.xml:8279(para)
 msgid ""
 "To see where the exception is thrown, you can use the <application>gdb</"
 "application> command <userinput>catch throw</userinput>. <placeholder-1/>"
@@ -14193,7 +14321,7 @@ msgstr ""
 "Para ver dónde se lanza la excepción, puede usar el comando <userinput>catch "
 "throw</userinput> de <application>gdb</application>. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8237(programlisting)
+#: C/gtkmm-tutorial-in.xml:8303(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14214,7 +14342,7 @@ msgstr ""
 "(gdb) set pagination off\n"
 "(gdb) run\n"
 
-#: C/gtkmm-tutorial-in.xml:8233(para)
+#: C/gtkmm-tutorial-in.xml:8299(para)
 msgid ""
 "If there are many caught exceptions before the interesting uncaught one, "
 "this method can be tedious. It can be automated with the following "
@@ -14230,11 +14358,11 @@ msgstr ""
 "del último (o posiblemente del penúltimo) <code>throw</code> antes de que el "
 "programa se detenga, es la interesante."
 
-#: C/gtkmm-tutorial-in.xml:8256(title)
+#: C/gtkmm-tutorial-in.xml:8322(title)
 msgid "Creating your own signals"
 msgstr "Crear sus propias señales"
 
-#: C/gtkmm-tutorial-in.xml:8257(para)
+#: C/gtkmm-tutorial-in.xml:8323(para)
 msgid ""
 "Now that you've seen signals and signal handlers in <application>gtkmm</"
 "application>, you might like to use the same technique to allow interaction "
@@ -14246,7 +14374,7 @@ msgstr ""
 "entre sus propias clases. Eso es realmente muy simple usando la biblioteca "
 "<application>libsigc++</application> directamente."
 
-#: C/gtkmm-tutorial-in.xml:8263(para)
+#: C/gtkmm-tutorial-in.xml:8329(para)
 msgid ""
 "This isn't purely a <application>gtkmm</application> or GUI issue. "
 "<application>gtkmm</application> uses <application>libsigc++</application> "
@@ -14261,7 +14389,7 @@ msgstr ""
 "GTK+, puede crear señales de C++ puras, usando la plantilla <classname>sigc::"
 "signal&lt;&gt;</classname>."
 
-#: C/gtkmm-tutorial-in.xml:8274(programlisting)
+#: C/gtkmm-tutorial-in.xml:8340(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14270,7 +14398,7 @@ msgstr ""
 "\n"
 "sigc::signal&lt;void, bool, int&gt; signal_something;\n"
 
-#: C/gtkmm-tutorial-in.xml:8270(para)
+#: C/gtkmm-tutorial-in.xml:8336(para)
 msgid ""
 "For instance, to create a signal that sends 2 parameters, a <type>bool</"
 "type> and an <type>int</type>, just declare a <classname>sigc::signal</"
@@ -14280,7 +14408,7 @@ msgstr ""
 "type> y un <type>int</type>, simplemente declare una <classname>sigc::"
 "signal</classname>, así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8282(programlisting)
+#: C/gtkmm-tutorial-in.xml:8348(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14317,7 +14445,7 @@ msgstr ""
 "  return m_signal_something;\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:8278(para)
+#: C/gtkmm-tutorial-in.xml:8344(para)
 msgid ""
 "You could just declare that signal as a public member variable, but some "
 "people find that distasteful and prefer to make it available via an accessor "
@@ -14327,7 +14455,7 @@ msgstr ""
 "pública, pero algunas personas lo encuentran desastroso y prefieren hacerla "
 "disponible mediante un método de acceso, así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8304(programlisting)
+#: C/gtkmm-tutorial-in.xml:8370(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14338,7 +14466,7 @@ msgstr ""
 "server.signal_something().connect(\n"
 "  sigc::mem_fun(client, &amp;Client::on_server_something) );\n"
 
-#: C/gtkmm-tutorial-in.xml:8301(para)
+#: C/gtkmm-tutorial-in.xml:8367(para)
 msgid ""
 "You can then connect to the signal using the same syntax used when "
 "connecting to <application>gtkmm</application> signals. For instance, "
@@ -14348,17 +14476,17 @@ msgstr ""
 "conectaba a señales de <application>gtkmm</application>. Por ejemplo, "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8312(para)
+#: C/gtkmm-tutorial-in.xml:8378(para)
 msgid "This is a full working example that defines and uses custom signals."
 msgstr ""
 "Este es un ejemplo funcional completo que define y usa señales "
 "personalizadas."
 
-#: C/gtkmm-tutorial-in.xml:8326(title)
+#: C/gtkmm-tutorial-in.xml:8392(title)
 msgid "Comparison with other signalling systems"
 msgstr "Comparación con otros sistemas de señales"
 
-#: C/gtkmm-tutorial-in.xml:8327(para)
+#: C/gtkmm-tutorial-in.xml:8393(para)
 msgid ""
 "(An aside: <application>GTK+</application> calls this scheme \"signalling\"; "
 "the sharp-eyed reader with GUI toolkit experience will note that this same "
@@ -14384,7 +14512,7 @@ msgstr ""
 "señales hacen de emisores, y los «slots» de receptores, o algo así. Se "
 "hablará de este tema más adelante)."
 
-#: C/gtkmm-tutorial-in.xml:8341(para)
+#: C/gtkmm-tutorial-in.xml:8407(para)
 msgid ""
 "<application>gtkmm</application> signal handlers are strongly-typed, whereas "
 "<application>GTK+</application> C code allows you to connect a callback with "
@@ -14399,7 +14527,7 @@ msgstr ""
 "diferencia de <application>Qt</application>, <application>gtkmm</"
 "application> logra esto sin modificar el lenguaje C++."
 
-#: C/gtkmm-tutorial-in.xml:8347(para)
+#: C/gtkmm-tutorial-in.xml:8413(para)
 msgid ""
 "Re. Overriding signal handlers: You can do this in the straight-C world of "
 "GTK+ too; that's what GTK's object system is for. But in GTK+, you have to "
@@ -14414,7 +14542,7 @@ msgstr ""
 "++, es simple, dado que esas características se soportan en el lenguaje en "
 "sí; puede dejarle el trabajo pesado al compilador."
 
-#: C/gtkmm-tutorial-in.xml:8355(para)
+#: C/gtkmm-tutorial-in.xml:8421(para)
 msgid ""
 "This is one of the places where the beauty of C++ really comes out. One "
 "wouldn't think of subclassing a GTK+ widget simply to override its action "
@@ -14430,11 +14558,11 @@ msgstr ""
 "widget nuevo. Pero, dado que reemplazar métodos es tan fácil en C++, es "
 "enteramente práctico (y razonable) heredar de un botón para ese propósito."
 
-#: C/gtkmm-tutorial-in.xml:8366(title)
+#: C/gtkmm-tutorial-in.xml:8432(title)
 msgid "<application>gtkmm</application> and Win32"
 msgstr "<application>gtkmm</application> y Win32"
 
-#: C/gtkmm-tutorial-in.xml:8367(para)
+#: C/gtkmm-tutorial-in.xml:8433(para)
 msgid ""
 "One of the major advantages of <application>gtkmm</application> is that it "
 "is crossplatform. <application>gtkmm</application> programs written on other "
@@ -14446,7 +14574,7 @@ msgstr ""
 "en otras plataformas como GNU/Linux generalmente pueden transferirse a "
 "Windows (y viceversa) con pocas modificaciones al código fuente."
 
-#: C/gtkmm-tutorial-in.xml:8372(para)
+#: C/gtkmm-tutorial-in.xml:8438(para)
 msgid ""
 "<application>gtkmm</application> currently works with the <ulink url="
 "\"http://mingw.org/\";>MingW/GCC3.4 compiler</ulink> and Microsoft Visual C++ "
@@ -14465,11 +14593,11 @@ msgstr ""
 "MSWindows/\">http://live.gnome.org/gtkmm/MSWindows</ulink> para ver "
 "instrucciones sobre su uso."
 
-#: C/gtkmm-tutorial-in.xml:8384(title)
+#: C/gtkmm-tutorial-in.xml:8450(title)
 msgid "Building <application>gtkmm</application> on Win32"
 msgstr "Construir aplicaciones <application>gtkmm</application> en Win32"
 
-#: C/gtkmm-tutorial-in.xml:8385(para)
+#: C/gtkmm-tutorial-in.xml:8451(para)
 msgid ""
 "Please see <ulink url=\"http://live.gnome.org/gtkmm/MSWindows/BuildingGtkmm";
 "\">http://live.gnome.org/gtkmm/MSWindows/BuildingGtkmm</ulink> for "
@@ -14479,11 +14607,11 @@ msgstr ""
 "\">http://live.gnome.org/gtkmm/MSWindows/BuildingGtkmm</ulink> para obtener "
 "instrucciones sobre cómo construir gtkmm en Windows."
 
-#: C/gtkmm-tutorial-in.xml:8392(title)
+#: C/gtkmm-tutorial-in.xml:8458(title)
 msgid "Working with gtkmm's Source Code"
 msgstr "Trabajar con el código fuente de gtkmm"
 
-#: C/gtkmm-tutorial-in.xml:8393(para)
+#: C/gtkmm-tutorial-in.xml:8459(para)
 msgid ""
 "If you are interested in helping out with the development of "
 "<application>gtkmm</application>, or fixing a bug in <application>gtkmm</"
@@ -14501,7 +14629,7 @@ msgstr ""
 "su instalación de <application>gtkmm</application> existente, en una ruta "
 "separada."
 
-#: C/gtkmm-tutorial-in.xml:8400(para)
+#: C/gtkmm-tutorial-in.xml:8466(para)
 msgid ""
 "The easiest way to do this is using <ulink url=\"http://developer.gnome.org/";
 "jhbuild/unstable/\">jhbuild</ulink>. <application>jhbuild</application> is a "
@@ -14530,7 +14658,7 @@ msgstr ""
 "mail.gnome.org/mailman/listinfo/gnome-love\">lista de correo-e gnome-love</"
 "ulink>."
 
-#: C/gtkmm-tutorial-in.xml:8416(para)
+#: C/gtkmm-tutorial-in.xml:8482(para)
 msgid ""
 "Note that to build <application>gtkmm</application> from git, you'll often "
 "need to build all of its dependencies from git as well. "
@@ -14546,11 +14674,11 @@ msgstr ""
 "todo. Probablemente encontrará problemas en la construcción, aunque "
 "normalmente se corregirán rápidamente si los reporta."
 
-#: C/gtkmm-tutorial-in.xml:8425(title)
+#: C/gtkmm-tutorial-in.xml:8491(title)
 msgid "Setting up jhbuild"
 msgstr "Configurar JHBuild"
 
-#: C/gtkmm-tutorial-in.xml:8426(para)
+#: C/gtkmm-tutorial-in.xml:8492(para)
 msgid ""
 "To set up <application>jhbuild</application>, follow the basic installation "
 "instructions from the <ulink url=\"http://developer.gnome.org/jhbuild/";
@@ -14569,12 +14697,12 @@ msgstr ""
 "carpeta de <application>jhbuild</application>: <screen>$ cp examples/sample."
 "jhbuildrc ~/.jhbuildrc</screen>"
 
-#: C/gtkmm-tutorial-in.xml:8441(programlisting)
+#: C/gtkmm-tutorial-in.xml:8507(programlisting)
 #, no-wrap
 msgid "moduleset = 'gnome-suites-core-deps-3.4'"
 msgstr "moduleset = 'gnome-suites-core-deps-3.4'"
 
-#: C/gtkmm-tutorial-in.xml:8436(para)
+#: C/gtkmm-tutorial-in.xml:8502(para)
 msgid ""
 "The <application>gtkmm</application> module is defined in the "
 "<filename>gnome-suites-core-deps-3.x.modules</filename> moduleset, so edit "
@@ -14587,12 +14715,12 @@ msgstr ""
 "configuración de su conjunto de módulos a la última versión, por ejemplo, "
 "así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8448(programlisting)
+#: C/gtkmm-tutorial-in.xml:8514(programlisting)
 #, no-wrap
 msgid "modules = [ 'gtkmm' ]"
 msgstr "modules = [ 'gtkmm' ]"
 
-#: C/gtkmm-tutorial-in.xml:8443(para)
+#: C/gtkmm-tutorial-in.xml:8509(para)
 msgid ""
 "After setting the correct moduleset, you need to tell <application>jhbuild</"
 "application> which module or modules to build. To build <application>gtkmm</"
@@ -14604,7 +14732,7 @@ msgstr ""
 "Para construir a <application>gtkmm</application> y a todas sus "
 "dependencias, asigne <varname>modules</varname> así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8450(para)
+#: C/gtkmm-tutorial-in.xml:8516(para)
 msgid ""
 "You can build several modules by setting the <varname>modules</varname> "
 "variable to a meta-package, e.g. <literal>meta-gnome-core</literal>, or "
@@ -14622,11 +14750,11 @@ msgstr ""
 "conjunto de módulos diferente más tarde especificándolo en la línea de "
 "comandos (por ejemplo, <command>jhbuild build gtkmm</command>)."
 
-#: C/gtkmm-tutorial-in.xml:8460(title)
+#: C/gtkmm-tutorial-in.xml:8526(title)
 msgid "Setting a prefix"
 msgstr "Establecer un prefijo"
 
-#: C/gtkmm-tutorial-in.xml:8461(para)
+#: C/gtkmm-tutorial-in.xml:8527(para)
 msgid ""
 "By default, <application>jhbuild</application>'s configuration is configured "
 "to install all software built with <application>jhbuild</application> under "
@@ -14645,7 +14773,7 @@ msgstr ""
 "entonces este prefijo le corresponde a su usuario, por lo que no necesitará "
 "ejecutar jhbuild como <literal>root</literal>."
 
-#: C/gtkmm-tutorial-in.xml:8473(para)
+#: C/gtkmm-tutorial-in.xml:8539(para)
 msgid ""
 "When you downloaded <application>jhbuild</application> from the git "
 "repository, you got a number of <filename>.modules</filename> files, "
@@ -14663,13 +14791,13 @@ msgstr ""
 "Si no es así, use la variable <varname>use_local_modulesets</varname> en "
 "<filename>.jhbuildrc</filename>."
 
-#: C/gtkmm-tutorial-in.xml:8484(title)
+#: C/gtkmm-tutorial-in.xml:8550(title)
 msgid ""
 "Installing and Using the git version of <application>gtkmm</application>"
 msgstr ""
 "Instalar y utilizar la versión de git de <application>gtkmm</application>"
 
-#: C/gtkmm-tutorial-in.xml:8485(para)
+#: C/gtkmm-tutorial-in.xml:8551(para)
 msgid ""
 "Once you've configured <application>jhbuild</application> as described "
 "above, building <application>gtkmm</application> should be relatively "
@@ -14688,7 +14816,7 @@ msgstr ""
 "bootstrap\n"
 "$ jhbuild sanitycheck</screen>"
 
-#: C/gtkmm-tutorial-in.xml:8496(title)
+#: C/gtkmm-tutorial-in.xml:8562(title)
 msgid ""
 "Installing <application>gtkmm</application> with <application>jhbuild</"
 "application>"
@@ -14696,7 +14824,7 @@ msgstr ""
 "Instalar <application>gtkmm</application> con <application>jhbuild</"
 "application>"
 
-#: C/gtkmm-tutorial-in.xml:8497(para)
+#: C/gtkmm-tutorial-in.xml:8563(para)
 msgid ""
 "If everything worked correctly, you should be able to build "
 "<application>gtkmm</application> and all of its dependencies from git by "
@@ -14710,7 +14838,7 @@ msgstr ""
 "application> en la variable <varname>modules</varname>, con el comando "
 "<command>jhbuild build gtkmm</command>)."
 
-#: C/gtkmm-tutorial-in.xml:8504(para)
+#: C/gtkmm-tutorial-in.xml:8570(para)
 msgid ""
 "This command will build and install a series of modules and will probably "
 "take quite a long time the first time through. After the first time, "
@@ -14729,11 +14857,11 @@ msgstr ""
 "vez, lo podrá reconstruir por sí mismo (sin reconstruir todas sus "
 "dependencias) con el comando <command>jhbuild buildone gtkmm</command>."
 
-#: C/gtkmm-tutorial-in.xml:8515(title)
+#: C/gtkmm-tutorial-in.xml:8581(title)
 msgid "Using the git version of <application>gtkmm</application>"
 msgstr "Usar la versión de git de <application>gtkmm</application>"
 
-#: C/gtkmm-tutorial-in.xml:8516(para)
+#: C/gtkmm-tutorial-in.xml:8582(para)
 msgid ""
 "After you've installed the git version of <application>gtkmm</application>, "
 "you're ready to start using and experimenting with it. In order to use the "
@@ -14760,7 +14888,7 @@ msgstr ""
 "bibliotecas recientemente instaladas. Para volver a su entorno previo, "
 "simplemente salga del intérprete de <application>jhbuild</application>."
 
-#: C/gtkmm-tutorial-in.xml:8530(para)
+#: C/gtkmm-tutorial-in.xml:8596(para)
 msgid ""
 "Once you've built your software, you'll need to run your program within the "
 "jhbuild environment as well. To do this, you can again use the "
@@ -14782,11 +14910,11 @@ msgstr ""
 "se ejecutará con las variables de entorno correctas establecidas, pero "
 "retornará a su entorno previo después de que el programa salga."
 
-#: C/gtkmm-tutorial-in.xml:8547(title)
+#: C/gtkmm-tutorial-in.xml:8613(title)
 msgid "Wrapping C Libraries with gmmproc"
 msgstr "Envolver bibliotecas C con gmmproc"
 
-#: C/gtkmm-tutorial-in.xml:8548(para)
+#: C/gtkmm-tutorial-in.xml:8614(para)
 msgid ""
 "<application>gtkmm</application> uses the <command>gmmproc</command> tool to "
 "generate most of its source code, using .defs files that define the APIs of "
@@ -14799,7 +14927,7 @@ msgstr ""
 "classname>. Es por esto que es bastante fácil crear envoltorios con el "
 "estilo de gtkmm adicionales de otras bibliotecas basadas en glib/GObject."
 
-#: C/gtkmm-tutorial-in.xml:8553(para)
+#: C/gtkmm-tutorial-in.xml:8619(para)
 msgid ""
 "This involves a variety of tools, some of them crufty, but at least they "
 "work, and has been used successfully by several projects."
@@ -14807,11 +14935,11 @@ msgstr ""
 "Esto involucra una variedad de herramientas, algunas de ellas obsoletas, "
 "pero que al menos funcionan, y que varios proyectos han usado exitosamente."
 
-#: C/gtkmm-tutorial-in.xml:8558(title)
+#: C/gtkmm-tutorial-in.xml:8624(title)
 msgid "The build structure"
 msgstr "La estructura de construcción"
 
-#: C/gtkmm-tutorial-in.xml:8559(para)
+#: C/gtkmm-tutorial-in.xml:8625(para)
 msgid ""
 "Generation of the source code for a gtkmm-style wrapper API requires use of "
 "tools such as <command>gmmproc</command> and <filename>generate_wrap_init."
@@ -14828,7 +14956,7 @@ msgstr ""
 "proporcionada por el módulo mm-common. Para empezar, ayuda mucho escoger un "
 "módulo de enlace existente como un ejemplo para consultar."
 
-#: C/gtkmm-tutorial-in.xml:8566(para)
+#: C/gtkmm-tutorial-in.xml:8632(para)
 msgid ""
 "For instance, let's pretend that we are wrapping a C library called "
 "libexample. It provides a <classname>GObject</classname>-based API with "
@@ -14840,11 +14968,11 @@ msgstr ""
 "tipos nombrados, por ejemplo, <classname>ExampleThing</classname> y "
 "<classname>ExampleStuff</classname>."
 
-#: C/gtkmm-tutorial-in.xml:8572(title)
+#: C/gtkmm-tutorial-in.xml:8638(title)
 msgid "Copying the skeleton project"
 msgstr "Copiar el esqueleto del proyecto"
 
-#: C/gtkmm-tutorial-in.xml:8577(programlisting)
+#: C/gtkmm-tutorial-in.xml:8643(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14855,7 +14983,7 @@ msgstr ""
 "  $ git clone git://git.gnome.org/mm-common\n"
 "  $ cp -a mm-common/skeletonmm libsomethingmm\n"
 
-#: C/gtkmm-tutorial-in.xml:8574(para)
+#: C/gtkmm-tutorial-in.xml:8640(para)
 msgid ""
 "Typically our wrapper library would be called libsomethingmm. We can start "
 "by copying the <ulink url=\"http://git.gnome.org/cgit/mm-common/tree/";
@@ -14867,11 +14995,11 @@ msgstr ""
 "skeletonmm\">esqueleto del árbol de código fuente</ulink> desde el módulo mm-"
 "common. <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8587(para)
+#: C/gtkmm-tutorial-in.xml:8653(para)
 msgid "<filename>libsomethingmm</filename>: The top-level directory."
 msgstr "<filename>libsomethingmm</filename>: la carpeta de nivel superior."
 
-#: C/gtkmm-tutorial-in.xml:8589(para)
+#: C/gtkmm-tutorial-in.xml:8655(para)
 msgid ""
 "<filename>libsomething</filename>: Contains the main include file and the "
 "pkg-config .pc file."
@@ -14879,11 +15007,11 @@ msgstr ""
 "<filename>libsomething</filename>: contiene el archivo de cabecera principal "
 "y el archivo .pc de pkg-config."
 
-#: C/gtkmm-tutorial-in.xml:8591(para)
+#: C/gtkmm-tutorial-in.xml:8657(para)
 msgid "<filename>src</filename>: Contains .hg and .ccg source files."
 msgstr "<filename>src</filename>: contiene los archivos de fuentes .hg y .ccg."
 
-#: C/gtkmm-tutorial-in.xml:8592(para)
+#: C/gtkmm-tutorial-in.xml:8658(para)
 msgid ""
 "<filename>libsomethingmm</filename>: Contains generated and hand-written .h "
 "and .cc files."
@@ -14891,7 +15019,7 @@ msgstr ""
 "<filename>libsomethingmm</filename>: contiene los archivos .h y .cc "
 "generados y escritos a mano."
 
-#: C/gtkmm-tutorial-in.xml:8594(para)
+#: C/gtkmm-tutorial-in.xml:8660(para)
 msgid ""
 "<filename>private</filename>: Contains generated <filename>*_p.h</filename> "
 "files."
@@ -14899,7 +15027,7 @@ msgstr ""
 "<filename>private</filename>: contiene los archivos <filename>*_p.h</"
 "filename> generados."
 
-#: C/gtkmm-tutorial-in.xml:8582(para)
+#: C/gtkmm-tutorial-in.xml:8648(para)
 msgid ""
 "This provides a directory structure for the source .hg and .ccg files and "
 "the generated .h and .cc files, with <filename>filelist.am</filename> "
@@ -14914,7 +15042,7 @@ msgstr ""
 "La estructura de carpetas generalmente se ve así, después de haber "
 "renombrado las carpetas apropiadamente: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8606(programlisting)
+#: C/gtkmm-tutorial-in.xml:8672(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -14927,7 +15055,7 @@ msgstr ""
 "    d=\"${f%/*}\"; b=\"${f##*/}\"; mv \"$f\" \"$d/${b//skeleton/libsomething}\"; \\\n"
 "  done\n"
 
-#: C/gtkmm-tutorial-in.xml:8604(para)
+#: C/gtkmm-tutorial-in.xml:8670(para)
 msgid ""
 "As well as renaming the directories, we should rename some of the source "
 "files. For instance: <placeholder-1/> A number of the skeleton files must "
@@ -14937,7 +15065,7 @@ msgstr ""
 "de fuentes. Por ejemplo: <placeholder-1/> Algunos de los archivos esqueleto "
 "todavía deberán llenarse después con contenido específico del proyecto."
 
-#: C/gtkmm-tutorial-in.xml:8613(para)
+#: C/gtkmm-tutorial-in.xml:8679(para)
 msgid ""
 "Note that files ending in <filename>.in</filename> will be used to generate "
 "files with the same name but without the <filename>.in</filename> suffix, by "
@@ -14948,11 +15076,11 @@ msgstr ""
 "<filename>.in</filename>, mediante la sustitución de algunas variables con "
 "valores reales durante la fase de configuración."
 
-#: C/gtkmm-tutorial-in.xml:8619(title)
+#: C/gtkmm-tutorial-in.xml:8685(title)
 msgid "Modifying build files"
 msgstr "Modificar archivos de construcción"
 
-#: C/gtkmm-tutorial-in.xml:8621(para)
+#: C/gtkmm-tutorial-in.xml:8687(para)
 msgid ""
 "Now we edit the files to adapt them to our needs. You might prefer to use a "
 "multiple-file search-replace utility for this, such as <command>regexxer</"
@@ -14967,7 +15095,7 @@ msgstr ""
 "marcadores de posición. Es por esto que las sustituciones se deben hacer "
 "globalmente, y no limitarse a los archivos de Automake y Autoconf."
 
-#: C/gtkmm-tutorial-in.xml:8625(para)
+#: C/gtkmm-tutorial-in.xml:8691(para)
 msgid ""
 "All mentions of <varname>skeleton</varname> should be replaced by the "
 "correct name of the C library you are wrapping, such as \"something\" or "
@@ -14982,7 +15110,7 @@ msgstr ""
 "«LIBSOMETHING», y todas las apariciones de <varname>Skeleton</varname> deben "
 "cambiarse por «Something»."
 
-#: C/gtkmm-tutorial-in.xml:8629(para)
+#: C/gtkmm-tutorial-in.xml:8695(para)
 msgid ""
 "Likewise, replace all instances of <varname>Joe Hacker</varname> by the name "
 "of the intended copyright holder, which is probably you. Do the same for the "
@@ -14993,11 +15121,11 @@ msgstr ""
 "probablemente sea usted. Haga lo mismo para la dirección de correo-e "
 "<varname>joe example com</varname>."
 
-#: C/gtkmm-tutorial-in.xml:8634(title)
+#: C/gtkmm-tutorial-in.xml:8700(title)
 msgid "configure.ac"
 msgstr "configure.ac"
 
-#: C/gtkmm-tutorial-in.xml:8637(para)
+#: C/gtkmm-tutorial-in.xml:8703(para)
 msgid ""
 "The <function>AC_CONFIG_SRCDIR()</function> line must mention a file in our "
 "source tree. We can edit this later if we don't yet know the names of any of "
@@ -15007,7 +15135,7 @@ msgstr ""
 "en el árbol de fuentes. Se puede editar esto más tarde si todavía no se "
 "saben los nombres de ninguno de los archivos que se crearán."
 
-#: C/gtkmm-tutorial-in.xml:8640(para)
+#: C/gtkmm-tutorial-in.xml:8706(para)
 msgid ""
 "It is common for binding modules to track the version number of the library "
 "they are wrapping. So, for instance, if the C library is at version 1.23.4, "
@@ -15021,7 +15149,7 @@ msgstr ""
 "enlace sería 1.23.0. Sin embargo, evite comenzar con un número de versión "
 "menor par, ya que generalmente indica una versión estable."
 
-#: C/gtkmm-tutorial-in.xml:8645(para)
+#: C/gtkmm-tutorial-in.xml:8711(para)
 msgid ""
 "The <function>AC_CONFIG_HEADERS()</function> line is used to generate two or "
 "more configuration header files. The first header file in the list contains "
@@ -15042,7 +15170,7 @@ msgstr ""
 "configuración con espacios de nombres se instalan con su biblioteca y "
 "definen macros públicamente visibles."
 
-#: C/gtkmm-tutorial-in.xml:8653(para)
+#: C/gtkmm-tutorial-in.xml:8719(para)
 msgid ""
 "The <function>AC_SUBST([SOMETHINGMM_MODULES], ['...'])</function> line may "
 "need to be modified to check for the correct dependencies."
@@ -15050,7 +15178,7 @@ msgstr ""
 "La línea <function>AC_SUBST([SOMETHINGMM_MODULES], ['...'])</function> tal "
 "vez necesite modificarse para verificar las dependencias correctas."
 
-#: C/gtkmm-tutorial-in.xml:8655(para)
+#: C/gtkmm-tutorial-in.xml:8721(para)
 msgid ""
 "The <function>AC_CONFIG_FILES()</function> block must mention the correct "
 "directory names, as described above."
@@ -15058,15 +15186,15 @@ msgstr ""
 "El bloque <function>AC_CONFIG_FILES()</function> debe mencionar a los "
 "nombres de carpetas correctos, como se describió anteriormente."
 
-#: C/gtkmm-tutorial-in.xml:8635(para)
+#: C/gtkmm-tutorial-in.xml:8701(para)
 msgid "In <filename>configure.ac</filename>, <placeholder-1/>"
 msgstr "En <filename>configure.ac</filename>, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8662(title)
+#: C/gtkmm-tutorial-in.xml:8728(title)
 msgid "Makefile.am files"
 msgstr "Archivos Makefile.am"
 
-#: C/gtkmm-tutorial-in.xml:8665(para)
+#: C/gtkmm-tutorial-in.xml:8731(para)
 msgid ""
 "In <filename>skeleton/src/Makefile.am</filename> we must mention the correct "
 "values for the generic variables that are used elsewhere in the build system:"
@@ -15075,19 +15203,19 @@ msgstr ""
 "valores correctos para las variables genéricas que se usan en otros lados en "
 "el sistema de construcción:"
 
-#: C/gtkmm-tutorial-in.xml:8670(varname)
+#: C/gtkmm-tutorial-in.xml:8736(varname)
 msgid "binding_name"
 msgstr "binding_name"
 
-#: C/gtkmm-tutorial-in.xml:8671(para)
+#: C/gtkmm-tutorial-in.xml:8737(para)
 msgid "The name of the library, such as libsomethingmm."
 msgstr "El nombre de la biblioteca, por ejemplo libsomethingmm."
 
-#: C/gtkmm-tutorial-in.xml:8675(varname)
+#: C/gtkmm-tutorial-in.xml:8741(varname)
 msgid "wrap_init_flags"
 msgstr "wrap_init_flags"
 
-#: C/gtkmm-tutorial-in.xml:8676(para)
+#: C/gtkmm-tutorial-in.xml:8742(para)
 msgid ""
 "Additional command-line flags passed to the <filename>generate_wrap_init.pl</"
 "filename> script, such as the C++ namespace and the parent directory prefix "
@@ -15097,7 +15225,7 @@ msgstr ""
 "<filename>generate_wrap_init.pl</filename>, como el espacio de nombres de C+"
 "+ y el prefijo de la carpeta padre de los archivos de cabecera."
 
-#: C/gtkmm-tutorial-in.xml:8683(para)
+#: C/gtkmm-tutorial-in.xml:8749(para)
 msgid ""
 "In <filename>skeleton/skeletonmm/Makefile.am</filename> we must mention the "
 "correct values for the generic variables that are used elsewhere in the "
@@ -15107,11 +15235,11 @@ msgstr ""
 "los valores correctos de las variables genéricas que se usan en otros lados "
 "en el sistema de construcción:"
 
-#: C/gtkmm-tutorial-in.xml:8688(varname)
+#: C/gtkmm-tutorial-in.xml:8754(varname)
 msgid "lib_LTLIBRARIES"
 msgstr "lib_LTLIBRARIES"
 
-#: C/gtkmm-tutorial-in.xml:8689(para)
+#: C/gtkmm-tutorial-in.xml:8755(para)
 msgid ""
 "This variable must mention the correct library name, and this library name "
 "must be used to form the <varname>_SOURCES</varname>, <varname>_LDFLAGS</"
@@ -15126,23 +15254,23 @@ msgstr ""
 "<varname>configure</varname>, como <varname>@SOMETHINGMM_API_VERSION@</"
 "varname> como parte de los nombres de las variables."
 
-#: C/gtkmm-tutorial-in.xml:8698(varname)
+#: C/gtkmm-tutorial-in.xml:8764(varname)
 msgid "AM_CPPFLAGS"
 msgstr "AM_CPPFLAGS"
 
-#: C/gtkmm-tutorial-in.xml:8699(para)
+#: C/gtkmm-tutorial-in.xml:8765(para)
 msgid "The command line options passed to the C preprocessor."
 msgstr "Las opciones de línea de comandos pasadas al preprocesador de C."
 
-#: C/gtkmm-tutorial-in.xml:8703(varname)
+#: C/gtkmm-tutorial-in.xml:8769(varname)
 msgid "AM_CXXFLAGS"
 msgstr "AM_CXXFLAGS"
 
-#: C/gtkmm-tutorial-in.xml:8704(para)
+#: C/gtkmm-tutorial-in.xml:8770(para)
 msgid "The command line options passed to the C++ compiler."
 msgstr "Las opciones de línea de comandos pasadas al compilador de C++"
 
-#: C/gtkmm-tutorial-in.xml:8663(para)
+#: C/gtkmm-tutorial-in.xml:8729(para)
 msgid ""
 "Next we must adapt the various <filename>Makefile.am</filename> files: "
 "<placeholder-1/>"
@@ -15150,11 +15278,11 @@ msgstr ""
 "A continuación se deben adaptar los archivos <filename>Makefile.am</"
 "filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8714(title)
+#: C/gtkmm-tutorial-in.xml:8780(title)
 msgid "Creating .hg and .ccg files"
 msgstr "Crear archivos .hg y .ccg"
 
-#: C/gtkmm-tutorial-in.xml:8715(para)
+#: C/gtkmm-tutorial-in.xml:8781(para)
 msgid ""
 "We should now create our first <filename>.hg</filename> and <filename>.ccg</"
 "filename> files, to wrap one of the objects in the C library. One pair of "
@@ -15167,7 +15295,7 @@ msgstr ""
 "<filename>skeleton.ccg</filename> y <filename>skeleton.hg</filename>. Cree "
 "copias de estos archivos si es necesario."
 
-#: C/gtkmm-tutorial-in.xml:8719(para)
+#: C/gtkmm-tutorial-in.xml:8785(para)
 msgid ""
 "We must mention all of our <filename>.hg</filename> and <filename>.ccg</"
 "filename> files in the <filename>skeleton/src/filelist.am</filename> file, "
@@ -15177,7 +15305,7 @@ msgstr ""
 "ccg</filename> en el archivo <filename>skeleton/src/filelist.am</filename>, "
 "típicamente en la variable <varname>files_hg</varname>."
 
-#: C/gtkmm-tutorial-in.xml:8723(para)
+#: C/gtkmm-tutorial-in.xml:8789(para)
 msgid ""
 "Any additional non-generated <filename>.h</filename> and <filename>.cc</"
 "filename> source files may be placed in <filename>skeleton/skeletonmm/</"
@@ -15191,7 +15319,7 @@ msgstr ""
 "am</filename>, típicamente en las variables <varname>files_extra_h</varname> "
 "y <varname>files_extra_cc</varname>."
 
-#: C/gtkmm-tutorial-in.xml:8729(para)
+#: C/gtkmm-tutorial-in.xml:8795(para)
 msgid ""
 "In the <link linkend=\"sec-wrapping-hg-files\">.hg and .ccg files</link> "
 "section you can learn about the syntax used in these files."
@@ -15199,36 +15327,36 @@ msgstr ""
 "En la sección <link linkend=\"sec-wrapping-hg-files\">archivos .hg y .ccg</"
 "link> puede aprender acerca de la sintaxis usada en estos archivos."
 
-#: C/gtkmm-tutorial-in.xml:8736(title)
+#: C/gtkmm-tutorial-in.xml:8802(title)
 msgid "Generating the .defs files."
 msgstr "Generar los archivos .defs."
 
-#: C/gtkmm-tutorial-in.xml:8740(para)
+#: C/gtkmm-tutorial-in.xml:8806(para)
 msgid "objects (GObjects, widgets, interfaces, boxed-types and plain structs)"
 msgstr ""
 "objetos (GObjects, widgets, interfaces, tipos en caja y estructuras planas)"
 
-#: C/gtkmm-tutorial-in.xml:8741(para)
+#: C/gtkmm-tutorial-in.xml:8807(para)
 msgid "functions"
 msgstr "funciones"
 
-#: C/gtkmm-tutorial-in.xml:8742(para)
+#: C/gtkmm-tutorial-in.xml:8808(para)
 msgid "enums"
 msgstr "enums"
 
-#: C/gtkmm-tutorial-in.xml:8743(para)
+#: C/gtkmm-tutorial-in.xml:8809(para)
 msgid "signals"
 msgstr "señales"
 
-#: C/gtkmm-tutorial-in.xml:8744(para)
+#: C/gtkmm-tutorial-in.xml:8810(para)
 msgid "properties"
 msgstr "propiedades"
 
-#: C/gtkmm-tutorial-in.xml:8745(para)
+#: C/gtkmm-tutorial-in.xml:8811(para)
 msgid "vfuncs"
 msgstr "«vfuncs»"
 
-#: C/gtkmm-tutorial-in.xml:8737(para)
+#: C/gtkmm-tutorial-in.xml:8803(para)
 msgid ""
 "The <filename>.defs</filename> files are text files, in a lisp format, that "
 "describe the API of a C library, including its <placeholder-1/>"
@@ -15237,49 +15365,49 @@ msgstr ""
 "«lisp», que describen la API de la biblioteca de C, incluyendo sus "
 "<placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8754(filename)
+#: C/gtkmm-tutorial-in.xml:8820(filename)
 msgid "gtk.defs"
 msgstr "gtk.defs"
 
-#: C/gtkmm-tutorial-in.xml:8755(para)
+#: C/gtkmm-tutorial-in.xml:8821(para)
 msgid "Includes the other files."
 msgstr "Incluye a los otros archivos."
 
-#: C/gtkmm-tutorial-in.xml:8758(filename)
+#: C/gtkmm-tutorial-in.xml:8824(filename)
 msgid "gtk_methods.defs"
 msgstr "gtk_methods.defs"
 
-#: C/gtkmm-tutorial-in.xml:8759(para)
+#: C/gtkmm-tutorial-in.xml:8825(para)
 msgid "Objects and functions."
 msgstr "Objetos y funciones."
 
-#: C/gtkmm-tutorial-in.xml:8762(filename)
+#: C/gtkmm-tutorial-in.xml:8828(filename)
 msgid "gtk_enums.defs"
 msgstr "gtk_enums.defs"
 
-#: C/gtkmm-tutorial-in.xml:8763(para)
+#: C/gtkmm-tutorial-in.xml:8829(para)
 msgid "Enumerations."
 msgstr "Enumeraciones."
 
-#: C/gtkmm-tutorial-in.xml:8766(filename)
+#: C/gtkmm-tutorial-in.xml:8832(filename)
 msgid "gtk_signals.defs"
 msgstr "gtk_signals.defs"
 
-#: C/gtkmm-tutorial-in.xml:8767(para)
+#: C/gtkmm-tutorial-in.xml:8833(para)
 msgid "Signals and properties."
 msgstr "Señales y propiedades."
 
-#: C/gtkmm-tutorial-in.xml:8770(filename)
+#: C/gtkmm-tutorial-in.xml:8836(filename)
 msgid "gtk_vfuncs.defs"
 msgstr "gtk_vfuncs.defs"
 
-#: C/gtkmm-tutorial-in.xml:8771(para)
+#: C/gtkmm-tutorial-in.xml:8837(para)
 msgid "vfuncs (function pointer member fields in structs), written by hand."
 msgstr ""
 "«vfuncs» (campos miembro de punteros de funciones en estructuras), escritas a "
 "mano."
 
-#: C/gtkmm-tutorial-in.xml:8748(para)
+#: C/gtkmm-tutorial-in.xml:8814(para)
 msgid ""
 "At the moment, we have separate tools for generating different parts of "
 "these <filename>.defs</filename>, so we split them up into separate files. "
@@ -15293,11 +15421,11 @@ msgstr ""
 "de las fuentes de <application>gtkmm</application>, encontrará estos "
 "archivos: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8777(title)
+#: C/gtkmm-tutorial-in.xml:8843(title)
 msgid "Generating the methods .defs"
 msgstr "Generar los .defs de métodos"
 
-#: C/gtkmm-tutorial-in.xml:8781(programlisting)
+#: C/gtkmm-tutorial-in.xml:8847(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15306,7 +15434,7 @@ msgstr ""
 "\n"
 "$ ./h2def.py /usr/include/gtk-3.0/gtk/*.h &gt; gtk_methods.defs\n"
 
-#: C/gtkmm-tutorial-in.xml:8778(para)
+#: C/gtkmm-tutorial-in.xml:8844(para)
 msgid ""
 "This <filename>.defs</filename> file describes objects and their functions. "
 "It is generated by the <command>h2def.py</command> script which you can find "
@@ -15318,11 +15446,11 @@ msgstr ""
 "puede encontrar en la carpeta <filename>tools/defs_gen</filename> de glibmm. "
 "Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8788(title)
+#: C/gtkmm-tutorial-in.xml:8854(title)
 msgid "Generating the enums .defs"
 msgstr "Generar los .defs de enumeraciones"
 
-#: C/gtkmm-tutorial-in.xml:8792(programlisting)
+#: C/gtkmm-tutorial-in.xml:8858(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15331,7 +15459,7 @@ msgstr ""
 "\n"
 "$ ./enum.pl /usr/include/gtk-3.0/gtk/*.h &gt; gtk_enums.defs\n"
 
-#: C/gtkmm-tutorial-in.xml:8789(para)
+#: C/gtkmm-tutorial-in.xml:8855(para)
 msgid ""
 "This <filename>.defs</filename> file describes enum types and their possible "
 "values. It is generated by the <filename>enum.pl</filename> script which you "
@@ -15343,11 +15471,11 @@ msgstr ""
 "<filename>enum.pl</filename> que puede encontrar en la carpeta "
 "<filename>tools</filename> de glibmm. Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8799(title)
+#: C/gtkmm-tutorial-in.xml:8865(title)
 msgid "Generating the signals and properties .defs"
 msgstr "Generar los .defs de señales y propiedades"
 
-#: C/gtkmm-tutorial-in.xml:8804(programlisting)
+#: C/gtkmm-tutorial-in.xml:8870(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15358,7 +15486,7 @@ msgstr ""
 "$ cd tools/extra_defs_gen\n"
 "$ ./generate_extra_defs &gt; gtk_signals.defs\n"
 
-#: C/gtkmm-tutorial-in.xml:8800(para)
+#: C/gtkmm-tutorial-in.xml:8866(para)
 msgid ""
 "This <filename>.defs</filename> file describes signals and properties. It is "
 "generated by the special <filename>extra_defs</filename> utility that is in "
@@ -15370,7 +15498,7 @@ msgstr ""
 "está en todos los proyectos de envoltorios, como <filename>gtkmm/tools/"
 "extra_defs_gen/</filename>. Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8809(para)
+#: C/gtkmm-tutorial-in.xml:8875(para)
 msgid ""
 "You must edit the source code of your own <filename>generate_extra_defs</"
 "filename> tool in order to generate the <filename>.defs</filename> for the "
@@ -15391,7 +15519,7 @@ msgstr ""
 "<filename>codegen/Makefile.am</filename> también debe mencionar el nombre "
 "del archivo de fuentes nuevo."
 
-#: C/gtkmm-tutorial-in.xml:8818(programlisting)
+#: C/gtkmm-tutorial-in.xml:8884(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15418,7 +15546,7 @@ msgstr ""
 "  return 0;\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:8816(para)
+#: C/gtkmm-tutorial-in.xml:8882(para)
 msgid ""
 "Then edit the <filename>.cc</filename> file to specify the correct types. "
 "For instance, your <function>main()</function> function might look like "
@@ -15428,11 +15556,11 @@ msgstr ""
 "correctos. Por ejemplo, su función <function>main()</function> podría verse "
 "así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8834(title)
+#: C/gtkmm-tutorial-in.xml:8900(title)
 msgid "Writing the vfuncs .defs"
 msgstr "Escribir los .defs de las «vfuncs»"
 
-#: C/gtkmm-tutorial-in.xml:8835(para)
+#: C/gtkmm-tutorial-in.xml:8901(para)
 msgid ""
 "This <filename>.defs</filename> file describes virtual functions (vfuncs). "
 "It must be written by hand. There is no skeleton to start from. You can look "
@@ -15444,11 +15572,11 @@ msgstr ""
 "Puede echar un vistazo al archivo <filename>gtk/src/gtk_vfuncs.defs</"
 "filename> de <application>gtkmm</application>."
 
-#: C/gtkmm-tutorial-in.xml:8845(title)
+#: C/gtkmm-tutorial-in.xml:8911(title)
 msgid "The .hg and .ccg files"
 msgstr "Los archivos .hg y .ccg"
 
-#: C/gtkmm-tutorial-in.xml:8846(para)
+#: C/gtkmm-tutorial-in.xml:8912(para)
 msgid ""
 "The .hg and .ccg source files are very much like .h and .cc C++ source "
 "files, but they contain extra macros, such as <function>_CLASS_GOBJECT()</"
@@ -15465,7 +15593,7 @@ msgstr ""
 "código fuente adicional de C++ se copiará tal cual en el archivo .h o .cc "
 "correspondiente."
 
-#: C/gtkmm-tutorial-in.xml:8859(programlisting)
+#: C/gtkmm-tutorial-in.xml:8925(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15538,7 +15666,7 @@ msgstr ""
 "\n"
 "} // namespace Gtk\n"
 
-#: C/gtkmm-tutorial-in.xml:8854(para)
+#: C/gtkmm-tutorial-in.xml:8920(para)
 msgid ""
 "A .hg file will typically include some headers and then declare a class, "
 "using some macros to add API or behaviour to this class. For instance, "
@@ -15550,11 +15678,11 @@ msgstr ""
 "clase. Por ejemplo, el <filename>button.hg</filename> de gtkmm se ve más o "
 "menos así: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8898(function)
+#: C/gtkmm-tutorial-in.xml:8964(function)
 msgid "_DEFS()"
 msgstr "_DEFS()"
 
-#: C/gtkmm-tutorial-in.xml:8899(para)
+#: C/gtkmm-tutorial-in.xml:8965(para)
 msgid ""
 "Specifies the destination directory for generated sources, and the name of "
 "the main .defs file that <command>gmmproc</command> should parse."
@@ -15562,11 +15690,11 @@ msgstr ""
 "Especifica la carpeta de destino para las fuentes generadas, y el nombre del "
 "archivo .defs principal que <command>gmmproc</command> debe procesar."
 
-#: C/gtkmm-tutorial-in.xml:8902(function)
+#: C/gtkmm-tutorial-in.xml:8968(function)
 msgid "_PINCLUDE()"
 msgstr "_PINCLUDE()"
 
-#: C/gtkmm-tutorial-in.xml:8903(para)
+#: C/gtkmm-tutorial-in.xml:8969(para)
 msgid ""
 "Tells <command>gmmproc</command> to include a header from the generated "
 "private/button_p.h file."
@@ -15574,11 +15702,11 @@ msgstr ""
 "Le dice a <command>gmmproc</command> que incluya una cabecera desde el "
 "archivo private/button_p.h generado."
 
-#: C/gtkmm-tutorial-in.xml:8906(function)
+#: C/gtkmm-tutorial-in.xml:8972(function)
 msgid "_CLASS_GTKOBJECT()"
 msgstr "_CLASS_GTKOBJECT()"
 
-#: C/gtkmm-tutorial-in.xml:8907(para)
+#: C/gtkmm-tutorial-in.xml:8973(para)
 msgid ""
 "Tells <command>gmmproc</command> to add some typedefs, constructors, and "
 "standard methods to this class, as appropriate when wrapping a widget."
@@ -15587,11 +15715,11 @@ msgstr ""
 "constructores, y métodos estándar a esta clase, como es apropiado cuando se "
 "envuelve un widget."
 
-#: C/gtkmm-tutorial-in.xml:8910(function)
+#: C/gtkmm-tutorial-in.xml:8976(function)
 msgid "_IMPLEMENTS_INTERFACE()"
 msgstr "_IMPLEMENTS_INTERFACE()"
 
-#: C/gtkmm-tutorial-in.xml:8911(para)
+#: C/gtkmm-tutorial-in.xml:8977(para)
 msgid ""
 "Tells <command>gmmproc</command> to add initialization code for the "
 "interface."
@@ -15599,15 +15727,15 @@ msgstr ""
 "Le dice a <command>gmmproc</command> que añada código de inicialización para "
 "la interfaz."
 
-#: C/gtkmm-tutorial-in.xml:8914(function) C/gtkmm-tutorial-in.xml:9160(title)
+#: C/gtkmm-tutorial-in.xml:8980(function) C/gtkmm-tutorial-in.xml:9226(title)
 msgid "_CTOR_DEFAULT"
 msgstr "_CTOR_DEFAULT"
 
-#: C/gtkmm-tutorial-in.xml:8915(para)
+#: C/gtkmm-tutorial-in.xml:8981(para)
 msgid "Add a default constructor."
 msgstr "Añadir un constructor predeterminado."
 
-#: C/gtkmm-tutorial-in.xml:8918(term)
+#: C/gtkmm-tutorial-in.xml:8984(term)
 msgid ""
 "<function>_WRAP_METHOD()</function>, <function>_WRAP_SIGNAL()</function>, "
 "and <function>_WRAP_PROPERTY()</function>"
@@ -15615,15 +15743,15 @@ msgstr ""
 "<function>_WRAP_METHOD()</function>, <function>_WRAP_SIGNAL()</function>, y "
 "<function>_WRAP_PROPERTY()</function>"
 
-#: C/gtkmm-tutorial-in.xml:8921(para)
+#: C/gtkmm-tutorial-in.xml:8987(para)
 msgid "Add methods to wrap parts of the C API."
 msgstr "Añadir métodos para envolver las partes de la API de C."
 
-#: C/gtkmm-tutorial-in.xml:8895(para)
+#: C/gtkmm-tutorial-in.xml:8961(para)
 msgid "The macros in this example do the following: <placeholder-1/>"
 msgstr "Las macros en este ejemplo hacen lo siguiente: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8928(programlisting)
+#: C/gtkmm-tutorial-in.xml:8994(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15634,7 +15762,7 @@ msgstr ""
 "$ cd gtk/src\n"
 "$ /usr/lib/glibmm-2.4/proc/gmmproc -I ../../tools/m4 --defs . button . ./../gtkmm\n"
 
-#: C/gtkmm-tutorial-in.xml:8925(para)
+#: C/gtkmm-tutorial-in.xml:8991(para)
 msgid ""
 "The .h and .cc files will be generated from the .hg and .ccg files by "
 "processing them with <command>gmmproc</command> like so, though this happens "
@@ -15645,7 +15773,7 @@ msgstr ""
 "automáticamente cuando usa la estructura de construcción anteriormente "
 "mencionada: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8933(para)
+#: C/gtkmm-tutorial-in.xml:8999(para)
 msgid ""
 "Notice that we provided <command>gmmproc</command> with the path to the .m4 "
 "convert files, the path to the .defs file, the name of a .hg file, the "
@@ -15655,7 +15783,7 @@ msgstr ""
 "de los archivos de conversión .m4, la ruta del archivo .defs, el nombre de "
 "un archivo .hg, la carpeta de las fuentes, y la carpeta de destino."
 
-#: C/gtkmm-tutorial-in.xml:8936(para)
+#: C/gtkmm-tutorial-in.xml:9002(para)
 msgid ""
 "You should avoid including the C header from your C++ header, to avoid "
 "polluting the global namespace, and to avoid exporting unnecessary public "
@@ -15667,15 +15795,15 @@ msgstr ""
 "innecesaria. Pero necesitará incluir las cabeceras de C desde su archivo ."
 "ccg."
 
-#: C/gtkmm-tutorial-in.xml:8941(para)
+#: C/gtkmm-tutorial-in.xml:9007(para)
 msgid "The macros are explained in more detail in the following sections."
 msgstr "Las macros se explican en mayor detalle en las secciones siguientes."
 
-#: C/gtkmm-tutorial-in.xml:8944(title)
+#: C/gtkmm-tutorial-in.xml:9010(title)
 msgid "m4 Conversions"
 msgstr "Conversiones m4"
 
-#: C/gtkmm-tutorial-in.xml:8951(programlisting)
+#: C/gtkmm-tutorial-in.xml:9017(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15684,7 +15812,7 @@ msgstr ""
 "\n"
 "_CONVERSION(`GtkTreeView*',`TreeView*',`Glib::wrap($3)')\n"
 
-#: C/gtkmm-tutorial-in.xml:8945(para)
+#: C/gtkmm-tutorial-in.xml:9011(para)
 msgid ""
 "The macros that you use in the .hg and .ccg files often need to know how to "
 "convert a C++ type to a C type, or vice-versa. gmmproc takes this "
@@ -15702,7 +15830,7 @@ msgstr ""
 "esto le dice a gmmproc cómo convertir un puntero de GtkTreeView a un puntero "
 "de Gtk::TreView: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8956(para)
+#: C/gtkmm-tutorial-in.xml:9022(para)
 msgid ""
 "<literal>$3</literal> will be replaced by the parameter name when this "
 "conversion is used by gmmproc."
@@ -15710,7 +15838,7 @@ msgstr ""
 "<literal>$3</literal> se reemplazará por el nombre del parámetro cuando "
 "gmmproc use esta conversión."
 
-#: C/gtkmm-tutorial-in.xml:8963(programlisting)
+#: C/gtkmm-tutorial-in.xml:9029(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15723,7 +15851,7 @@ msgstr ""
 "_CONVERSION(`const PrintSettings&amp;',`GtkPrintSettings*',__FCR2P)\n"
 "_CONVERSION(`const Glib::RefPtr&lt;Printer&gt;&amp;',`GtkPrinter*',__CONVERT_REFPTR_TO_P($3))\n"
 
-#: C/gtkmm-tutorial-in.xml:8960(para)
+#: C/gtkmm-tutorial-in.xml:9026(para)
 msgid ""
 "Some extra macros make this easier and consistent. Look in gtkmm's .m4 files "
 "for examples. For instance: <placeholder-1/>"
@@ -15731,13 +15859,13 @@ msgstr ""
 "Algunas macros adicionales hacen esto más fácil y consistente. Consulte los "
 "archivos .m4 de gtkmm como ejemplos. Por ejemplo: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8972(title)
+#: C/gtkmm-tutorial-in.xml:9038(title)
 msgid "m4 Initializations"
 msgstr "Inicializaciones de m4"
 
 # «inizialization» debería ser «initialization».
 # Nicolás.
-#: C/gtkmm-tutorial-in.xml:8973(para)
+#: C/gtkmm-tutorial-in.xml:9039(para)
 msgid ""
 "Often when wrapping methods, it is desirable to store the return of the C "
 "function in what is called an output parameter. In this case, the C++ method "
@@ -15755,7 +15883,7 @@ msgstr ""
 "macros de inicialización apropiadas para decirle a gmmproc cómo inicializar "
 "el parámetro de C++ desde el valor de devolución de la función de C."
 
-#: C/gtkmm-tutorial-in.xml:8988(programlisting)
+#: C/gtkmm-tutorial-in.xml:9054(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15764,7 +15892,7 @@ msgstr ""
 "\n"
 "_INITIALIZATION(`Gtk::Widget&amp;',`GtkWidget*',`$3 = Glib::wrap($4)')\n"
 
-#: C/gtkmm-tutorial-in.xml:8982(para)
+#: C/gtkmm-tutorial-in.xml:9048(para)
 msgid ""
 "For example, if there was a C function that returned a <type>GtkWidget*</"
 "type> and for some reason, instead of having the C++ method also return the "
@@ -15778,7 +15906,7 @@ msgstr ""
 "en un parámetro de salida especificado, sería necesaria una macro de "
 "inicialización como la siguiente: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:8993(para)
+#: C/gtkmm-tutorial-in.xml:9059(para)
 msgid ""
 "<literal>$3</literal> will be replaced by the output parameter name of the C+"
 "+ method and <literal>$4</literal> will be replaced by the return of the C "
@@ -15792,11 +15920,11 @@ msgstr ""
 "conveniencia, <literal>$1</literal> también se reemplazará por el tipo de C+"
 "+ sin el «et» (&amp;) y <literal>$2</literal> se reemplazará por el tipo de C."
 
-#: C/gtkmm-tutorial-in.xml:9004(title)
+#: C/gtkmm-tutorial-in.xml:9070(title)
 msgid "Class macros"
 msgstr "Macros de clases"
 
-#: C/gtkmm-tutorial-in.xml:9005(para)
+#: C/gtkmm-tutorial-in.xml:9071(para)
 msgid ""
 "The class macro declares the class itself and its relationship with the "
 "underlying C type. It generates some internal constructors, the member "
@@ -15810,7 +15938,7 @@ msgstr ""
 "acceso, registro de tipos, y el método <function>Glib::wrap()</function>, "
 "entre otras cosas."
 
-#: C/gtkmm-tutorial-in.xml:9010(para)
+#: C/gtkmm-tutorial-in.xml:9076(para)
 msgid ""
 "Other macros, such as <function>_WRAP_METHOD()</function> and "
 "<function>_WRAP_SIGNAL()</function> may only be used after a call to a "
@@ -15820,11 +15948,11 @@ msgstr ""
 "<function>_WRAP_SIGNAL()</function> sólo pueden usarse después de una "
 "llamada a una macro <function>_CLASS_*</function>."
 
-#: C/gtkmm-tutorial-in.xml:9015(title)
+#: C/gtkmm-tutorial-in.xml:9081(title)
 msgid "_CLASS_GOBJECT"
 msgstr "_CLASS_GOBJECT"
 
-#: C/gtkmm-tutorial-in.xml:9016(para)
+#: C/gtkmm-tutorial-in.xml:9082(para)
 msgid ""
 "This macro declares a wrapper for a type that is derived from "
 "<classname>GObject</classname>, but whose wrapper is not derived from "
@@ -15834,7 +15962,7 @@ msgstr ""
 "<classname>GObject</classname>, pero cuyo envoltorio no deriva de "
 "<classname>Gtk::Object</classname>."
 
-#: C/gtkmm-tutorial-in.xml:9019(function)
+#: C/gtkmm-tutorial-in.xml:9085(function)
 msgid ""
 "_CLASS_GOBJECT( C++ class, C class, C casting macro, C++ base class, C base "
 "class )"
@@ -15842,7 +15970,7 @@ msgstr ""
 "_CLASS_GOBJECT( C++ class, C class, C casting macro, C++ base class, C base "
 "class )"
 
-#: C/gtkmm-tutorial-in.xml:9021(programlisting)
+#: C/gtkmm-tutorial-in.xml:9087(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15851,15 +15979,15 @@ msgstr ""
 "\n"
 "_CLASS_GOBJECT(AccelGroup, GtkAccelGroup, GTK_ACCEL_GROUP, Glib::Object, GObject)\n"
 
-#: C/gtkmm-tutorial-in.xml:9020(para)
+#: C/gtkmm-tutorial-in.xml:9086(para)
 msgid "For instance, from <filename>accelgroup.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>accelgroup.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9028(title)
+#: C/gtkmm-tutorial-in.xml:9094(title)
 msgid "_CLASS_GTKOBJECT"
 msgstr "_CLASS_GTKOBJECT"
 
-#: C/gtkmm-tutorial-in.xml:9029(para)
+#: C/gtkmm-tutorial-in.xml:9095(para)
 msgid ""
 "This macro declares a wrapper for a type whose wrapper is derived from "
 "<classname>Gtk::Object</classname>, such as a widget or dialog."
@@ -15867,7 +15995,7 @@ msgstr ""
 "Esta macro declara un envoltorio para un tipo cuyo envoltorio deriva de "
 "<classname>Gtk::Object</classname>, como un widget o un diálogo."
 
-#: C/gtkmm-tutorial-in.xml:9031(function)
+#: C/gtkmm-tutorial-in.xml:9097(function)
 msgid ""
 "_CLASS_GTKOBJECT( C++ class, C class, C casting macro, C++ base class, C "
 "base class )"
@@ -15875,7 +16003,7 @@ msgstr ""
 "_CLASS_GTKOBJECT( C++ class, C class, C casting macro, C++ base class, C "
 "base class )"
 
-#: C/gtkmm-tutorial-in.xml:9033(programlisting)
+#: C/gtkmm-tutorial-in.xml:9099(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15884,12 +16012,12 @@ msgstr ""
 "\n"
 "_CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Bin, GtkBin)\n"
 
-#: C/gtkmm-tutorial-in.xml:9032(para) C/gtkmm-tutorial-in.xml:9511(para)
-#: C/gtkmm-tutorial-in.xml:9572(para) C/gtkmm-tutorial-in.xml:9657(para)
+#: C/gtkmm-tutorial-in.xml:9098(para) C/gtkmm-tutorial-in.xml:9437(para)
+#: C/gtkmm-tutorial-in.xml:9498(para) C/gtkmm-tutorial-in.xml:9615(para)
 msgid "For instance, from <filename>button.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>button.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9037(para)
+#: C/gtkmm-tutorial-in.xml:9103(para)
 msgid ""
 "You will typically use this macro when the class already derives from Gtk::"
 "Object. For instance, you will use it when wrapping a GTK+ Widget, because "
@@ -15899,7 +16027,7 @@ msgstr ""
 "ejemplo, la usará cuando envuelva un widget de GTK+, porque Gtk::Widget "
 "deriva de Gtk::Object."
 
-#: C/gtkmm-tutorial-in.xml:9038(para)
+#: C/gtkmm-tutorial-in.xml:9104(para)
 msgid ""
 "You might also derive non-widget classes from Gtk::Object so they can be "
 "used without <classname>Glib::RefPtr</classname>. For instance, they could "
@@ -15915,11 +16043,11 @@ msgstr ""
 "de que no se necesita conteo de referencias real. Se considera de utilidad "
 "para los widgets."
 
-#: C/gtkmm-tutorial-in.xml:9042(title)
+#: C/gtkmm-tutorial-in.xml:9108(title)
 msgid "_CLASS_BOXEDTYPE"
 msgstr "_CLASS_BOXEDTYPE"
 
-#: C/gtkmm-tutorial-in.xml:9043(para)
+#: C/gtkmm-tutorial-in.xml:9109(para)
 msgid ""
 "This macro declares a wrapper for a non-<classname>GObject</classname> "
 "struct, registered with <function>g_boxed_type_register_static()</function>."
@@ -15928,7 +16056,7 @@ msgstr ""
 "<classname>GObject</classname>, registrada con "
 "<function>g_boxed_type_register_static()</function>."
 
-#: C/gtkmm-tutorial-in.xml:9046(function)
+#: C/gtkmm-tutorial-in.xml:9112(function)
 msgid ""
 "_CLASS_BOXEDTYPE( C++ class, C class, new function, copy function, free "
 "function )"
@@ -15936,7 +16064,7 @@ msgstr ""
 "_CLASS_BOXEDTYPE( C++ class, C class, new function, copy function, free "
 "function )"
 
-#: C/gtkmm-tutorial-in.xml:9048(programlisting)
+#: C/gtkmm-tutorial-in.xml:9114(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15945,15 +16073,15 @@ msgstr ""
 "\n"
 "_CLASS_BOXEDTYPE(Color, GdkColor, NONE, gdk_color_copy, gdk_color_free)\n"
 
-#: C/gtkmm-tutorial-in.xml:9047(para)
+#: C/gtkmm-tutorial-in.xml:9113(para)
 msgid "For instance, for <classname>Gdk::Color</classname>: <placeholder-1/>"
 msgstr "Por ejemplo, para <classname>Gdk::Color</classname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9055(title)
+#: C/gtkmm-tutorial-in.xml:9121(title)
 msgid "_CLASS_BOXEDTYPE_STATIC"
 msgstr "_CLASS_BOXEDTYPE_STATIC"
 
-#: C/gtkmm-tutorial-in.xml:9056(para)
+#: C/gtkmm-tutorial-in.xml:9122(para)
 msgid ""
 "This macro declares a wrapper for a simple assignable struct such as "
 "<classname>GdkRectangle</classname>. It is similar to "
@@ -15965,11 +16093,11 @@ msgstr ""
 "<function>_CLASS_BOXEDTYPE</function>, pero la estructura de C no se asigna "
 "dinámicamente."
 
-#: C/gtkmm-tutorial-in.xml:9060(function)
+#: C/gtkmm-tutorial-in.xml:9126(function)
 msgid "_CLASS_BOXEDTYPE_STATIC( C++ class, C class )"
 msgstr "_CLASS_BOXEDTYPE_STATIC( C++ class, C class )"
 
-#: C/gtkmm-tutorial-in.xml:9062(programlisting)
+#: C/gtkmm-tutorial-in.xml:9128(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -15978,17 +16106,17 @@ msgstr ""
 "\n"
 "_CLASS_BOXEDTYPE_STATIC(Rectangle, GdkRectangle)\n"
 
-#: C/gtkmm-tutorial-in.xml:9061(para)
+#: C/gtkmm-tutorial-in.xml:9127(para)
 msgid ""
 "For instance, for <classname>Gdk::Rectangle</classname>: <placeholder-1/>"
 msgstr ""
 "Por ejemplo, para <classname>Gdk::Rectangle</classname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9069(title)
+#: C/gtkmm-tutorial-in.xml:9135(title)
 msgid "_CLASS_OPAQUE_COPYABLE"
 msgstr "_CLASS_OPAQUE_COPYABLE"
 
-#: C/gtkmm-tutorial-in.xml:9070(para)
+#: C/gtkmm-tutorial-in.xml:9136(para)
 msgid ""
 "This macro declares a wrapper for an opaque struct that has copy and free "
 "functions. The new, copy and free functions will be used to instantiate the "
@@ -15999,7 +16127,7 @@ msgstr ""
 "instanciar el constructor predeterminado, copiar el constructor y el "
 "destructor."
 
-#: C/gtkmm-tutorial-in.xml:9073(function)
+#: C/gtkmm-tutorial-in.xml:9139(function)
 msgid ""
 "_CLASS_OPAQUE_COPYABLE( C++ class, C class, new function, copy function, "
 "free function )"
@@ -16007,7 +16135,7 @@ msgstr ""
 "_CLASS_OPAQUE_COPYABLE( C++ class, C class, new function, copy function, "
 "free function )"
 
-#: C/gtkmm-tutorial-in.xml:9075(programlisting)
+#: C/gtkmm-tutorial-in.xml:9141(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16016,15 +16144,15 @@ msgstr ""
 "\n"
 "_CLASS_OPAQUE_COPYABLE(StockItem, GtkStockItem, NONE, gtk_stock_item_copy, gtk_stock_item_free)\n"
 
-#: C/gtkmm-tutorial-in.xml:9074(para)
+#: C/gtkmm-tutorial-in.xml:9140(para)
 msgid "For instance, from <filename>stockitem.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>stockitem.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9082(title)
+#: C/gtkmm-tutorial-in.xml:9148(title)
 msgid "_CLASS_OPAQUE_REFCOUNTED"
 msgstr "_CLASS_OPAQUE_REFCOUNTED"
 
-#: C/gtkmm-tutorial-in.xml:9083(para)
+#: C/gtkmm-tutorial-in.xml:9149(para)
 msgid ""
 "This macro declares a wrapper for a reference-counted opaque struct. The C++ "
 "wrapper cannot be directly instantiated and can only be used with "
@@ -16034,7 +16162,7 @@ msgstr ""
 "referencias. El envoltorio de C++ no puede instanciarse directamente y sólo "
 "lo puede usar <classname>Glib::RefPtr</classname>."
 
-#: C/gtkmm-tutorial-in.xml:9086(function)
+#: C/gtkmm-tutorial-in.xml:9152(function)
 msgid ""
 "_CLASS_OPAQUE_REFCOUNTED( C++ class, C class, new function, ref function, "
 "unref function )"
@@ -16042,7 +16170,7 @@ msgstr ""
 "_CLASS_OPAQUE_REFCOUNTED( C++ class, C class, new function, ref function, "
 "unref function )"
 
-#: C/gtkmm-tutorial-in.xml:9088(programlisting)
+#: C/gtkmm-tutorial-in.xml:9154(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16051,17 +16179,17 @@ msgstr ""
 "\n"
 "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref, 
pango_coverage_unref)\n"
 
-#: C/gtkmm-tutorial-in.xml:9087(para)
+#: C/gtkmm-tutorial-in.xml:9153(para)
 msgid ""
 "For instance, for <classname>Pango::Coverage</classname>: <placeholder-1/>"
 msgstr ""
 "Por ejemplo, para <classname>Pango::Coverage</classname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9095(title)
+#: C/gtkmm-tutorial-in.xml:9161(title)
 msgid "_CLASS_GENERIC"
 msgstr "_CLASS_GENERIC"
 
-#: C/gtkmm-tutorial-in.xml:9096(para)
+#: C/gtkmm-tutorial-in.xml:9162(para)
 msgid ""
 "This macro can be used to wrap structs which don't fit into any specialized "
 "category."
@@ -16069,11 +16197,11 @@ msgstr ""
 "Esta macro puede usarse para envolver estructuras que no se ajustan a "
 "ninguna categoría especializada."
 
-#: C/gtkmm-tutorial-in.xml:9098(function)
+#: C/gtkmm-tutorial-in.xml:9164(function)
 msgid "_CLASS_GENERIC( C++ class, C class )"
 msgstr "_CLASS_GENERIC( C++ class, C class )"
 
-#: C/gtkmm-tutorial-in.xml:9100(programlisting)
+#: C/gtkmm-tutorial-in.xml:9166(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16082,17 +16210,17 @@ msgstr ""
 "\n"
 "_CLASS_GENERIC(AttrIter, PangoAttrIterator)\n"
 
-#: C/gtkmm-tutorial-in.xml:9099(para)
+#: C/gtkmm-tutorial-in.xml:9165(para)
 msgid ""
 "For instance, for <classname>Pango::AttrIter</classname>: <placeholder-1/>"
 msgstr ""
 "Por ejemplo, para <classname>Pango::AttrIter</classname>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9107(title)
+#: C/gtkmm-tutorial-in.xml:9173(title)
 msgid "_CLASS_INTERFACE"
 msgstr "_CLASS_INTERFACE"
 
-#: C/gtkmm-tutorial-in.xml:9108(para)
+#: C/gtkmm-tutorial-in.xml:9174(para)
 msgid ""
 "This macro declares a wrapper for a type that is derived from "
 "<classname>GTypeInterface</classname>."
@@ -16100,7 +16228,7 @@ msgstr ""
 "Esta macro declara un envoltorio para un tipo que deriva de "
 "<classname>GTypeInterface</classname>."
 
-#: C/gtkmm-tutorial-in.xml:9111(function)
+#: C/gtkmm-tutorial-in.xml:9177(function)
 msgid ""
 "_CLASS_INTERFACE( C++ class, C class, C casting macro, C interface struct, "
 "Base C++ class (optional), Base C class (optional) )"
@@ -16108,7 +16236,7 @@ msgstr ""
 "_CLASS_INTERFACE( C++ class, C class, C casting macro, C interface struct, "
 "Base C++ class (optional), Base C class (optional) )"
 
-#: C/gtkmm-tutorial-in.xml:9114(programlisting)
+#: C/gtkmm-tutorial-in.xml:9180(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16117,12 +16245,12 @@ msgstr ""
 "\n"
 "_CLASS_INTERFACE(CellEditable, GtkCellEditable, GTK_CELL_EDITABLE, GtkCellEditableIface)\n"
 
-#: C/gtkmm-tutorial-in.xml:9112(para)
+#: C/gtkmm-tutorial-in.xml:9178(para)
 msgid ""
 "For instance, from <filename>celleditable.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>celleditable.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9121(programlisting)
+#: C/gtkmm-tutorial-in.xml:9187(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16131,7 +16259,7 @@ msgstr ""
 "\n"
 "_CLASS_INTERFACE(LoadableIcon, GLoadableIcon, G_LOADABLE_ICON, GLoadableIconIface, Icon, GIcon)\n"
 
-#: C/gtkmm-tutorial-in.xml:9118(para)
+#: C/gtkmm-tutorial-in.xml:9184(para)
 msgid ""
 "Two extra parameters are optional, for the case that the interface derives "
 "from another interface, which should be the case when the GInterface has "
@@ -16143,11 +16271,11 @@ msgstr ""
 "«GInterface» como requisito previo. Por ejemplo, de <filename>loadableicon."
 "hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9130(title)
+#: C/gtkmm-tutorial-in.xml:9196(title)
 msgid "Constructor macros"
 msgstr "Macros de constructores"
 
-#: C/gtkmm-tutorial-in.xml:9131(para)
+#: C/gtkmm-tutorial-in.xml:9197(para)
 msgid ""
 "The <function>_CTOR_DEFAULT()</function> and <function>_WRAP_CTOR()</"
 "function> macros add constructors, wrapping the specified <function>*_new()</"
@@ -16170,7 +16298,7 @@ msgstr ""
 "funciones <function>*_new()</function> de C sólo están pensadas como "
 "funciones cómodas para programadores de C."
 
-#: C/gtkmm-tutorial-in.xml:9146(programlisting)
+#: C/gtkmm-tutorial-in.xml:9212(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16195,7 +16323,7 @@ msgstr ""
 "public:\n"
 "  _WRAP_CREATE(const Glib::ustring&amp; name = Glib::ustring())\n"
 
-#: C/gtkmm-tutorial-in.xml:9141(para)
+#: C/gtkmm-tutorial-in.xml:9207(para)
 msgid ""
 "When using <function>_CLASS_GOBJECT()</function>, the constructors should be "
 "protected (rather than public) and each constructor should have a "
@@ -16209,15 +16337,15 @@ msgstr ""
 "pública. Esto evita que la clase se instancie sin usar un <classname>RefPtr</"
 "classname>. Por ejemplo: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9161(para)
+#: C/gtkmm-tutorial-in.xml:9227(para)
 msgid "This macro creates a default constructor with no arguments."
 msgstr "Esta macro crea un constructor predeterminado sin argumentos."
 
-#: C/gtkmm-tutorial-in.xml:9166(title)
+#: C/gtkmm-tutorial-in.xml:9232(title)
 msgid "_WRAP_CTOR"
 msgstr "_WRAP_CTOR"
 
-#: C/gtkmm-tutorial-in.xml:9167(para)
+#: C/gtkmm-tutorial-in.xml:9233(para)
 msgid ""
 "This macro creates a constructor with arguments, equivalent to a "
 "<function>*_new()</function> C function. It won't actually call the "
@@ -16231,12 +16359,12 @@ msgstr ""
 "equivalente con los mismos tipos de argumentos. Toma una firma de "
 "constructor de C++ y un nombre de función de C."
 
-#: C/gtkmm-tutorial-in.xml:9177(term) C/gtkmm-tutorial-in.xml:9280(term)
-#: C/gtkmm-tutorial-in.xml:9612(term)
+#: C/gtkmm-tutorial-in.xml:9243(term) C/gtkmm-tutorial-in.xml:9302(term)
+#: C/gtkmm-tutorial-in.xml:9538(term)
 msgid "errthrow"
 msgstr "errthrow"
 
-#: C/gtkmm-tutorial-in.xml:9179(para)
+#: C/gtkmm-tutorial-in.xml:9245(para)
 msgid ""
 "This tells gmmproc that the C <function>*_new()</function> has a final "
 "GError** parameter which should be ignored."
@@ -16244,111 +16372,15 @@ msgstr ""
 "Esto le dice a gmmproc que el <function>*_new()</function> de C tiene un "
 "parámetro GError** final que debe ignorarse."
 
-#: C/gtkmm-tutorial-in.xml:9174(para)
+#: C/gtkmm-tutorial-in.xml:9240(para)
 msgid "It also takes an optional extra argument: <placeholder-1/>"
 msgstr "También toma un argumento opcional adicional: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9192(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_CTOR(ToolButton(Widget&amp; icon_widget, const Glib::ustring&amp; label{?}), gtk_tool_button_new)\n"
-msgstr ""
-"\n"
-"_WRAP_CTOR(ToolButton(Widget&amp; icon_widget, const Glib::ustring&amp; label{?}), gtk_tool_button_new)\n"
-
-#: C/gtkmm-tutorial-in.xml:9185(para)
-msgid ""
-"When wrapping constructors, it is possible for gmmproc to generate "
-"convenience overloads of the wrapped constructors if the C function has "
-"parameters that are optional (ie. the C API allows null for those "
-"parameters). For instance, to specify if a parameter is optional, the "
-"<function>_WRAP_CTOR()</function> macro would look something like the "
-"following: <placeholder-1/> The <literal>{?}</literal> following the name of "
-"the <parameter>label</parameter> parameter means that that parameter is "
-"optional. In this case, gmmproc will generate an extra constructor without "
-"that parameter."
-msgstr ""
-"Cuando envuelve constructores, es posible que gmmproc genere sobrecargas "
-"cómodas de los constructores envueltos si la función de C tiene parámetros "
-"que son opcionales (esto significa que la API de C permite asignar «null» a "
-"esos parámetros). Por ejemplo, para especificar si un parámetro es opcional, "
-"la macro <function>_WRAP_CTOR()</function> sería similar a la que se muestra "
-"a continuación: <placeholder-1/> El <literal>{?}</literal> que sigue al "
-"nombre del parámetro <parameter>label</parameter> significa que es opcional. "
-"En este caso, gmmproc generará un constructor adicional sin el parámetro."
-
-#: C/gtkmm-tutorial-in.xml:9207(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label);\n"
-msgstr ""
-"\n"
-"GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label);\n"
-
-#: C/gtkmm-tutorial-in.xml:9212(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{label}, Widget&amp; icon_widget{icon_widget}), 
gtk_tool_button_new)\n"
-msgstr ""
-"\n"
-"_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{label}, Widget&amp; icon_widget{icon_widget}), 
gtk_tool_button_new)\n"
-
-#: C/gtkmm-tutorial-in.xml:9219(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{.}, Widget&amp; icon_widget{.}), 
gtk_tool_button_new)\n"
-msgstr ""
-"\n"
-"_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{.}, Widget&amp; icon_widget{.}), 
gtk_tool_button_new)\n"
-
-#: C/gtkmm-tutorial-in.xml:9200(para)
-msgid ""
-"It is also possible to have the order of the parameters of the constructor "
-"different from that of the C function by using gmmproc's C++ to C parameter "
-"mapping functionality. Using this functionality, it is possible to map a C++ "
-"parameter to a C parameter by specifying the C parameter name. For instance, "
-"assuming that the declaration of the <function>gtk_tool_button_new()</"
-"function> function is the following: <placeholder-1/> The parameters of the "
-"wrapped constructor could be reordered using the following: <placeholder-2/> "
-"The <literal>{param_name}</literal> following each of the names of the "
-"parameters tells gmmproc to map those C++ parameters to the C parameters "
-"with the given names. Since the C++ parameter names correspond to the C "
-"ones, the above could be re-written as: <placeholder-3/>"
-msgstr ""
-"También es posible tener un orden de los parámetros del constructor distinto "
-"a los de la función de C usando la función de mapeo de parámetros de C++ a C "
-"de gmmproc. El uso de esta función hace posible mapear un parámetro de C++ a "
-"uno de C mediante la especificación del nombre del parámetro de C. Por "
-"ejemplo, si se asume que la declaración de la función "
-"<function>gtk_tool_button_new()</function> es la siguiente: <placeholder-1/> "
-"Los parámetros del constructor envuelto podrían reordenarse usando el "
-"siguiente código: <placeholder-2/> El <literal>{param_name}</literal> que "
-"sigue a cada uno de los nombres de los parámetros le dice a gmmproc que "
-"mapee esos parámetros de C++ a los de C con los nombres dados. Dado que los "
-"nombres de los parámetros de C++ corresponden a los de C, se podría "
-"reescribir lo anterior así: <placeholder-3/>"
-
-#: C/gtkmm-tutorial-in.xml:9223(para)
-msgid ""
-"This same optional parameter syntax and parameter reordering is available "
-"for <function>_WRAP_CREATE()</function>. Additional <function>create()</"
-"function> overloads would be generated by gmmproc without the specified "
-"optional parameters."
-msgstr ""
-"Esta misma sintaxis de parámetro opcional y reordenamiento de parámetros "
-"están disponibles para <function>_WRAP_CREATE()</function>. gmmproc "
-"generaría sobrecargas de <function>create()</function> adicionales sin los "
-"parámetros opcionales especificados."
-
-#: C/gtkmm-tutorial-in.xml:9232(title)
+#: C/gtkmm-tutorial-in.xml:9254(title)
 msgid "Hand-coding constructors"
 msgstr "Escribir constructores a mano"
 
-#: C/gtkmm-tutorial-in.xml:9241(programlisting)
+#: C/gtkmm-tutorial-in.xml:9263(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16363,7 +16395,7 @@ msgstr ""
 "  _CONSTRUCT(\"label\", label.c_str(), \"use_underline\", gboolean(mnemonic))\n"
 "{}\n"
 
-#: C/gtkmm-tutorial-in.xml:9233(para)
+#: C/gtkmm-tutorial-in.xml:9255(para)
 msgid ""
 "When a constructor must be partly hand written because, for instance, the "
 "<function>*_new()</function> C function's parameters do not correspond "
@@ -16384,23 +16416,23 @@ msgstr ""
 "propiedades. Por ejemplo, de <filename>button.ccg</filename>: <placeholder-1/"
 ">"
 
-#: C/gtkmm-tutorial-in.xml:9253(title)
+#: C/gtkmm-tutorial-in.xml:9275(title)
 msgid "Method macros"
 msgstr "Macros de métodos"
 
-#: C/gtkmm-tutorial-in.xml:9256(title)
+#: C/gtkmm-tutorial-in.xml:9278(title)
 msgid "_WRAP_METHOD"
 msgstr "_WRAP_METHOD"
 
-#: C/gtkmm-tutorial-in.xml:9257(para)
+#: C/gtkmm-tutorial-in.xml:9279(para)
 msgid "This macro generates the C++ method to wrap a C function."
 msgstr "Esta macro genera el método de C++ para envolver una función de C."
 
-#: C/gtkmm-tutorial-in.xml:9258(function)
+#: C/gtkmm-tutorial-in.xml:9280(function)
 msgid "_WRAP_METHOD( C++ method signature, C function name)"
 msgstr "_WRAP_METHOD( C++ method signature, C function name)"
 
-#: C/gtkmm-tutorial-in.xml:9260(programlisting)
+#: C/gtkmm-tutorial-in.xml:9282(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16409,11 +16441,11 @@ msgstr ""
 "\n"
 "_WRAP_METHOD(void set_text(const Glib::ustring&amp; text), gtk_entry_set_text)\n"
 
-#: C/gtkmm-tutorial-in.xml:9259(para)
+#: C/gtkmm-tutorial-in.xml:9281(para)
 msgid "For instance, from <filename>entry.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>entry.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9264(para)
+#: C/gtkmm-tutorial-in.xml:9286(para)
 msgid ""
 "The C function (e.g. <function>gtk_entry_set_text</function>) is described "
 "more fully in the .defs file, and the <filename>convert*.m4</filename> files "
@@ -16429,12 +16461,12 @@ msgstr ""
 "documentación de Doxygen basados en los archivos <filename>*_docs.xml</"
 "filename> y <filename>*_docs_override.xml</filename>."
 
-#: C/gtkmm-tutorial-in.xml:9273(term) C/gtkmm-tutorial-in.xml:9548(term)
-#: C/gtkmm-tutorial-in.xml:9595(term)
+#: C/gtkmm-tutorial-in.xml:9295(term) C/gtkmm-tutorial-in.xml:9474(term)
+#: C/gtkmm-tutorial-in.xml:9521(term)
 msgid "refreturn"
 msgstr "refreturn"
 
-#: C/gtkmm-tutorial-in.xml:9275(para)
+#: C/gtkmm-tutorial-in.xml:9297(para)
 msgid ""
 "Do an extra <function>reference()</function> on the return value, in case "
 "the C function does not provide a reference."
@@ -16442,16 +16474,16 @@ msgstr ""
 "Hace una <function>reference()</function> adicional en el valor de retorno, "
 "en el caso de que la función de C no proporcione una referencia."
 
-#: C/gtkmm-tutorial-in.xml:9282(para)
+#: C/gtkmm-tutorial-in.xml:9304(para)
 msgid "Use the last GError* parameter of the C function to throw an exception."
 msgstr ""
 "Usa el último parámetro GError* de la función de C para lanzar una excepción."
 
-#: C/gtkmm-tutorial-in.xml:9287(term)
+#: C/gtkmm-tutorial-in.xml:9309(term)
 msgid "deprecated"
 msgstr "deprecated"
 
-#: C/gtkmm-tutorial-in.xml:9289(para)
+#: C/gtkmm-tutorial-in.xml:9311(para)
 msgid ""
 "Puts the generated code in #ifdef blocks. Text about the deprecation can be "
 "specified as an optional parameter."
@@ -16459,11 +16491,11 @@ msgstr ""
 "Pone el código generado en bloques #ifdef. El texto que explica por qué se "
 "marca como obsoleto puede especificarse como un parámetro opcional."
 
-#: C/gtkmm-tutorial-in.xml:9295(term)
+#: C/gtkmm-tutorial-in.xml:9317(term)
 msgid "constversion"
 msgstr "constversion"
 
-#: C/gtkmm-tutorial-in.xml:9297(para)
+#: C/gtkmm-tutorial-in.xml:9319(para)
 msgid ""
 "Just call the non-const version of the same function, instead of generating "
 "almost duplicate code."
@@ -16471,305 +16503,95 @@ msgstr ""
 "Sólo llama a la versión no constante de la misma función, en lugar de "
 "generar código casi duplicado."
 
-#: C/gtkmm-tutorial-in.xml:9302(term) C/gtkmm-tutorial-in.xml:9556(term)
-#: C/gtkmm-tutorial-in.xml:9634(term) C/gtkmm-tutorial-in.xml:9665(term)
+#: C/gtkmm-tutorial-in.xml:9324(term) C/gtkmm-tutorial-in.xml:9482(term)
+#: C/gtkmm-tutorial-in.xml:9560(term) C/gtkmm-tutorial-in.xml:9623(term)
 msgid "ifdef"
 msgstr "ifdef"
 
-#: C/gtkmm-tutorial-in.xml:9304(para) C/gtkmm-tutorial-in.xml:9558(para)
-#: C/gtkmm-tutorial-in.xml:9636(para) C/gtkmm-tutorial-in.xml:9667(para)
+#: C/gtkmm-tutorial-in.xml:9326(para) C/gtkmm-tutorial-in.xml:9484(para)
+#: C/gtkmm-tutorial-in.xml:9562(para) C/gtkmm-tutorial-in.xml:9625(para)
 msgid "Puts the generated code in #ifdef blocks."
 msgstr "Pone el código generado en bloques #ifdef."
 
-#: C/gtkmm-tutorial-in.xml:9308(term)
+#: C/gtkmm-tutorial-in.xml:9330(term) C/gtkmm-tutorial-in.xml:9566(term)
 msgid "slot_name"
 msgstr "slot_name"
 
-#: C/gtkmm-tutorial-in.xml:9310(para)
-msgid ""
-"Tells <function>_WRAP_METHOD()</function> the name of the slot parameter of "
-"the method, if it has one. This enables gmmproc to generate code to copy the "
-"slot and pass the copy on to the C function in its final <literal>gpointer "
-"user_data</literal> parameter. The <literal>slot_callback</literal> option "
-"must also be used to specify the name of the glue callback function to also "
-"pass on to the C function."
-msgstr ""
-"Le dice a <function>_WRAP_METHOD()</function> el nombre del parámetro «slot» "
-"del método, si tiene uno. Esto le permite a «gmmproc» generar código para "
-"copiar el «slot» y pasarle la copia a la función de C en su parámetro "
-"<literal>gpointer user_data</literal> final. La opción "
-"<literal>slot_callback</literal> también debe usarse para especificar el "
-"nombre de la función de devolución de llamada adhesiva que pasar a la "
-"función de C."
-
-#: C/gtkmm-tutorial-in.xml:9320(term)
+#: C/gtkmm-tutorial-in.xml:9332(para) C/gtkmm-tutorial-in.xml:9568(para)
+#| msgid ""
+#| "Tells <function>_WRAP_METHOD()</function> the name of the slot parameter "
+#| "of the method, if it has one. This enables gmmproc to generate code to "
+#| "copy the slot and pass the copy on to the C function in its final "
+#| "<literal>gpointer user_data</literal> parameter. The "
+#| "<literal>slot_callback</literal> option must also be used to specify the "
+#| "name of the glue callback function to also pass on to the C function."
+msgid ""
+"Specifies the name of the slot parameter of the method, if it has one. This "
+"enables <command>gmmproc</command> to generate code to copy the slot and "
+"pass the copy on to the C function in its final <literal>gpointer user_data</"
+"literal> parameter. The <literal>slot_callback</literal> option must also be "
+"used to specify the name of the glue callback function to also pass on to "
+"the C function."
+msgstr ""
+"Especifica el nombre del parámetro «slot» del método, si tiene uno. Esto le "
+"permite a <command>gmmproc</command> generar código para copiar el «slot» y "
+"pasarle la copia a la función de C en su parámetro <literal>gpointer "
+"user_data</literal> final. La opción <literal>slot_callback</literal> "
+"también debe usarse para especificar el nombre de la función de devolución "
+"de llamada adhesiva que pasar a la función de C."
+
+#: C/gtkmm-tutorial-in.xml:9342(term) C/gtkmm-tutorial-in.xml:9578(term)
 msgid "slot_callback"
 msgstr "slot_callback"
 
-#: C/gtkmm-tutorial-in.xml:9322(para)
-msgid ""
-"Used in conjunction with the <literal>slot_name</literal> option to tell "
-"<function>_WRAP_METHOD()</function> the name of the glue callback function "
-"that handles extracting the slot and then calling it. The address of this "
-"callback is also passed on to the C function that the method wraps."
-msgstr ""
-"Usado junto con la opción <literal>slot_name</literal> para decirle a "
-"<function>_WRAP_METHOD()</function> el nombre de la función de devolución de "
-"llamada adhesiva que maneja la extracción del «slot» y su llamada. La "
-"dirección de esta devolución de llamada también se pasa a la función de C "
-"que el método envuelve."
-
-#: C/gtkmm-tutorial-in.xml:9330(term)
+#: C/gtkmm-tutorial-in.xml:9344(para) C/gtkmm-tutorial-in.xml:9580(para)
+#| msgid ""
+#| "Used in conjunction with the <literal>slot_name</literal> option to tell "
+#| "<function>_WRAP_METHOD()</function> the name of the glue callback "
+#| "function that handles extracting the slot and then calling it. The "
+#| "address of this callback is also passed on to the C function that the "
+#| "method wraps."
+msgid ""
+"Used in conjunction with the <literal>slot_name</literal> option to specify "
+"the name of the glue callback function that handles extracting the slot and "
+"then calling it. The address of this callback is also passed on to the C "
+"function that the method wraps."
+msgstr ""
+"Usado junto con la opción <literal>slot_name</literal> para especificar el "
+"nombre de la función de devolución de llamada adhesiva que maneja la "
+"extracción del «slot» y su llamada. La dirección de esta devolución de "
+"llamada también se pasa a la función de C que el método envuelve."
+
+#: C/gtkmm-tutorial-in.xml:9352(term) C/gtkmm-tutorial-in.xml:9588(term)
 msgid "no_slot_copy"
 msgstr "no_slot_copy"
 
-#: C/gtkmm-tutorial-in.xml:9332(para)
-msgid ""
-"Tells gmmproc not to pass a copy of the slot to the C function, if the "
-"method has one. Instead the slot itself is passed. The slot parameter name "
-"and the glue callback function must have been specified with the "
-"<literal>slot_name</literal> and <literal>slot_callbback</literal> options "
-"respectively."
-msgstr ""
-"Le dice a «gmmproc» que no le pase una copia del «slot» a la función de C, si "
-"el método tiene una. En su lugar, se pasa el «slot» en sí. El nombre del "
-"parámetro «slot» y la función de devolución de llamada adhesiva deben haberse "
-"especificado con las opciones <literal>slot_name</literal> y "
+#: C/gtkmm-tutorial-in.xml:9354(para) C/gtkmm-tutorial-in.xml:9590(para)
+#| msgid ""
+#| "Tells gmmproc not to pass a copy of the slot to the C function, if the "
+#| "method has one. Instead the slot itself is passed. The slot parameter "
+#| "name and the glue callback function must have been specified with the "
+#| "<literal>slot_name</literal> and <literal>slot_callbback</literal> "
+#| "options respectively."
+msgid ""
+"Tells <command>gmmproc</command> not to pass a copy of the slot to the C "
+"function, if the method has one. Instead the slot itself is passed. The slot "
+"parameter name and the glue callback function must have been specified with "
+"the <literal>slot_name</literal> and <literal>slot_callbback</literal> "
+"options respectively."
+msgstr ""
+"Le dice a <command>gmmproc</command> que no le pase una copia del «slot» a la "
+"función de C, si el método tiene una. En su lugar, se pasa el «slot» en sí. "
+"El nombre del parámetro «slot» y la función de devolución de llamada adhesiva "
+"deben haberse especificado con las opciones <literal>slot_name</literal> y "
 "<literal>slot_callbback</literal> respectivamente."
 
-#: C/gtkmm-tutorial-in.xml:9270(para) C/gtkmm-tutorial-in.xml:9519(para)
-#: C/gtkmm-tutorial-in.xml:9592(para)
+#: C/gtkmm-tutorial-in.xml:9292(para) C/gtkmm-tutorial-in.xml:9445(para)
+#: C/gtkmm-tutorial-in.xml:9518(para)
 msgid "There are some optional extra arguments: <placeholder-1/>"
 msgstr "Hay algunos argumentos opcionales adicionales: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9345(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_METHOD(void get_preferred_size(Requisition&amp; minimum_size, Requisition&amp; natural_size{?}) 
const, gtk_widget_get_preferred_size)\n"
-msgstr ""
-"\n"
-"_WRAP_METHOD(void get_preferred_size(Requisition&amp; minimum_size, Requisition&amp; natural_size{?}) 
const, gtk_widget_get_preferred_size)\n"
-
-#: C/gtkmm-tutorial-in.xml:9341(para)
-msgid ""
-"As with <function>_WRAP_CTOR()</function> it is possible to specify if there "
-"are any optional parameters. If that is the case, gmmproc will generate "
-"convenience overload methods without those parameters. For example: "
-"<placeholder-1/> Would indicate that the <parameter>natural_size</parameter> "
-"parameter is optional because its name ends with <literal>{?}</literal>. In "
-"this case, gmmproc would generate a method overload without that parameter."
-msgstr ""
-"Al igual que con <function>_WRAP_CTOR()</function> es posible especificar si "
-"hay parámetros opcionales. Si este es el caso, gmmproc generará métodos de "
-"sobrecarga cómodos sin esos parámetros. Por ejemplo: <placeholder-1/> "
-"Indicaría que el parámetro <parameter>natural_size</parameter> es opcional "
-"porque su nombre termina con <literal>{?}</literal>. En este caso, gmmproc "
-"generaría una sobrecarga de método sin ese parámetro."
-
-#: C/gtkmm-tutorial-in.xml:9359(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device, GdkEventMask events);\n"
-msgstr ""
-"\n"
-"void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device, GdkEventMask events);\n"
-
-#: C/gtkmm-tutorial-in.xml:9364(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_METHOD(void set_device_events(Gdk::EventMask events{events}, const Glib::RefPtr&lt;const 
Gdk::Device&gt;&amp; device{device}), gtk_widget_set_device_events)\n"
-msgstr ""
-"\n"
-"_WRAP_METHOD(void set_device_events(Gdk::EventMask events{events}, const Glib::RefPtr&lt;const 
Gdk::Device&gt;&amp; device{device}), gtk_widget_set_device_events)\n"
-
-#: C/gtkmm-tutorial-in.xml:9371(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_METHOD(void set_device_events(Gdk::EventMask events{.}, const Glib::RefPtr&lt;const 
Gdk::Device&gt;&amp; device{.}), gtk_widget_set_device_events)\n"
-msgstr ""
-"\n"
-"_WRAP_METHOD(void set_device_events(Gdk::EventMask events{.}, const Glib::RefPtr&lt;const 
Gdk::Device&gt;&amp; device{.}), gtk_widget_set_device_events)\n"
-
-#: C/gtkmm-tutorial-in.xml:9352(para)
-msgid ""
-"Also, as with <function>_WRAP_CTOR()</function>, it is possible to reorder "
-"the parameters of the C++ method by using gmmproc's C++ to C parameter "
-"mapping functionality. Using this functionality, it is possible to map a C++ "
-"parameter to a C parameter by specifying the C parameter name. For example, "
-"if the <function>gtk_widget_set_device_events()</function> declaration is "
-"the following: <placeholder-1/> Something like the following would change "
-"the order of the parameters in the C++ method: <placeholder-2/> The <literal>"
-"{param_name}</literal> following each of the names of the parameters tells "
-"gmmproc to map those C++ parameters to the C parameters with the given "
-"names. Since the C++ parameter names correspond to the C ones, the above "
-"could be re-written as: <placeholder-3/>"
-msgstr ""
-"Además, al igual que con <function>_WRAP_CTOR()</function>, es posible "
-"reordenar los parámetros del método de C++ usando la función de mapeo de C++ "
-"a C de gmmproc. El uso de esta función hace posible mapear un parámetro de C+"
-"+ a uno de C mediante la especificación del nombre del parámetro de C. Por "
-"ejemplo, si la declaración de <function>gtk_widget_set_device_events()</"
-"function> es la siguiete: <placeholder-1/> Algo así cambiaría el orden de "
-"los parámetros en el método de C++: <placeholder-2/> El <literal>{param_name}"
-"</literal> que sigue a cada uno de los nombres de los parámetros le dice a "
-"gmmproc que mapee esos parámetros de C++ a los de C con los nombres dados. "
-"Ya que que los nombres de los parámetros de C++ corresponden a los de C, lo "
-"anterior podría reescribirse así: <placeholder-3/>"
-
-#: C/gtkmm-tutorial-in.xml:9383(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
-msgstr ""
-"\n"
-"GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
-
-#: C/gtkmm-tutorial-in.xml:9389(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_WRAP_METHOD(void get_request_mode(SizeRequestMode&amp; mode{OUT}) const, gtk_widget_get_request_mode)\n"
-msgstr ""
-"\n"
-"_WRAP_METHOD(void get_request_mode(SizeRequestMode&amp; mode{OUT}) const, gtk_widget_get_request_mode)\n"
-
-#: C/gtkmm-tutorial-in.xml:9397(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = (SizeRequestMode)($4)')\n"
-msgstr ""
-"\n"
-"_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = (SizeRequestMode)($4)')\n"
-
-#: C/gtkmm-tutorial-in.xml:9401(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = ($1)($4)')\n"
-msgstr ""
-"\n"
-"_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = ($1)($4)')\n"
-
-#: C/gtkmm-tutorial-in.xml:9375(para)
-msgid ""
-"With <function>_WRAP_METHOD()</function> it is also possible to include an "
-"output parameter in the C++ method declaration in which the return of the C "
-"function would be placed and to have the C++ method return <type>void</"
-"type>. To do that, simply include the output parameter declaration in the C+"
-"+ method declaration appending a <literal>{OUT}</literal> to the output "
-"parameter name. For example, if <function>gtk_widget_get_request_mode()</"
-"function> is declared as the following: <placeholder-1/> And having the C++ "
-"method set an output parameter is desired instead of returning a "
-"<type>SizeRequestMode</type>, something like the following could be used: "
-"<placeholder-2/> the <literal>{OUT}</literal> appended to the name of the "
-"<parameter>mode</parameter> output parameter tells gmmproc to place the "
-"return of the C function in that output parameter. In this case, however, a "
-"necessary initialization macro like the following would also have to be "
-"specified: <placeholder-3/> Which could also be written as: <placeholder-4/>"
-msgstr ""
-"Con <function>_WRAP_METHOD()</function> también es posible incluir un "
-"parámetro de salida en la declaración del método de C++ en el que se pone el "
-"valor de retorno de la función de C, y que el método de C++ devuelva "
-"<type>void</type>. Para hacer esto, simplemente incluya la declaración del "
-"parámetro de salida en la declaración del método de C++ adjuntando <literal>"
-"{OUT}</literal> al nombre del parámetro de salida. Por ejemplo, si "
-"<function>gtk_widget_get_request_mode()</function> se declara como sigue: "
-"<placeholder-1/> Y se quiere que el método de C++ establezca un parámetro de "
-"salida en lugar de devolver un <type>SizeRequestMode</type>, algo como lo "
-"siguiente podría usarse: <placeholder-2/> el <literal>{OUT}</literal> "
-"adjunto al nombre del parámetro de salida <parameter>mode</parameter> le "
-"dice a gmmproc que ponga el valor de retorno de la función de C en ese "
-"parámetro de salida. En este caso, sin embargo, una macro de inicialización "
-"necesaria como la que sigue también tendría que especificarse: <placeholder-"
-"3/> Lo que también podría reescribirse así: <placeholder-4/>"
-
-#: C/gtkmm-tutorial-in.xml:9410(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"    gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view, GtkTreePath*\n"
-"    path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
-"  "
-msgstr ""
-"\n"
-"    gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view, GtkTreePath*\n"
-"    path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
-"  "
-
-#: C/gtkmm-tutorial-in.xml:9418(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"    _WRAP_METHOD(bool get_cell_rect(const TreeModel::Path&amp; path, const\n"
-"    CellRenderer&amp; cell, Gdk::Rectangle&amp; rect{&gt;&gt;}) const,\n"
-"    gtk_icon_view_get_cell_rect)\n"
-"  "
-msgstr ""
-"\n"
-"    _WRAP_METHOD(bool get_cell_rect(const TreeModel::Path&amp; path, const\n"
-"    CellRenderer&amp; cell, Gdk::Rectangle&amp; rect{&gt;&gt;}) const,\n"
-"    gtk_icon_view_get_cell_rect)\n"
-"  "
-
-#: C/gtkmm-tutorial-in.xml:9432(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"    _INITIALIZATION(`Gdk::Rectangle&amp;',`GdkRectangle', `$3 =\n"
-"    Glib::wrap(&amp;($4))')\n"
-"  "
-msgstr ""
-"\n"
-"    _INITIALIZATION(`Gdk::Rectangle&amp;',`GdkRectangle', `$3 =\n"
-"    Glib::wrap(&amp;($4))')\n"
-"  "
-
-#: C/gtkmm-tutorial-in.xml:9405(para)
-msgid ""
-"<function>_WRAP_METHOD()</function> also supports setting C++ output "
-"parameters from C output parameters if the C function being wrapped has any. "
-"Suppose, for example, that we want to wrap the following C function that "
-"returns a value in its C output parameter <parameter>rect</parameter>: "
-"<placeholder-1/> To have <command>gmmproc</command> place the value returned "
-"in the C++ <parameter>rect</parameter> output parameter once the C function "
-"returns, something like the following <function>_WRAP_METHOD()</function> "
-"directive could be used: <placeholder-2/> The <literal>{&gt;&gt;}</literal> "
-"following the <parameter>rect</parameter> parameter name indicates that the C"
-"++ output parameter should be set from the value returned in the C parameter "
-"from the C function. <command>gmmproc</command> will generate a declaration "
-"of a temporary variable in which to store the value of the C output "
-"parameter and a statement that sets the C++ output parameter from the "
-"temporary variable. In this case it may be necessary to have an "
-"<function>_INITIALIZATION()</function> describing how to set a "
-"<classname>Gdk::Rectangle&amp;</classname> from a <classname>GdkRectangle*</"
-"classname> such as the following: <placeholder-3/>"
-msgstr ""
-"<function>_WRAP_METHOD()</function> también soporta establecer parámetros de "
-"salida de C++ desde parámetros de salida de C si la función de C que está "
-"envolviendo los tiene. Suponga, por ejemplo, que quiere envolver la "
-"siguiente función de C que devuelve un valor en su parámetro de salida de C "
-"<parameter>rect</parameter>: <placeholder-1/> Para hacer que "
-"<command>gmmproc</command> ponga el valor devuelto en el parámetro de salida "
-"de C++ <parameter>rect</parameter> una vez que la función de C retorna, se "
-"puede usar algo como la siguiente directiva de <function>WRAP_METHOD()</"
-"function>: <placeholder-2/> El <literal>{&gt;&gt;}</literal> que sigue al "
-"nombre del parámetro <parameter>rect</parameter> indica que el parámetro de "
-"salida de C++ debe establecerse a partir del valor devuelto por el parámetro "
-"de C desde la función de C. <command>gmmproc</command> generará una "
-"declaración de una variable temporal en la que se almacenará el valor del "
-"parámetro de salida de C y una declaración que establece el parámetro de "
-"salida de C++ desde la variable temporal. En este caso puede ser necesario "
-"tener una <function>_INITIALIZATION()</function> que describa cómo "
-"establecer un <classname>Gdk::Rectangle&amp;</classname> desde un "
-"<classname>GdkRectangle*</classname> como la siguiente: <placeholder-3/>"
-
-#: C/gtkmm-tutorial-in.xml:9441(para)
+#: C/gtkmm-tutorial-in.xml:9367(para)
 msgid ""
 "Objects used via <classname>RefPtr</classname>: Pass the <classname>RefPtr</"
 "classname> as a const reference. For instance, <code>const Glib::RefPtr&lt;"
@@ -16779,7 +16601,7 @@ msgstr ""
 "<classname>RefPtr</classname> como una referencia constante. Por ejemplo, "
 "<code>const Glib::RefPtr&lt;Gtk::Action&gt;&amp; action</code>."
 
-#: C/gtkmm-tutorial-in.xml:9445(para)
+#: C/gtkmm-tutorial-in.xml:9371(para)
 msgid ""
 "Const Objects used via <classname>RefPtr</classname>: If the object should "
 "not be changed by the function, then make sure that the object is const, "
@@ -16791,7 +16613,7 @@ msgstr ""
 "incluso si el <classname>RefPtr</classname> ya lo es. Por ejemplo, "
 "<code>const Glib::RefPtr&lt;const Gtk::Action&gt;&amp; action</code>."
 
-#: C/gtkmm-tutorial-in.xml:9450(para)
+#: C/gtkmm-tutorial-in.xml:9376(para)
 msgid ""
 "Wrapping <classname>GList*</classname> and <classname>GSList*</classname> "
 "parameters: First, you need to discover what objects are contained in the "
@@ -16809,12 +16631,12 @@ msgstr ""
 "vector&lt; Glib::RefPtr&lt;Action&gt; &gt;</code>. Tal vez necesite definir "
 "un tipo «Traits» para especificar cómo deben convertirse los tipos de C y C++."
 
-#: C/gtkmm-tutorial-in.xml:9467(programlisting)
+#: C/gtkmm-tutorial-in.xml:9393(programlisting)
 #, no-wrap
 msgid "#m4 
_CONVERSION(`GSList*',`std::vector&lt;Widget*&gt;',`Glib::SListHandler&lt;Widget*&gt;::slist_to_vector($3, 
Glib::OWNERSHIP_SHALLOW)')"
 msgstr "#m4 
_CONVERSION(`GSList*',`std::vector&lt;Widget*&gt;',`Glib::SListHandler&lt;Widget*&gt;::slist_to_vector($3, 
Glib::OWNERSHIP_SHALLOW)')"
 
-#: C/gtkmm-tutorial-in.xml:9459(para)
+#: C/gtkmm-tutorial-in.xml:9385(para)
 msgid ""
 "Wrapping <classname>GList*</classname> and <classname>GSList*</classname> "
 "return types: You must discover whether the caller should free the list and "
@@ -16833,7 +16655,7 @@ msgstr ""
 "posesión depende de la función en lugar del tipo. Por ejemplo: <placeholder-"
 "1/>"
 
-#: C/gtkmm-tutorial-in.xml:9437(para)
+#: C/gtkmm-tutorial-in.xml:9363(para)
 msgid ""
 "Selecting which C++ types should be used is also important when wrapping C "
 "API. Though it's usually obvious what C++ types should be used in the C++ "
@@ -16843,11 +16665,11 @@ msgstr ""
 "envuelve una API de C. A pesar de que generalmente es obvio qué tipos de C++ "
 "deben usarse en el método de C++, aquí hay algunos consejos: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9473(title)
+#: C/gtkmm-tutorial-in.xml:9399(title)
 msgid "_WRAP_METHOD_DOCS_ONLY"
 msgstr "_WRAP_METHOD_DOCS_ONLY"
 
-#: C/gtkmm-tutorial-in.xml:9474(para)
+#: C/gtkmm-tutorial-in.xml:9400(para)
 msgid ""
 "This macro is like <function>_WRAP_METHOD()</function>, but it generates "
 "only the documentation for a C++ method that wraps a C function. Use this "
@@ -16859,11 +16681,11 @@ msgstr ""
 "Úsela cuando debe escribir el método a mano, pero quiere usar la "
 "documentación que se crearía si el método se generara."
 
-#: C/gtkmm-tutorial-in.xml:9478(function)
+#: C/gtkmm-tutorial-in.xml:9404(function)
 msgid "_WRAP_METHOD_DOCS_ONLY(C function name)"
 msgstr "_WRAP_METHOD_DOCS_ONLY(C function name)"
 
-#: C/gtkmm-tutorial-in.xml:9480(programlisting)
+#: C/gtkmm-tutorial-in.xml:9406(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16872,15 +16694,15 @@ msgstr ""
 "\n"
 "_WRAP_METHOD_DOCS_ONLY(gtk_container_remove)\n"
 
-#: C/gtkmm-tutorial-in.xml:9479(para)
+#: C/gtkmm-tutorial-in.xml:9405(para)
 msgid "For instance, from <filename>container.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>container.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9487(title)
+#: C/gtkmm-tutorial-in.xml:9413(title)
 msgid "_IGNORE / _IGNORE_SIGNAL"
 msgstr "_IGNORE / _IGNORE_SIGNAL"
 
-#: C/gtkmm-tutorial-in.xml:9488(para)
+#: C/gtkmm-tutorial-in.xml:9414(para)
 msgid ""
 "<command>gmmproc</command> will warn you on stdout about functions and "
 "signals that you have forgotten to wrap, helping to ensure that you are "
@@ -16895,15 +16717,15 @@ msgstr ""
 "escribir a mano algunos métodos entonces puede usar las macros _IGNORE() o "
 "_IGNORE_SIGNAL() para hacer que <command>gmmproc</command> deje de quejarse."
 
-#: C/gtkmm-tutorial-in.xml:9493(function)
+#: C/gtkmm-tutorial-in.xml:9419(function)
 msgid "_IGNORE(C function name 1, C function name2, etc)"
 msgstr "_IGNORE(C function name 1, C function name2, etc)"
 
-#: C/gtkmm-tutorial-in.xml:9494(function)
+#: C/gtkmm-tutorial-in.xml:9420(function)
 msgid "_IGNORE_SIGNAL(C signal name 1, C signal name2, etc)"
 msgstr "_IGNORE_SIGNAL(C signal name 1, C signal name2, etc)"
 
-#: C/gtkmm-tutorial-in.xml:9496(programlisting)
+#: C/gtkmm-tutorial-in.xml:9422(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16912,15 +16734,15 @@ msgstr ""
 "\n"
 "_IGNORE(gtk_button_box_set_spacing, gtk_button_box_get_spacing)\n"
 
-#: C/gtkmm-tutorial-in.xml:9495(para)
+#: C/gtkmm-tutorial-in.xml:9421(para)
 msgid "For instance, from <filename>buttonbox.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>buttonbox.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9503(title)
+#: C/gtkmm-tutorial-in.xml:9429(title)
 msgid "_WRAP_SIGNAL"
 msgstr "_WRAP_SIGNAL"
 
-#: C/gtkmm-tutorial-in.xml:9504(para)
+#: C/gtkmm-tutorial-in.xml:9430(para)
 msgid ""
 "This macro generates the C++ libsigc++-style signal to wrap a C GObject "
 "signal. It actually generates a public accessor method, such as "
@@ -16935,11 +16757,11 @@ msgstr ""
 "de parámetro de C y los archivos de conversión .m4 para descubrir "
 "conversiones de tipo adecuadas."
 
-#: C/gtkmm-tutorial-in.xml:9510(function)
+#: C/gtkmm-tutorial-in.xml:9436(function)
 msgid "_WRAP_SIGNAL( C++ signal handler signature, C signal name)"
 msgstr "_WRAP_SIGNAL( C++ signal handler signature, C signal name)"
 
-#: C/gtkmm-tutorial-in.xml:9512(programlisting)
+#: C/gtkmm-tutorial-in.xml:9438(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -16948,7 +16770,7 @@ msgstr ""
 "\n"
 "_WRAP_SIGNAL(void clicked(),\"clicked\")\n"
 
-#: C/gtkmm-tutorial-in.xml:9516(para)
+#: C/gtkmm-tutorial-in.xml:9442(para)
 msgid ""
 "Signals usually have function pointers in the GTK struct, with a "
 "corresponding enum value and a <function>g_signal_new()</function> in the .c "
@@ -16958,11 +16780,11 @@ msgstr ""
 "GTK, con un valor de enum correspondiente y un <function>g_signal_new()</"
 "function> en el archivo .c."
 
-#: C/gtkmm-tutorial-in.xml:9522(term)
+#: C/gtkmm-tutorial-in.xml:9448(term)
 msgid "no_default_handler"
 msgstr "no_default_handler"
 
-#: C/gtkmm-tutorial-in.xml:9524(para)
+#: C/gtkmm-tutorial-in.xml:9450(para)
 msgid ""
 "Do not generate an <function>on_something()</function> virtual method to "
 "allow easy overriding of the default signal handler. Use this when adding a "
@@ -16974,11 +16796,11 @@ msgstr ""
 "esto si añadir una señal con un manejador de señales predeterminado rompe la "
 "ABI incrementando el tamaño de la tabla de funciones virtuales de la clase."
 
-#: C/gtkmm-tutorial-in.xml:9532(term)
+#: C/gtkmm-tutorial-in.xml:9458(term)
 msgid "custom_default_handler"
 msgstr "custom_default_handler"
 
-#: C/gtkmm-tutorial-in.xml:9534(para)
+#: C/gtkmm-tutorial-in.xml:9460(para)
 msgid ""
 "Generate a declaration of the <function>on_something()</function> virtual "
 "method in the <filename>.h</filename> file, but do not generate a definition "
@@ -16990,11 +16812,11 @@ msgstr ""
 "archivo <filename>.cc</filename>. Use esto cuando deba generar la definición "
 "a mano."
 
-#: C/gtkmm-tutorial-in.xml:9541(term)
+#: C/gtkmm-tutorial-in.xml:9467(term)
 msgid "custom_c_callback"
 msgstr "custom_c_callback"
 
-#: C/gtkmm-tutorial-in.xml:9543(para)
+#: C/gtkmm-tutorial-in.xml:9469(para)
 msgid ""
 "Do not generate a C callback function for the signal. Use this when you must "
 "generate the callback function by hand."
@@ -17002,7 +16824,7 @@ msgstr ""
 "No genera una devolución de llamada de C para la señal. Use esto cuando debe "
 "generar la función de devolución de llamada a mano."
 
-#: C/gtkmm-tutorial-in.xml:9550(para)
+#: C/gtkmm-tutorial-in.xml:9476(para)
 msgid ""
 "Do an extra <function>reference()</function> on the return value of the "
 "<function>on_something()</function> virtual method, in case the C function "
@@ -17012,11 +16834,11 @@ msgstr ""
 "del método virtual <function>on_something()</function>, en caso de que la "
 "función de C no proporcione una referencia."
 
-#: C/gtkmm-tutorial-in.xml:9566(title)
+#: C/gtkmm-tutorial-in.xml:9492(title)
 msgid "_WRAP_PROPERTY"
 msgstr "_WRAP_PROPERTY"
 
-#: C/gtkmm-tutorial-in.xml:9567(para)
+#: C/gtkmm-tutorial-in.xml:9493(para)
 msgid ""
 "This macro generates the C++ method to wrap a C GObject property. You must "
 "specify the property name and the wanted C++ type for the property. "
@@ -17029,11 +16851,11 @@ msgstr ""
 "el tipo de C y el archivo de conversión .m4 para descubrir conversiones de "
 "tipo apropiadas."
 
-#: C/gtkmm-tutorial-in.xml:9571(function)
+#: C/gtkmm-tutorial-in.xml:9497(function)
 msgid "_WRAP_PROPERTY(C property name, C++ type)"
 msgstr "_WRAP_PROPERTY(C property name, C++ type)"
 
-#: C/gtkmm-tutorial-in.xml:9573(programlisting)
+#: C/gtkmm-tutorial-in.xml:9499(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17042,20 +16864,20 @@ msgstr ""
 "\n"
 "_WRAP_PROPERTY(\"label\", Glib::ustring)\n"
 
-#: C/gtkmm-tutorial-in.xml:9580(title)
+#: C/gtkmm-tutorial-in.xml:9506(title)
 msgid "_WRAP_VFUNC"
 msgstr "_WRAP_VFUNC"
 
-#: C/gtkmm-tutorial-in.xml:9581(para)
+#: C/gtkmm-tutorial-in.xml:9507(para)
 msgid "This macro generates the C++ method to wrap a virtual C function."
 msgstr ""
 "Esta macro genera el método de C++ que envuelve una función virtual de C."
 
-#: C/gtkmm-tutorial-in.xml:9582(function)
+#: C/gtkmm-tutorial-in.xml:9508(function)
 msgid "_WRAP_VFUNC( C++ method signature, C function name)"
 msgstr "_WRAP_VFUNC( C++ method signature, C function name)"
 
-#: C/gtkmm-tutorial-in.xml:9584(programlisting)
+#: C/gtkmm-tutorial-in.xml:9510(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17064,11 +16886,11 @@ msgstr ""
 "\n"
 "_WRAP_VFUNC(SizeRequestMode get_request_mode() const, get_request_mode)\n"
 
-#: C/gtkmm-tutorial-in.xml:9583(para) C/gtkmm-tutorial-in.xml:9678(para)
+#: C/gtkmm-tutorial-in.xml:9509(para) C/gtkmm-tutorial-in.xml:9636(para)
 msgid "For instance, from <filename>widget.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>widget.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9588(para)
+#: C/gtkmm-tutorial-in.xml:9514(para)
 msgid ""
 "The C function (e.g. <function>get_request_mode</function>) is described "
 "more fully in the <filename>*_vfuncs.defs</filename> file, and the "
@@ -17080,7 +16902,7 @@ msgstr ""
 "y los archivos <filename>convert*.m4</filename> contienen las conversiones "
 "necesarias del tipo de parámetro de C++ al tipo de parámetro de C."
 
-#: C/gtkmm-tutorial-in.xml:9597(para)
+#: C/gtkmm-tutorial-in.xml:9523(para)
 msgid ""
 "Do an extra <function>reference()</function> on the return value of the "
 "<function>something_vfunc()</function> function, in case the virtual C "
@@ -17090,11 +16912,11 @@ msgstr ""
 "de la función <function>something_vfunc()</function>, en caso de que la "
 "función virtual de C no proporcione una referencia."
 
-#: C/gtkmm-tutorial-in.xml:9603(term)
+#: C/gtkmm-tutorial-in.xml:9529(term)
 msgid "refreturn_ctype"
 msgstr "refreturn_ctype"
 
-#: C/gtkmm-tutorial-in.xml:9605(para)
+#: C/gtkmm-tutorial-in.xml:9531(para)
 msgid ""
 "Do an extra <function>reference()</function> on the return value of an "
 "overridden <function>something_vfunc()</function> function in the C callback "
@@ -17105,7 +16927,7 @@ msgstr ""
 "función de devolución de llamada de C, en caso de que la función de C que "
 "llama espere que proporcione una referencia."
 
-#: C/gtkmm-tutorial-in.xml:9614(para)
+#: C/gtkmm-tutorial-in.xml:9540(para)
 msgid ""
 "Use the last GError* parameter of the C virtual function (if there is one) "
 "to throw an exception."
@@ -17113,11 +16935,11 @@ msgstr ""
 "Usa el último parámetro GError* de la función virtual de C (si existe) para "
 "lanzar una excepción."
 
-#: C/gtkmm-tutorial-in.xml:9619(term)
+#: C/gtkmm-tutorial-in.xml:9545(term)
 msgid "custom_vfunc"
 msgstr "custom_vfunc"
 
-#: C/gtkmm-tutorial-in.xml:9621(para)
+#: C/gtkmm-tutorial-in.xml:9547(para)
 msgid ""
 "Do not generate a definition of the vfunc in the <filename>.cc</filename> "
 "file. Use this when you must generate the vfunc by hand."
@@ -17125,11 +16947,11 @@ msgstr ""
 "No genera una definición de la «vfunc» en el archivo <filename>.cc</"
 "filename>. Use esto cuando deba generar la «vfunc» a mano."
 
-#: C/gtkmm-tutorial-in.xml:9627(term)
+#: C/gtkmm-tutorial-in.xml:9553(term)
 msgid "custom_vfunc_callback"
 msgstr "custom_vfunc_callback"
 
-#: C/gtkmm-tutorial-in.xml:9629(para)
+#: C/gtkmm-tutorial-in.xml:9555(para)
 msgid ""
 "Do not generate a C callback function for the vfunc. Use this when you must "
 "generate the callback function by hand."
@@ -17137,7 +16959,7 @@ msgstr ""
 "No genera una función de devolución de llamada de C para la «vfunc». Use esto "
 "cuando deba generar la función de devolución de llamada a mano."
 
-#: C/gtkmm-tutorial-in.xml:9641(para)
+#: C/gtkmm-tutorial-in.xml:9599(para)
 msgid ""
 "A rule to which there may be exceptions: If the virtual C function returns a "
 "pointer to an object derived from <classname>GObject</classname>, i.e. a "
@@ -17153,23 +16975,23 @@ msgstr ""
 "classname>. Se requiere uno de los argumentos adicionales "
 "<parameter>refreturn</parameter> o <parameter>refreturn_ctype</parameter>."
 
-#: C/gtkmm-tutorial-in.xml:9652(title)
+#: C/gtkmm-tutorial-in.xml:9610(title)
 msgid "Other macros"
 msgstr "Otras macros"
 
-#: C/gtkmm-tutorial-in.xml:9654(title)
+#: C/gtkmm-tutorial-in.xml:9612(title)
 msgid "_IMPLEMENTS_INTERFACE"
 msgstr "_IMPLEMENTS_INTERFACE"
 
-#: C/gtkmm-tutorial-in.xml:9655(para)
+#: C/gtkmm-tutorial-in.xml:9613(para)
 msgid "This macro generates initialization code for the interface."
 msgstr "Esta macro genera código de inicialización para la interfaz."
 
-#: C/gtkmm-tutorial-in.xml:9656(function)
+#: C/gtkmm-tutorial-in.xml:9614(function)
 msgid "_IMPLEMENTS_INTERFACE(C++ interface name)"
 msgstr "_IMPLEMENTS_INTERFACE(C++ interface name)"
 
-#: C/gtkmm-tutorial-in.xml:9658(programlisting)
+#: C/gtkmm-tutorial-in.xml:9616(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17178,15 +17000,15 @@ msgstr ""
 "\n"
 "_IMPLEMENTS_INTERFACE(Activatable)\n"
 
-#: C/gtkmm-tutorial-in.xml:9662(para)
+#: C/gtkmm-tutorial-in.xml:9620(para)
 msgid "There is one optional extra argument: <placeholder-1/>"
 msgstr "Hay un argumento opcional adicional: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9675(title)
+#: C/gtkmm-tutorial-in.xml:9633(title)
 msgid "_WRAP_ENUM"
 msgstr "_WRAP_ENUM"
 
-#: C/gtkmm-tutorial-in.xml:9676(para)
+#: C/gtkmm-tutorial-in.xml:9634(para)
 msgid ""
 "This macro generates a C++ enum to wrap a C enum. You must specify the "
 "desired C++ name and the name of the underlying C enum."
@@ -17195,7 +17017,7 @@ msgstr ""
 "especificar el nombre de C++ que quiere y el nombre de la enum de C "
 "subyacente."
 
-#: C/gtkmm-tutorial-in.xml:9679(programlisting)
+#: C/gtkmm-tutorial-in.xml:9637(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17204,7 +17026,7 @@ msgstr ""
 "\n"
 "_WRAP_ENUM(WindowType, GdkWindowType)\n"
 
-#: C/gtkmm-tutorial-in.xml:9683(para)
+#: C/gtkmm-tutorial-in.xml:9641(para)
 msgid ""
 "If the enum is not a <classname>GType</classname>, you must pass a third "
 "parameter NO_GTYPE. This is the case when there is no <function>*_get_type()"
@@ -17219,7 +17041,7 @@ msgstr ""
 "enviar un informe de error de la API de C porque todas las enums deben "
 "registrarse como GTypes."
 
-#: C/gtkmm-tutorial-in.xml:9688(programlisting)
+#: C/gtkmm-tutorial-in.xml:9646(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17228,15 +17050,31 @@ msgstr ""
 "\n"
 "_WRAP_ENUM(IconLookupFlags, GtkIconLookupFlags, NO_GTYPE)\n"
 
-#: C/gtkmm-tutorial-in.xml:9687(para)
+#: C/gtkmm-tutorial-in.xml:9645(para)
 msgid "For example, from <filename>icontheme.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>icontheme.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9695(title)
+#: C/gtkmm-tutorial-in.xml:9653(title)
+#| msgid "_WRAP_METHOD_DOCS_ONLY"
+msgid "_WRAP_ENUM_DOCS_ONLY"
+msgstr "_WRAP_ENUM_DOCS_ONLY"
+
+#: C/gtkmm-tutorial-in.xml:9654(para)
+msgid ""
+"This macro just generates a Doxygen documentationn block for the enum. This "
+"is useful for enums that can't be wrapped with <function>_WRAP_ENUM()</"
+"function> because they are complexly defined (maybe using C macros) but "
+"including the generated enum documentation is still desired. It is used with "
+"the same syntax as <function>_WRAP_ENUM()</function> and also process the "
+"same options (though NO_GTYPE is just ignored because it makes no differene "
+"when just generating the enum's documentation)."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:9666(title)
 msgid "_WRAP_GERROR"
 msgstr "_WRAP_GERROR"
 
-#: C/gtkmm-tutorial-in.xml:9696(para)
+#: C/gtkmm-tutorial-in.xml:9667(para)
 msgid ""
 "This macro generates a C++ exception class, derived from Glib::Error, with a "
 "Code enum and a code() method. You must specify the desired C++ name, the "
@@ -17247,7 +17085,7 @@ msgstr ""
 "quiere, el nombre de la enum de C correspondiente, y el prefijo de los "
 "valores de la enum de C."
 
-#: C/gtkmm-tutorial-in.xml:9699(para)
+#: C/gtkmm-tutorial-in.xml:9670(para)
 msgid ""
 "This exception can then be thrown by methods which are generated from "
 "_WRAP_METHOD() with the errthrow option."
@@ -17255,7 +17093,7 @@ msgstr ""
 "Los métodos generados desde _WRAP_METHOD() podrán entonces lanzar esta "
 "excepción con la opción «errthrow»."
 
-#: C/gtkmm-tutorial-in.xml:9701(programlisting)
+#: C/gtkmm-tutorial-in.xml:9672(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17264,15 +17102,15 @@ msgstr ""
 "\n"
 "_WRAP_GERROR(PixbufError, GdkPixbufError, GDK_PIXBUF_ERROR)\n"
 
-#: C/gtkmm-tutorial-in.xml:9700(para)
+#: C/gtkmm-tutorial-in.xml:9671(para)
 msgid "For instance, from <filename>pixbuf.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, de <filename>pixbuf.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9708(title)
+#: C/gtkmm-tutorial-in.xml:9679(title)
 msgid "_MEMBER_GET / _MEMBER_SET"
 msgstr "_MEMBER_GET / _MEMBER_SET"
 
-#: C/gtkmm-tutorial-in.xml:9709(para)
+#: C/gtkmm-tutorial-in.xml:9680(para)
 msgid ""
 "Use these macros if you're wrapping a simple struct or boxed type that "
 "provides direct access to its data members, to create getters and setters "
@@ -17282,28 +17120,28 @@ msgstr ""
 "que proporciona acceso directo a sus miembros de datos, para crear métodos "
 "de acceso y modificación para estos."
 
-#: C/gtkmm-tutorial-in.xml:9713(function)
+#: C/gtkmm-tutorial-in.xml:9684(function)
 msgid "_MEMBER_GET(C++ name, C name, C++ type, C type)"
 msgstr "_MEMBER_GET(C++ name, C name, C++ type, C type)"
 
-#: C/gtkmm-tutorial-in.xml:9714(function)
+#: C/gtkmm-tutorial-in.xml:9685(function)
 msgid "_MEMBER_SET(C++ name, C name, C++ type, C type)"
 msgstr "_MEMBER_SET(C++ name, C name, C++ type, C type)"
 
-#: C/gtkmm-tutorial-in.xml:9717(programlisting)
+#: C/gtkmm-tutorial-in.xml:9688(programlisting)
 #, no-wrap
 msgid "_MEMBER_GET(x, x, int, int)"
 msgstr "_MEMBER_GET(x, x, int, int)"
 
-#: C/gtkmm-tutorial-in.xml:9715(para)
+#: C/gtkmm-tutorial-in.xml:9686(para)
 msgid "For example, in <filename>rectangle.hg</filename>: <placeholder-1/>"
 msgstr "Por ejemplo, en <filename>rectangle.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9721(title)
+#: C/gtkmm-tutorial-in.xml:9692(title)
 msgid "_MEMBER_GET_PTR / _MEMBER_SET_PTR"
 msgstr "_MEMBER_GET_PTR / _MEMBER_SET_PTR"
 
-#: C/gtkmm-tutorial-in.xml:9722(para)
+#: C/gtkmm-tutorial-in.xml:9693(para)
 msgid ""
 "Use these macros to automatically provide getters and setters for a data "
 "member that is a pointer type. For the getter function, it will create two "
@@ -17313,15 +17151,15 @@ msgstr ""
 "miembro de datos que es de tipo puntero automáticamente. Para la función de "
 "acceso, creará dos métodos, uno constante y otro no constante."
 
-#: C/gtkmm-tutorial-in.xml:9727(function)
+#: C/gtkmm-tutorial-in.xml:9698(function)
 msgid "_MEMBER_GET_PTR(C++ name, C name, C++ type, C type)"
 msgstr "_MEMBER_GET_PTR(C++ name, C name, C++ type, C type)"
 
-#: C/gtkmm-tutorial-in.xml:9728(function)
+#: C/gtkmm-tutorial-in.xml:9699(function)
 msgid "_MEMBER_SET_PTR(C++ name, C name, C++ type, C type)"
 msgstr "_MEMBER_SET_PTR(C++ name, C name, C++ type, C type)"
 
-#: C/gtkmm-tutorial-in.xml:9730(programlisting)
+#: C/gtkmm-tutorial-in.xml:9701(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17332,7 +17170,7 @@ msgstr ""
 "// _MEMBER_GET_PTR(engine_lang, lang_engine, EngineLang*, PangoEngineLang*)\n"
 "// It's just a comment. It's difficult to find a real-world example.\n"
 
-#: C/gtkmm-tutorial-in.xml:9729(para)
+#: C/gtkmm-tutorial-in.xml:9700(para)
 msgid ""
 "For example, for <classname>Pango::Analysis</classname> in <filename>item."
 "hg</filename>: <placeholder-1/>"
@@ -17340,11 +17178,11 @@ msgstr ""
 "Por ejemplo, para <classname>Pango::Analysis</classname> en <filename>item."
 "hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9737(title)
+#: C/gtkmm-tutorial-in.xml:9708(title)
 msgid "_MEMBER_GET_GOBJECT / _MEMBER_SET_GOBJECT"
 msgstr "_MEMBER_GET_GOBJECT / _MEMBER_SET_GOBJECT"
 
-#: C/gtkmm-tutorial-in.xml:9738(para)
+#: C/gtkmm-tutorial-in.xml:9709(para)
 msgid ""
 "Use these macros to provide getters and setters for a data member that is a "
 "<classname>GObject</classname> type that must be referenced before being "
@@ -17354,15 +17192,15 @@ msgstr ""
 "miembro de datos que es de tipo <classname>GObject</classname> que debe "
 "referenciarse antes de devolverse."
 
-#: C/gtkmm-tutorial-in.xml:9743(function)
+#: C/gtkmm-tutorial-in.xml:9714(function)
 msgid "_MEMBER_GET_GOBJECT(C++ name, C name, C++ type, C type)"
 msgstr "_MEMBER_GET_GOBJECT(C++ name, C name, C++ type, C type)"
 
-#: C/gtkmm-tutorial-in.xml:9744(function)
+#: C/gtkmm-tutorial-in.xml:9715(function)
 msgid "_MEMBER_SET_GOBJECT(C++ name, C name, C++ type, C type)"
 msgstr "_MEMBER_SET_GOBJECT(C++ name, C name, C++ type, C type)"
 
-#: C/gtkmm-tutorial-in.xml:9746(programlisting)
+#: C/gtkmm-tutorial-in.xml:9717(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17371,17 +17209,422 @@ msgstr ""
 "\n"
 "_MEMBER_GET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*)\n"
 
-#: C/gtkmm-tutorial-in.xml:9745(para)
+#: C/gtkmm-tutorial-in.xml:9716(para)
 msgid ""
 "For example, in Pangomm, <filename>layoutline.hg</filename>: <placeholder-1/>"
 msgstr ""
 "Por ejemplo, en Pangomm, <filename>layoutline.hg</filename>: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9753(title)
+#: C/gtkmm-tutorial-in.xml:9725(title)
+msgid "gmmproc Parameter Processing"
+msgstr "Procesado de parámetros de gmmproc"
+
+#: C/gtkmm-tutorial-in.xml:9726(para)
+msgid ""
+"<command>gmmproc</command> allows processing the parameters in a method "
+"signature for the macros that process method signatures (like "
+"<function>_WRAP_METHOD()</function><function>_WRP_CTOR()</function> and "
+"<function>_WRAP_CREATE()</function>) in a variety of ways:"
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:9733(title)
+msgid "Parameter Reordering"
+msgstr "Reordenación de parámetros"
+
+#: C/gtkmm-tutorial-in.xml:9740(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device, GdkEventMask events);\n"
+msgid ""
+"\n"
+"        void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device,\n"
+"        GdkEventMask events);\n"
+"      "
+msgstr ""
+"\n"
+"        void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device,\n"
+"        GdkEventMask events);\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9747(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "_WRAP_METHOD(void set_device_events(Gdk::EventMask events{events}, const Glib::RefPtr&lt;const 
Gdk::Device&gt;&amp; device{device}), gtk_widget_set_device_events)\n"
+msgid ""
+"\n"
+"        _WRAP_METHOD(void set_device_events(Gdk::EventMask events{events},\n"
+"        const Glib::RefPtr&lt;const Gdk::Device&gt;&amp; device{device}),\n"
+"        gtk_widget_set_device_events)\n"
+"      "
+msgstr ""
+"\n"
+"        _WRAP_METHOD(void set_device_events(Gdk::EventMask events{events},\n"
+"        const Glib::RefPtr&lt;const Gdk::Device&gt;&amp; device{device}),\n"
+"        gtk_widget_set_device_events)\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9757(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "_WRAP_METHOD(void set_device_events(Gdk::EventMask events{.}, const Glib::RefPtr&lt;const 
Gdk::Device&gt;&amp; device{.}), gtk_widget_set_device_events)\n"
+msgid ""
+"\n"
+"        _WRAP_METHOD(void set_device_events(Gdk::EventMask events{.}, const\n"
+"        Glib::RefPtr&lt;const Gdk::Device&gt;&amp; device{.}),\n"
+"        gtk_widget_set_device_events)\n"
+"      "
+msgstr ""
+"\n"
+"        _WRAP_METHOD(void set_device_events(Gdk::EventMask events{.}, const\n"
+"        Glib::RefPtr&lt;const Gdk::Device&gt;&amp; device{.}),\n"
+"        gtk_widget_set_device_events)\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9734(para)
+#, fuzzy
+#| msgid ""
+#| "Also, as with <function>_WRAP_CTOR()</function>, it is possible to "
+#| "reorder the parameters of the C++ method by using gmmproc's C++ to C "
+#| "parameter mapping functionality. Using this functionality, it is possible "
+#| "to map a C++ parameter to a C parameter by specifying the C parameter "
+#| "name. For example, if the <function>gtk_widget_set_device_events()</"
+#| "function> declaration is the following: <placeholder-1/> Something like "
+#| "the following would change the order of the parameters in the C++ method: "
+#| "<placeholder-2/> The <literal>{param_name}</literal> following each of "
+#| "the names of the parameters tells gmmproc to map those C++ parameters to "
+#| "the C parameters with the given names. Since the C++ parameter names "
+#| "correspond to the C ones, the above could be re-written as: <placeholder-"
+#| "3/>"
+msgid ""
+"For all the macros that process method signatures, it is possible to specify "
+"a different order for the C++ parameters than the existing order in the C "
+"function, virtual function or signal. For example, say that the following C "
+"function were being wrapped as a C++ method for the <classname>Gtk::Widget</"
+"classname> class: <placeholder-1/> However, changing the order of the C++ "
+"method's two parameters is necessary. Something like the following would "
+"wrap the function as a C++ method with a different order for the two "
+"parameters: <placeholder-2/> The <literal>{c_param_name}</literal> following "
+"the method parameter names tells <command>gmmproc</command> to map the C++ "
+"parameter to the specified C parameter within the <literal>{}</literal>. "
+"Since the C++ parameter names correspond to the C ones, the above could be "
+"re-written as: <placeholder-3/>"
+msgstr ""
+"Además, al igual que con <function>_WRAP_CTOR()</function>, es posible "
+"reordenar los parámetros del método de C++ usando la función de mapeo de C++ "
+"a C de gmmproc. El uso de esta función hace posible mapear un parámetro de C+"
+"+ a uno de C mediante la especificación del nombre del parámetro de C. Por "
+"ejemplo, si la declaración de <function>gtk_widget_set_device_events()</"
+"function> es la siguiete: <placeholder-1/> Algo así cambiaría el orden de "
+"los parámetros en el método de C++: <placeholder-2/> El <literal>{param_name}"
+"</literal> que sigue a cada uno de los nombres de los parámetros le dice a "
+"gmmproc que mapee esos parámetros de C++ a los de C con los nombres dados. "
+"Ya que que los nombres de los parámetros de C++ corresponden a los de C, lo "
+"anterior podría reescribirse así: <placeholder-3/>"
+
+#: C/gtkmm-tutorial-in.xml:9764(para)
+msgid ""
+"Please note that when reording parameters for a <function>_WRAP_SIGNAL()</"
+"function> method signature, the C parameter names would always be "
+"<literal>p0</literal>, <literal>p1</literal>, etc. because the "
+"<filename>extra_defs</filename> utility uses those parameter names no matter "
+"what the C API's parameter names may be. It's how the utility is written "
+"presently."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:9776(title)
+msgid "Optional Parameter Processing"
+msgstr "Procesado de parámetros opcionales"
+
+#: C/gtkmm-tutorial-in.xml:9785(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label);\n"
+msgid ""
+"\n"
+"        GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar*\n"
+"        label);\n"
+"      "
+msgstr ""
+"\n"
+"        GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar*\n"
+"        label);\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9795(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "_WRAP_CTOR(ToolButton(Widget&amp; icon_widget, const Glib::ustring&amp; label{?}), 
gtk_tool_button_new)\n"
+msgid ""
+"\n"
+"        _WRAP_CTOR(ToolButton(Widget&amp; icon_widget, const Glib::ustring&amp;\n"
+"        label{?}), gtk_tool_button_new)\n"
+"      "
+msgstr ""
+"\n"
+"        _WRAP_CTOR(ToolButton(Widget&amp; icon_widget, const Glib::ustring&amp;\n"
+"        label{?}), gtk_tool_button_new)\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9777(para)
+msgid ""
+"For all macros processing method signatures except <function>_WRAP_SIGNAL()</"
+"function> and <function>_WRAP_VFUNC()</function> it is also possible to make "
+"the parameters optional so that extra C++ methods are generated without the "
+"specified optional parameter. For example, say that the following "
+"<function>*_new()</function> function were being wrapped as a constructor in "
+"the <classname>Gtk::ToolButton</classname> class: <placeholder-1/> Also, say "
+"that the C API allowed NULL for the function's <parameter>label</parameter> "
+"paramter so that that parameter is optional. It would be possible to have "
+"<command>gmmproc</command> generate the original constructor (with all the "
+"parameters) along with an additional constructor without that optional "
+"parameter by appending a <literal>{?}</literal> to the parameter name like "
+"so: <placeholder-2/> In this case, two constructors would be generated: One "
+"with the optional parameter and one without it."
+msgstr ""
+
+#: C/gtkmm-tutorial-in.xml:9805(title)
+msgid "Output Parameter Processing"
+msgstr "Procesado de parámetros de salida"
+
+#: C/gtkmm-tutorial-in.xml:9815(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
+msgid ""
+"\n"
+"        GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
+"      "
+msgstr ""
+"\n"
+"        GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9821(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "_WRAP_METHOD(void get_request_mode(SizeRequestMode&amp; mode{OUT}) const, gtk_widget_get_request_mode)\n"
+msgid ""
+"\n"
+"        _WRAP_METHOD(void get_request_mode(SizeRequestMode&amp; mode{OUT})\n"
+"        const, gtk_widget_get_request_mode)\n"
+"      "
+msgstr ""
+"\n"
+"        _WRAP_METHOD(void get_request_mode(SizeRequestMode&amp; mode{OUT})\n"
+"        const, gtk_widget_get_request_mode)\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9830(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = (SizeRequestMode)($4)')\n"
+msgid ""
+"\n"
+"        _INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 =\n"
+"        (SizeRequestMode)($4)')\n"
+"      "
+msgstr ""
+"\n"
+"        _INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 =\n"
+"        (SizeRequestMode)($4)')\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9835(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "_INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 = ($1)($4)')\n"
+msgid ""
+"\n"
+"        _INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 =\n"
+"        ($1)($4)')\n"
+"      "
+msgstr ""
+"\n"
+"        _INITIALIZATION(`SizeRequestMode&amp;',`GtkSizeRequestMode',`$3 =\n"
+"        ($1)($4)')\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9806(para)
+#, fuzzy
+#| msgid ""
+#| "With <function>_WRAP_METHOD()</function> it is also possible to include "
+#| "an output parameter in the C++ method declaration in which the return of "
+#| "the C function would be placed and to have the C++ method return "
+#| "<type>void</type>. To do that, simply include the output parameter "
+#| "declaration in the C++ method declaration appending a <literal>{OUT}</"
+#| "literal> to the output parameter name. For example, if "
+#| "<function>gtk_widget_get_request_mode()</function> is declared as the "
+#| "following: <placeholder-1/> And having the C++ method set an output "
+#| "parameter is desired instead of returning a <type>SizeRequestMode</type>, "
+#| "something like the following could be used: <placeholder-2/> the <literal>"
+#| "{OUT}</literal> appended to the name of the <parameter>mode</parameter> "
+#| "output parameter tells gmmproc to place the return of the C function in "
+#| "that output parameter. In this case, however, a necessary initialization "
+#| "macro like the following would also have to be specified: <placeholder-3/"
+#| "> Which could also be written as: <placeholder-4/>"
+msgid ""
+"With <function>_WRAP_METHOD()</function> it is also possible for the return "
+"of the wrapped C function (if it has one) to be placed in an output paramter "
+"of the C++ method instead of having the C++ method also return a value like "
+"the C function does. To do that, simply include the output parameter in the C"
+"++ method parameter list appending a <literal>{OUT}</literal> to the output "
+"parameter name. For example, if <function>gtk_widget_get_request_mode()</"
+"function> is declared as the following: <placeholder-1/> And having the C++ "
+"method set an output parameter is desired instead of returning a "
+"<type>SizeRequestMode</type>, something like the following could be used: "
+"<placeholder-2/> The <literal>{OUT}</literal> appended to the name of the "
+"<parameter>mode</parameter> output parameter tells <command>gmmproc</"
+"command> to place the return of the C function in that output parameter. In "
+"this case, however, a necessary initialization macro like the following "
+"would also have to be specified: <placeholder-3/> Which could also be "
+"written as: <placeholder-4/>"
+msgstr ""
+"Con <function>_WRAP_METHOD()</function> también es posible incluir un "
+"parámetro de salida en la declaración del método de C++ en el que se pone el "
+"valor de retorno de la función de C, y que el método de C++ devuelva "
+"<type>void</type>. Para hacer esto, simplemente incluya la declaración del "
+"parámetro de salida en la declaración del método de C++ adjuntando <literal>"
+"{OUT}</literal> al nombre del parámetro de salida. Por ejemplo, si "
+"<function>gtk_widget_get_request_mode()</function> se declara como sigue: "
+"<placeholder-1/> Y se quiere que el método de C++ establezca un parámetro de "
+"salida en lugar de devolver un <type>SizeRequestMode</type>, algo como lo "
+"siguiente podría usarse: <placeholder-2/> el <literal>{OUT}</literal> "
+"adjunto al nombre del parámetro de salida <parameter>mode</parameter> le "
+"dice a gmmproc que ponga el valor de retorno de la función de C en ese "
+"parámetro de salida. En este caso, sin embargo, una macro de inicialización "
+"necesaria como la que sigue también tendría que especificarse: <placeholder-"
+"3/> Lo que también podría reescribirse así: <placeholder-4/>"
+
+#: C/gtkmm-tutorial-in.xml:9846(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "    gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view, GtkTreePath*\n"
+#| "    path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
+#| "  "
+msgid ""
+"\n"
+"        gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view,\n"
+"        GtkTreePath* path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
+"      "
+msgstr ""
+"\n"
+"        gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view,\n"
+"        GtkTreePath* path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9853(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "    _WRAP_METHOD(bool get_cell_rect(const TreeModel::Path&amp; path, const\n"
+#| "    CellRenderer&amp; cell, Gdk::Rectangle&amp; rect{&gt;&gt;}) const,\n"
+#| "    gtk_icon_view_get_cell_rect)\n"
+#| "  "
+msgid ""
+"\n"
+"        _WRAP_METHOD(bool get_cell_rect(const TreeModel::Path&amp; path, const\n"
+"        CellRenderer&amp; cell, Gdk::Rectangle&amp; rect{&gt;&gt;}) const,\n"
+"        gtk_icon_view_get_cell_rect)\n"
+"      "
+msgstr ""
+"\n"
+"        _WRAP_METHOD(bool get_cell_rect(const TreeModel::Path&amp; path, const\n"
+"        CellRenderer&amp; cell, Gdk::Rectangle&amp; rect{&gt;&gt;}) const,\n"
+"        gtk_icon_view_get_cell_rect)\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9868(programlisting)
+#, no-wrap
+#| msgid ""
+#| "\n"
+#| "    _INITIALIZATION(`Gdk::Rectangle&amp;',`GdkRectangle', `$3 =\n"
+#| "    Glib::wrap(&amp;($4))')\n"
+#| "  "
+msgid ""
+"\n"
+"        _INITIALIZATION(`Gdk::Rectangle&amp;',`GdkRectangle', `$3 =\n"
+"        Glib::wrap(&amp;($4))')\n"
+"      "
+msgstr ""
+"\n"
+"        _INITIALIZATION(`Gdk::Rectangle&amp;',`GdkRectangle', `$3 =\n"
+"        Glib::wrap(&amp;($4))')\n"
+"      "
+
+#: C/gtkmm-tutorial-in.xml:9840(para)
+#, fuzzy
+#| msgid ""
+#| "<function>_WRAP_METHOD()</function> also supports setting C++ output "
+#| "parameters from C output parameters if the C function being wrapped has "
+#| "any. Suppose, for example, that we want to wrap the following C function "
+#| "that returns a value in its C output parameter <parameter>rect</"
+#| "parameter>: <placeholder-1/> To have <command>gmmproc</command> place the "
+#| "value returned in the C++ <parameter>rect</parameter> output parameter "
+#| "once the C function returns, something like the following "
+#| "<function>_WRAP_METHOD()</function> directive could be used: <placeholder-"
+#| "2/> The <literal>{&gt;&gt;}</literal> following the <parameter>rect</"
+#| "parameter> parameter name indicates that the C++ output parameter should "
+#| "be set from the value returned in the C parameter from the C function. "
+#| "<command>gmmproc</command> will generate a declaration of a temporary "
+#| "variable in which to store the value of the C output parameter and a "
+#| "statement that sets the C++ output parameter from the temporary variable. "
+#| "In this case it may be necessary to have an <function>_INITIALIZATION()</"
+#| "function> describing how to set a <classname>Gdk::Rectangle&amp;</"
+#| "classname> from a <classname>GdkRectangle*</classname> such as the "
+#| "following: <placeholder-3/>"
+msgid ""
+"<function>_WRAP_METHOD()</function> also supports setting C++ output "
+"parameters from C output parameters if the C function being wrapped has any. "
+"Suppose, for example, that we want to wrap the following C function that "
+"returns a value in its C output parameter <parameter>rect</parameter>: "
+"<placeholder-1/> To have <command>gmmproc</command> place the value returned "
+"in the C++ <parameter>rect</parameter> output parameter, something like the "
+"following <function>_WRAP_METHOD()</function> directive could be used: "
+"<placeholder-2/> The <literal>{&gt;&gt;}</literal> following the "
+"<parameter>rect</parameter> parameter name indicates that the C++ output "
+"parameter should be set from the value returned in the C parameter from the "
+"C function. <command>gmmproc</command> will generate a declaration of a "
+"temporary variable in which to store the value of the C output parameter and "
+"a statement that sets the C++ output parameter from the temporary variable. "
+"In this case it may be necessary to have an <function>_INITIALIZATION()</"
+"function> describing how to set a <classname>Gdk::Rectangle&amp;</classname> "
+"from a <classname>GdkRectangle*</classname> such as the following: "
+"<placeholder-3/>"
+msgstr ""
+"<function>_WRAP_METHOD()</function> también soporta establecer parámetros de "
+"salida de C++ desde parámetros de salida de C si la función de C que está "
+"envolviendo los tiene. Suponga, por ejemplo, que quiere envolver la "
+"siguiente función de C que devuelve un valor en su parámetro de salida de C "
+"<parameter>rect</parameter>: <placeholder-1/> Para hacer que "
+"<command>gmmproc</command> ponga el valor devuelto en el parámetro de salida "
+"de C++ <parameter>rect</parameter> una vez que la función de C retorna, se "
+"puede usar algo como la siguiente directiva de <function>WRAP_METHOD()</"
+"function>: <placeholder-2/> El <literal>{&gt;&gt;}</literal> que sigue al "
+"nombre del parámetro <parameter>rect</parameter> indica que el parámetro de "
+"salida de C++ debe establecerse a partir del valor devuelto por el parámetro "
+"de C desde la función de C. <command>gmmproc</command> generará una "
+"declaración de una variable temporal en la que se almacenará el valor del "
+"parámetro de salida de C y una declaración que establece el parámetro de "
+"salida de C++ desde la variable temporal. En este caso puede ser necesario "
+"tener una <function>_INITIALIZATION()</function> que describa cómo "
+"establecer un <classname>Gdk::Rectangle&amp;</classname> desde un "
+"<classname>GdkRectangle*</classname> como la siguiente: <placeholder-3/>"
+
+#: C/gtkmm-tutorial-in.xml:9878(title)
 msgid "Basic Types"
 msgstr "Tipos básicos"
 
-#: C/gtkmm-tutorial-in.xml:9754(para)
+#: C/gtkmm-tutorial-in.xml:9879(para)
 msgid ""
 "Some of the basic types that are used in C APIs have better alternatives in C"
 "++. For example, there's no need for a <type>gboolean</type> type since C++ "
@@ -17394,67 +17637,67 @@ msgstr ""
 "algunos tipos comúnmente usados en API de C y en qué los puede convertir en "
 "una biblioteca envoltorio de C++"
 
-#: C/gtkmm-tutorial-in.xml:9759(title)
+#: C/gtkmm-tutorial-in.xml:9884(title)
 msgid "Basic Type equivalents"
 msgstr "Tipos básicos equivalentes"
 
-#: C/gtkmm-tutorial-in.xml:9761(segtitle)
+#: C/gtkmm-tutorial-in.xml:9886(segtitle)
 msgid "C type"
 msgstr "Tipo de C"
 
-#: C/gtkmm-tutorial-in.xml:9762(segtitle)
+#: C/gtkmm-tutorial-in.xml:9887(segtitle)
 msgid "C++ type"
 msgstr "Tipo de C++"
 
-#: C/gtkmm-tutorial-in.xml:9763(type)
+#: C/gtkmm-tutorial-in.xml:9888(type)
 msgid "gboolean"
 msgstr "gboolean"
 
-#: C/gtkmm-tutorial-in.xml:9763(type)
+#: C/gtkmm-tutorial-in.xml:9888(type)
 msgid "bool"
 msgstr "bool"
 
-#: C/gtkmm-tutorial-in.xml:9764(type)
+#: C/gtkmm-tutorial-in.xml:9889(type)
 msgid "gint"
 msgstr "gint"
 
-#: C/gtkmm-tutorial-in.xml:9764(type)
+#: C/gtkmm-tutorial-in.xml:9889(type)
 msgid "int"
 msgstr "int"
 
-#: C/gtkmm-tutorial-in.xml:9765(type)
+#: C/gtkmm-tutorial-in.xml:9890(type)
 msgid "guint"
 msgstr "guint"
 
-#: C/gtkmm-tutorial-in.xml:9766(type)
+#: C/gtkmm-tutorial-in.xml:9891(type)
 msgid "gdouble"
 msgstr "gdouble"
 
-#: C/gtkmm-tutorial-in.xml:9766(type)
+#: C/gtkmm-tutorial-in.xml:9891(type)
 msgid "double"
 msgstr "doble"
 
-#: C/gtkmm-tutorial-in.xml:9767(type)
+#: C/gtkmm-tutorial-in.xml:9892(type)
 msgid "gunichar"
 msgstr "gunichar"
 
-#: C/gtkmm-tutorial-in.xml:9768(type)
+#: C/gtkmm-tutorial-in.xml:9893(type)
 msgid "gchar*"
 msgstr "gchar*"
 
-#: C/gtkmm-tutorial-in.xml:9768(classname)
+#: C/gtkmm-tutorial-in.xml:9893(classname)
 msgid "std::string"
 msgstr "std::string"
 
-#: C/gtkmm-tutorial-in.xml:9768(seg)
+#: C/gtkmm-tutorial-in.xml:9893(seg)
 msgid "<placeholder-1/> (or <placeholder-2/> for filenames)"
 msgstr "<placeholder-1/> (o <placeholder-2/> para nombres de archivos)"
 
-#: C/gtkmm-tutorial-in.xml:9775(title)
+#: C/gtkmm-tutorial-in.xml:9900(title)
 msgid "Hand-coded source files"
 msgstr "Archivos de código fuente programados a mano"
 
-#: C/gtkmm-tutorial-in.xml:9776(para)
+#: C/gtkmm-tutorial-in.xml:9901(para)
 msgid ""
 "You might want to include additional source files that will not be generated "
 "by <command>gmmproc</command> from <filename>.hg</filename> and <filename>."
@@ -17470,11 +17713,11 @@ msgstr ""
 "el <filename>Makefile.am</filename> en las variables <varname>files_extra_h</"
 "varname> y <varname>files_extra_cc</varname>."
 
-#: C/gtkmm-tutorial-in.xml:9786(title)
+#: C/gtkmm-tutorial-in.xml:9911(title)
 msgid "Initialization"
 msgstr "Inicialización"
 
-#: C/gtkmm-tutorial-in.xml:9795(programlisting)
+#: C/gtkmm-tutorial-in.xml:9920(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17491,7 +17734,7 @@ msgstr ""
 "  wrap_init(); //Tells the Glib::wrap() table about the libsomethingmm classes.\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:9787(para)
+#: C/gtkmm-tutorial-in.xml:9912(para)
 msgid ""
 "Your library must be initialized before it can be used, to register the new "
 "types that it makes available. Also, the C library that you are wrapping "
@@ -17511,7 +17754,7 @@ msgstr ""
 "función de C, y <application>gtkmm</application>) y llamar a su función "
 "<function>wrap_init()</function> generada. Por ejemplo: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9803(para)
+#: C/gtkmm-tutorial-in.xml:9928(para)
 msgid ""
 "The implementation of the <function>wrap_init()</function> method in "
 "<filename>wrap_init.cc</filename> is generated by "
@@ -17527,11 +17770,11 @@ msgstr ""
 "filename> de manera tal que la función <function>init()</function> aparezca "
 "en el espacio de nombres de C++ correcto."
 
-#: C/gtkmm-tutorial-in.xml:9812(title)
+#: C/gtkmm-tutorial-in.xml:9937(title)
 msgid "Problems in the C API."
 msgstr "Problemas en la API de C."
 
-#: C/gtkmm-tutorial-in.xml:9813(para)
+#: C/gtkmm-tutorial-in.xml:9938(para)
 msgid ""
 "You are likely to encounter some problems in the library that you are "
 "wrapping, particularly if it is a new project. Here are some common "
@@ -17541,11 +17784,11 @@ msgstr ""
 "envolviendo, particularmente si es un proyecto nuevo. Aquí hay algunos "
 "problemas comunes, con soluciones."
 
-#: C/gtkmm-tutorial-in.xml:9815(title)
+#: C/gtkmm-tutorial-in.xml:9940(title)
 msgid "Unable to predeclare structs"
 msgstr "No se pueden predeclarar estructuras"
 
-#: C/gtkmm-tutorial-in.xml:9817(programlisting)
+#: C/gtkmm-tutorial-in.xml:9942(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17564,7 +17807,7 @@ msgstr ""
 "  ...\n"
 "};\n"
 
-#: C/gtkmm-tutorial-in.xml:9816(para)
+#: C/gtkmm-tutorial-in.xml:9941(para)
 msgid ""
 "By convention, structs are declared in glib/GTK+-style headers like so: "
 "<placeholder-1/>"
@@ -17572,7 +17815,7 @@ msgstr ""
 "Por convenio, las estructuras se declaran en los encabezados de Glib/GTK+ "
 "igual que en: <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9826(para)
+#: C/gtkmm-tutorial-in.xml:9951(para)
 msgid ""
 "The extra typedef allows the struct to be used in a header without including "
 "its full definition, simply by predeclaring it, by repeating that typedef. "
@@ -17588,7 +17831,7 @@ msgstr ""
 "API pública. <command>gmmproc</command> asume que se usó esta técnica, por "
 "lo que verá errores de compilación si ese no es el caso."
 
-#: C/gtkmm-tutorial-in.xml:9833(programlisting)
+#: C/gtkmm-tutorial-in.xml:9958(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17601,7 +17844,7 @@ msgstr ""
 "../../libexample/libexamplemm/example-widget.h:34: error: 'ExampleWidget' has a previous declaration here\n"
 "make[4]: *** [example-widget.lo] Error 1\n"
 
-#: C/gtkmm-tutorial-in.xml:9839(programlisting)
+#: C/gtkmm-tutorial-in.xml:9964(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17612,7 +17855,7 @@ msgstr ""
 "example-widget.h:60: error: '_ExampleWidget ExampleWidget' redeclared as different kind of symbol\n"
 "../../libexample/libexamplemm/example-widget.h:34: error: previous declaration of 'typedef struct 
_ExampleWidget ExampleWidget'\n"
 
-#: C/gtkmm-tutorial-in.xml:9831(para)
+#: C/gtkmm-tutorial-in.xml:9956(para)
 msgid ""
 "This compiler error might look like this: <placeholder-1/> or this: "
 "<placeholder-2/>"
@@ -17620,7 +17863,7 @@ msgstr ""
 "Este error del compilador podría tener este aspecto: <placeholder-1/> o "
 "este: <placeholder-2/>"
 
-#: C/gtkmm-tutorial-in.xml:9844(para)
+#: C/gtkmm-tutorial-in.xml:9969(para)
 msgid ""
 "This is easy to correct in the C library, so do send a patch to the relevant "
 "maintainer."
@@ -17628,11 +17871,11 @@ msgstr ""
 "Esto es fácil de corregir en la biblioteca de C, así que envíe un parche al "
 "mantenedor pertinentes."
 
-#: C/gtkmm-tutorial-in.xml:9848(title)
+#: C/gtkmm-tutorial-in.xml:9973(title)
 msgid "Lack of properties"
 msgstr "Falta de propiedades"
 
-#: C/gtkmm-tutorial-in.xml:9855(programlisting)
+#: C/gtkmm-tutorial-in.xml:9980(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17647,7 +17890,7 @@ msgstr ""
 "        return g_object_new (EXAMPLE_TYPE_WIDGET, \"something\", something, \"thing\", thing, NULL);\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:9849(para)
+#: C/gtkmm-tutorial-in.xml:9974(para)
 msgid ""
 "By convention, glib/GTK+-style objects have <function>*_new()</function> "
 "functions, such as <function>example_widget_new()</function> that do nothing "
@@ -17663,7 +17906,7 @@ msgstr ""
 "function> junto con los nombres de las propiedades a las que se asignan. Por "
 "ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9862(para)
+#: C/gtkmm-tutorial-in.xml:9987(para)
 msgid ""
 "This allows language bindings to implement their own equivalents (such as C+"
 "+ constructors), without using the <function>*_new()</function> function. "
@@ -17676,7 +17919,7 @@ msgstr ""
 "instanciar realmente un GType derivado, para añadir sus propios ganchos para "
 "manejadores de señales y «vfuncs»."
 
-#: C/gtkmm-tutorial-in.xml:9866(para)
+#: C/gtkmm-tutorial-in.xml:9991(para)
 msgid ""
 "At the least, the <function>_new()</function> function should not use any "
 "private API (functions that are only in a .c file). Even when there are no "
@@ -17690,7 +17933,7 @@ msgstr ""
 "función <function>_new()</function> siempre que esas líneas de código usen "
 "una API que esté disponible."
 
-#: C/gtkmm-tutorial-in.xml:9874(programlisting)
+#: C/gtkmm-tutorial-in.xml:9999(programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -17723,7 +17966,7 @@ msgstr ""
 "        do_something(something);\n"
 "}\n"
 
-#: C/gtkmm-tutorial-in.xml:9871(para)
+#: C/gtkmm-tutorial-in.xml:9996(para)
 msgid ""
 "Another workaround is to add a <function>*_construct()</function> function "
 "that the C++ constructor can call after instantiating its own type. For "
@@ -17733,7 +17976,7 @@ msgstr ""
 "el constructor de C++ pueda llamar después de haber instanciado su propio "
 "tipo. Por ejemplo, <placeholder-1/>"
 
-#: C/gtkmm-tutorial-in.xml:9890(para)
+#: C/gtkmm-tutorial-in.xml:10015(para)
 msgid ""
 "Adding properties, and ensuring that they interact properly with each other, "
 "is relatively difficult to correct in the C library, but it is possible, so "
@@ -17744,11 +17987,11 @@ msgstr ""
 "pero es posible, por lo que rellene un informe de error e intente enviar un "
 "parche al mantenedor correspondiente."
 
-#: C/gtkmm-tutorial-in.xml:9898(title)
+#: C/gtkmm-tutorial-in.xml:10023(title)
 msgid "Documentation"
 msgstr "Documentación"
 
-#: C/gtkmm-tutorial-in.xml:9899(para)
+#: C/gtkmm-tutorial-in.xml:10024(para)
 msgid ""
 "In general, gtkmm-style projects use Doxygen, which reads specially "
 "formatted C++ comments and generates HTML documentation. You may write these "
@@ -17758,11 +18001,11 @@ msgstr ""
 "con un formato específico y genera documentación HTML. Puede escribir estos "
 "comentarios de Doxygen directamente en los archivos de cabecera."
 
-#: C/gtkmm-tutorial-in.xml:9902(title)
+#: C/gtkmm-tutorial-in.xml:10027(title)
 msgid "Reusing C documentation"
 msgstr "Reutilizar la documentación de C"
 
-#: C/gtkmm-tutorial-in.xml:9903(para)
+#: C/gtkmm-tutorial-in.xml:10028(para)
 msgid ""
 "You might wish to reuse documentation that exists for the C library that you "
 "are wrapping. GTK-style C libraries typically use gtk-doc and therefore have "
@@ -17783,12 +18026,12 @@ msgstr ""
 "<command>gmmproc</command> incluso intentará transformar la documentación "
 "para hacerla más apropiada para una API de C++."
 
-#: C/gtkmm-tutorial-in.xml:9913(programlisting)
+#: C/gtkmm-tutorial-in.xml:10038(programlisting)
 #, no-wrap
 msgid "./docextract_to_xml.py -s ~/checkout/gnome/gtk+/gtk/ -s ~/checkout/gnome/gtk+/docs/reference/gtk/ 
&gt; gtk_docs.xml\n"
 msgstr "./docextract_to_xml.py -s ~/checkout/gnome/gtk+/gtk/ -s ~/checkout/gnome/gtk+/docs/reference/gtk/ 
&gt; gtk_docs.xml\n"
 
-#: C/gtkmm-tutorial-in.xml:9916(para)
+#: C/gtkmm-tutorial-in.xml:10041(para)
 msgid ""
 "Because this automatic transformation is not always appropriate, you might "
 "want to provide hand-written text for a particular method. You can do this "
@@ -17802,11 +18045,11 @@ msgstr ""
 "<filename>something_docs.xml</filename> al archivo "
 "<filename>something_docs_override.xml</filename> y cambiando el contenido."
 
-#: C/gtkmm-tutorial-in.xml:9925(title)
+#: C/gtkmm-tutorial-in.xml:10050(title)
 msgid "Documentation build structure"
 msgstr "Estructura de construcción de la documentación"
 
-#: C/gtkmm-tutorial-in.xml:9926(para)
+#: C/gtkmm-tutorial-in.xml:10051(para)
 msgid ""
 "If you copied the skeleton source tree in mm-common and substituted the "
 "placeholder text, then you will already have suitable <filename>Makefile.am</"
@@ -17836,6 +18079,110 @@ msgstr ""
 "Daniel Mustieles <daniel mustieles gmail com>, 2011\n"
 "Jorge González <jorgegonz svn gnome org>, 2010"
 
+#~ msgid ""
+#~ "When wrapping constructors, it is possible for gmmproc to generate "
+#~ "convenience overloads of the wrapped constructors if the C function has "
+#~ "parameters that are optional (ie. the C API allows null for those "
+#~ "parameters). For instance, to specify if a parameter is optional, the "
+#~ "<function>_WRAP_CTOR()</function> macro would look something like the "
+#~ "following: <placeholder-1/> The <literal>{?}</literal> following the name "
+#~ "of the <parameter>label</parameter> parameter means that that parameter "
+#~ "is optional. In this case, gmmproc will generate an extra constructor "
+#~ "without that parameter."
+#~ msgstr ""
+#~ "Cuando envuelve constructores, es posible que gmmproc genere sobrecargas "
+#~ "cómodas de los constructores envueltos si la función de C tiene "
+#~ "parámetros que son opcionales (esto significa que la API de C permite "
+#~ "asignar «null» a esos parámetros). Por ejemplo, para especificar si un "
+#~ "parámetro es opcional, la macro <function>_WRAP_CTOR()</function> sería "
+#~ "similar a la que se muestra a continuación: <placeholder-1/> El <literal>"
+#~ "{?}</literal> que sigue al nombre del parámetro <parameter>label</"
+#~ "parameter> significa que es opcional. En este caso, gmmproc generará un "
+#~ "constructor adicional sin el parámetro."
+
+#~ msgid ""
+#~ "\n"
+#~ "_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{label}, Widget&amp; "
+#~ "icon_widget{icon_widget}), gtk_tool_button_new)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{label}, Widget&amp; "
+#~ "icon_widget{icon_widget}), gtk_tool_button_new)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{.}, Widget&amp; "
+#~ "icon_widget{.}), gtk_tool_button_new)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "_WRAP_CTOR(ToolButton(const Glib::ustring&amp; label{.}, Widget&amp; "
+#~ "icon_widget{.}), gtk_tool_button_new)\n"
+
+#~ msgid ""
+#~ "It is also possible to have the order of the parameters of the "
+#~ "constructor different from that of the C function by using gmmproc's C++ "
+#~ "to C parameter mapping functionality. Using this functionality, it is "
+#~ "possible to map a C++ parameter to a C parameter by specifying the C "
+#~ "parameter name. For instance, assuming that the declaration of the "
+#~ "<function>gtk_tool_button_new()</function> function is the following: "
+#~ "<placeholder-1/> The parameters of the wrapped constructor could be "
+#~ "reordered using the following: <placeholder-2/> The <literal>{param_name}"
+#~ "</literal> following each of the names of the parameters tells gmmproc to "
+#~ "map those C++ parameters to the C parameters with the given names. Since "
+#~ "the C++ parameter names correspond to the C ones, the above could be re-"
+#~ "written as: <placeholder-3/>"
+#~ msgstr ""
+#~ "También es posible tener un orden de los parámetros del constructor "
+#~ "distinto a los de la función de C usando la función de mapeo de "
+#~ "parámetros de C++ a C de gmmproc. El uso de esta función hace posible "
+#~ "mapear un parámetro de C++ a uno de C mediante la especificación del "
+#~ "nombre del parámetro de C. Por ejemplo, si se asume que la declaración de "
+#~ "la función <function>gtk_tool_button_new()</function> es la siguiente: "
+#~ "<placeholder-1/> Los parámetros del constructor envuelto podrían "
+#~ "reordenarse usando el siguiente código: <placeholder-2/> El <literal>"
+#~ "{param_name}</literal> que sigue a cada uno de los nombres de los "
+#~ "parámetros le dice a gmmproc que mapee esos parámetros de C++ a los de C "
+#~ "con los nombres dados. Dado que los nombres de los parámetros de C++ "
+#~ "corresponden a los de C, se podría reescribir lo anterior así: "
+#~ "<placeholder-3/>"
+
+#~ msgid ""
+#~ "This same optional parameter syntax and parameter reordering is available "
+#~ "for <function>_WRAP_CREATE()</function>. Additional <function>create()</"
+#~ "function> overloads would be generated by gmmproc without the specified "
+#~ "optional parameters."
+#~ msgstr ""
+#~ "Esta misma sintaxis de parámetro opcional y reordenamiento de parámetros "
+#~ "están disponibles para <function>_WRAP_CREATE()</function>. gmmproc "
+#~ "generaría sobrecargas de <function>create()</function> adicionales sin "
+#~ "los parámetros opcionales especificados."
+
+#~ msgid ""
+#~ "\n"
+#~ "_WRAP_METHOD(void get_preferred_size(Requisition&amp; minimum_size, "
+#~ "Requisition&amp; natural_size{?}) const, gtk_widget_get_preferred_size)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "_WRAP_METHOD(void get_preferred_size(Requisition&amp; minimum_size, "
+#~ "Requisition&amp; natural_size{?}) const, gtk_widget_get_preferred_size)\n"
+
+#~ msgid ""
+#~ "As with <function>_WRAP_CTOR()</function> it is possible to specify if "
+#~ "there are any optional parameters. If that is the case, gmmproc will "
+#~ "generate convenience overload methods without those parameters. For "
+#~ "example: <placeholder-1/> Would indicate that the "
+#~ "<parameter>natural_size</parameter> parameter is optional because its "
+#~ "name ends with <literal>{?}</literal>. In this case, gmmproc would "
+#~ "generate a method overload without that parameter."
+#~ msgstr ""
+#~ "Al igual que con <function>_WRAP_CTOR()</function> es posible especificar "
+#~ "si hay parámetros opcionales. Si este es el caso, gmmproc generará "
+#~ "métodos de sobrecarga cómodos sin esos parámetros. Por ejemplo: "
+#~ "<placeholder-1/> Indicaría que el parámetro <parameter>natural_size</"
+#~ "parameter> es opcional porque su nombre termina con <literal>{?}</"
+#~ "literal>. En este caso, gmmproc generaría una sobrecarga de método sin "
+#~ "ese parámetro."
+
 #~ msgid "Gtk::Box(bool homogeneous = false, int spacing = 0);"
 #~ msgstr "Gtk::Box(bool homogeneous = false, int spacing = 0);"
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]