[gtkmm-documentation: 30/31] update the translation of the modified text.
- From: Kjell Ahlstedt <kjellahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm-documentation: 30/31] update the translation of the modified text.
- Date: Tue, 12 Jan 2021 15:40:36 +0000 (UTC)
commit 826fb02f382567367bcb4d9fe2c93d4c5ab63ebc
Author: CCTV-1 <script tar gz gmail com>
Date: Tue Jan 12 22:13:27 2021 +0800
update the translation of the modified text.
docs/tutorial/zh_CN/zh_CN.po | 5341 +++++++++++++++++++++---------------------
1 file changed, 2662 insertions(+), 2679 deletions(-)
---
diff --git a/docs/tutorial/zh_CN/zh_CN.po b/docs/tutorial/zh_CN/zh_CN.po
index 838b10c..6b7d1f1 100644
--- a/docs/tutorial/zh_CN/zh_CN.po
+++ b/docs/tutorial/zh_CN/zh_CN.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gtkmm-documentation master\n"
-"POT-Creation-Date: 2020-12-30 13:36+8000\n"
+"POT-Creation-Date: 2021-01-12 21:45+8000\n"
"PO-Revision-Date: 2020-12-23 11:40+8000\n"
"Last-Translator: XiangQun Luo <Script tar gz gmail com>\n"
"Language-Team: Chinese (China) <i18n-zh googlegroups com>\n"
@@ -19,15 +19,15 @@ msgctxt "_"
msgid "translator-credits"
msgstr "译者积分"
-#: C/index-in.docbook:36
+#: C/index-in.docbook:45
msgid "Programming with <application>gtkmm</application> 4"
msgstr "<application>gtkmm</application>4 程序设计"
-#: C/index-in.docbook:39
+#: C/index-in.docbook:48
msgid "<firstname>Murray</firstname> <surname>Cumming</surname>"
msgstr "<firstname>Murray</firstname> <surname>Cumming</surname>"
-#: C/index-in.docbook:43
+#: C/index-in.docbook:52
msgid ""
"<firstname>Bernhard</firstname> <surname>Rieder</surname> <contrib>Chapter "
"on \"Timeouts\".</contrib>"
@@ -35,7 +35,7 @@ msgstr ""
"<firstname>Bernhard</firstname> <surname>Rieder</surname><contrib>编写"
"\"Timeouts\"部分。</contrib>"
-#: C/index-in.docbook:48
+#: C/index-in.docbook:57
msgid ""
"<firstname>Jonathon</firstname> <surname>Jongsma</surname> <contrib>Chapter "
"on \"Drawing with Cairo\".</contrib> <contrib>Chapter on \"Working with "
@@ -46,7 +46,7 @@ msgstr ""
"罗绘图章节。</contrib><contrib>编写使用gtkmm源代码章节。</contrib><contrib>编"
"写\"最近的文件\"。</contrib>"
-#: C/index-in.docbook:55
+#: C/index-in.docbook:64
msgid ""
"<firstname>Ole</firstname> <surname>Laursen</surname> <contrib>Parts of "
"chapter on \"Internationalization\".</contrib>"
@@ -54,7 +54,7 @@ msgstr ""
"<firstname>Ole</firstname> <surname>Laursen</surname> <contrib>编写\"国际化"
"\"章节的一部分。</contrib>"
-#: C/index-in.docbook:60
+#: C/index-in.docbook:69
msgid ""
"<firstname>Marko</firstname> <surname>Anastasov</surname> <contrib>Chapter "
"on \"Printing\".</contrib> <contrib>Parts of chapter on "
@@ -63,7 +63,7 @@ msgstr ""
"<firstname>Marko</firstname> <surname>Anastasov</surname> <contrib>编写\"打印"
"\"章节。</contrib> <contrib>编写\"国际化\"章节的一部分。</contrib>"
-#: C/index-in.docbook:66
+#: C/index-in.docbook:75
msgid ""
"<firstname>Daniel</firstname> <surname>Elstner</surname> <contrib>Section "
"\"Build Structure\" of chapter on \"Wrapping C Libraries with gmmproc\".</"
@@ -72,7 +72,7 @@ msgstr ""
"<firstname>Daniel</firstname> <surname>Elstner</surname>编写《使用 gmmproc 封"
"装 C 库》〈构建结构〉章节。"
-#: C/index-in.docbook:72
+#: C/index-in.docbook:81
msgid ""
"<firstname>Chris</firstname> <surname>Vine</surname> <contrib>Chapter on "
"\"Multi-threaded programs\".</contrib>"
@@ -80,7 +80,7 @@ msgstr ""
"<firstname>Chris</firstname> <surname>Vine</surname><contrib>编写\"多线程编程"
"\"章节。</contrib>"
-#: C/index-in.docbook:77
+#: C/index-in.docbook:86
msgid ""
"<firstname>David</firstname> <surname>King</surname> <contrib>Section on "
"Gtk::Grid.</contrib>"
@@ -88,7 +88,7 @@ msgstr ""
"<firstname>David</firstname> <surname>King</surname><contrib>编写Gtk::Grid部"
"分。</contrib>"
-#: C/index-in.docbook:82
+#: C/index-in.docbook:91
msgid ""
"<firstname>Pedro</firstname> <surname>Ferreira</surname> <contrib>Chapter on "
"Keyboard Events.</contrib>"
@@ -96,7 +96,7 @@ msgstr ""
"<firstname>Pedro</firstname> <surname>Ferreira</surname><contrib>编写键盘事件"
"章节。</contrib>"
-#: C/index-in.docbook:87
+#: C/index-in.docbook:96
msgid ""
"<firstname>Kjell</firstname> <surname>Ahlstedt</surname> <contrib>Update "
"from gtkmm 3 to gtkmm 4.</contrib> <contrib>Chapter on \"Building "
@@ -105,7 +105,7 @@ msgstr ""
"<firstname>Kjell</firstname> <surname>Ahlstedt</surname> <contrib>编写从gtkmm"
"迁移到gtkmm4指南。</contrib> <contrib>编写\"构建应用\"章节。</contrib>"
-#: C/index-in.docbook:98
+#: C/index-in.docbook:107
msgid ""
"This book explains key concepts of the <application>gtkmm</application> C++ "
"API for creating user interfaces. It also introduces the main user interface "
@@ -114,7 +114,7 @@ msgstr ""
"本书说明了使用<application>gtkmm</application> C++ API 创建用户界面的重要概"
"念,并且介绍了主要的用户界面元素(“widget”)。"
-#: C/index-in.docbook:103
+#: C/index-in.docbook:112
msgid ""
"<year>2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010</year> "
"<holder>Murray Cumming</holder>"
@@ -122,7 +122,7 @@ msgstr ""
"<year>2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010</year> "
"<holder>Murray Cumming</holder>"
-#: C/index-in.docbook:109
+#: C/index-in.docbook:118
msgid ""
"Permission is granted to copy, distribute and/or modify this document under "
"the terms of the GNU Free Documentation License, Version 1.2 or any later "
@@ -138,15 +138,15 @@ msgstr ""
"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 来获得一份 "
"GNU 自由文档协议。"
-#: C/index-in.docbook:121
+#: C/index-in.docbook:130
msgid "Introduction"
msgstr "序言"
-#: C/index-in.docbook:124
+#: C/index-in.docbook:133
msgid "This book"
msgstr "本书"
-#: C/index-in.docbook:126
+#: C/index-in.docbook:135
msgid ""
"This book explains key concepts of the <application>gtkmm</application> C++ "
"API for creating user interfaces. It also introduces the main user interface "
@@ -159,13 +159,13 @@ msgstr ""
"是并不会深入其细节。因此,如果需要完整的 API 信息,您应当顺着链接访问参考文"
"档。"
-#: C/index-in.docbook:128
+#: C/index-in.docbook:137
msgid ""
"This book assumes a good understanding of C++, and how to create C++ "
"programs."
msgstr "本书假定读者拥有对 C++ 良好的理解,并且知道如何去创建一个 C++ 程序。"
-#: C/index-in.docbook:130
+#: C/index-in.docbook:139
msgid ""
"We would very much like to hear of any problems you have learning "
"<application>gtkmm</application> with this document, and would appreciate "
@@ -176,7 +176,7 @@ msgstr ""
"任何问题,并且感激对此作出的改进。请访问 <link linkend=\"chapter-contributing"
"\">贡献</link> 节以获得进一步的信息。"
-#: C/index-in.docbook:136
+#: C/index-in.docbook:145
msgid ""
"This book describes <application>gtkmm</application> 4, but some sections "
"have not been fully updated. There are paragraphs that describe "
@@ -189,11 +189,11 @@ msgstr ""
"application>4的段落。不过显式的所有示例都与<application>gtkmm</application>4"
"兼容。"
-#: C/index-in.docbook:145
+#: C/index-in.docbook:154
msgid "gtkmm"
msgstr "gtkmm"
-#: C/index-in.docbook:146
+#: C/index-in.docbook:155
msgid ""
"<application>gtkmm</application> is a C++ wrapper for <ulink url=\"http://"
"www.gtk.org/\">GTK</ulink>, a library used to create graphical user "
@@ -206,7 +206,7 @@ msgstr ""
"LGPL 协议,因此您可以使用 <application>gtkmm</application> 开发开放软件、自由"
"软件,甚至商业非免费软件而不需支付任何版权费用。"
-#: C/index-in.docbook:154
+#: C/index-in.docbook:163
msgid ""
"<application>gtkmm</application> was originally named gtk-- because GTK was "
"originally named GTK+ and had a + in the name. However, as -- is not easily "
@@ -217,11 +217,11 @@ msgstr ""
"有了一个加号。但是,由于 -- 不容易被搜索引擎索引,所以项目名字就渐渐的变成了"
"<application>gtkmm</application>,后来我们就一直使用这个名字。"
-#: C/index-in.docbook:159
+#: C/index-in.docbook:168
msgid "Why use <application>gtkmm</application> instead of GTK?"
msgstr "为什么要使用 <application>gtkmm</application> 而不是 GTK?"
-#: C/index-in.docbook:160
+#: C/index-in.docbook:169
msgid ""
"<application>gtkmm</application> allows you to write code using normal C++ "
"techniques such as encapsulation, derivation, and polymorphism. As a C++ "
@@ -232,7 +232,7 @@ msgstr ""
"装、继承和多态。作为一个 C++ 程序员,你可能已经意识到这会让代码更加清晰、更加"
"良好的管理代码。"
-#: C/index-in.docbook:161
+#: C/index-in.docbook:170
msgid ""
"<application>gtkmm</application> is more type-safe, so the compiler can "
"detect errors that would only be detected at run time when using C. This use "
@@ -243,7 +243,7 @@ msgstr ""
"能在运行时才能检测出来的错误。这种使用特定类型的方法同样使得 API 更加清晰,因"
"为你只需要通过看一下函数声明就可以知道应该使用什么类型了。"
-#: C/index-in.docbook:162
+#: C/index-in.docbook:171
msgid ""
"Inheritance can be used to derive new widgets. The derivation of new widgets "
"in GTK C code is so complicated and error prone that almost no C coders do "
@@ -254,7 +254,7 @@ msgstr ""
"且很容易出错,因此几乎没有 C 的程序员这么做。作为 C++ 开发人员,你知道继承是"
"一个基本的面向对象技术。"
-#: C/index-in.docbook:163
+#: C/index-in.docbook:172
msgid ""
"Member instances can be used, simplifying memory management. All GTK C "
"widgets are dealt with by use of pointers. As a C++ coder you know that "
@@ -263,7 +263,7 @@ msgstr ""
"可以使用成员实例,简化了内存管理。所有的 GTK 的 C 部件都是使用指针进行操作"
"的。作为 C++ 程序员,你知道指针应当尽量避免使用。"
-#: C/index-in.docbook:164
+#: C/index-in.docbook:173
msgid ""
"<application>gtkmm</application> involves less code compared to GTK, which "
"uses prefixed function names and lots of cast macros."
@@ -271,11 +271,11 @@ msgstr ""
"<application>gtkmm</application> 比 GTK 的代码更加简短,GTK 使用了大量带前缀"
"的函数名以及大量的转型宏。"
-#: C/index-in.docbook:168
+#: C/index-in.docbook:177
msgid "<application>gtkmm</application> compared to Qt"
msgstr "<application>gtkmm</application> 对比 Qt"
-#: C/index-in.docbook:169
+#: C/index-in.docbook:178
msgid ""
"Trolltech's Qt is the closest competition to <application>gtkmm</"
"application>, so it deserves discussion."
@@ -283,7 +283,7 @@ msgstr ""
"Trolltech 公司的 Qt 是和 <application>gtkmm</application> 最相似的有竞争力的"
"产品,所以应该对其进行一下讨论。"
-#: C/index-in.docbook:171
+#: C/index-in.docbook:180
msgid ""
"<application>gtkmm</application> developers tend to prefer "
"<application>gtkmm</application> to Qt because <application>gtkmm</"
@@ -306,11 +306,11 @@ msgstr ""
"而无需修改 C++ 语言。请看<ulink url=\"https://wiki.gnome.org/Projects/gtkmm/"
"FAQ\">常见问题</ulink>以了解具体差异。"
-#: C/index-in.docbook:176
+#: C/index-in.docbook:185
msgid "<application>gtkmm</application> is a wrapper"
msgstr "<application>gtkmm</application> 是一个封装"
-#: C/index-in.docbook:177
+#: C/index-in.docbook:186
msgid ""
"<application>gtkmm</application> is not a native C++ toolkit, but a C++ "
"wrapper of a C toolkit. This separation of interface and implementation has "
@@ -330,15 +330,15 @@ msgstr ""
"行了一点点贡献。因此,GTK 可以从比某个语言特定的工具集更广泛的用户群中获得好"
"处,有更多的实现、更多的开发人员、更多的测试人员以及更多的用户。"
-#: C/index-in.docbook:185
+#: C/index-in.docbook:194
msgid "Installation"
msgstr "安装"
-#: C/index-in.docbook:187
+#: C/index-in.docbook:196
msgid "Dependencies"
msgstr "依赖关系"
-#: C/index-in.docbook:188
+#: C/index-in.docbook:197
msgid ""
"Before attempting to install <application>gtkmm</"
"application><application>-4.0</application>, you might first need to install "
@@ -347,65 +347,65 @@ msgstr ""
"在试图安装 <application>gtkmm</application><application>-4.0</application>之"
"前,你必须已经安装了这些包。"
-#: C/index-in.docbook:193
+#: C/index-in.docbook:202
msgid "<application>sigc++-3.0</application>"
msgstr "<application>sigc++-3.0</application>"
-#: C/index-in.docbook:194
+#: C/index-in.docbook:203
msgid "<application>gtk4</application>"
msgstr "<application>gtkmm4</application>"
-#: C/index-in.docbook:195
+#: C/index-in.docbook:204
msgid "<application>glibmm-2.68</application>"
msgstr "<application>glibmm-2.68</application>"
-#: C/index-in.docbook:196
+#: C/index-in.docbook:205
msgid "<application>cairomm-1.16</application>"
msgstr "<application>cairomm-1.16</application>"
-#: C/index-in.docbook:197
+#: C/index-in.docbook:206
msgid "<application>pangomm-2.48</application>"
msgstr "<application>pangomm-2.48</application>"
-#: C/index-in.docbook:199
+#: C/index-in.docbook:208
msgid ""
"These dependencies have their own dependencies, including the following "
"applications and libraries:"
msgstr "这些依赖有它们自己所依赖的软件包,包括下列应用程序和软件库:"
-#: C/index-in.docbook:204
+#: C/index-in.docbook:213
msgid "<application>pkg-config</application>"
msgstr "<application>pkg-config</application>"
-#: C/index-in.docbook:205
+#: C/index-in.docbook:214
msgid "<application>glib-2.0</application>"
msgstr "<application>glib-2.0</application>"
-#: C/index-in.docbook:206
+#: C/index-in.docbook:215
msgid "<application>pango</application>"
msgstr "<application>pango</application>"
-#: C/index-in.docbook:207
+#: C/index-in.docbook:216
msgid "<application>cairo</application>"
msgstr "<application>cairo</application>"
-#: C/index-in.docbook:208
+#: C/index-in.docbook:217
msgid "<application>gdk-pixbuf-2.0</application>"
msgstr "<application>gdk-pixbuf-2.0</application>"
-#: C/index-in.docbook:209
+#: C/index-in.docbook:218
msgid "<application>graphene-1.0</application>"
msgstr "<application>graphene-1.0</application>"
-#: C/index-in.docbook:214
+#: C/index-in.docbook:223
msgid "Unix and Linux"
msgstr "Unix 和 Linux"
-#: C/index-in.docbook:217
+#: C/index-in.docbook:226
msgid "Prebuilt Packages"
msgstr "预编译的包"
-#: C/index-in.docbook:219
+#: C/index-in.docbook:228
msgid ""
"Recent versions of <application>gtkmm</application> are packaged by nearly "
"every major Linux distribution these days. So, if you use Linux, you can "
@@ -420,7 +420,7 @@ msgstr ""
"们的软件库里面包含了 <application>gtkmm</application> 的发布版本有:Debian、"
"Ubuntu、Red Hat、Fedora、Mandriva、SuSE 等等。"
-#: C/index-in.docbook:227
+#: C/index-in.docbook:236
msgid ""
"The names of the <application>gtkmm</application> packages vary from "
"distribution to distribution (e.g. <application>libgtkmm-4.0-dev</"
@@ -435,7 +435,7 @@ msgstr ""
"application>),因此,在你的发行版的软件包管理程序中查一下正确的名字,然后像其"
"它软件包一样的安装它。"
-#: C/index-in.docbook:235
+#: C/index-in.docbook:244
msgid ""
"The package names will not change when new API/ABI-compatible versions of "
"<application>gtkmm</application> are released. Otherwise they would not be "
@@ -448,11 +448,11 @@ msgstr ""
"<application>libgtkmm-4.0-dev</application> 包中发现提供的实际上是 "
"<application>gtkmm</application> 4.8 的话不要太惊讶。"
-#: C/index-in.docbook:245
+#: C/index-in.docbook:254
msgid "Installing From Source"
msgstr "从源代码安装"
-#: C/index-in.docbook:247
+#: C/index-in.docbook:256
msgid ""
"If your distribution does not provide a pre-built <application>gtkmm</"
"application> package, or if you want to install a different version than the "
@@ -466,7 +466,7 @@ msgstr ""
"<application>gtkmm</application>。可以从 <ulink url=\"https://download.gnome."
"org/sources/gtkmm/\"/> 中下载 <application>gtkmm</application> 的源代码。"
-#: C/index-in.docbook:253
+#: C/index-in.docbook:262
msgid ""
"After you've installed all of the dependencies, download the "
"<application>gtkmm</application> source code, unpack it, and change to the "
@@ -479,7 +479,7 @@ msgstr ""
"建。 参见你所下载的<application>gtkmm</application>源代码中的"
"<filename>README</filename>。"
-#: C/index-in.docbook:260
+#: C/index-in.docbook:269
msgid ""
"Remember that on a Unix or Linux operating system, you will probably need to "
"be <literal>root</literal> to install software. The <command>su</command> or "
@@ -490,7 +490,7 @@ msgstr ""
"安装软件。<command>su</command>或者<command>sudo</command> 命令允许你输入 "
"<literal>root</literal> 密码,并且临时拥有 <literal>root</literal> 权限。"
-#: C/index-in.docbook:267
+#: C/index-in.docbook:276
msgid ""
"The <filename>configure</filename> script or <command>meson</command> will "
"check to make sure all of the required dependencies are already installed. "
@@ -500,7 +500,7 @@ msgstr ""
"所有必须的依赖软件包都已经正确的安装了。如果你遗漏了某个依赖软件包的话,它会"
"退出并提示错误信息。"
-#: C/index-in.docbook:278
+#: C/index-in.docbook:287
#, no-wrap
msgid ""
"\n"
@@ -509,7 +509,7 @@ msgstr ""
"\n"
"# ./configure --prefix=/usr\n"
-#: C/index-in.docbook:272
+#: C/index-in.docbook:281
msgid ""
"By default, <application>gtkmm</application> if built with Autotools, will "
"be installed under the <filename>/usr/local</filename> directory. On some "
@@ -522,7 +522,7 @@ msgstr ""
"同的位置。比如,在 Red Hat Linux 系统中,你也许需要使用 <literal>--prefix</"
"literal> 选项进行配置,例如:<_:screen-1/>"
-#: C/index-in.docbook:283
+#: C/index-in.docbook:292
msgid ""
"You should be very careful when installing to standard system prefixes such "
"as <filename>/usr</filename>. Linux distributions install software packages "
@@ -536,7 +536,7 @@ msgstr ""
"会破坏或与使用软件包管理器安装的软件冲突。理想情况下,你应当将从源代码安装的"
"软件都安装到一个独立位置。"
-#: C/index-in.docbook:292
+#: C/index-in.docbook:301
msgid ""
"If you want to help develop <application>gtkmm</application> or experiment "
"with new features, you can also install <application>gtkmm</application> "
@@ -550,11 +550,11 @@ msgstr ""
"做,但是如果你对帮助 <application>gtkmm</application> 开发感兴趣,请看附录:"
"<link linkend=\"chapter-working-with-source\">使用 gtkmm 源代码</link>。"
-#: C/index-in.docbook:303
+#: C/index-in.docbook:312
msgid "Microsoft Windows"
msgstr "Microsoft Windows"
-#: C/index-in.docbook:304
+#: C/index-in.docbook:313
msgid ""
"GTK and <application>gtkmm</application> were designed to work well with "
"Microsoft Windows, and the developers encourage its use on the win32 "
@@ -572,11 +572,11 @@ msgstr ""
"installation\"><application>gtkmm</application>和Win32</link>以得到关于"
"Windows相关的安装方法和注意事项。"
-#: C/index-in.docbook:315
+#: C/index-in.docbook:324
msgid "Basics"
msgstr "基础"
-#: C/index-in.docbook:317
+#: C/index-in.docbook:326
msgid ""
"This chapter will introduce some of the most important aspects of "
"<application>gtkmm</application> coding. These will be demonstrated with "
@@ -587,7 +587,7 @@ msgstr ""
"一些可以运行的示例代码来演示。然而,这仅仅是一种尝试,你还需要继续看其它章"
"节,以得到更实质性的信息。"
-#: C/index-in.docbook:320
+#: C/index-in.docbook:329
msgid ""
"Your existing knowledge of C++ will help you with <application>gtkmm</"
"application> as it would with any library. Unless we state otherwise, you "
@@ -600,11 +600,11 @@ msgstr ""
"application> 类会像任何其它 C++ 类一样,并且你可以期待在 <application>gtkmm</"
"application> 类上使用你现有的知识。"
-#: C/index-in.docbook:325 C/index-in.docbook:3316
+#: C/index-in.docbook:334 C/index-in.docbook:3324
msgid "Simple Example"
msgstr "简单的例子"
-#: C/index-in.docbook:327
+#: C/index-in.docbook:336
msgid ""
"To begin our introduction to <application>gtkmm</application>, we'll start "
"with the simplest program possible. This program will create an empty 200 x "
@@ -613,7 +613,7 @@ msgstr ""
"在开始介绍 <application>gtkmm</application> 之前,我们将以一个尽可能简单的程"
"序开始。这个程序创建一个 200 x 200 像素大小的空窗口。"
-#: C/index-in.docbook:332
+#: C/index-in.docbook:341
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/base\">Source Code</ulink>"
@@ -621,16 +621,16 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/base\">源代码</ulink>"
-#: C/index-in.docbook:334
+#: C/index-in.docbook:343
msgid "We will now explain each line of the example"
msgstr "我们会逐行讲解这个例子"
-#: C/index-in.docbook:335
+#: C/index-in.docbook:344
#, no-wrap
msgid "#include <gtkmm.h>"
msgstr "#include <gtkmm.h>"
-#: C/index-in.docbook:336
+#: C/index-in.docbook:345
msgid ""
"All <application>gtkmm</application> programs must include certain "
"<application>gtkmm</application> headers; <literal>gtkmm.h</literal> "
@@ -643,12 +643,12 @@ msgstr ""
"有 <application>gtkmm</application> 的内容。通常来说,这并不是一个好主意,因"
"为它包括了一兆左右的头文件。当然,对于这个简单的程序,这就够了。"
-#: C/index-in.docbook:346
+#: C/index-in.docbook:355
#, no-wrap
msgid "auto app = Gtk::Application::create(\"org.gtkmm.examples.base\");"
msgstr "auto app = Gtk::Application::create(\"org.gtkmm.examples.base\");"
-#: C/index-in.docbook:343
+#: C/index-in.docbook:352
msgid ""
"The next statement: <_:programlisting-1/> creates a <classname>Gtk::"
"Application</classname> object, stored in a <classname>Glib::RefPtr</"
@@ -662,13 +662,13 @@ msgstr ""
"<methodname>create()</methodname>方法将初始化<application>gtkmm</"
"application>。"
-#: C/index-in.docbook:352
+#: C/index-in.docbook:361
msgid ""
"The next two lines of code create a window and set its default (initial) "
"size:"
msgstr "接下来的两行代码创建一个窗口并设置其的初始大小:"
-#: C/index-in.docbook:355
+#: C/index-in.docbook:364
#, no-wrap
msgid ""
"Gtk::Window window;\n"
@@ -677,7 +677,7 @@ msgstr ""
"Gtk::Window window;\n"
"window.set_default_size(200, 200);"
-#: C/index-in.docbook:357
+#: C/index-in.docbook:366
msgid ""
"The last line shows the window and enters the <application>gtkmm</"
"application> main processing loop, which will finish when the window is "
@@ -690,17 +690,17 @@ msgstr ""
"最后一行显示窗口并进入<application>gtkmm</application>主循环,当窗口被关闭。"
"你的<function>main()</function>函数将会返回成功或者适当的错误码。"
-#: C/index-in.docbook:364
+#: C/index-in.docbook:373
#, no-wrap
msgid "return app->run(window, argc, argv);"
msgstr "return app->run(window, argc, argv);"
-#: C/index-in.docbook:369
+#: C/index-in.docbook:378
#, no-wrap
msgid "g++ simple.cc -o simple `pkg-config gtkmm-4.0 --cflags --libs`"
msgstr "g++ simple.cc -o simple `pkg-config gtkmm-4.0 --cflags --libs`"
-#: C/index-in.docbook:366
+#: C/index-in.docbook:375
msgid ""
"After putting the source code in <literal>simple.cc</literal> you can "
"compile the above program with <application>gcc</application> using: <_:"
@@ -716,11 +716,11 @@ msgstr ""
"做为该命令行的一部分来使用。另外请注意,在命令行中<literal>simple.cc</"
"literal>必须位于<literal>pkg-config</literal>调用之前。"
-#: C/index-in.docbook:379
+#: C/index-in.docbook:388
msgid "Headers and Linking"
msgstr "头文件和链接"
-#: C/index-in.docbook:380
+#: C/index-in.docbook:389
msgid ""
"Although we have shown the compilation command for the simple example, you "
"really should use the automake and autoconf tools, as described in "
@@ -736,7 +736,7 @@ msgstr ""
"application> 包内,同时附有适当的编译构建的文件,所以我们以后不会再给出任何编"
"译命令。你只需要找到恰当的目录然后键入 <literal>make</literal>。"
-#: C/index-in.docbook:383
+#: C/index-in.docbook:392
msgid ""
"To simplify compilation, we use <literal>pkg-config</literal>, which is "
"present in all (properly installed) <application>gtkmm</application> "
@@ -756,12 +756,12 @@ msgstr ""
"一个需要编译器去链接的库列表和一个用于寻找它们的目录列表。试着在你的命令行提"
"示符下运行它,看看在你的系统上会有什么样的结果。"
-#: C/index-in.docbook:396
+#: C/index-in.docbook:405
#, no-wrap
msgid "PKG_CHECK_MODULES([MYAPP], [gtkmm-4.0 >= 4.8.0])"
msgstr "PKG_CHECK_MODULES([MYAPP], [gtkmm-4.0 >= 4.8.0])"
-#: C/index-in.docbook:393
+#: C/index-in.docbook:402
msgid ""
"However, this is even simpler when using the <function>PKG_CHECK_MODULES()</"
"function> macro in a standard configure.ac file with autoconf and automake. "
@@ -773,7 +773,7 @@ msgstr ""
"programlisting-1/> 这将会检查是否存在 gtkmm,并且定义了可以在你的 Makefile."
"am 文件中使用的 MYAPP_LIBS 和 MYAPP_CFLAGS 变量。"
-#: C/index-in.docbook:399
+#: C/index-in.docbook:408
msgid ""
"gtkmm-4.0 is the name of the current stable API. There are older APIs called "
"gtkmm-2.4 and gtkmm-3.0 which install in parallel when they are available. "
@@ -790,14 +790,14 @@ msgstr ""
"持兼容。理论上,将来可以有 gtkmm-5.0 API 与现在的 gtkmm-4.0 同时安装到系统,"
"而现有应用程序不会受到影响。"
-#: C/index-in.docbook:406
+#: C/index-in.docbook:415
msgid ""
"Note that if you mention extra modules in addition to gtkmm-4.0, they should "
"be separated by spaces, not commas."
msgstr ""
"注意,如果你提到了除 gtkmm-4.0 之外的模块,它们需要以空格分开,而不是逗号。"
-#: C/index-in.docbook:409
+#: C/index-in.docbook:418
msgid ""
"The GNU site has more information about <ulink url=\"https://www.gnu.org/"
"software/autoconf/\">autoconf</ulink> and <ulink url=\"https://www.gnu.org/"
@@ -807,7 +807,7 @@ msgstr ""
"\">autoconf</ulink>和<ulink url=\"https://www.gnu.org/software/automake/"
"\">automake</ulink>的相关信息。"
-#: C/index-in.docbook:412
+#: C/index-in.docbook:421
msgid ""
"If you start by experimenting with a small application that you plan to use "
"just for yourself, it's easier to start with a Makefile similar to the "
@@ -818,11 +818,11 @@ msgstr ""
"building-applications\">构建应用程序</link>章节的<filename>Makefile.example</"
"filename>文件从MakeFile开始比较容易。"
-#: C/index-in.docbook:420 C/index-in.docbook:5869
+#: C/index-in.docbook:429 C/index-in.docbook:5858
msgid "Widgets"
msgstr "部件"
-#: C/index-in.docbook:421
+#: C/index-in.docbook:430
msgid ""
"<application>gtkmm</application> applications consist of windows containing "
"widgets, such as buttons and text boxes. In some other systems, widgets are "
@@ -835,7 +835,7 @@ msgstr ""
"的每个部件,在你的代码里就会有一个对应的 C++ 对象。所以当你想控制部件行为的时"
"候,只需要调用这个部件对象的相应方法即可。"
-#: C/index-in.docbook:423
+#: C/index-in.docbook:432
#, no-wrap
msgid ""
"m_box.append(m_Button1);\n"
@@ -844,12 +844,12 @@ msgstr ""
"m_box.append(m_Button1);\n"
"m_box.append(m_Button2);"
-#: C/index-in.docbook:426
+#: C/index-in.docbook:435
#, no-wrap
msgid "m_frame.set_child(m_box);"
msgstr "m_frame.set_child(m_box);"
-#: C/index-in.docbook:422
+#: C/index-in.docbook:431
msgid ""
"Widgets are arranged inside container widgets such as frames and notebooks, "
"in a hierarchy of widgets within widgets. Some of these container widgets, "
@@ -869,7 +869,7 @@ msgstr ""
"<classname>Gtk::Box</classname> 添加到一个 <classname>Gtk::Frame</classname> "
"中,它包含一个可视的边框和标题:<_:programlisting-2/>"
-#: C/index-in.docbook:428
+#: C/index-in.docbook:437
msgid ""
"Most of the chapters in this book deal with specific widgets. See the <link "
"linkend=\"chapter-container-widgets\">Container Widgets</link> section for "
@@ -878,7 +878,7 @@ msgstr ""
"本书中的大部分章节都是讲解特定的部件。要得到更多关于添加部件到容器部件的信"
"息,请看 <link linkend=\"chapter-container-widgets\">容器部件</link> 这一章。"
-#: C/index-in.docbook:432
+#: C/index-in.docbook:441
msgid ""
"Although you can specify the layout and appearance of windows and widgets "
"with C++ code, you will probably find it more convenient to design your user "
@@ -891,7 +891,7 @@ msgstr ""
"载界面是更方便。请参考 <link linkend=\"chapter-builder\">Glade 与 Gtk::"
"Builder</link> 这一章。"
-#: C/index-in.docbook:435
+#: C/index-in.docbook:444
msgid ""
"Although <application>gtkmm</application> widget instances have lifetimes "
"and scopes just like those of other C++ classes, <application>gtkmm</"
@@ -912,12 +912,12 @@ msgstr ""
"时它将被一并删除。如果你需要了解更多关于 <application>gtkmm</application> 内"
"存管理技术的话,请看 <link linkend=\"chapter-memory\">内存管理</link> 章节。"
-#: C/index-in.docbook:449 C/index-in.docbook:4689 C/index-in.docbook:4933
-#: C/index-in.docbook:8092
+#: C/index-in.docbook:458 C/index-in.docbook:4696 C/index-in.docbook:4940
+#: C/index-in.docbook:8065
msgid "Signals"
msgstr "信号"
-#: C/index-in.docbook:451
+#: C/index-in.docbook:460
msgid ""
"<application>gtkmm</application>, like most GUI toolkits, is <emphasis>event-"
"driven</emphasis>. When an event occurs, such as the press of a mouse "
@@ -932,7 +932,17 @@ msgstr ""
"为了使这个按钮点击产生一个动作,我们可以设置一个<emphasis>信号处理函数"
"(signal handler)</emphasis>来捕捉这个“clicked”信号。"
-#: C/index-in.docbook:459
+#: C/index-in.docbook:467
+msgid ""
+"<application>gtkmm</application> uses the libsigc++ library to implement "
+"signals. Here is an example line of code that connects a Gtk::Button's "
+"\"clicked\" signal with a signal handler called \"on_button_clicked\":"
+msgstr ""
+"<application>gtkmm</application> 使用 libsigc++ 来实现信号操作。下面这个例子"
+"演示怎样把 Gtk::Button 的“clicked” 信号连接到命名为“on_button_clicked”的信号"
+"处理函数上:"
+
+#: C/index-in.docbook:469
#, no-wrap
msgid ""
"m_button1.signal_clicked().connect( sigc::mem_fun(*this,\n"
@@ -941,18 +951,7 @@ msgstr ""
"m_button1.signal_clicked().connect( sigc::mem_fun(*this,\n"
" &HelloWorld::on_button_clicked) );"
-#: C/index-in.docbook:458
-msgid ""
-"<application>gtkmm</application> uses the libsigc++ library to implement "
-"signals. Here is an example line of code that connects a Gtk::Button's "
-"\"clicked\" signal with a signal handler called \"on_button_clicked\": <_:"
-"programlisting-1/>"
-msgstr ""
-"<application>gtkmm</application> 使用 libsigc++ 来实现信号操作。下面这个例子"
-"演示怎样把 Gtk::Button 的“clicked” 信号连接到命名为“on_button_clicked”的信号"
-"处理函数上:<_:programlisting-1/>"
-
-#: C/index-in.docbook:463
+#: C/index-in.docbook:472
msgid ""
"For more detailed information about signals, see the <link linkend=\"chapter-"
"signals\">appendix</link>."
@@ -960,7 +959,7 @@ msgstr ""
"要得到更多关于信号的信息,请参考<link linkend=\"chapter-signals\">附录</"
"link>。"
-#: C/index-in.docbook:464
+#: C/index-in.docbook:473
msgid ""
"For information about implementing your own signals rather than just "
"connecting to the existing <application>gtkmm</application> signals, see the "
@@ -970,11 +969,11 @@ msgstr ""
"application> 信号,请参考 <link linkend=\"chapter-custom-signals\">附录</"
"link>。"
-#: C/index-in.docbook:470
+#: C/index-in.docbook:479
msgid "Glib::ustring"
msgstr "Glib::ustring"
-#: C/index-in.docbook:471
+#: C/index-in.docbook:480
msgid ""
"You might be surprised to learn that <application>gtkmm</application> "
"doesn't use <classname>std::string</classname> in its interfaces. Instead it "
@@ -991,7 +990,7 @@ msgstr ""
"string</classname>来使用,并忽略本节后面的内容。但是如果你希望在你的应用程序"
"中使用英语以外的语言的话,那么请继续读下去。"
-#: C/index-in.docbook:472
+#: C/index-in.docbook:481
msgid ""
"std::string uses 8 bits per character, but 8 bits aren't enough to encode "
"languages such as Arabic, Chinese, and Japanese. Although the encodings for "
@@ -1009,7 +1008,7 @@ msgstr ""
"ustring 所包装的东西。它提供了和 std::string 几乎相同的接口,以及和 std::"
"string 的自动类型转换的功能。"
-#: C/index-in.docbook:477
+#: C/index-in.docbook:486
msgid ""
"One of the benefits of UTF-8 is that you don't need to use it unless you "
"want to, so you don't need to retrofit all of your code at once. "
@@ -1025,7 +1024,7 @@ msgstr ""
"还会崩溃。那时,你所需要做的就是开始使用 <classname>Glib::ustring</"
"classname> 来取而代之。"
-#: C/index-in.docbook:478
+#: C/index-in.docbook:487
msgid ""
"Note that UTF-8 isn't compatible with 8-bit encodings like ISO-8859-1. For "
"instance, German umlauts are not in the ASCII range and need more than 1 "
@@ -1038,7 +1037,7 @@ msgstr ""
"如果你的代码中包含8位的字符串文字,你需要把它们转变成 UTF-8 编码 (比如,巴伐"
"利亚的问候语“Grüß Gott”可能会显示成“Gr\\xC3\\xBC\\xC3\\x9F Gott”)。"
-#: C/index-in.docbook:479
+#: C/index-in.docbook:488
msgid ""
"You should avoid C-style pointer arithmetic, and functions such as strlen(). "
"In UTF-8, each character might need anywhere from 1 to 6 bytes, so it's not "
@@ -1053,7 +1052,7 @@ msgstr ""
"可以从字符的层面上考虑使用 Glib::ustring::substr() 这样的函数,而不用再去考虑"
"字节这样的细节了。"
-#: C/index-in.docbook:481
+#: C/index-in.docbook:490
msgid ""
"Unlike the Windows UCS-2 Unicode solution, this does not require any special "
"compiler options to process string literals, and it does not result in "
@@ -1063,7 +1062,7 @@ msgstr ""
"这样字符串,也不会导致为 Unicode 编译的可执行文件或库与含为 ASCII 的不兼容之"
"类的问题。"
-#: C/index-in.docbook:483
+#: C/index-in.docbook:492
msgid ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1ustring."
"html\">Reference</ulink>"
@@ -1071,7 +1070,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1ustring."
"html\">参考</ulink>"
-#: C/index-in.docbook:485
+#: C/index-in.docbook:494
msgid ""
"See the <link linkend=\"chapter-internationalization\">Internationalization</"
"link> section for information about providing the UTF-8 string literals."
@@ -1079,11 +1078,11 @@ msgstr ""
"要得到更多关于 UTF-8 字符的信息,请参考<link linkend=\"chapter-"
"internationalization\">国际化</link>这一节。"
-#: C/index-in.docbook:490
+#: C/index-in.docbook:499
msgid "Mixing C and C++ APIs"
msgstr "混合使用 C 和 C++ API"
-#: C/index-in.docbook:491
+#: C/index-in.docbook:500
msgid ""
"You can use C APIs which do not yet have convenient C++ interfaces. It is "
"generally not a problem to use C APIs from C++, and <application>gtkmm</"
@@ -1097,7 +1096,18 @@ msgstr ""
"一个简单的方式来从一个 C 对象创建一个 C++ 封装的对象,当然,这个 C API 是需要"
"基于 <classname>GObject</classname> 系统的。"
-#: C/index-in.docbook:502
+#: C/index-in.docbook:506
+msgid ""
+"To use a <application>gtkmm</application> instance with a C function that "
+"requires a C <classname>GObject</classname> instance, use the C++ instance’s "
+"<function>gobj()</function> function to obtain a pointer to the underlying C "
+"instance. For example:"
+msgstr ""
+"要用 C 函数使用一个 <application>gtkmm</application> 实例需要一个 C "
+"<classname>GObject</classname> 实例,使用C++的<function>gobj()</function>接口"
+"函数可以得到一个底层 GObject 实例的指针。例如:"
+
+#: C/index-in.docbook:511
#, no-wrap
msgid ""
"\n"
@@ -1108,18 +1118,7 @@ msgstr ""
"Gtk::Button button(\"example\");\n"
"gtk_button_do_something_that_gtkmm_cannot(button.gobj());\n"
-#: C/index-in.docbook:497
-msgid ""
-"To use a <application>gtkmm</application> instance with a C function that "
-"requires a C <classname>GObject</classname> instance, use the C++ instance’s "
-"<function>gobj()</function> function to obtain a pointer to the underlying C "
-"instance. For example: <_:programlisting-1/>"
-msgstr ""
-"要用 C 函数使用一个 <application>gtkmm</application> 实例需要一个 C "
-"<classname>GObject</classname> 实例,使用C++的<function>gobj()</function>接口"
-"函数可以得到一个底层 GObject 实例的指针。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:514
+#: C/index-in.docbook:522
#, no-wrap
msgid ""
"\n"
@@ -1132,19 +1131,19 @@ msgstr ""
"Gtk::Button* button = Glib::wrap(cbutton);\n"
"button->set_label(\"Now I speak C++ too!\");\n"
-#: C/index-in.docbook:521
+#: C/index-in.docbook:529
msgid ""
"it's a widget or other class that inherits from <classname>Gtk::Object</"
"classname>, and"
msgstr ""
"它是一个部件或者是继承自<classname>Gtk::Object</classname>的其他类,并且"
-#: C/index-in.docbook:522
+#: C/index-in.docbook:530
msgid ""
"the C instance has a floating reference when the wrapper is created, and"
msgstr "当封装被创建的时候C示例拥有一个浮动引用,并且"
-#: C/index-in.docbook:523
+#: C/index-in.docbook:531
msgid ""
"<function>Gtk::manage()</function> has not been called on it (which includes "
"if it was created with <function>Gtk::make_managed()</function>), or"
@@ -1152,7 +1151,7 @@ msgstr ""
"并未在其上调用<function>Gtk::manage()</function>(包括使用<function>Gtk::"
"make_managed()</function>创建的) ,或者"
-#: C/index-in.docbook:524
+#: C/index-in.docbook:532
msgid ""
"<function>Gtk::manage()</function> was called on it, but it was never added "
"to, or was later removed from, its parent."
@@ -1160,7 +1159,7 @@ msgstr ""
"在其上调用了<function>Gtk::manage()</function>,但是从未将其加入到父项中,也"
"从未将其从父项中删除。"
-#: C/index-in.docbook:508
+#: C/index-in.docbook:516
msgid ""
"To obtain a <application>gtkmm</application> instance from a C "
"<classname>GObject</classname> instance, use one of the many overloaded "
@@ -1179,7 +1178,7 @@ msgstr ""
"itemizedlist-2/> <function>Glib::wrap()</function>将C和C++示例相互绑定,则应"
"明确删除C++包装器。请不要在C示例死亡前删除C++实例。"
-#: C/index-in.docbook:529
+#: C/index-in.docbook:537
msgid ""
"In all other cases the C++ instance is automatically deleted when the last "
"reference to the C instance is dropped. This includes all <function>Glib::"
@@ -1190,11 +1189,11 @@ msgstr ""
"括所有的<function>Glib::wrap()</function>所返回的<classname>Glib::RefPtr</"
"classname>。"
-#: C/index-in.docbook:536
+#: C/index-in.docbook:544
msgid "Hello World in <application>gtkmm</application>"
msgstr "用 <application>gtkmm</application> 写 Hello World"
-#: C/index-in.docbook:538
+#: C/index-in.docbook:546
msgid ""
"We've now learned enough to look at a real example. In accordance with an "
"ancient tradition of computer science, we now introduce Hello World, a la "
@@ -1203,7 +1202,7 @@ msgstr ""
"目前我们已经可以自己所学的知识来写一个真正的程序了。根据计算机科学的传统,我"
"们现在以 <application>gtkmm</application> 的方式来介绍 Hello World 程序:"
-#: C/index-in.docbook:543
+#: C/index-in.docbook:551
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/helloworld\">Source Code</ulink>"
@@ -1211,17 +1210,17 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/helloworld\">源代码</ulink>"
-#: C/index-in.docbook:545
+#: C/index-in.docbook:553
msgid ""
"Try to compile and run it before going on. You should see something like "
"this:"
msgstr "在继续讲解之前,可以尝试着编译并运行这个程序,你会看到这样的结果:"
-#: C/index-in.docbook:550
+#: C/index-in.docbook:558
msgid "Hello World"
msgstr "Hello World"
-#: C/index-in.docbook:556
+#: C/index-in.docbook:564
msgid ""
"Pretty thrilling, eh? Let's examine the code. First, the "
"<classname>HelloWorld</classname> class:"
@@ -1229,7 +1228,7 @@ msgstr ""
"真让人激动,不是吗?让我们回过头来看一下代码。首先看一下 "
"<classname>HelloWorld</classname> 类:"
-#: C/index-in.docbook:561
+#: C/index-in.docbook:569
#, no-wrap
msgid ""
"class HelloWorld : public Gtk::Window\n"
@@ -1260,7 +1259,7 @@ msgstr ""
" Gtk::Button m_button;\n"
"};"
-#: C/index-in.docbook:575
+#: C/index-in.docbook:583
msgid ""
"This class implements the \"Hello World\" window. It's derived from "
"<classname>Gtk::Window</classname>, and has a single <classname>Gtk::Button</"
@@ -1272,7 +1271,7 @@ msgstr ""
"并且只有一个 <classname>Gtk::Button</classname> 成员。我们已经使用构造函数为"
"该窗口完成了所有的初始化工作,包括挂接消息。在这,已经去掉注释的代码:"
-#: C/index-in.docbook:584
+#: C/index-in.docbook:592
#, no-wrap
msgid ""
"HelloWorld::HelloWorld()\n"
@@ -1293,7 +1292,7 @@ msgstr ""
" set_child(m_button);\n"
"}"
-#: C/index-in.docbook:593
+#: C/index-in.docbook:601
msgid ""
"Notice that we've used an initialiser statement to give the "
"<literal>m_button</literal> object the label \"Hello World\"."
@@ -1301,7 +1300,7 @@ msgstr ""
"注意,我们使用初始化列表的方式给 <literal>m_button</literal> 对象添加了一"
"个“Hello World”的标签。"
-#: C/index-in.docbook:598
+#: C/index-in.docbook:606
msgid ""
"Next we call the Button's <methodname>set_margin()</methodname> method. This "
"sets the amount of space around the button."
@@ -1309,7 +1308,7 @@ msgstr ""
"接下来调用 Button 类的 <methodname>set_margin()</methodname> 方法。这将设置按"
"钮周围空间的大小。"
-#: C/index-in.docbook:603
+#: C/index-in.docbook:611
msgid ""
"We then hook up a signal handler to <literal>m_button</literal>'s "
"<literal>clicked</literal> signal. This prints our friendly greeting to "
@@ -1319,7 +1318,7 @@ msgstr ""
"信号处理函数上。这会向 <literal>stdout</literal> (标准输出) 打印出友好的问候"
"语。"
-#: C/index-in.docbook:608
+#: C/index-in.docbook:616
msgid ""
"Next, we use the Window's <methodname>set_child()</methodname> method to put "
"<literal>m_button</literal> in the Window. The <methodname>set_child()</"
@@ -1329,13 +1328,13 @@ msgstr ""
"<literal>m_button</literal>放入窗口。<methodname>set_child()</methodname>方法"
"会将部件放入窗口中。"
-#: C/index-in.docbook:614
+#: C/index-in.docbook:622
msgid ""
"Now let's look at our program's <function>main()</function> function. Here "
"it is, without comments:"
msgstr "现在让我们来看看程序中没有注释过的 <function>main()</function> 函数:"
-#: C/index-in.docbook:619
+#: C/index-in.docbook:627
#, no-wrap
msgid ""
"int main(int argc, char* argv[])\n"
@@ -1352,7 +1351,7 @@ msgstr ""
" return app->run(helloworld, argc, argv);\n"
"}"
-#: C/index-in.docbook:626
+#: C/index-in.docbook:634
msgid ""
"First we instantiate an object stored in a <classname>RefPtr</classname> "
"smartpointer called <literal>app</literal>. This is of type <classname>Gtk::"
@@ -1363,7 +1362,7 @@ msgstr ""
"classname>智能指针对象,它的类型为 <classname>Gtk::Application</classname> 。"
"每一个 <application>gtkmm</application> 程序都有这样的一个东西。"
-#: C/index-in.docbook:631
+#: C/index-in.docbook:639
msgid ""
"Next we make an object of our <classname>HelloWorld</classname> class, whose "
"constructor takes no arguments, but it isn't visible yet. When we call "
@@ -1384,7 +1383,7 @@ msgstr ""
"应。当用户关闭窗口时,<methodname>run()</methodname> 函数将返回,导致"
"<function>main()</function>函数的最后一行将被执行。然后程序就结束了。"
-#: C/index-in.docbook:640
+#: C/index-in.docbook:648
msgid ""
"Like the simple example we showed earlier, this Hello World program does not "
"use the command-line parameters. It's not necessary to pass them to "
@@ -1393,11 +1392,11 @@ msgstr ""
"就像我们之前显示的简单示例一样,这个 Hello World 程序不实用命令行参数。不需要"
"将其传递给<methodname>run()</methodname>。"
-#: C/index-in.docbook:649
+#: C/index-in.docbook:657
msgid "Changes in <application>gtkmm</application> 3"
msgstr "<application>gtkmm</application>3中的变更"
-#: C/index-in.docbook:651
+#: C/index-in.docbook:659
msgid ""
"<application>gtkmm</application>-3.0 is an old version of the "
"<application>gtkmm</application> API that installs in parallel with the "
@@ -1419,7 +1418,7 @@ msgstr ""
"兼容。如果你从未用过<application>gtkmm</application>-2.4 API 则你可以放心的忽"
"略本章。"
-#: C/index-in.docbook:653
+#: C/index-in.docbook:661
msgid ""
"<application>gtkmm</application> 3's library is called "
"<literal>libgtkmm-3.0</literal> rather than <literal>libgtkmm-2.4</literal> "
@@ -1432,11 +1431,11 @@ msgstr ""
"pkg-config应该检索<literal>gtkmm-3.0</literal>而不是<literal>gtkmm-2.4</"
"literal>。"
-#: C/index-in.docbook:656
+#: C/index-in.docbook:664
msgid "<application>gtkmm</application> 3 added some new classes:"
msgstr "<application>gtkmm</application>3添加了一些新的类:"
-#: C/index-in.docbook:659
+#: C/index-in.docbook:667
msgid ""
"<classname>Gtk::AppChooser</classname>, <classname>Gtk::AppChooserButton</"
"classname>, <classname>Gtk::AppChooserDialog</classname> allow the user to "
@@ -1446,7 +1445,7 @@ msgstr ""
"classname>,<classname>Gtk::AppChooserDialog</classname>允许用户选择已安装的应"
"用程序用以打开特定类型的内容。"
-#: C/index-in.docbook:660
+#: C/index-in.docbook:668
msgid ""
"<classname>Gtk::Grid</classname> is a new container widget that will "
"eventually replace <classname>Gtk::Box</classname> and <classname>Gtk::"
@@ -1457,7 +1456,7 @@ msgstr ""
"<classname>Gtk::Box</classname>和<classname>Gtk::Table</classname>。它根据它"
"的子项的属性而不是自身的布局属性对子项进行排列。"
-#: C/index-in.docbook:661
+#: C/index-in.docbook:669
msgid ""
"<classname>Gtk::Switch</classname> displays On/Off states more explictly "
"than <classname>Gtk::CheckButton</classname>. It may be useful, for "
@@ -1467,7 +1466,7 @@ msgstr ""
"classname>更明确的显示开/关状态。例如,在允许用户激活硬件的时候,他可能很有"
"用。"
-#: C/index-in.docbook:664
+#: C/index-in.docbook:672
msgid ""
"<application>gtkmm</application> 3 also made several small changes to the "
"API, which you will probably encounter when porting code that used "
@@ -1477,7 +1476,7 @@ msgstr ""
"<application>gtkmm</application>-2.4的代码的时候你可能会遇到这些变更。这是一"
"个简短的清单:"
-#: C/index-in.docbook:669
+#: C/index-in.docbook:677
msgid ""
"<classname>Gtk::CellLayout</classname>, used by <classname>Gtk::IconView</"
"classname>, <classname>Gtk::TreeView::Column</classname> and <classname>Gtk::"
@@ -1490,7 +1489,7 @@ msgstr ""
"CellLayout</classname>,现在有<classname>Gtk::CellArea</classname>可以用于指"
"示<classname>CellRenderer</classname>的排列与对齐方式的详情。"
-#: C/index-in.docbook:671
+#: C/index-in.docbook:679
msgid ""
"Gtk::ComboBox now derives from CellLayout, allowing easier layout and "
"alignment of its <classname>Gtk::CellRenderer</classname>s."
@@ -1498,7 +1497,7 @@ msgstr ""
"Gtk::ComboBox现在从CellLayout派生,从而使更容易对<classname>Gtk::"
"CellRenderer</classname>进行布局与对齐。"
-#: C/index-in.docbook:673
+#: C/index-in.docbook:681
msgid ""
"<classname>Gtk::Adjustment</classname> and <classname>IconSet</classname> "
"and <classname>Gdk::Cursor</classname> are now used via <classname>Glib::"
@@ -1508,7 +1507,7 @@ msgstr ""
"和<classname>Gdk::Cursor</classname>类现在通过<classname>Glib::RefPtr</"
"classname>使用。"
-#: C/index-in.docbook:675
+#: C/index-in.docbook:683
msgid ""
"<classname>Gtk::Box</classname>, <classname>Gtk::ButtonBox</classname>, "
"<classname>Gtk::IconView</classname>, <classname>Gtk::Paned</classname>, "
@@ -1527,7 +1526,7 @@ msgstr ""
"不使用派生类(例如<classname>Gtk::HBox</classname>)的情况指定其方向(垂直或者水"
"平)。"
-#: C/index-in.docbook:678
+#: C/index-in.docbook:686
msgid ""
"<classname>Gtk::IconView</classname>, <classname>Gtk::TextView</classname>, "
"<classname>Gtk::TreeView</classname> and other widgets derive from "
@@ -1540,7 +1539,7 @@ msgstr ""
"己的方法,例如<methodname>get_vadjustment()</methodname>拥有自己的"
"set_scroll_adjustments信号。"
-#: C/index-in.docbook:680
+#: C/index-in.docbook:688
msgid ""
"<classname>Gtk::Style</classname> and <classname>Gtk::Rc</classname> were "
"removed, replaced by <classname>Gtk::StyleContext</classname>, and "
@@ -1551,7 +1550,7 @@ msgstr ""
"<classname>Gtk::StyleContext</classname>和<classname>Gtk::StyleProvider</"
"classname>替换,例如<classname>Gtk::CssProvider</classname>。"
-#: C/index-in.docbook:682
+#: C/index-in.docbook:690
msgid ""
"Widget::on_expose_event() was replaced by Widget::on_draw(), which assumes "
"that cairomm is used for drawing, via the provided <classname>Cairo::"
@@ -1562,7 +1561,7 @@ msgstr ""
"<classname>Cairo::Context</classname>使用cairomm进行绘制,并且不需要你自己调"
"用<methodname>Cairo::Context::clip()</methodname>。"
-#: C/index-in.docbook:684
+#: C/index-in.docbook:692
msgid ""
"<classname>Gdk::RGBA</classname> replaces <classname>Color</classname>, "
"adding an alpha component for opacity. <classname>Colormap</classname> was "
@@ -1572,7 +1571,7 @@ msgstr ""
"分量以支持透明度。<classname>Colormap</classname>与其笨拙的颜色分配方式一并被"
"删除。"
-#: C/index-in.docbook:686
+#: C/index-in.docbook:694
msgid ""
"<classname>Gdk::Pixmap</classname> and <classname>Gdk::Bitmap</classname> "
"were removed in favour of <classname>Gdk::Pixbuf</classname>."
@@ -1580,7 +1579,7 @@ msgstr ""
"<classname>Gdk::Pixmap</classname>和<classname>Gdk::Bitmap</classname>现在被"
"<classname>Gdk::Pixbuf</classname>所取代。"
-#: C/index-in.docbook:688
+#: C/index-in.docbook:696
msgid ""
"<classname>Gdk::Drawable</classname> was removed, with its methods moving "
"into <classname>Gdk::Window</classname>."
@@ -1588,13 +1587,13 @@ msgstr ""
"<classname>Gdk::Drawable</classname>被删除,与其有关的方法被移动到了"
"<classname>Gdk::Window</classname>。"
-#: C/index-in.docbook:690
+#: C/index-in.docbook:698
msgid ""
"We now use std::vector in several methods instead of the intermediate "
"*Handle types to make the API clearer."
msgstr "我们现在使用std::vector而不是使用中间类型(*Handle)以使API更加的清晰。"
-#: C/index-in.docbook:695
+#: C/index-in.docbook:703
msgid ""
"All deprecated API was removed in <application>gtkmm</application> 3.0, "
"though there have been new deprecations in later <application>gtkmm</"
@@ -1603,7 +1602,7 @@ msgstr ""
"在<application>gtkmm</application> 3.0中我们删除了所有弃用的API,尽管在"
"<application>gtkmm</application> 3.x版本中出现了新的被弃用的API。"
-#: C/index-in.docbook:697
+#: C/index-in.docbook:705
msgid ""
"As a first step to porting your source code to <application>gtkmm</"
"application>-3.0 you should probably ensure that your application builds "
@@ -1619,7 +1618,7 @@ msgstr ""
"你通过构建。访问<ulink url=\"https://wiki.gnome.org/Projects/gtkmm/"
"PortingToGtkmm3\">gtkmm3移植Wiki</ulink>了解更多详情。"
-#: C/index-in.docbook:702
+#: C/index-in.docbook:710
msgid ""
"Changes in <application>gtkmm</application>-4.0 and "
"<application>glibmm-2.68</application>"
@@ -1627,7 +1626,7 @@ msgstr ""
"<application>gtkmm</application>-4.0和<application>glibmm-2.68</application>"
"中的变更。"
-#: C/index-in.docbook:704
+#: C/index-in.docbook:712
msgid ""
"<application>gtkmm</application>-4.0 is a new version of the "
"<application>gtkmm</application> API that installs in parallel with the "
@@ -1648,7 +1647,7 @@ msgstr ""
"本性的区别,虽然有些变更但是保持了二进制兼容。如果你从未使用过"
"<application>gtkmm</application>-3.0 API则你可以放心的忽略本章。"
-#: C/index-in.docbook:712
+#: C/index-in.docbook:720
msgid ""
"<application>gtkmm</application> 4's library is called "
"<literal>libgtkmm-4.0</literal> rather than <literal>libgtkmm-3.0</literal> "
@@ -1661,7 +1660,7 @@ msgstr ""
"<application>pkg-config</application>应该检索<literal>gtkmm-4.0</literal>而不"
"是<literal>gtkmm-3.0</literal>。"
-#: C/index-in.docbook:718
+#: C/index-in.docbook:726
msgid ""
"<application>gtkmm</application>-4.0 is used in combination with "
"<application>glibmm-2.68</application>, which sets the global locale for "
@@ -1687,7 +1686,7 @@ msgstr ""
"create()</methodname>方法之前添加对<function>Glib::"
"set_init_to_users_preferred_locale(false)</function>的调用。"
-#: C/index-in.docbook:728
+#: C/index-in.docbook:736
msgid ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/namespaceGlib.html"
"\">Reference</ulink>"
@@ -1695,7 +1694,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/namespaceGlib.html\">"
"参考</ulink>"
-#: C/index-in.docbook:730
+#: C/index-in.docbook:738
msgid ""
"There are lots and lots of differences between <application>gtkmm</"
"application>-3.0 and <application>gtkmm</application>-4.0. The following "
@@ -1704,7 +1703,7 @@ msgstr ""
"<application>gtkmm</application>-3.0和<application>gtkmm</application>-4.0之"
"间有很多不同之处。以下是不完整的列表。"
-#: C/index-in.docbook:733
+#: C/index-in.docbook:741
msgid ""
"Some new classes were added in <application>gtkmm</application> 4 and "
"<application>glibmm</application> 2.68:"
@@ -1712,7 +1711,7 @@ msgstr ""
"在<application>gtkmm</application> 4和<application>glibmm</application> 2.68"
"中添加了一些新的类:"
-#: C/index-in.docbook:736
+#: C/index-in.docbook:744
msgid ""
"<classname>Glib::ExtraClassInit</classname> and <classname>Gtk::Snapshot</"
"classname>: These classes are needed only for writing custom widgets. See "
@@ -1722,7 +1721,7 @@ msgstr ""
"classname>:这些类只用于编写自定义的窗口小部件。参见<link linkend=\"sec-"
"custom-widgets\">自定义部件</link>小节。"
-#: C/index-in.docbook:739
+#: C/index-in.docbook:747
msgid ""
"<classname>Gtk::EventControllerKey</classname>, <classname>Gtk::"
"EventControllerMotion</classname>, <classname>Gtk::EventControllerScroll</"
@@ -1732,7 +1731,7 @@ msgstr ""
"EventControllerMotion</classname>, <classname>Gtk::EventControllerScroll</"
"classname>和<classname>Gtk::GestureStylus</classname>"
-#: C/index-in.docbook:742
+#: C/index-in.docbook:750
msgid ""
"<classname>Gdk::Paintable</classname>, <classname>Gdk::Texture</classname>, "
"<classname>Gtk::Picture</classname> and <classname>Gtk::WidgetPaintable</"
@@ -1742,7 +1741,7 @@ msgstr ""
"<classname>Gtk::Picture</classname>和<classname>Gtk::WidgetPaintable</"
"classname>"
-#: C/index-in.docbook:745
+#: C/index-in.docbook:753
msgid ""
"<classname>Gdk::Window</classname> has been renamed to <classname>Gdk::"
"Surface</classname>. (<classname>Gtk::Window</classname> keeps its name.)"
@@ -1750,7 +1749,7 @@ msgstr ""
"<classname>Gdk::Window</classname>被重命名为<classname>Gdk::Surface</"
"classname>(<classname>Gtk::Window</classname>名称保持不变)。"
-#: C/index-in.docbook:747
+#: C/index-in.docbook:755
msgid ""
"<classname>Gdk::DrawContext</classname> and <classname>Gdk::CairoContext</"
"classname> are new. <classname>Gdk::DrawingContext</classname> has been "
@@ -1760,7 +1759,7 @@ msgstr ""
"CairoContext</classname>。<classname>Gdk::DrawingContext</classname>已被删"
"除。"
-#: C/index-in.docbook:749
+#: C/index-in.docbook:757
msgid ""
"<classname>Gtk::Clipboard</classname> has been replaced by the new "
"<classname>Gdk::Clipboard</classname>."
@@ -1768,7 +1767,7 @@ msgstr ""
"<classname>Gtk::Clipboard</classname>被新的<classname>Gdk::Clipboard</"
"classname>替换。"
-#: C/index-in.docbook:751
+#: C/index-in.docbook:759
msgid ""
"<classname>Gdk::DragContext</classname> has been split into <classname>Gdk::"
"Drag</classname> and <classname>Gdk::Drop</classname>."
@@ -1776,7 +1775,7 @@ msgstr ""
"<classname>Gdk::DragContext</classname>现在被拆分为<classname>Gdk::Drag</"
"classname>和<classname>Gdk::Drop</classname>。"
-#: C/index-in.docbook:755
+#: C/index-in.docbook:763
msgid ""
"There have also been several changes to the API, which you will probably "
"encounter when porting code that used <application>gtkmm</application>-3.0 "
@@ -1786,11 +1785,11 @@ msgstr ""
"<application>glibmm</application>-2.4代码时你可能会遇到这些更改。以下是一个简"
"短的变更列表:"
-#: C/index-in.docbook:760
+#: C/index-in.docbook:768
msgid "A C++17 compiler is required."
msgstr "需要支持C++17的编译器"
-#: C/index-in.docbook:761
+#: C/index-in.docbook:769
msgid ""
"<classname>Gtk::Button</classname>, <classname>Gtk::ToolButton</classname>, "
"<classname>Gtk::MenuItem</classname> and <classname>Gtk::Switch</classname> "
@@ -1802,7 +1801,7 @@ msgstr ""
"了<classname>Gtk::Actionable</classname>接口而不是已被删除的<classname>Gtk::"
"Activatable</classname>接口。"
-#: C/index-in.docbook:765
+#: C/index-in.docbook:773
msgid ""
"<classname>Gtk::FontButton</classname> implements the <classname>Gtk::"
"FontChooser</classname> interface."
@@ -1810,7 +1809,7 @@ msgstr ""
"<classname>Gtk::FontButton</classname>实现了<classname>Gtk::FontChooser</"
"classname>接口。"
-#: C/index-in.docbook:766
+#: C/index-in.docbook:774
msgid ""
"<classname>Gtk::Widget</classname>: The <methodname>get_preferred_*_vfunc()</"
"methodname>s have been replaced by <methodname>measure_vfunc()</methodname>. "
@@ -1820,7 +1819,7 @@ msgstr ""
"methodname>方法已被<methodname>measure_vfunc()</methodname>方法替代。此变更只"
"影响自定义部件。"
-#: C/index-in.docbook:769
+#: C/index-in.docbook:777
msgid ""
"<classname>sigc::slot</classname>s use the <classname>sigc::slot<"
"R(Args...)></classname> syntax. Example: <classname>sigc::slot<"
@@ -1831,13 +1830,13 @@ msgstr ""
"</classname>语法。 例如: <classname>sigc::slot<void(int, int)></"
"classname>而不是使用<classname>sigc::slot<void, int, int></classname>。"
-#: C/index-in.docbook:771
+#: C/index-in.docbook:779
msgid ""
"<classname>Gtk::DrawingArea</classname> uses a draw function instead of the "
"draw signal."
msgstr "<classname>Gtk::DrawingArea</classname>使用绘制函数替代绘制信号。"
-#: C/index-in.docbook:772
+#: C/index-in.docbook:780
msgid ""
"<classname>Glib::ArrayHandle</classname>, <classname>Glib::"
"StringArrayHandle</classname>, <classname>Glib::ListHandle</classname> and "
@@ -1854,11 +1853,11 @@ msgstr ""
"application>-3.0并未使用他们。如果你曾经使用过他们,则将他们替换为标准C++容"
"器,例如<classname>std::vector</classname>。"
-#: C/index-in.docbook:776
+#: C/index-in.docbook:784
msgid "<classname>Gtk::Container</classname> has been removed."
msgstr "<classname>Gtk::Container</classname>已被删除。"
-#: C/index-in.docbook:777
+#: C/index-in.docbook:785
msgid ""
"<methodname>Gtk::Widget::show_all()</methodname> has been removed. The "
"default value of <methodname>Gtk::Widget::property_visible()</methodname>has "
@@ -1868,7 +1867,7 @@ msgstr ""
"Widget::property_visible()</methodname>的默认值从<literal>false</literal>改为"
"<literal>true</literal>。"
-#: C/index-in.docbook:780
+#: C/index-in.docbook:788
msgid ""
"All event signals have been removed from <classname>Gtk::Widget</classname>. "
"In most cases you can use one of the subclasses of <classname>Gtk::"
@@ -1888,7 +1887,7 @@ msgstr ""
"EventControllerKey</classname>替代<methodname>signal_key_press_event()</"
"methodname>和<methodname>signal_key_release_event()</methodname>。"
-#: C/index-in.docbook:787
+#: C/index-in.docbook:795
msgid ""
"<classname>Glib::RefPtr</classname> is an alias for <classname>std::"
"shared_ptr</classname>. If you make your own <classname>Glib::ObjectBase</"
@@ -1903,7 +1902,7 @@ msgstr ""
"ObjectBase</classname>的类,则你必须在你的<methodname>create()</methodname>方"
"法中调用<methodname>Glib::make_refptr_for_instance()</methodname>。"
-#: C/index-in.docbook:792
+#: C/index-in.docbook:800
msgid ""
"<methodname>Gtk::Box::pack_start()</methodname> and <methodname>Gtk::Box::"
"pack_end()</methodname> have been removed. Use the new <classname>Gtk::Box</"
@@ -1917,11 +1916,11 @@ msgstr ""
"<methodname>insert_child_after()</methodname>和"
"<methodname>insert_child_at_start()</methodname>方法。"
-#: C/index-in.docbook:797
+#: C/index-in.docbook:805
msgid "<classname>Gtk::ButtonBox</classname> has been removed."
msgstr "<classname>Gtk::ButtonBox</classname>已被删除"
-#: C/index-in.docbook:798
+#: C/index-in.docbook:806
msgid ""
"<classname>Gtk::RadioButton</classname> and <classname>Gtk::"
"RadioButtonGroup</classname> have been removed. Use <classname>Gtk::"
@@ -1933,7 +1932,7 @@ msgstr ""
"<classname>Gtk::ToggleButton</classname>的<methodname>set_group()</"
"methodname>。"
-#: C/index-in.docbook:804
+#: C/index-in.docbook:812
msgid ""
"All deprecated API was removed in <application>gtkmm</application> 4.0 and "
"<application>glibmm</application> 2.68, though there will be new "
@@ -1942,7 +1941,7 @@ msgstr ""
"<application>gtkmm</application>和<application>glibmm</application> 2.68移除"
"了所有之前标记为弃用的API,未来还会有新的API被标记为弃用。"
-#: C/index-in.docbook:807
+#: C/index-in.docbook:815
msgid ""
"As a first step to porting your source code to <application>gtkmm</"
"application>-4.0 you should probably ensure that your application builds "
@@ -1962,7 +1961,7 @@ msgstr ""
"在编译时定义他们。更多有关详情请参见<ulink url=\"https://wiki.gnome.org/"
"Projects/gtkmm/PortingToGtkmm3\">从gtkmm-2.4迁移到gtkmm-3.0</ulink>Wiki页面。"
-#: C/index-in.docbook:815
+#: C/index-in.docbook:823
msgid ""
"See also <ulink url=\"https://developer.gnome.org/gtk4/unstable/gtk-"
"migrating-3-to-4.html\"> Migrating from GTK 3.x to GTK 4</ulink>."
@@ -1970,19 +1969,19 @@ msgstr ""
"另请参见<ulink url=\"https://developer.gnome.org/gtk4/unstable/gtk-"
"migrating-3-to-4.html\">从GTK3.X迁移到GTK 4</ulink>。"
-#: C/index-in.docbook:821
+#: C/index-in.docbook:829
msgid "Buttons"
msgstr "按钮(Buttons)"
-#: C/index-in.docbook:823
+#: C/index-in.docbook:831
msgid "<application>gtkmm</application> provides four basic types of buttons:"
msgstr "<application>gtkmm</application> 提供以下四种基本按钮控件:"
-#: C/index-in.docbook:830
+#: C/index-in.docbook:838
msgid "Push buttons"
msgstr "按钮类"
-#: C/index-in.docbook:832
+#: C/index-in.docbook:840
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Button."
"html\"><classname>Gtk::Button</classname></ulink>. Standard buttons, usually "
@@ -1994,11 +1993,11 @@ msgstr ""
"标签或者图片。按一下就会触发一个动作。参看 <link linkend=\"sec-pushbuttons"
"\">Button</link> 小节。"
-#: C/index-in.docbook:839
+#: C/index-in.docbook:847
msgid "Toggle buttons"
msgstr "开关按钮(ToggleButton)"
-#: C/index-in.docbook:841
+#: C/index-in.docbook:849
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ToggleButton.html\"><classname>Gtk::ToggleButton</classname></"
@@ -2012,11 +2011,11 @@ msgstr ""
"起。它作为一个开关可能比较有用。参看 <link linkend=\"sec-toggle-buttons"
"\">ToggleButton</link> 小节。"
-#: C/index-in.docbook:849
+#: C/index-in.docbook:857
msgid "Check buttons"
msgstr "复选按钮(CheckButtons)"
-#: C/index-in.docbook:851
+#: C/index-in.docbook:859
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1CheckButton.html\"><classname>Gtk::CheckButton</classname></"
@@ -2031,11 +2030,11 @@ msgstr ""
"态,而且旁边还有一个文字标签。在大多数需要布尔值设置的情况都可以使用它。参看 "
"<link linkend=\"sec-checkbuttons\">CheckButton</link> 小节。"
-#: C/index-in.docbook:861
+#: C/index-in.docbook:869
msgid "Radio buttons"
msgstr "单选按钮(RadioButton)"
-#: C/index-in.docbook:863
+#: C/index-in.docbook:871
msgid ""
"Named after the station selectors on old car radios, these buttons are used "
"in groups for options which are mutually exclusive. Pressing one causes all "
@@ -2051,7 +2050,7 @@ msgstr ""
"的单选按钮类。复选按钮和开关按钮可以充当单选按钮。参见<link linkend=\"sec-"
"radio-buttons\">RadioButton</link> 小节。"
-#: C/index-in.docbook:877
+#: C/index-in.docbook:885
msgid ""
"Note that, due to GTK's theming system, the appearance of these widgets will "
"vary. In the case of check buttons and radio buttons, they may vary "
@@ -2060,11 +2059,11 @@ msgstr ""
"请注意,由于GTK的主题不同,这些控件外观可能会不同。特别是复选按钮和单选按钮可"
"能会很不一样。"
-#: C/index-in.docbook:884
+#: C/index-in.docbook:892
msgid "Button"
msgstr "按钮(Button)"
-#: C/index-in.docbook:886
+#: C/index-in.docbook:894
msgid ""
"There are two ways to create a Button. You can specify a label string in the "
"<classname>Gtk::Button</classname> constructor, or set it later with "
@@ -2074,7 +2073,7 @@ msgstr ""
"函数中指定标签字符串,或者以后调用 <methodname>set_label()</methodname> 来指"
"定标签。"
-#: C/index-in.docbook:892
+#: C/index-in.docbook:900
msgid ""
"To define an accelerator key for keyboard navigation, place an underscore "
"before one of the label's characters and specify <literal>true</literal> for "
@@ -2083,12 +2082,12 @@ msgstr ""
"如果你想为按钮定义一个快捷键,那么可以在标签字符串中的某个字符前面加上一个下"
"划线,并且指定可选的参数助记符(mnemonic)为 true。例如:"
-#: C/index-in.docbook:894
+#: C/index-in.docbook:902
#, no-wrap
msgid "Gtk::Button* pButton = new Gtk::Button(\"_Something\", true);"
msgstr "Gtk::Button* pButton = new Gtk::Button(\"_Something\", true);"
-#: C/index-in.docbook:896
+#: C/index-in.docbook:904
msgid ""
"<classname>Gtk::Button</classname> is also a container so you could put any "
"other widget, such as a <classname>Gtk::Image</classname> into it."
@@ -2096,7 +2095,7 @@ msgstr ""
"<classname>Gtk::Button</classname> 同时也是一个容器,因此你可以在其中放任何其"
"它的部件,比如放一个 <classname>Gtk::Image</classname> 在里面。"
-#: C/index-in.docbook:902
+#: C/index-in.docbook:910
msgid ""
"The <classname>Gtk::Button</classname> widget has the <literal>clicked</"
"literal> signal which is emitted when the button is pressed and released."
@@ -2104,7 +2103,7 @@ msgstr ""
"<classname>Gtk::Button</classname>部件具有<literal>clicked</literal>信号,当"
"按下或释放按钮时将会发出该信号。"
-#: C/index-in.docbook:907
+#: C/index-in.docbook:915
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Button."
"html\">Reference</ulink>"
@@ -2112,31 +2111,31 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Button."
"html\">参考</ulink>"
-#: C/index-in.docbook:909 C/index-in.docbook:962 C/index-in.docbook:1019
-#: C/index-in.docbook:1137 C/index-in.docbook:1194 C/index-in.docbook:1502
-#: C/index-in.docbook:1567 C/index-in.docbook:1591 C/index-in.docbook:1621
-#: C/index-in.docbook:1676 C/index-in.docbook:1716 C/index-in.docbook:1757
-#: C/index-in.docbook:1791 C/index-in.docbook:2077 C/index-in.docbook:2107
-#: C/index-in.docbook:2161 C/index-in.docbook:2201 C/index-in.docbook:3874
-#: C/index-in.docbook:3901 C/index-in.docbook:3924 C/index-in.docbook:3948
-#: C/index-in.docbook:3980 C/index-in.docbook:4158 C/index-in.docbook:4304
-#: C/index-in.docbook:4379 C/index-in.docbook:4451 C/index-in.docbook:4516
-#: C/index-in.docbook:4753 C/index-in.docbook:5257 C/index-in.docbook:5563
-#: C/index-in.docbook:5612 C/index-in.docbook:6191 C/index-in.docbook:6311
-#: C/index-in.docbook:6941 C/index-in.docbook:7014 C/index-in.docbook:7240
-#: C/index-in.docbook:8675
+#: C/index-in.docbook:917 C/index-in.docbook:970 C/index-in.docbook:1027
+#: C/index-in.docbook:1145 C/index-in.docbook:1202 C/index-in.docbook:1510
+#: C/index-in.docbook:1575 C/index-in.docbook:1599 C/index-in.docbook:1629
+#: C/index-in.docbook:1684 C/index-in.docbook:1724 C/index-in.docbook:1765
+#: C/index-in.docbook:1799 C/index-in.docbook:2085 C/index-in.docbook:2115
+#: C/index-in.docbook:2169 C/index-in.docbook:2209 C/index-in.docbook:3882
+#: C/index-in.docbook:3909 C/index-in.docbook:3932 C/index-in.docbook:3956
+#: C/index-in.docbook:3988 C/index-in.docbook:4166 C/index-in.docbook:4312
+#: C/index-in.docbook:4386 C/index-in.docbook:4458 C/index-in.docbook:4523
+#: C/index-in.docbook:4760 C/index-in.docbook:5260 C/index-in.docbook:5566
+#: C/index-in.docbook:5615 C/index-in.docbook:6178 C/index-in.docbook:6298
+#: C/index-in.docbook:6928 C/index-in.docbook:7001 C/index-in.docbook:7227
+#: C/index-in.docbook:8631
msgid "Example"
msgstr "示例"
-#: C/index-in.docbook:911
+#: C/index-in.docbook:919
msgid "This example creates a button with a picture and a label."
msgstr "这个示例创建了一个有图片和文字标签的按钮。"
-#: C/index-in.docbook:916
+#: C/index-in.docbook:924
msgid "buttons example"
msgstr "按钮示例"
-#: C/index-in.docbook:922
+#: C/index-in.docbook:930
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buttons/button\">Source Code</ulink>"
@@ -2144,11 +2143,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buttons/button\">源代码</ulink>"
-#: C/index-in.docbook:929
+#: C/index-in.docbook:937
msgid "ToggleButton"
msgstr "开关按钮(ToggleButton)"
-#: C/index-in.docbook:931
+#: C/index-in.docbook:939
msgid ""
"<classname>ToggleButton</classname>s are like normal <classname>Button</"
"classname>s, but when clicked they remain activated, or pressed, until "
@@ -2157,7 +2156,7 @@ msgstr ""
"<classname>ToggleButton</classname> 和普通的 <classname>Button</classname> 相"
"似,但是它们在点击后会保持激活(或称为按下的)状态,直到再次点击它为止。"
-#: C/index-in.docbook:933
+#: C/index-in.docbook:941
msgid ""
"To retrieve the state of the <classname>ToggleButton</classname>, you can "
"use the <methodname>get_active()</methodname> method. This returns "
@@ -2172,7 +2171,7 @@ msgstr ""
"请注意,如果你这样做了,并且它的状态的确改变了,那么这将会引发“clicked”信号。"
"当然,一般来说,这就是你希望看到的结果。"
-#: C/index-in.docbook:940
+#: C/index-in.docbook:948
msgid ""
"You can use the <methodname>toggled()</methodname> method to toggle the "
"button, rather than forcing it to be up or down: This switches the button's "
@@ -2182,7 +2181,7 @@ msgstr ""
"行的是设置它是开还是关:这个方法将会改变按钮的状态,并会引发 "
"<literal>toggled</literal> 信号。"
-#: C/index-in.docbook:945
+#: C/index-in.docbook:953
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ToggleButton.html\">Reference</ulink>"
@@ -2190,11 +2189,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ToggleButton.html\">参考</ulink>"
-#: C/index-in.docbook:950 C/index-in.docbook:965
+#: C/index-in.docbook:958 C/index-in.docbook:973
msgid "CheckButton"
msgstr "多选按钮(CheckButton)"
-#: C/index-in.docbook:952
+#: C/index-in.docbook:960
msgid ""
"<classname>Gtk::CheckButton</classname> inherits directly from "
"<classname>Gtk::Widget</classname>. It is similar to <classname>Gtk::"
@@ -2208,7 +2207,7 @@ msgstr ""
"同。因此你可以像<classname>Gtk::ToggleButton</classname>一样使用同样的方法来"
"检查、设置和转换多选按钮的状态。"
-#: C/index-in.docbook:960
+#: C/index-in.docbook:968
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1CheckButton.html\">Reference</ulink>"
@@ -2216,7 +2215,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1CheckButton.html\">参考</ulink>"
-#: C/index-in.docbook:971
+#: C/index-in.docbook:979
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buttons/checkbutton\">Source Code</ulink>"
@@ -2224,11 +2223,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buttons/checkbutton\">源代码</ulink>"
-#: C/index-in.docbook:977
+#: C/index-in.docbook:985
msgid "Radio Button"
msgstr "单选按钮(RadioButton)"
-#: C/index-in.docbook:979
+#: C/index-in.docbook:987
msgid ""
"There is no separate class for radio buttons. Check buttons and toggle "
"buttons act as radio buttons when they form a group. Only one button in a "
@@ -2237,11 +2236,11 @@ msgstr ""
"单选按钮没有单独的类。当复选按钮和开关按钮在一个组中的时候它们充当单选按钮。"
"任何时候只能选择一个组中的一个按钮。"
-#: C/index-in.docbook:985
+#: C/index-in.docbook:993
msgid "Groups"
msgstr "组"
-#: C/index-in.docbook:986
+#: C/index-in.docbook:994
msgid ""
"You create the buttons, and set up their group afterwards. In the following "
"example, we put 3 radio buttons in a group:"
@@ -2249,7 +2248,7 @@ msgstr ""
"你创建了三个按钮,然后为他们设置了组。在下面的例子中,我们将三个单选按钮放入"
"一个组中。"
-#: C/index-in.docbook:991
+#: C/index-in.docbook:999
#, no-wrap
msgid ""
"\n"
@@ -2266,7 +2265,7 @@ msgstr ""
"rb2->set_group(*rb1);\n"
"rb3->set_group(*rb1);\n"
-#: C/index-in.docbook:999
+#: C/index-in.docbook:1007
msgid ""
"We told <application>gtkmm</application> to put all three "
"<classname>CheckButton</classname>s in the same group by using "
@@ -2280,11 +2279,11 @@ msgstr ""
"<classname>CheckButton</classname>与第一个<classname>CheckButton</classname>"
"共享这个组。"
-#: C/index-in.docbook:1008 C/index-in.docbook:1464 C/index-in.docbook:4627
+#: C/index-in.docbook:1016 C/index-in.docbook:1472 C/index-in.docbook:4634
msgid "Methods"
msgstr "方法"
-#: C/index-in.docbook:1009
+#: C/index-in.docbook:1017
msgid ""
"<classname>CheckButton</classname>s and <classname>ToggleButton</classname>s "
"are \"off\" when created; this means that when you first make a group of "
@@ -2295,7 +2294,7 @@ msgstr ""
"后默认是未选中的,也就是说当你第一次创建一组单选按钮的时候,它们都会是未选中"
"的。所以别忘了使用<methodname>set_active()</methodname>来选中一个。"
-#: C/index-in.docbook:1015
+#: C/index-in.docbook:1023
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1RadioButton.html\">Reference</ulink>"
@@ -2303,18 +2302,18 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1RadioButton.html\">参考</ulink>"
-#: C/index-in.docbook:1020
+#: C/index-in.docbook:1028
msgid ""
"The following example demonstrates the use of grouped "
"<classname>CheckButton</classname>s:"
msgstr ""
"接下来的例子中演示了对<classname>CheckButton</classname>进行分组的用法:"
-#: C/index-in.docbook:1026
+#: C/index-in.docbook:1034
msgid "RadioButton"
msgstr "单选按钮(RadioButton)"
-#: C/index-in.docbook:1032
+#: C/index-in.docbook:1040
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buttons/radiobutton\">Source Code</ulink>"
@@ -2322,11 +2321,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buttons/radiobutton\">源代码</ulink>"
-#: C/index-in.docbook:1042 C/index-in.docbook:1148
+#: C/index-in.docbook:1050 C/index-in.docbook:1156
msgid "Range Widgets"
msgstr "范围(Range)部件"
-#: C/index-in.docbook:1044
+#: C/index-in.docbook:1052
msgid ""
"<classname>Gtk::Scale</classname> and <classname>Gtk::Scrollbar</classname> "
"both inherit from <classname>Gtk::Range</classname> and share much "
@@ -2344,7 +2343,7 @@ msgstr ""
"击的位置移动,可能是移动到终点,也可能是移动一段距离,这取决于你用的是鼠标的"
"哪个按键。这和滚动条的行为很类似。"
-#: C/index-in.docbook:1055
+#: C/index-in.docbook:1063
msgid ""
"As will be explained in the <link linkend=\"chapter-adjustment"
"\">Adjustments</link> section, all Range widgets are associated with an "
@@ -2368,7 +2367,7 @@ msgstr ""
"而且还可以和其它部件共享。请参看 <link linkend=\"chapter-adjustment\">调整</"
"link>部分以得到更详细的信息。"
-#: C/index-in.docbook:1069
+#: C/index-in.docbook:1077
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Range.html"
"\">Reference</ulink>"
@@ -2376,11 +2375,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Range.html"
"\">参考</ulink>"
-#: C/index-in.docbook:1072
+#: C/index-in.docbook:1080
msgid "Scrollbar Widgets"
msgstr "滚动条部件 (Scrollbar)"
-#: C/index-in.docbook:1074
+#: C/index-in.docbook:1082
msgid ""
"These are standard scrollbars. They should be used only to scroll another "
"widget, such as a <classname>Gtk::Entry</classname> or a <classname>Gtk::"
@@ -2391,14 +2390,14 @@ msgstr ""
"Entry</classname> 或 <classname>Gtk::Viewport</classname>,当然,通常使用 "
"<classname>Gtk::ScrolledWindow</classname> 会更容易一些。"
-#: C/index-in.docbook:1081
+#: C/index-in.docbook:1089
msgid ""
"The orientation of a <classname>Gtk::Scrollbar</classname> can be either "
"horizontal or vertical."
msgstr ""
"<classname>Gtk::Scrollbar</classname>的方向可以是水平的也可以是垂直的。"
-#: C/index-in.docbook:1086
+#: C/index-in.docbook:1094
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scrollbar."
"html\">Reference</ulink>"
@@ -2406,11 +2405,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scrollbar."
"html\">参考</ulink>"
-#: C/index-in.docbook:1091
+#: C/index-in.docbook:1099
msgid "Scale Widgets"
msgstr "比例部件 (Scale)"
-#: C/index-in.docbook:1093
+#: C/index-in.docbook:1101
msgid ""
"<classname>Gtk::Scale</classname> widgets (or \"sliders\") allow the user to "
"visually select and manipulate a value within a specific range. You might "
@@ -2422,7 +2421,7 @@ msgstr ""
"直观地调节它的值。例如,你可以用它来调节一副预览图片的放大率、或者控制颜色的"
"亮度,或者指定多少分钟后执行屏幕保护。"
-#: C/index-in.docbook:1102
+#: C/index-in.docbook:1110
msgid ""
"As with <classname>Scrollbar</classname>s, the orientation can be either "
"horizontal or vertical. The default constructor creates an "
@@ -2435,11 +2434,11 @@ msgstr ""
"<literal>0.0</literal>。当然,这显然没有意义,所以你需要设置一些 "
"<classname>Adjustment</classname> 的细节来让它获得有意义的行为。"
-#: C/index-in.docbook:1111
+#: C/index-in.docbook:1119
msgid "Useful methods"
msgstr "一些有用的方法"
-#: C/index-in.docbook:1113
+#: C/index-in.docbook:1121
msgid ""
"<classname>Scale</classname> widgets can display their current value as a "
"number next to the trough. By default they show the value, but you can "
@@ -2449,7 +2448,7 @@ msgstr ""
"个数值的,但是你可以通过调用 <methodname>set_draw_value()</methodname> 方法来"
"设置是否显示该值。"
-#: C/index-in.docbook:1119
+#: C/index-in.docbook:1127
msgid ""
"The value displayed by a scale widget is rounded to one decimal point by "
"default, as is the <literal>value</literal> field in its <classname>Gtk::"
@@ -2460,7 +2459,7 @@ msgstr ""
"<literal>value</literal> 的数值,并且会被四舍五入到一位小数。你可以通过 "
"<methodname>set_digits()</methodname> 方法来改变显示的小数位数。"
-#: C/index-in.docbook:1126
+#: C/index-in.docbook:1134
msgid ""
"Also, the value can be drawn in different positions relative to the trough, "
"specified by the <methodname>set_value_pos()</methodname> method."
@@ -2468,7 +2467,7 @@ msgstr ""
"另外,通过使用 <methodname>set_value_pos()</methodname>,可以使值显示在相对于"
"滑块不同的位置。"
-#: C/index-in.docbook:1131
+#: C/index-in.docbook:1139
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scale.html"
"\">Reference</ulink>"
@@ -2476,7 +2475,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Scale.html"
"\">参考</ulink>"
-#: C/index-in.docbook:1139
+#: C/index-in.docbook:1147
msgid ""
"This example displays a window with three range widgets all connected to the "
"same adjustment, along with a couple of controls for adjusting some of the "
@@ -2487,7 +2486,7 @@ msgstr ""
"调整前文讨论过的一些参数,这样你可以很清楚地看到那些参数是如何影响这些部件的"
"行为方式的。"
-#: C/index-in.docbook:1154
+#: C/index-in.docbook:1162
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/range_widgets\">Source Code</ulink>"
@@ -2495,15 +2494,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/range_widgets\">源代码</ulink>"
-#: C/index-in.docbook:1161
+#: C/index-in.docbook:1169
msgid "Miscellaneous Widgets"
msgstr "杂项部件"
-#: C/index-in.docbook:1164 C/index-in.docbook:1204
+#: C/index-in.docbook:1172 C/index-in.docbook:1212
msgid "Label"
msgstr "标签(Label)"
-#: C/index-in.docbook:1166
+#: C/index-in.docbook:1174
msgid ""
"Labels are the main method of placing non-editable text in windows, for "
"instance to place a title next to an <classname>Entry</classname> widget. "
@@ -2516,7 +2515,7 @@ msgstr ""
"稍后调用<methodname>set_text()</methodname>或<methodname>set_markup()</"
"methodname>方法设置想要显示的文本。"
-#: C/index-in.docbook:1173
+#: C/index-in.docbook:1181
msgid ""
"The width of the label will be adjusted automatically. You can produce multi-"
"line labels by putting line breaks (\"\\n\") in the label string."
@@ -2524,7 +2523,7 @@ msgstr ""
"标签会自动调整宽度。你也可以通过在标签锁显示的字符串中放置换行符(\"\\n\")来生"
"成多行标签。"
-#: C/index-in.docbook:1177
+#: C/index-in.docbook:1185
msgid ""
"The label text can be justified using the <methodname>set_justify()</"
"methodname> method. The widget is also capable of word-wrapping, which can "
@@ -2534,7 +2533,7 @@ msgstr ""
"还具有自动换行功能,你可以使用<methodname>set_line_wrap()</methodname>激活"
"它。"
-#: C/index-in.docbook:1183
+#: C/index-in.docbook:1191
msgid ""
"Gtk::Label supports some simple formatting, for instance allowing you to "
"make some text bold, colored, or larger. You can do this by providing a "
@@ -2548,7 +2547,7 @@ msgstr ""
"PangoMarkupFormat.html\">Pango 标记语法</ulink>。例如, <code> <b>bold "
"text</b> and <s>strikethrough text</s> </code> 。"
-#: C/index-in.docbook:1192
+#: C/index-in.docbook:1200
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Label.html"
"\">Reference</ulink>"
@@ -2556,7 +2555,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Label.html"
"\">参考</ulink>"
-#: C/index-in.docbook:1195
+#: C/index-in.docbook:1203
msgid ""
"Below is a short example to illustrate these functions. This example makes "
"use of the Frame widget to better demonstrate the label styles. (The Frame "
@@ -2570,7 +2569,7 @@ msgstr ""
"link>)仅当你按<keycap>Alt</keycap>键时,<literal>m_Label_Normal</literal>的第"
"一个字符才显示为下划线的样式。"
-#: C/index-in.docbook:1210
+#: C/index-in.docbook:1218
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/label\">Source Code</ulink>"
@@ -2578,15 +2577,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/label\">源代码</ulink>"
-#: C/index-in.docbook:1217 C/index-in.docbook:1274
+#: C/index-in.docbook:1225 C/index-in.docbook:1282
msgid "Entry"
msgstr "条目(Entry)"
-#: C/index-in.docbook:1220
+#: C/index-in.docbook:1228
msgid "Simple Use"
msgstr "简易用法"
-#: C/index-in.docbook:1222
+#: C/index-in.docbook:1230
msgid ""
"Entry widgets allow the user to enter text. You can change the contents with "
"the <methodname>set_text()</methodname> method, and read the current "
@@ -2596,7 +2595,7 @@ msgstr ""
"改部件当前的内容,还可以使用<methodname>get_text()</methodname>方法读取当前的"
"内容。"
-#: C/index-in.docbook:1227
+#: C/index-in.docbook:1235
msgid ""
"Occasionally you might want to make an <classname>Entry</classname> widget "
"read-only. This can be done by passing <literal>false</literal> to the "
@@ -2606,7 +2605,7 @@ msgstr ""
"<methodname>set_editable()</methodname>方法传递<literal>false</literal>做到这"
"点。"
-#: C/index-in.docbook:1233
+#: C/index-in.docbook:1241
msgid ""
"For the input of passwords, passphrases and other information you don't want "
"echoed on the screen, calling <methodname>set_visibility()</methodname> with "
@@ -2616,7 +2615,7 @@ msgstr ""
"<methodname>set_visibility()</methodname>方法传递<literal>false</literal>使输"
"入文本被隐藏。"
-#: C/index-in.docbook:1239
+#: C/index-in.docbook:1247
msgid ""
"You might want to be notified whenever the user types in a text entry "
"widget. <classname>Gtk::Entry</classname> provides two signals, "
@@ -2643,7 +2642,7 @@ msgstr ""
"linkend=\"sec-comboboxentry\">带有条目的组合框</link>小结包含了使用这些信号的"
"示例程序。"
-#: C/index-in.docbook:1254
+#: C/index-in.docbook:1262
msgid ""
"If you pass <literal>true</literal> to the "
"<methodname>set_activates_default()</methodname> method, pressing "
@@ -2663,7 +2662,7 @@ msgstr ""
"<methodname>Gtk::Widget::set_can_default()</methodname>和<methodname>Gtk::"
"Widget::grab_default()</methodname>。"
-#: C/index-in.docbook:1264
+#: C/index-in.docbook:1272
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Entry.html"
"\">Reference</ulink>"
@@ -2671,11 +2670,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Entry.html"
"\">参考</ulink>"
-#: C/index-in.docbook:1266
+#: C/index-in.docbook:1274
msgid "Simple Entry Example"
msgstr "简单的条目示例"
-#: C/index-in.docbook:1267
+#: C/index-in.docbook:1275
msgid ""
"This example uses <classname>Gtk::Entry</classname>. It also has two "
"<classname>CheckButton</classname>s, with which you can toggle the editable "
@@ -2685,7 +2684,7 @@ msgstr ""
"<classname>CheckButton</classname>,你可以使用他们切换条目部件的可见性和可编"
"辑性标志。"
-#: C/index-in.docbook:1280
+#: C/index-in.docbook:1288
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/simple\">Source Code</ulink>"
@@ -2693,11 +2692,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/simple\">源代码</ulink>"
-#: C/index-in.docbook:1287 C/index-in.docbook:1321
+#: C/index-in.docbook:1295 C/index-in.docbook:1329
msgid "Entry Completion"
msgstr "条目补全(Entry Completion)"
-#: C/index-in.docbook:1288
+#: C/index-in.docbook:1296
msgid ""
"An <classname>Entry</classname> widget can offer a drop-down list of pre-"
"existing choices based on the first few characters typed by the user. For "
@@ -2706,7 +2705,7 @@ msgstr ""
"<classname>Entry</classname>条目组件可以通过用户输入的前几个字符提供预先准备"
"好选项的下拉列表。例如,在搜索对话框中提供以前输入过的文本作为建议。"
-#: C/index-in.docbook:1293
+#: C/index-in.docbook:1301
msgid ""
"To enable this functionality, you must create an <classname>EntryCompletion</"
"classname> object, and provide it to the <classname>Entry</classname> widget "
@@ -2716,7 +2715,7 @@ msgstr ""
"使用<classname>Entry</classname>部件的<methodname>set_completion()</"
"methodname>方法将其提供给条目部件。"
-#: C/index-in.docbook:1298
+#: C/index-in.docbook:1306
msgid ""
"The <classname>EntryCompletion</classname> may use a <classname>TreeModel</"
"classname> containing possible entries, specified with "
@@ -2729,7 +2728,7 @@ msgstr ""
"该调用<methodname>set_text_column()</methodname>指定该模型的那一行用以匹配可"
"能的文本条目。"
-#: C/index-in.docbook:1304
+#: C/index-in.docbook:1312
msgid ""
"Alternatively, if a complete list of possible entries would be too large or "
"too inconvenient to generate, a callback slot may instead be specified with "
@@ -2740,7 +2739,7 @@ msgstr ""
"<methodname>set_match_func()</methodname>指定一个回调槽。这在你想匹配字符串中"
"开头以外的部分的时候这会很有用。"
-#: C/index-in.docbook:1310
+#: C/index-in.docbook:1318
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1EntryCompletion.html\">Reference</ulink>"
@@ -2748,11 +2747,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1EntryCompletion.html\">参考</ulink>"
-#: C/index-in.docbook:1312
+#: C/index-in.docbook:1320
msgid "Entry Completion Example"
msgstr "条目补全示例"
-#: C/index-in.docbook:1313
+#: C/index-in.docbook:1321
msgid ""
"This example creates a <classname>Gtk::EntryCompletion</classname> and "
"associates it with a <classname>Gtk::Entry</classname> widget. The "
@@ -2763,7 +2762,7 @@ msgstr ""
"<classname>Gtk::Entry</classname>相关联。补全使用了一个包含了可能条目的"
"<classname>Gtk::TreeModel</classname>以及一些其他的额外的操作。"
-#: C/index-in.docbook:1327
+#: C/index-in.docbook:1335
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/completion\">Source Code</ulink>"
@@ -2771,11 +2770,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/completion\">源代码</ulink>"
-#: C/index-in.docbook:1333
+#: C/index-in.docbook:1341
msgid "Entry Icons"
msgstr "条目图标"
-#: C/index-in.docbook:1334
+#: C/index-in.docbook:1342
msgid ""
"An <classname>Entry</classname> widget can show an icon at the start or end "
"of the text area. The icon can be specifed by methods such as "
@@ -2790,11 +2789,11 @@ msgstr ""
"标。应用程序可以通过响应<methodname>signal_icon_press</methodname>信号来处理"
"用户按下图标事件。"
-#: C/index-in.docbook:1341
+#: C/index-in.docbook:1349
msgid "Entry Icon Example"
msgstr "条目图标示例"
-#: C/index-in.docbook:1342
+#: C/index-in.docbook:1350
msgid ""
"This example shows a <classname>Gtk::Entry</classname> widget with a named "
"search icon, and prints text to the terminal when the icon is pressed."
@@ -2802,11 +2801,11 @@ msgstr ""
"这个示例显示带有具名搜索图标的<classname>Gtk::Entry</classname>部件,并且在按"
"下这个图标的时候将该名称打印到终端上。"
-#: C/index-in.docbook:1348
+#: C/index-in.docbook:1356
msgid "Entry with Icon"
msgstr "带图标的条目"
-#: C/index-in.docbook:1354
+#: C/index-in.docbook:1362
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/icon\">Source Code</ulink>"
@@ -2814,11 +2813,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/icon\">源代码</ulink>"
-#: C/index-in.docbook:1360
+#: C/index-in.docbook:1368
msgid "Entry Progress"
msgstr "条目进度"
-#: C/index-in.docbook:1361
+#: C/index-in.docbook:1369
msgid ""
"An <classname>Entry</classname> widget can show a progress bar inside the "
"text area, under the entered text. The progress bar will be shown if the "
@@ -2830,21 +2829,21 @@ msgstr ""
"<methodname>set_progress_pulse_step()</methodname>方法被调用的时候进度条将显"
"示出来。"
-#: C/index-in.docbook:1366
+#: C/index-in.docbook:1374
msgid "Entry Progress Example"
msgstr "条目进度示例"
-#: C/index-in.docbook:1367
+#: C/index-in.docbook:1375
msgid ""
"This example shows a <classname>Gtk::Entry</classname> widget with a "
"progress bar."
msgstr "这个示例显示一个带有进度条的<classname>Gtk::Entry</classname>部件。"
-#: C/index-in.docbook:1373
+#: C/index-in.docbook:1381
msgid "Entry with Progress Bar"
msgstr "带有进度条的条目"
-#: C/index-in.docbook:1379
+#: C/index-in.docbook:1387
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/progress\">Source Code</ulink>"
@@ -2852,11 +2851,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/entry/progress\">源代码</ulink>"
-#: C/index-in.docbook:1387 C/index-in.docbook:1509
+#: C/index-in.docbook:1395 C/index-in.docbook:1517
msgid "SpinButton"
msgstr "微调按钮(SpinButton)"
-#: C/index-in.docbook:1389
+#: C/index-in.docbook:1397
msgid ""
"A <classname>SpinButton</classname> allows the user to select a value from a "
"range of numeric values. It has an <classname>Entry</classname> widget with "
@@ -2870,7 +2869,7 @@ msgstr ""
"值在可能的范围内“旋转”。你也可以直接在<classname>Entry</classname>部件中输入"
"一个值。"
-#: C/index-in.docbook:1397
+#: C/index-in.docbook:1405
msgid ""
"The value can have an adjustable number of decimal places, and the step size "
"is configurable. <classname>SpinButton</classname>s have an 'auto-repeat' "
@@ -2881,37 +2880,37 @@ msgstr ""
"这个值的小数位可以进行调整,步长也可以进行配置。<classname>SpinButton</"
"classname>具有“自动重复”功能:长按递增、递减按钮该值的变化速度会越来越快。"
-#: C/index-in.docbook:1412
+#: C/index-in.docbook:1420
msgid "<literal>value</literal>: value for the Spin Button"
msgstr "<literal>value</literal>:微调按钮的值"
-#: C/index-in.docbook:1418
+#: C/index-in.docbook:1426
msgid "<literal>lower</literal>: lower range value"
msgstr "<literal>lower</literal>:微调按钮允许的最小值"
-#: C/index-in.docbook:1424
+#: C/index-in.docbook:1432
msgid "<literal>upper</literal>: upper range value"
msgstr "<literal>upper</literal>:微调按钮允许的最大值"
-#: C/index-in.docbook:1429
+#: C/index-in.docbook:1437
msgid ""
"<literal>step_increment</literal>: value to increment/decrement when "
"pressing mouse button 1"
msgstr ""
"<literal>step_increment</literal>:鼠标键1(通常是左键)点击一下递增/递减的值"
-#: C/index-in.docbook:1436
+#: C/index-in.docbook:1444
msgid ""
"<literal>page_increment</literal>: value to increment/decrement when "
"pressing mouse button 2"
msgstr ""
"<literal>page_increment</literal>:鼠标键2(通常是右键)点击一下递增/递减的值"
-#: C/index-in.docbook:1443
+#: C/index-in.docbook:1451
msgid "<literal>page_size</literal>: unused"
msgstr "<literal>page_size</literal>:目前没作用"
-#: C/index-in.docbook:1404
+#: C/index-in.docbook:1412
msgid ""
"<classname>SpinButton</classname>s use an <link linkend=\"chapter-adjustment"
"\">Adjustment</link> object to hold information about the range of values. "
@@ -2922,7 +2921,7 @@ msgstr ""
"整(Adjustment)</link>对象保存值的范围信息。下述调整属性由微调按钮使用:<_:"
"itemizedlist-1/>"
-#: C/index-in.docbook:1451
+#: C/index-in.docbook:1459
msgid ""
"Additionally, mouse button 3 can be used to jump directly to the "
"<literal>upper</literal> or <literal>lower</literal> values."
@@ -2930,7 +2929,7 @@ msgstr ""
"另外,鼠标键3(通常是中键)用于直接跳到<literal>upper</literal>或"
"<literal>lower</literal> values。"
-#: C/index-in.docbook:1456
+#: C/index-in.docbook:1464
msgid ""
"The <classname>SpinButton</classname> can create a default "
"<classname>Adjustment</classname>, which you can access via the "
@@ -2943,14 +2942,14 @@ msgstr ""
"classname>,也可以通过<classname>SpinButton</classname>的构造函数直接使用一个"
"已经存在的<classname>Adjustment</classname>。"
-#: C/index-in.docbook:1466
+#: C/index-in.docbook:1474
msgid ""
"The number of decimal places can be altered using the "
"<methodname>set_digits()</methodname> method."
msgstr ""
"数值的小数位可以使用<methodname>set_digits()</methodname>方法进行调整。"
-#: C/index-in.docbook:1471
+#: C/index-in.docbook:1479
msgid ""
"You can set the spinbutton's value using the <methodname>set_value()</"
"methodname> method, and retrieve it with <methodname>get_value()</"
@@ -2959,7 +2958,7 @@ msgstr ""
"你可以使用<methodname>set_value()</methodname>方法设置微调按钮的值,也可以使"
"用<methodname>get_value()</methodname>方法获得微调按钮的值。"
-#: C/index-in.docbook:1476
+#: C/index-in.docbook:1484
msgid ""
"The <methodname>spin()</methodname> method 'spins' the "
"<classname>SpinButton</classname>, as if its increment or decrement button "
@@ -2970,7 +2969,7 @@ msgstr ""
"传递一个<classname>Gtk::SpinType</classname>对象给该方法以指定是递增还是递"
"减。"
-#: C/index-in.docbook:1483
+#: C/index-in.docbook:1491
msgid ""
"To prevent the user from typing non-numeric characters into the entry box, "
"pass <literal>true</literal> to the <methodname>set_numeric()</methodname> "
@@ -2979,7 +2978,7 @@ msgstr ""
"将<literal>true</literal>传递给<methodname>set_numeric()</methodname>方法可以"
"阻止用户在条目框内输入非数字字符。"
-#: C/index-in.docbook:1488
+#: C/index-in.docbook:1496
msgid ""
"To make the <classname>SpinButton</classname> 'wrap' between its upper and "
"lower bounds, use the <methodname>set_wrap()</methodname> method."
@@ -2987,7 +2986,7 @@ msgstr ""
"使用<methodname>set_wrap()</methodname>方法指定<classname>SpinButton</"
"classname>的值到达上下限的时候是否绕回。"
-#: C/index-in.docbook:1493
+#: C/index-in.docbook:1501
msgid ""
"To force it to snap to the nearest <literal>step_increment</literal>, use "
"<methodname>set_snap_to_ticks()</methodname>."
@@ -2996,7 +2995,7 @@ msgstr ""
"效值的时候强制校正到最接近<literal>step_increment</literal>策略可达到的有效"
"值。"
-#: C/index-in.docbook:1498
+#: C/index-in.docbook:1506
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1SpinButton.html\">Reference</ulink>"
@@ -3004,11 +3003,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1SpinButton.html\">参考</ulink>"
-#: C/index-in.docbook:1504
+#: C/index-in.docbook:1512
msgid "Here's an example of a <classname>SpinButton</classname> in action:"
msgstr "这是一个使用<classname>SpinButton</classname>的示例:"
-#: C/index-in.docbook:1515
+#: C/index-in.docbook:1523
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/spinbutton\">Source Code</ulink>"
@@ -3016,11 +3015,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/spinbutton\">源代码</ulink>"
-#: C/index-in.docbook:1522 C/index-in.docbook:1570
+#: C/index-in.docbook:1530 C/index-in.docbook:1578
msgid "ProgressBar"
msgstr "进度条(ProgressBar)"
-#: C/index-in.docbook:1524
+#: C/index-in.docbook:1532
msgid ""
"Progress bars are used to show the status of an ongoing operation. For "
"instance, a <classname>ProgressBar</classname> can show how much of a task "
@@ -3029,7 +3028,7 @@ msgstr ""
"进度条用于显示正在进行的操作的状态。例如,<classname>ProgressBar</classname>"
"可以用于显示已经有多少任务被完成。"
-#: C/index-in.docbook:1530
+#: C/index-in.docbook:1538
msgid ""
"To change the value shown, use the <methodname>set_fraction()</methodname> "
"method, passing a <type>double</type> between 0.0 and 1.0 to provide the new "
@@ -3038,7 +3037,7 @@ msgstr ""
"要修改显示的值,请调用<methodname>set_fraction()</methodname>方法,向该方法传"
"递一个0.0到1.0之间的<type>double</type>值。"
-#: C/index-in.docbook:1535
+#: C/index-in.docbook:1543
msgid ""
"A <classname>ProgressBar</classname> is horizontal and left-to-right by "
"default, but you can change it to a vertical progress bar by using the "
@@ -3047,7 +3046,7 @@ msgstr ""
"<classname>ProgressBar</classname>默认是水平且从左向右的,但是你可以使用"
"<methodname>set_orientation()</methodname>方法来改变这个行为。"
-#: C/index-in.docbook:1541
+#: C/index-in.docbook:1549
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ProgressBar.html\">Reference</ulink>"
@@ -3055,11 +3054,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ProgressBar.html\">参考</ulink>"
-#: C/index-in.docbook:1544
+#: C/index-in.docbook:1552
msgid "Activity Mode"
msgstr "活动模式"
-#: C/index-in.docbook:1545
+#: C/index-in.docbook:1553
msgid ""
"Besides indicating the amount of progress that has occured, the progress bar "
"can also be used to indicate that there is some activity; this is done by "
@@ -3074,7 +3073,7 @@ msgstr ""
"度条显示一个小矩形,该矩形可以在进度条内前后移动。活动模式在无法确定操作的进"
"度的时候很有用(例如,接受一个长度未知的文件)。"
-#: C/index-in.docbook:1555
+#: C/index-in.docbook:1563
msgid ""
"To do this, you need to call the <methodname>pulse()</methodname> method at "
"regular intervals. You can also choose the step size, with the "
@@ -3083,7 +3082,7 @@ msgstr ""
"为此,你还需要定时调用<methodname>pulse()</methodname>方法。你还可以使用"
"<methodname>set_pulse_step()</methodname>方法控制矩形的移动步长。"
-#: C/index-in.docbook:1561
+#: C/index-in.docbook:1569
msgid ""
"The progress bar can also display a configurable text string next to the "
"bar, using the <methodname>set_text()</methodname> method."
@@ -3091,7 +3090,7 @@ msgstr ""
"进度条还可以使用<methodname>set_text()</methodname>方法来在其边上显示可配置的"
"文本字符串。"
-#: C/index-in.docbook:1576
+#: C/index-in.docbook:1584
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/progressbar\">Source Code</ulink>"
@@ -3099,11 +3098,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/progressbar\">源代码</ulink>"
-#: C/index-in.docbook:1584 C/index-in.docbook:1594
+#: C/index-in.docbook:1592 C/index-in.docbook:1602
msgid "InfoBar"
msgstr "信息栏(InfoBar)"
-#: C/index-in.docbook:1586
+#: C/index-in.docbook:1594
msgid ""
"An <classname>InfoBar</classname> may show small items of information or ask "
"brief questions. Unlike a <classname>Dialog</classname>, it appears at the "
@@ -3114,7 +3113,7 @@ msgstr ""
"示在窗口的顶部而不是和<classname>Dialog</classname>一样打开一个新的窗口。但是"
"他的API和<link linkend=\"chapter-dialogs\">Gtk::Dialog</link>的API十分相似。"
-#: C/index-in.docbook:1589
+#: C/index-in.docbook:1597
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1InfoBar."
"html\">Reference</ulink>"
@@ -3122,7 +3121,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1InfoBar."
"html\">参考</ulink>"
-#: C/index-in.docbook:1600
+#: C/index-in.docbook:1608
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/infobar\">Source Code</ulink>"
@@ -3130,11 +3129,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/infobar\">源代码</ulink>"
-#: C/index-in.docbook:1607
+#: C/index-in.docbook:1615
msgid "Tooltips"
msgstr "工具提示框(Tooltips)"
-#: C/index-in.docbook:1609
+#: C/index-in.docbook:1617
msgid ""
"Tooltips are the little information windows that pop up when you leave your "
"pointer over a widget for a few seconds. Use <methodname>set_tooltip_text()</"
@@ -3147,7 +3146,7 @@ msgstr ""
"classname>设置一个文本字符串作为提示。<classname>Gtk::Tooltip</classname>被用"
"作更高级的提示工具,例如显示图像和文本。"
-#: C/index-in.docbook:1618
+#: C/index-in.docbook:1626
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Widget."
"html\">Widget Reference</ulink>"
@@ -3155,7 +3154,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Widget."
"html\">部件参考</ulink>"
-#: C/index-in.docbook:1619
+#: C/index-in.docbook:1627
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Tooltip."
"html\">Tooltip Reference</ulink>"
@@ -3163,11 +3162,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Tooltip."
"html\">工具提示框参考</ulink>"
-#: C/index-in.docbook:1624
+#: C/index-in.docbook:1632
msgid "Tooltip"
msgstr "工具提示框(Tooltip)"
-#: C/index-in.docbook:1630
+#: C/index-in.docbook:1638
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/tooltips\">Source Code</ulink>"
@@ -3175,11 +3174,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/tooltips\">源代码</ulink>"
-#: C/index-in.docbook:1639
+#: C/index-in.docbook:1647
msgid "Container Widgets"
msgstr "容器(Container)部件"
-#: C/index-in.docbook:1641
+#: C/index-in.docbook:1649
msgid ""
"Container widgets, like other widgets, derive from <classname>Gtk::Widget</"
"classname>. Some container widgets, such as <classname>Gtk::Grid</classname> "
@@ -3192,11 +3191,11 @@ msgstr ""
"们具有更为复杂的接口。还有些容器部件只能容纳一个子部件,例如<classname>Gtk::"
"Frame</classname>"
-#: C/index-in.docbook:1649
+#: C/index-in.docbook:1657
msgid "Single-item Containers"
msgstr "单项容器"
-#: C/index-in.docbook:1651
+#: C/index-in.docbook:1659
msgid ""
"Most single-item container widgets have <methodname>set_child()</methodname> "
"and <methodname>unset_child()</methodname> methods for the child widget. "
@@ -3209,7 +3208,7 @@ msgstr ""
"classname>和<classname>Gtk::Window</classname>从技术上来说是单项容器,但是我"
"们已经在其他地方讨论过它们。"
-#: C/index-in.docbook:1658
+#: C/index-in.docbook:1666
msgid ""
"We also discuss the <classname>Gtk::Paned</classname> widget, which allows "
"you to divide a window into two separate \"panes\". This widget actually "
@@ -3219,11 +3218,11 @@ msgstr ""
"的\"窗格\",这个部件实际上可以包含两个子部件,但是他只能包含固定数量的部件,"
"因此也将其称为单项容器。"
-#: C/index-in.docbook:1665 C/index-in.docbook:1679
+#: C/index-in.docbook:1673 C/index-in.docbook:1687
msgid "Frame"
msgstr "框架(Frame)"
-#: C/index-in.docbook:1667
+#: C/index-in.docbook:1675
msgid ""
"Frames can enclose one or a group of widgets within a box, optionally with a "
"title. For instance, you might place a group of <classname>ToggleButton</"
@@ -3234,7 +3233,7 @@ msgstr ""
"组<classname>ToggleButton</classname>或者<classname>CheckButton</classname>放"
"入一个<classname>Frame</classname>中。"
-#: C/index-in.docbook:1674
+#: C/index-in.docbook:1682
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Frame.html"
"\">Reference</ulink>"
@@ -3242,7 +3241,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Frame.html"
"\">参考</ulink>"
-#: C/index-in.docbook:1685
+#: C/index-in.docbook:1693
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/frame\">Source Code</ulink>"
@@ -3250,11 +3249,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/frame\">源代码</ulink>"
-#: C/index-in.docbook:1693 C/index-in.docbook:1719
+#: C/index-in.docbook:1701 C/index-in.docbook:1727
msgid "Paned"
msgstr "窗格(Paned)"
-#: C/index-in.docbook:1695
+#: C/index-in.docbook:1703
msgid ""
"Panes divide a widget into two halves, separated by a moveable divider. The "
"two halves (panes) can be oriented either horizontally (side by side) or "
@@ -3263,7 +3262,7 @@ msgstr ""
"窗格用一个可移动的分隔符将一个部件一分为二。其可以水平(使两个窗格并排)也可"
"以竖直(使两个窗格一个在另一个之上)的分隔部件。"
-#: C/index-in.docbook:1701
+#: C/index-in.docbook:1709
msgid ""
"Unlike the other widgets in this section, pane widgets contain not one but "
"two child widgets, one in each pane. Therefore, you should use "
@@ -3275,7 +3274,7 @@ msgstr ""
"<methodname>set_end_child()</methodname>替代<methodname>set_child()</"
"methodname>方法。"
-#: C/index-in.docbook:1708
+#: C/index-in.docbook:1716
msgid ""
"You can adjust the position of the divider using the "
"<methodname>set_position()</methodname> method, and you will probably need "
@@ -3284,7 +3283,7 @@ msgstr ""
"如果你需要,你可以使用<methodname>set_position()</methodname>调整分割线的位"
"置。"
-#: C/index-in.docbook:1714
+#: C/index-in.docbook:1722
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Paned.html"
"\">Reference</ulink>"
@@ -3292,7 +3291,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Paned.html"
"\">参考</ulink>"
-#: C/index-in.docbook:1725
+#: C/index-in.docbook:1733
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/paned\">Source Code</ulink>"
@@ -3300,11 +3299,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/paned\">源代码</ulink>"
-#: C/index-in.docbook:1732 C/index-in.docbook:1764
+#: C/index-in.docbook:1740 C/index-in.docbook:1772
msgid "ScrolledWindow"
msgstr "滚动窗口"
-#: C/index-in.docbook:1734
+#: C/index-in.docbook:1742
msgid ""
"<classname>ScrolledWindow</classname> widgets create a scrollable area. You "
"can insert any type of widget into a <classname>ScrolledWindow</classname>, "
@@ -3317,7 +3316,7 @@ msgstr ""
"都可以通过滚动条来访问它。请注意虽然<classname>ScrolledWindow</classname>的名"
"称像是<classname>Gtk::Window</classname>的衍生部件,但其实不是。"
-#: C/index-in.docbook:1743
+#: C/index-in.docbook:1751
msgid ""
"Scrolled windows have <emphasis>scrollbar policies</emphasis> which "
"determine whether the <classname>Scrollbar</classname>s will be displayed. "
@@ -3337,7 +3336,7 @@ msgstr ""
"候,只有在被包含的部件大于可见区域的时候滚动条才会被显示出来。而"
"<literal>Gtk::PolicyType::ALWAYS</literal>将使滚动条始终显示。"
-#: C/index-in.docbook:1755
+#: C/index-in.docbook:1763
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ScrolledWindow.html\">Reference</ulink>"
@@ -3345,7 +3344,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ScrolledWindow.html\">参考</ulink>"
-#: C/index-in.docbook:1759
+#: C/index-in.docbook:1767
msgid ""
"Here is a simple example that packs 100 toggle buttons into a "
"ScrolledWindow. Try resizing the window to see the scrollbars react."
@@ -3353,7 +3352,7 @@ msgstr ""
"这是一个简单的示例,其将100个开关按钮放入滚动窗口中。你可以尝试调整窗口的大"
"小,以查看滚动条的反应。"
-#: C/index-in.docbook:1770
+#: C/index-in.docbook:1778
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/scrolledwindow\">Source Code</ulink>"
@@ -3361,11 +3360,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/scrolledwindow\">源代码</ulink>"
-#: C/index-in.docbook:1777 C/index-in.docbook:1799
+#: C/index-in.docbook:1785 C/index-in.docbook:1807
msgid "AspectFrame"
msgstr "定比框架(AspectFrame)"
-#: C/index-in.docbook:1779
+#: C/index-in.docbook:1787
msgid ""
"The <classname>AspectFrame</classname> widget looks like a <classname>Frame</"
"classname> widget, but it also enforces the <emphasis>aspect ratio</"
@@ -3379,7 +3378,7 @@ msgstr ""
"保持不变。并在有必要的时候添加额外的空间。例如,这将允许你显示照片并且无需在"
"用户调整窗口大小的时候对照片进行水平/垂直变形。"
-#: C/index-in.docbook:1788
+#: C/index-in.docbook:1796
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1AspectFrame.html\">Reference</ulink>"
@@ -3387,7 +3386,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1AspectFrame.html\">参考</ulink>"
-#: C/index-in.docbook:1792
+#: C/index-in.docbook:1800
msgid ""
"The following program uses a <classname>Gtk::AspectFrame</classname> to "
"present a drawing area whose aspect ratio will always be 2:1, no matter how "
@@ -3396,7 +3395,7 @@ msgstr ""
"下面的程序使用<classname>Gtk::AspectFrame</classname>显示一个绘图区域,无论用"
"户如何调整顶层窗口大小宽高比依旧保持2:1。"
-#: C/index-in.docbook:1805
+#: C/index-in.docbook:1813
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/aspectframe\">Source Code</ulink>"
@@ -3404,11 +3403,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/aspectframe\">源代码</ulink>"
-#: C/index-in.docbook:1812
+#: C/index-in.docbook:1820
msgid "Other Single-item Containers"
msgstr "其他单项容器"
-#: C/index-in.docbook:1814
+#: C/index-in.docbook:1822
msgid ""
"There are other single-item containers. See the reference documentation for "
"a complete list. Here are links to some example programs that show "
@@ -3417,7 +3416,7 @@ msgstr ""
"还有其他的单项容器。请参阅参考文档获取完整列表。这里是一些本教程其他地方未曾"
"提及的显示容器的示例程序的链接。"
-#: C/index-in.docbook:1820
+#: C/index-in.docbook:1828
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/expander\">Source Code, Expander</ulink>"
@@ -3425,7 +3424,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/expander\">扩展器(Expander)源代码</ulink>"
-#: C/index-in.docbook:1821
+#: C/index-in.docbook:1829
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/popover\">Source Code, Popover</ulink>"
@@ -3433,11 +3432,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/popover\">气泡(Popover)源代码</ulink>"
-#: C/index-in.docbook:1828
+#: C/index-in.docbook:1836
msgid "Multiple-item Containers"
msgstr "多项容器"
-#: C/index-in.docbook:1830
+#: C/index-in.docbook:1838
msgid ""
"Multiple-item container widgets have other methods than "
"<methodname>set_child()</methodname> and <methodname>unset_child()</"
@@ -3455,11 +3454,11 @@ msgstr ""
"方法。多项容器的<methodname>remove()</methodname>方法需要传入一个用于指示需要"
"删除的部件的参数。"
-#: C/index-in.docbook:1840
+#: C/index-in.docbook:1848
msgid "Packing"
msgstr "组装(Packing)"
-#: C/index-in.docbook:1841
+#: C/index-in.docbook:1849
msgid ""
"You've probably noticed that <application>gtkmm</application> windows seem "
"\"elastic\" - they can usually be stretched in many different ways. This is "
@@ -3469,7 +3468,7 @@ msgstr ""
"通常可以以不同方式进行拉伸。这是<emphasis>部件装填(widget packing)</emphasis>"
"系统在起作用。"
-#: C/index-in.docbook:1846
+#: C/index-in.docbook:1854
msgid ""
"Many GUI toolkits require you to precisely place widgets in a window, using "
"absolute positioning, often using a visual editor. This leads to several "
@@ -3478,7 +3477,7 @@ msgstr ""
"许多GUI工具包使用可视化编辑器的时候都要求你使用部件相对于窗口的绝对位置。这将"
"导致以下几个问题:"
-#: C/index-in.docbook:1853
+#: C/index-in.docbook:1861
msgid ""
"The widgets don't rearrange themselves when the window is resized. Some "
"widgets are hidden when the window is made smaller, and lots of useless "
@@ -3487,7 +3486,7 @@ msgstr ""
"在调整窗口大小的时候部件不会重新排布自己。窗口变小的时候一些部件会被隐藏窗口"
"变大的时候会出现很多无用的空间。"
-#: C/index-in.docbook:1857
+#: C/index-in.docbook:1865
msgid ""
"It's impossible to predict the amount of space necessary for text after it "
"has been translated to other languages, or displayed in a different font. On "
@@ -3497,7 +3496,7 @@ msgstr ""
"将文本翻译成其他语言或者用其他字体显示的时候,无法预测显示文本所需要的空间。"
"而在Unix上不可能预料在每个主题和窗口管理器下的显示效果。"
-#: C/index-in.docbook:1861
+#: C/index-in.docbook:1869
msgid ""
"Changing the layout of a window \"on the fly\", to make some extra widgets "
"appear, for instance, is complex. It requires tedious recalculation of every "
@@ -3506,7 +3505,7 @@ msgstr ""
"即时更改窗口布局以显示额外的部件将会很复杂,这需要对每个部件的位置进行繁琐的"
"重新计算。"
-#: C/index-in.docbook:1867
+#: C/index-in.docbook:1875
msgid ""
"<application>gtkmm</application> uses the packing system to solve these "
"problems. Rather than specifying the position and size of each widget in the "
@@ -3529,7 +3528,7 @@ msgstr ""
"<application>gtkmm</application>会使用以上的信息在用户操作窗口的时候合理、顺"
"畅的调整部件们的大小和位置。"
-#: C/index-in.docbook:1876
+#: C/index-in.docbook:1884
msgid ""
"<application>gtkmm</application> arranges widgets hierarchically, using "
"<emphasis>containers</emphasis>. A container widget contains other widgets. "
@@ -3546,7 +3545,7 @@ msgstr ""
"application>中包括<classname>Gtk::Window</classname>在内的多数容器部件都是单"
"项部件。"
-#: C/index-in.docbook:1885
+#: C/index-in.docbook:1893
msgid ""
"Yes, that's correct: a Window can contain at most one widget. How, then, can "
"we use a window for anything useful? By placing a multiple-child container "
@@ -3557,7 +3556,7 @@ msgstr ""
"呢?答案是通过向窗口放入一个多项容器实现。最合理的部件是<classname>Gtk::"
"Grid</classname>和<classname>Gtk::Box</classname>。"
-#: C/index-in.docbook:1896
+#: C/index-in.docbook:1904
msgid ""
"<classname>Gtk::Grid</classname> arranges its child widgets in rows and "
"columns. Use <methodname>attach()</methodname> and "
@@ -3567,7 +3566,7 @@ msgstr ""
"<methodname>attach()</methodname>和<methodname>attach_next_to()</methodname>"
"方法向网格(Grid)部件中插入子部件。"
-#: C/index-in.docbook:1904
+#: C/index-in.docbook:1912
msgid ""
"<classname>Gtk::Box</classname> arranges its child widgets vertically or "
"horizontally. Use <methodname>append()</methodname> to insert child widgets."
@@ -3575,11 +3574,11 @@ msgstr ""
"<classname>Gtk::Box</classname>将其子部件水平或垂直排列。使用"
"<methodname>append()</methodname>方法向盒(Box)部件插入子部件。"
-#: C/index-in.docbook:1912
+#: C/index-in.docbook:1920
msgid "There are several other containers, which we will also discuss."
msgstr "还有几个容器我们将在之后讨论。"
-#: C/index-in.docbook:1916
+#: C/index-in.docbook:1924
msgid ""
"If you've never used a packing toolkit before, it can take some getting used "
"to. You'll probably find, however, that you don't need to rely on visual "
@@ -3588,22 +3587,22 @@ msgstr ""
"如果你之前从未使用组装工具包,那可能需要一段时间来适应它。然后你会发现你不需"
"要和使用其他工具包一样依赖可视化编辑工具。"
-#: C/index-in.docbook:1926
+#: C/index-in.docbook:1934
msgid "An improved Hello World"
msgstr "改进后的Hello World"
-#: C/index-in.docbook:1928
+#: C/index-in.docbook:1936
msgid ""
"Let's take a look at a slightly improved <literal>helloworld</literal>, "
"showing what we've learnt."
msgstr ""
"让我们看看改进后的<literal>helloworld</literal>,以展示我们所学到的内容。"
-#: C/index-in.docbook:1933
+#: C/index-in.docbook:1941
msgid "Hello World 2"
msgstr "Hello World 2"
-#: C/index-in.docbook:1939
+#: C/index-in.docbook:1947
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/helloworld2\">Source Code</ulink>"
@@ -3611,7 +3610,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/helloworld2\">源代码</ulink>"
-#: C/index-in.docbook:1941
+#: C/index-in.docbook:1949
msgid ""
"After building and running this program, try resizing the window to see the "
"behaviour. Also, try playing with <methodname>set_expand()</methodname>, "
@@ -3627,11 +3626,11 @@ msgstr ""
"<methodname>set_halign()</methodname>和<methodname>set_valign()</methodname>"
"方法。"
-#: C/index-in.docbook:1952
+#: C/index-in.docbook:1960
msgid "Boxes"
msgstr "盒子(Boxes)"
-#: C/index-in.docbook:1954
+#: C/index-in.docbook:1962
msgid ""
"Most packing uses boxes as in the above example. These are invisible "
"containers into which we can pack our widgets. When packing widgets into a "
@@ -3644,15 +3643,15 @@ msgstr ""
"时候部件从左到右水平插入。将部件装填到垂直盒中的时候部件从上到下垂直插入。你"
"可以在盒中或盒侧组合使用盒以达到你所需的效果。"
-#: C/index-in.docbook:1963
+#: C/index-in.docbook:1971
msgid "Adding widgets"
msgstr "添加部件"
-#: C/index-in.docbook:1964
+#: C/index-in.docbook:1972
msgid "Per-child packing options"
msgstr "子部件装填选项"
-#: C/index-in.docbook:1965
+#: C/index-in.docbook:1973
msgid ""
"The <methodname>append()</methodname> method places widgets inside these "
"containers. It will start at the top and work its way down in a "
@@ -3670,7 +3669,7 @@ msgstr ""
"<methodname>insert_child_at_start()</methodname>方法。我们将在示例中使用"
"<methodname>append()</methodname>。"
-#: C/index-in.docbook:1975
+#: C/index-in.docbook:1983
msgid ""
"There are several options governing how widgets are to be packed, and this "
"can be confusing at first. You can modify the packing by using "
@@ -3691,15 +3690,15 @@ msgstr ""
"设计器,看看能不能对你有所帮助。你甚至可以使用<classname>Gtk::Builder</"
"classname>API在运行时加载GUI。"
-#: C/index-in.docbook:1987
+#: C/index-in.docbook:1995
msgid "There are basically five different styles, as shown in this picture:"
msgstr "如图所示,有五种不同的基本样式。"
-#: C/index-in.docbook:1993
+#: C/index-in.docbook:2001
msgid "Box Packing 1"
msgstr "组装盒1"
-#: C/index-in.docbook:1999
+#: C/index-in.docbook:2007
msgid ""
"Each line contains one horizontal <classname>Box</classname> with several "
"buttons. Each of the buttons on a line is packed into the <classname>Box</"
@@ -3714,7 +3713,7 @@ msgstr ""
"methodname>和<methodname>set_margin_end()</methodname>方法装入"
"<classname>Box</classname>。"
-#: C/index-in.docbook:2008
+#: C/index-in.docbook:2016
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Box.html"
"\">Reference</ulink>"
@@ -3722,11 +3721,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Box.html"
"\">参考</ulink>"
-#: C/index-in.docbook:2012
+#: C/index-in.docbook:2020
msgid "Per-container packing options"
msgstr "容器装填选项"
-#: C/index-in.docbook:2016
+#: C/index-in.docbook:2024
#, no-wrap
msgid ""
"Gtk::Box(Gtk::Orientation orientation = Gtk::Orientation::HORIZONTAL, int spacing = 0);\n"
@@ -3739,7 +3738,7 @@ msgstr ""
"void set_spacing(int spacing);\n"
"void set_homogeneous(bool homogeneous = true);"
-#: C/index-in.docbook:2013
+#: C/index-in.docbook:2021
msgid ""
"Here's the constructor for the <classname>Box</classname> widget, and "
"methods that set per-container packing options: <_:programlisting-1/> "
@@ -3754,7 +3753,7 @@ msgstr ""
"都有一样的大小。<parameter>spacing</parameter>是每个部件之间要保留的最小像素"
"数。"
-#: C/index-in.docbook:2026
+#: C/index-in.docbook:2034
msgid ""
"What's the difference between spacing (set when the box is created) and "
"margins (set separately for each child widget)? Spacing is added between "
@@ -3766,15 +3765,15 @@ msgstr ""
"加间距,在部件的一侧或多侧添加边距。下图能使你更清楚的理解这一点。所显示的边"
"距是该行中每个按钮的左右边距。"
-#: C/index-in.docbook:2035
+#: C/index-in.docbook:2043
msgid "Box Packing 2"
msgstr "组装盒2"
-#: C/index-in.docbook:2045
+#: C/index-in.docbook:2053
msgid "Gtk::Application and command-line options"
msgstr "Gtk::Application和命令行选项"
-#: C/index-in.docbook:2046
+#: C/index-in.docbook:2054
msgid ""
"The following example program requires a command-line option. The source "
"code shows two ways of handling command-line options in combination with "
@@ -3783,7 +3782,7 @@ msgstr ""
"下面的示例程序需要一个命令行选项。源代码展示了两种<classname>Gtk::"
"Application</classname>处理命令行选项的方式。"
-#: C/index-in.docbook:2052
+#: C/index-in.docbook:2060
msgid ""
"Handle the options in <function>main()</function> and hide them from "
"<classname>Gtk::Application</classname> by setting <literal>argc = 1</"
@@ -3793,7 +3792,7 @@ msgstr ""
"literal>将他们从<classname>Gtk::Application</classname>中隐藏,然后调用"
"<methodname>Gtk::Application::run()</methodname>。"
-#: C/index-in.docbook:2058
+#: C/index-in.docbook:2066
msgid ""
"Give all command-line options to <methodname>Gtk::Application::run()</"
"methodname> and add the flag <literal>Gio::Application::Flags::"
@@ -3805,7 +3804,7 @@ msgstr ""
"<methodname>Gtk::Application::create()</methodname>方法设置标志<literal>Gio::"
"Application::Flags::HANDLES_COMMAND_LINE</literal>。"
-#: C/index-in.docbook:2065
+#: C/index-in.docbook:2073
msgid ""
"You must set the optional parameter <literal>after = false</literal> in the "
"call to <literal>signal_command_line().connect()</literal>, because your "
@@ -3822,7 +3821,7 @@ msgstr ""
"(<classname>Gio::Application</classname>是<classname>Gtk::Application</"
"classname>的基类)。"
-#: C/index-in.docbook:2078
+#: C/index-in.docbook:2086
msgid ""
"Here is the source code for the example that produced the screenshots above. "
"When you run this example, provide a number between 1 and 3 as a command-"
@@ -3831,7 +3830,7 @@ msgstr ""
"这是上述截图所运行示例的源代码。在运行此示例时请提供1到3之间的数字作为命令行"
"选项以查看正在使用不同装填选项的行为。"
-#: C/index-in.docbook:2081
+#: C/index-in.docbook:2089
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/box\">Source Code</ulink>"
@@ -3839,11 +3838,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/box\">源代码</ulink>"
-#: C/index-in.docbook:2087 C/index-in.docbook:2116
+#: C/index-in.docbook:2095 C/index-in.docbook:2124
msgid "Grid"
msgstr "网格(Grid)"
-#: C/index-in.docbook:2089
+#: C/index-in.docbook:2097
msgid ""
"A <classname>Grid</classname> dynamically lays out child widgets in rows and "
"columns. The dimensions of the grid do not need to be specified in the "
@@ -3852,7 +3851,7 @@ msgstr ""
"<classname>Grid</classname>在行与列中动态的摆放他的子部件。不需要在其构造函数"
"当中指定维数。"
-#: C/index-in.docbook:2094
+#: C/index-in.docbook:2102
msgid ""
"Child widgets can span multiple rows or columns, using <methodname>attach()</"
"methodname>, or added next to an existing widget inside the grid with "
@@ -3867,7 +3866,7 @@ msgstr ""
"<methodname>set_column_homogeneous()</methodname>令网格中所有子部件具有一致的"
"高度或宽度。"
-#: C/index-in.docbook:2101
+#: C/index-in.docbook:2109
msgid ""
"You can set the <emphasis>margin</emphasis> and <emphasis>expand</emphasis> "
"properties of the child <classname>Widget</classname>s to control their "
@@ -3876,7 +3875,7 @@ msgstr ""
"你可以设置子部件的<emphasis>margin</emphasis>和<emphasis>expand</emphasis>属"
"性用以控制调整网格大小时它们之间的间距。"
-#: C/index-in.docbook:2105
+#: C/index-in.docbook:2113
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Grid.html"
"\">Reference</ulink>"
@@ -3884,7 +3883,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Grid.html"
"\">参考</ulink>"
-#: C/index-in.docbook:2108
+#: C/index-in.docbook:2116
msgid ""
"This example creates a window with three buttons in a grid. The first two "
"buttons are in the upper row, from left to right. A third button is attached "
@@ -3893,7 +3892,7 @@ msgstr ""
"本示例创建一个窗口其中具有一个包含三个按钮的网格。前两个按钮位于最上行并从左"
"向右排列。第三个按钮位于第一个按钮的下方,位于最下行并横跨两列。"
-#: C/index-in.docbook:2122
+#: C/index-in.docbook:2130
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/grid\">Source Code</ulink>"
@@ -3901,11 +3900,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/grid\">源代码</ulink>"
-#: C/index-in.docbook:2129 C/index-in.docbook:2164
+#: C/index-in.docbook:2137 C/index-in.docbook:2172
msgid "Notebook"
msgstr "笔记本(Notebook)"
-#: C/index-in.docbook:2131
+#: C/index-in.docbook:2139
msgid ""
"A <classname>Notebook</classname> has a set of stacked <literal>pages</"
"literal>, each of which contains widgets. Labelled <literal>tabs</literal> "
@@ -3918,7 +3917,7 @@ msgstr ""
"<classname>Notebook</classname>一次只显示一页,这样可以将好几组部件放于很小的"
"空间当中。例如他们经常在首选项对话框中使用。"
-#: C/index-in.docbook:2140
+#: C/index-in.docbook:2148
msgid ""
"Use the <methodname>append_page()</methodname>, <methodname>prepend_page()</"
"methodname> and <methodname>insert_page()</methodname> methods to add tabbed "
@@ -3929,7 +3928,7 @@ msgstr ""
"methodname>和<methodname>insert_page()</methodname>方法可以添加带标签的页面到"
"<literal>Notebook</literal>中,你需要为这些方法提供子部件和标签名。"
-#: C/index-in.docbook:2147
+#: C/index-in.docbook:2155
msgid ""
"To discover the currently visible page, use the "
"<methodname>get_current_page()</methodname> method. This returns the page "
@@ -3940,7 +3939,7 @@ msgstr ""
"methodname>方法。该方法返回一个页码,你可以将页码传递给"
"<methodname>get_nth_page()</methodname>获取指向该页当前子部件的指针。"
-#: C/index-in.docbook:2154
+#: C/index-in.docbook:2162
msgid ""
"To programmatically change the selected page, use the "
"<methodname>set_current_page()</methodname> method."
@@ -3948,7 +3947,7 @@ msgstr ""
"要以编程方式改变所选的页面,请使用<methodname>set_current_page()</methodname>"
"方法。"
-#: C/index-in.docbook:2159
+#: C/index-in.docbook:2167
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Notebook."
"html\">Reference</ulink>"
@@ -3956,7 +3955,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Notebook."
"html\">参考</ulink>"
-#: C/index-in.docbook:2170
+#: C/index-in.docbook:2178
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/notebook/\">Source Code</ulink>"
@@ -3964,11 +3963,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/notebook/\">源代码</ulink>"
-#: C/index-in.docbook:2177 C/index-in.docbook:2204
+#: C/index-in.docbook:2185 C/index-in.docbook:2212
msgid "Assistant"
msgstr "助手(Assistant)"
-#: C/index-in.docbook:2179
+#: C/index-in.docbook:2187
msgid ""
"An <classname>Assistant</classname> splits a complex operation into steps. "
"Each step is a page, containing a header, a child widget and an action area. "
@@ -3981,7 +3980,7 @@ msgstr ""
"按钮,这些按钮会根据页面的类型自动更新(使用<methodname>set_page_type()</"
"methodname>设置页面类型)。"
-#: C/index-in.docbook:2183
+#: C/index-in.docbook:2191
msgid ""
"Use the <methodname>append_page()</methodname>, <methodname>prepend_page</"
"methodname> and <methodname>insert_page()</methodname> methods to add pages "
@@ -3992,7 +3991,7 @@ msgstr ""
"methodname>和<methodname>insert_page()</methodname>方法可以向"
"<classname>Assistant</classname>添加页面,你需要每个页面提供子部件。"
-#: C/index-in.docbook:2187
+#: C/index-in.docbook:2195
msgid ""
"To determine the currently-visible page, use the "
"<methodname>get_current_page()</methodname> method, and pass the result to "
@@ -4005,14 +4004,14 @@ msgstr ""
"际部件的指针。要想用编程的方式改变当前页,请使用"
"<methodname>set_current_page()</methodname>方法。"
-#: C/index-in.docbook:2191
+#: C/index-in.docbook:2199
msgid ""
"To set the title of a page, use the <methodname>set_page_title()</"
"methodname> method."
msgstr ""
"要为页面设置标题,请使用<methodname>set_page_title()</methodname>方法。"
-#: C/index-in.docbook:2195
+#: C/index-in.docbook:2203
msgid ""
"To add widgets to the action area, use the <methodname>add_action_widget()</"
"methodname> method. They will be packed alongside the default buttons. Use "
@@ -4022,7 +4021,7 @@ msgstr ""
"法。他们将与默认按钮一并被装填。使用<methodname>remove_action_widget()</"
"methodname>方法可以删除部件。"
-#: C/index-in.docbook:2199
+#: C/index-in.docbook:2207
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Assistant."
"html\">Reference</ulink>"
@@ -4030,7 +4029,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Assistant."
"html\">参考</ulink>"
-#: C/index-in.docbook:2210
+#: C/index-in.docbook:2218
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/assistant/\">Source Code</ulink>"
@@ -4038,11 +4037,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/assistant/\">源代码</ulink>"
-#: C/index-in.docbook:2217
+#: C/index-in.docbook:2225
msgid "Other Multi-item Containers"
msgstr "其他多项容器"
-#: C/index-in.docbook:2219
+#: C/index-in.docbook:2227
msgid ""
"There are other multi-item containers. See the reference documentation for a "
"complete list. Here are links to some example programs that show containers, "
@@ -4051,7 +4050,7 @@ msgstr ""
"还有其他多项容器。请参阅文档以获取完整列表。这里是一些本教程未提及的显示容器"
"的示例程序连接。"
-#: C/index-in.docbook:2225
+#: C/index-in.docbook:2233
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/actionbar\">Source Code, ActionBar</ulink>"
@@ -4059,7 +4058,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/actionbar\">动作条(ActionBar)源代码</ulink>"
-#: C/index-in.docbook:2226
+#: C/index-in.docbook:2234
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/flowbox\">Source Code, FlowBox</ulink>"
@@ -4067,7 +4066,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/flowbox\">流式盒(FlowBox)源代码</ulink>"
-#: C/index-in.docbook:2227
+#: C/index-in.docbook:2235
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/iconview\">Source Code, IconView</ulink>"
@@ -4075,22 +4074,22 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/iconview\">图标视图(IconView)源代码</ulink>"
-#: C/index-in.docbook:2237
+#: C/index-in.docbook:2245
msgid "The TreeView widget"
msgstr "树形视图(TreeView)部件"
-#: C/index-in.docbook:2238
+#: C/index-in.docbook:2246
msgid ""
"The <classname>Gtk::TreeView</classname> widget can contain lists or trees "
"of data, in columns."
msgstr ""
" <classname>Gtk::TreeView</classname>部件的每一行都可以包含数据列表或数据树。"
-#: C/index-in.docbook:2244
+#: C/index-in.docbook:2252
msgid "The Model"
msgstr "模型(Model)"
-#: C/index-in.docbook:2245
+#: C/index-in.docbook:2253
msgid ""
"Each <classname>Gtk::TreeView</classname> has an associated <classname>Gtk::"
"TreeModel</classname>, which contains the data displayed by the "
@@ -4108,7 +4107,7 @@ msgstr ""
"数据。也允许不同的视图显示同一个模型的不同列的数据,就像是多个SQL查询(或“视"
"图”)显示同一个数据库表的不同字段一样。"
-#: C/index-in.docbook:2255
+#: C/index-in.docbook:2263
msgid ""
"Although you can theoretically implement your own Model, you will normally "
"use either the <classname>ListStore</classname> or <classname>TreeStore</"
@@ -4117,7 +4116,7 @@ msgstr ""
"理论上你可以实现自己的模型,但通常情况直接使用<classname>ListStore</"
"classname>或<classname>TreeStore</classname>可以省略很多麻烦。"
-#: C/index-in.docbook:2261
+#: C/index-in.docbook:2269
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeModel."
"html\">Reference</ulink>"
@@ -4125,21 +4124,21 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeModel."
"html\">参考</ulink>"
-#: C/index-in.docbook:2264
+#: C/index-in.docbook:2272
msgid "ListStore, for rows"
msgstr "列表储存(ListStore)的行"
-#: C/index-in.docbook:2265
+#: C/index-in.docbook:2273
msgid ""
"The <classname>ListStore</classname> contains simple rows of data, and each "
"row has no children."
msgstr "<classname>ListStore</classname>包含简单的数据行,每个行都没有孩子。"
-#: C/index-in.docbook:2271 C/index-in.docbook:2839
+#: C/index-in.docbook:2279 C/index-in.docbook:2847
msgid "TreeView - ListStore"
msgstr "树形视图 - 列表储存"
-#: C/index-in.docbook:2277
+#: C/index-in.docbook:2285
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ListStore."
"html\">Reference</ulink>"
@@ -4147,21 +4146,21 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ListStore."
"html\">参考</ulink>"
-#: C/index-in.docbook:2282
+#: C/index-in.docbook:2290
msgid "TreeStore, for a hierarchy"
msgstr "具有层次的树状储存"
-#: C/index-in.docbook:2283
+#: C/index-in.docbook:2291
msgid ""
"The <classname>TreeStore</classname> contains rows of data, and each row may "
"have child rows."
msgstr "<classname>TreeStore</classname>包含数据行,并且每一行都可能有子行。"
-#: C/index-in.docbook:2289 C/index-in.docbook:2858
+#: C/index-in.docbook:2297 C/index-in.docbook:2866
msgid "TreeView - TreeStore"
msgstr "树形视图 - 树状储存"
-#: C/index-in.docbook:2295
+#: C/index-in.docbook:2303
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeStore."
"html\">Reference</ulink>"
@@ -4169,11 +4168,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeStore."
"html\">参考</ulink>"
-#: C/index-in.docbook:2300
+#: C/index-in.docbook:2308
msgid "Model Columns"
msgstr "模型列"
-#: C/index-in.docbook:2301
+#: C/index-in.docbook:2309
msgid ""
"The <classname>TreeModelColumnRecord</classname> class is used to keep track "
"of the columns and their data types. You add <classname>TreeModelColumn</"
@@ -4189,7 +4188,7 @@ msgstr ""
"列中的数据。你可能会发现,派生一个你自己的包含有<classname>TreeModelColumn</"
"classname>数据成员的<classname>TreeModelColumnRecord</classname>会更方便。"
-#: C/index-in.docbook:2312
+#: C/index-in.docbook:2320
#, no-wrap
msgid ""
"class ModelColumns : public Gtk::TreeModelColumnRecord\n"
@@ -4218,14 +4217,14 @@ msgstr ""
"\n"
"ModelColumns m_Columns;"
-#: C/index-in.docbook:2325
+#: C/index-in.docbook:2333
msgid ""
"You specify the <classname>ColumnRecord</classname> when creating the Model, "
"like so:"
msgstr ""
"你可以在创建模型的时候指定<classname>ColumnRecord</classname>,如下所示:"
-#: C/index-in.docbook:2329
+#: C/index-in.docbook:2337
#, no-wrap
msgid ""
"Glib::RefPtr<Gtk::ListStore> refListStore =\n"
@@ -4234,7 +4233,7 @@ msgstr ""
"Glib::RefPtr<Gtk::ListStore> refListStore =\n"
" Gtk::ListStore::create(m_Columns);"
-#: C/index-in.docbook:2331
+#: C/index-in.docbook:2339
msgid ""
"As a <classname>TreeModelColumnRecord</classname> describes structure, not "
"data, it can be shared among multiple models, and this is preferable for "
@@ -4250,11 +4249,11 @@ msgstr ""
"化后示例化它。最好的解决方案是使他成为惰性初始化的单例,以便在第一个模型访问"
"他的时候按需构造。"
-#: C/index-in.docbook:2343
+#: C/index-in.docbook:2351
msgid "Adding Rows"
msgstr "添加行"
-#: C/index-in.docbook:2344
+#: C/index-in.docbook:2352
msgid ""
"Add rows to the model with the <methodname>append()</methodname>, "
"<methodname>prepend()</methodname>, or <methodname>insert()</methodname> "
@@ -4263,25 +4262,25 @@ msgstr ""
"使用<methodname>append()</methodname>、<methodname>prepend()</methodname>或"
"<methodname>insert()</methodname>方法可以向模型添加行。"
-#: C/index-in.docbook:2348
+#: C/index-in.docbook:2356
#, no-wrap
msgid "auto iter = m_refListStore->append();"
msgstr "auto iter = m_refListStore->append();"
-#: C/index-in.docbook:2349
+#: C/index-in.docbook:2357
msgid "You can dereference the iterator to get the Row:"
msgstr "你可以通过解引用迭代器获得行:"
-#: C/index-in.docbook:2351
+#: C/index-in.docbook:2359
#, no-wrap
msgid "auto row = *iter;"
msgstr "auto row = *iter;"
-#: C/index-in.docbook:2352
+#: C/index-in.docbook:2360
msgid "Adding child rows"
msgstr "添加子行"
-#: C/index-in.docbook:2353
+#: C/index-in.docbook:2361
msgid ""
"<classname>Gtk::TreeStore</classname> models can have child items. Add them "
"with the <methodname>append()</methodname>, <methodname>prepend()</"
@@ -4291,7 +4290,7 @@ msgstr ""
"<methodname>append()</methodname>、<methodname>prepend()</methodname>或"
"<methodname>insert()</methodname>方法添加,如下所示:"
-#: C/index-in.docbook:2358
+#: C/index-in.docbook:2366
#, no-wrap
msgid ""
"auto iter_child =\n"
@@ -4300,11 +4299,11 @@ msgstr ""
"auto iter_child =\n"
" m_refTreeStore->append(row.children());"
-#: C/index-in.docbook:2365
+#: C/index-in.docbook:2373
msgid "Setting values"
msgstr "设置值"
-#: C/index-in.docbook:2366
+#: C/index-in.docbook:2374
msgid ""
"You can use the <methodname>operator[]</methodname> overload to set the data "
"for a particular column in the row, specifying the "
@@ -4313,16 +4312,16 @@ msgstr ""
"你可以使用<methodname>operator[]</methodname>重载设置行中的特定列的数据,你需"
"要使用创建模型时的<classname>TreeModelColumn</classname>指定列。"
-#: C/index-in.docbook:2371
+#: C/index-in.docbook:2379
#, no-wrap
msgid "row[m_Columns.m_col_text] = \"sometext\";"
msgstr "row[m_Columns.m_col_text] = \"sometext\";"
-#: C/index-in.docbook:2375
+#: C/index-in.docbook:2383
msgid "Getting values"
msgstr "获取值"
-#: C/index-in.docbook:2376
+#: C/index-in.docbook:2384
msgid ""
"You can use the <methodname>operator[]</methodname> overload to get the data "
"in a particular column in a row, specifying the <classname>TreeModelColumn</"
@@ -4331,7 +4330,7 @@ msgstr ""
"你可以使用<methodname>operator[]</methodname>重载获取行中特定列的数据,你需要"
"使用创建模型时的<classname>TreeModelColumn</classname>指定列。"
-#: C/index-in.docbook:2381
+#: C/index-in.docbook:2389
#, no-wrap
msgid ""
"auto strText = row[m_Columns.m_col_text];\n"
@@ -4340,14 +4339,14 @@ msgstr ""
"auto strText = row[m_Columns.m_col_text];\n"
"auto number = row[m_Columns.m_col_number];"
-#: C/index-in.docbook:2383
+#: C/index-in.docbook:2391
msgid ""
"The compiler will complain if you use an inappropriate type. For instance, "
"this would generate a compiler error:"
msgstr ""
"如果你使用了不合适的类型,编译器会报错。例如,编译器将生成一个编译错误:"
-#: C/index-in.docbook:2387
+#: C/index-in.docbook:2395
#, no-wrap
msgid ""
"//compiler error - no conversion from ustring to int.\n"
@@ -4356,11 +4355,11 @@ msgstr ""
"//compiler error - no conversion from ustring to int.\n"
"int number = row[m_Columns.m_col_text];"
-#: C/index-in.docbook:2392
+#: C/index-in.docbook:2400
msgid "\"Hidden\" Columns"
msgstr "“隐藏”列"
-#: C/index-in.docbook:2393
+#: C/index-in.docbook:2401
msgid ""
"You might want to associate extra data with each row. If so, just add it as "
"a Model column, but don't add it to the View."
@@ -4368,11 +4367,11 @@ msgstr ""
"你可能想要将额外的数据和每一行关联。如果是这样,你只需要将其添加到模型的一个"
"行中而不将其添加到视图中即可。"
-#: C/index-in.docbook:2402 C/index-in.docbook:3248
+#: C/index-in.docbook:2410 C/index-in.docbook:3256
msgid "The View"
msgstr "视图"
-#: C/index-in.docbook:2403
+#: C/index-in.docbook:2411
msgid ""
"The View is the actual widget (<classname>Gtk::TreeView</classname>) that "
"displays the model (<classname>Gtk::TreeModel</classname>) data and allows "
@@ -4383,7 +4382,7 @@ msgstr ""
"用户与其交互的部件(<classname>Gtk::TreeView</classname>)。视图可以显示模型的"
"所有列也可以只显示一部分列还可以以不同的方式显示列。"
-#: C/index-in.docbook:2410
+#: C/index-in.docbook:2418
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeView."
"html\">Reference</ulink>"
@@ -4391,11 +4390,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TreeView."
"html\">参考</ulink>"
-#: C/index-in.docbook:2413
+#: C/index-in.docbook:2421
msgid "Using a Model"
msgstr "使用模型"
-#: C/index-in.docbook:2414
+#: C/index-in.docbook:2422
msgid ""
"You can specify a <classname>Gtk::TreeModel</classname> when constructing "
"the <classname>Gtk::TreeView</classname>, or you can use the "
@@ -4405,16 +4404,16 @@ msgstr ""
"<classname>Gtk::TreeModel</classname>,也可以构筑完成后使用"
"<methodname>set_model()</methodname>方法指定,如下所示:"
-#: C/index-in.docbook:2419
+#: C/index-in.docbook:2427
#, no-wrap
msgid "m_TreeView.set_model(m_refListStore);"
msgstr "m_TreeView.set_model(m_refListStore);"
-#: C/index-in.docbook:2423
+#: C/index-in.docbook:2431
msgid "Adding View Columns"
msgstr "为视图添加列"
-#: C/index-in.docbook:2424
+#: C/index-in.docbook:2432
msgid ""
"You can use the <methodname>append_column()</methodname> method to tell the "
"View that it should display certain Model columns, in a certain order, with "
@@ -4423,12 +4422,12 @@ msgstr ""
"你可以使用<methodname>append_column()</methodname>方法告知视图以一定的顺序于"
"某个列标题下显示模型的某个列。"
-#: C/index-in.docbook:2429
+#: C/index-in.docbook:2437
#, no-wrap
msgid "m_TreeView.append_column(\"Messages\", m_Columns.m_col_text);"
msgstr "m_TreeView.append_column(\"Messages\", m_Columns.m_col_text);"
-#: C/index-in.docbook:2430
+#: C/index-in.docbook:2438
msgid ""
"When using this simple <methodname>append_column()</methodname> overload, "
"the <classname>TreeView</classname> will display the model data with an "
@@ -4453,11 +4452,11 @@ msgstr ""
"<literal>(unsigned) int</literal>或者<literal>(unsigned) long</literal>作为行"
"类型。"
-#: C/index-in.docbook:2446
+#: C/index-in.docbook:2454
msgid "More than one Model Column per View Column"
msgstr "每个视图列不不止一个模型列"
-#: C/index-in.docbook:2447
+#: C/index-in.docbook:2455
msgid ""
"To render more than one model column in a view column, you need to create "
"the <classname>TreeView::Column</classname> widget manually, and use "
@@ -4467,7 +4466,7 @@ msgstr ""
"classname>部件,并使用<methodname>pack_start()</methodname>方法向其添加模型"
"列。"
-#: C/index-in.docbook:2453
+#: C/index-in.docbook:2461
msgid ""
"Then use <methodname>append_column()</methodname> to add the view Column to "
"the View. Notice that <methodname>Gtk::TreeView::append_column()</"
@@ -4482,13 +4481,13 @@ msgstr ""
"<classname>TreeModelColumn</classname>生成的合适的<classname>Gtk::TreeView::"
"Column</classname>部件。"
-#: C/index-in.docbook:2460
+#: C/index-in.docbook:2468
msgid ""
"Here is some example code, which has a pixbuf icon and a text name in the "
"same column:"
msgstr "这是一些示例代码,在同一列中有一个像素缓冲区(pixbuf)图标和一个文本名:"
-#: C/index-in.docbook:2463
+#: C/index-in.docbook:2471
#, no-wrap
msgid ""
"\n"
@@ -4511,11 +4510,11 @@ msgstr ""
"\n"
"m_TreeView.append_column(*pColumn);"
-#: C/index-in.docbook:2475
+#: C/index-in.docbook:2483
msgid "Specifying CellRenderer details"
msgstr "指定单元格渲染器(CellRenderer)详情"
-#: C/index-in.docbook:2476
+#: C/index-in.docbook:2484
msgid ""
"The default <classname>CellRenderers</classname> and their default behaviour "
"will normally suffice, but you might occasionally need finer control. For "
@@ -4529,7 +4528,7 @@ msgstr ""
"example_treeview_treestore.cc</filename>的示例代码,附加一个<classname>Gtk::"
"CellRenderer</classname>部件并指示其各个模型列的外观的各个方面来呈现数据。"
-#: C/index-in.docbook:2484
+#: C/index-in.docbook:2492
#, no-wrap
msgid ""
"auto cols_count = m_TreeView.append_column_editable(\"Alex\", m_columns.alex);\n"
@@ -4548,7 +4547,7 @@ msgstr ""
" pColumn->add_attribute(pRenderer->property_visible(), m_columns.visible);\n"
" pColumn->add_attribute(pRenderer->property_activatable(), m_columns.world);"
-#: C/index-in.docbook:2492
+#: C/index-in.docbook:2500
msgid ""
"You can also connect to <classname>CellRenderer</classname> signals to "
"detect user actions. For instance:"
@@ -4556,7 +4555,7 @@ msgstr ""
"你还可以通过连接到<classname>CellRenderer</classname>的信号以检测用户的操作。"
"例如:"
-#: C/index-in.docbook:2496
+#: C/index-in.docbook:2504
#, no-wrap
msgid ""
"\n"
@@ -4573,15 +4572,15 @@ msgstr ""
" &Example_TreeView_TreeStore::on_cell_toggled), m_columns.dave)\n"
");"
-#: C/index-in.docbook:2505 C/index-in.docbook:2868
+#: C/index-in.docbook:2513 C/index-in.docbook:2876
msgid "Editable Cells"
msgstr "可编辑单元格"
-#: C/index-in.docbook:2508
+#: C/index-in.docbook:2516
msgid "Automatically-stored editable cells."
msgstr "自动储存的可编辑单元格"
-#: C/index-in.docbook:2509
+#: C/index-in.docbook:2517
msgid ""
"Cells in a <classname>TreeView</classname> can be edited in-place by the "
"user. To allow this, use the <classname>Gtk::TreeView</classname> "
@@ -4601,11 +4600,11 @@ msgstr ""
"版,只能为简单的列类型实例化(例如,<classname>Glib::ustring</classname>、"
"<literal>int</literal>和<literal>long</literal>)。"
-#: C/index-in.docbook:2523
+#: C/index-in.docbook:2531
msgid "Implementing custom logic for editable cells."
msgstr "为可编辑单元格实现自定义逻辑。"
-#: C/index-in.docbook:2524
+#: C/index-in.docbook:2532
msgid ""
"However, you might not want the new values to be stored immediately. For "
"instance, maybe you want to restrict the input to certain characters or "
@@ -4614,7 +4613,7 @@ msgstr ""
"但是你可能不希望立刻储存新的值。例如你可能希望对输入进行检测,符合预期的范围"
"才储存。"
-#: C/index-in.docbook:2529
+#: C/index-in.docbook:2537
msgid ""
"To achieve this, you should use the normal <classname>Gtk::TreeView</"
"classname> <methodname>insert_column()</methodname> and "
@@ -4627,7 +4626,7 @@ msgstr ""
"<methodname>get_column_cell_renderer()</methodname>方法获取该列使用的"
"<classname>Gtk::CellRenderer</classname>。"
-#: C/index-in.docbook:2535
+#: C/index-in.docbook:2543
msgid ""
"You should then cast that <classname>Gtk::CellRenderer*</classname> to the "
"specific <classname>CellRenderer</classname> that you expect, so you can use "
@@ -4637,7 +4636,7 @@ msgstr ""
"<classname>CellRenderer</classname>(例如转换为<classname>CellRendererText</"
"classname>,以便调用特定的API。"
-#: C/index-in.docbook:2539
+#: C/index-in.docbook:2547
msgid ""
"For instance, for a CellRendererText, you would set the cell's "
"<emphasis>editable</emphasis> property to true, like so:"
@@ -4645,12 +4644,12 @@ msgstr ""
"例如,对于<classname>CellRendererText</classname>,你应该将单元格的"
"<emphasis>editable</emphasis>属性设置为<literal>true</literal>,如下所示:"
-#: C/index-in.docbook:2542
+#: C/index-in.docbook:2550
#, no-wrap
msgid "cell->property_editable() = true;"
msgstr "cell->property_editable() = true;"
-#: C/index-in.docbook:2543
+#: C/index-in.docbook:2551
msgid ""
"For a CellRendererToggle, you would set the <emphasis>activatable</emphasis> "
"property instead."
@@ -4658,7 +4657,7 @@ msgstr ""
"对于<classname>CellRendererToggle</classname>,你应该改为设置"
"<emphasis>activatable</emphasis>属性。"
-#: C/index-in.docbook:2547
+#: C/index-in.docbook:2555
msgid ""
"You can then connect to the appropriate \"edited\" signal. For instance, "
"connect to <methodname>Gtk::CellRendererText::signal_edited()</methodname>, "
@@ -4674,7 +4673,7 @@ msgstr ""
"TreeView::get_column()</methodname>方法然后再调用<methodname>get_cells()</"
"methodname>获取目标单元格。"
-#: C/index-in.docbook:2555
+#: C/index-in.docbook:2563
msgid ""
"In your signal handler, you should examine the new value and then store it "
"in the Model if that is appropriate for your application."
@@ -4682,11 +4681,11 @@ msgstr ""
"在你的信号处理函数中,你应该检查新值如果其对于你的应用程序而言是合适的则将其"
"储存到你的模型中。"
-#: C/index-in.docbook:2567
+#: C/index-in.docbook:2575
msgid "Iterating over Model Rows"
msgstr "遍历模型行"
-#: C/index-in.docbook:2568
+#: C/index-in.docbook:2576
msgid ""
"<classname>Gtk::TreeModel</classname> provides a C++ Standard Library-style "
"container of its children, via the <methodname>children()</methodname> "
@@ -4698,7 +4697,7 @@ msgstr ""
"<methodname>begin()</methodname>和<methodname>end()</methodname>方法递增迭代"
"器,如下所示:"
-#: C/index-in.docbook:2574
+#: C/index-in.docbook:2582
#, no-wrap
msgid ""
"\n"
@@ -4717,7 +4716,7 @@ msgstr ""
" //Do something with the row - see above for set/get.\n"
"}"
-#: C/index-in.docbook:2581
+#: C/index-in.docbook:2589
msgid ""
"If you always want to iterate across the entire range, much more succinct "
"syntax is possible using C++'s range-based <literal>for</literal> loop:"
@@ -4725,7 +4724,7 @@ msgstr ""
"如果你总是想迭代整个范围,则可以使用C++基于范围的更简洁的<literal>for</"
"literal>循环语法:"
-#: C/index-in.docbook:2585
+#: C/index-in.docbook:2593
#, no-wrap
msgid ""
"\n"
@@ -4740,31 +4739,31 @@ msgstr ""
" //Do something with the row - see above for set/get.\n"
"}"
-#: C/index-in.docbook:2592
+#: C/index-in.docbook:2600
msgid "Row children"
msgstr "子行"
-#: C/index-in.docbook:2597
-#, no-wrap
-msgid "Gtk::TreeModel::Children children = row.children();"
-msgstr "Gtk::TreeModel::Children children = row.children();"
-
-#: C/index-in.docbook:2593
+#: C/index-in.docbook:2601
msgid ""
"When using a <classname>Gtk::TreeStore</classname>, the rows can have child "
"rows, which can have their own children in turn. Use <methodname>Gtk::"
"TreeModel::Row::children()</methodname> to get the container of child "
-"<classname>Row</classname>s: <_:programlisting-1/>"
+"<classname>Row</classname>s:"
msgstr ""
"在使用<classname>Gtk::TreeStore</classname>的时候,其行可以存在子行,子行也可"
"以存在子行。使用<methodname>Gtk::TreeModel::Row::children()</methodname>方法"
-"可以获取<classname>Row</classname>的子行:<_:programlisting-1/>"
+"可以获取<classname>Row</classname>的子行:"
+
+#: C/index-in.docbook:2606
+#, no-wrap
+msgid "Gtk::TreeModel::Children children = row.children();"
+msgstr "Gtk::TreeModel::Children children = row.children();"
-#: C/index-in.docbook:2604
+#: C/index-in.docbook:2612
msgid "The Selection"
msgstr "选择"
-#: C/index-in.docbook:2605
+#: C/index-in.docbook:2613
msgid ""
"To find out what rows the user has selected, get the <classname>Gtk::"
"TreeView::Selection</classname> object from the <classname>TreeView</"
@@ -4773,40 +4772,39 @@ msgstr ""
"要找出用户选择了那些行,请从<classname>TreeView</classname>的<classname>Gtk::"
"TreeView::Selection</classname>对象获取。"
-#: C/index-in.docbook:2610
+#: C/index-in.docbook:2618
#, no-wrap
msgid "auto refTreeSelection = m_TreeView.get_selection();"
msgstr "auto refTreeSelection = m_TreeView.get_selection();"
-#: C/index-in.docbook:2613
+#: C/index-in.docbook:2621
msgid "Single or multiple selection"
msgstr "单选或多选"
-#: C/index-in.docbook:2617
-#, no-wrap
-msgid "refTreeSelection->set_mode(Gtk::SELECTION_MULTIPLE);"
-msgstr "refTreeSelection->set_mode(Gtk::SELECTION_MULTIPLE);"
-
-#: C/index-in.docbook:2614
+#: C/index-in.docbook:2622
msgid ""
"By default, only single rows can be selected, but you can allow multiple "
-"selection by setting the mode, like so: <_:programlisting-1/>"
+"selection by setting the mode, like so:"
msgstr ""
-"默认情况下,只能选定一行,但是你可以通过设置选择模式选择多行,如下所示:<_:"
-"programlisting-1/>"
+"默认情况下,只能选定一行,但是你可以通过设置选择模式选择多行,如下所示:"
-#: C/index-in.docbook:2622
+#: C/index-in.docbook:2626
+#, no-wrap
+msgid "refTreeSelection->set_mode(Gtk::SELECTION_MULTIPLE);"
+msgstr "refTreeSelection->set_mode(Gtk::SELECTION_MULTIPLE);"
+
+#: C/index-in.docbook:2630
msgid "The selected rows"
msgstr "选定的行"
-#: C/index-in.docbook:2623
+#: C/index-in.docbook:2631
msgid ""
"For single-selection, you can just call <methodname>get_selected()</"
"methodname>, like so:"
msgstr ""
"对于单选模式,你可以如下所示调用<methodname>get_selected()</methodname>:"
-#: C/index-in.docbook:2627
+#: C/index-in.docbook:2635
#, no-wrap
msgid ""
"auto iter = refTreeSelection->get_selected();\n"
@@ -4823,7 +4821,7 @@ msgstr ""
" //Do something with the row.\n"
"}"
-#: C/index-in.docbook:2634
+#: C/index-in.docbook:2642
msgid ""
"For multiple-selection, you need to call <methodname>get_selected_rows()</"
"methodname> or define a callback, and give it to "
@@ -4836,7 +4834,7 @@ msgstr ""
"<methodname>selected_foreach_path()</methodname>或"
"<methodname>selected_foreach_iter()</methodname>,如下所示:"
-#: C/index-in.docbook:2641
+#: C/index-in.docbook:2649
#, no-wrap
msgid ""
"refTreeSelection->selected_foreach_iter(\n"
@@ -4859,17 +4857,17 @@ msgstr ""
" //Do something with the row.\n"
"}"
-#: C/index-in.docbook:2654
+#: C/index-in.docbook:2662
msgid "The \"changed\" signal"
msgstr "\"changed\"信号"
-#: C/index-in.docbook:2655
+#: C/index-in.docbook:2663
msgid ""
"To respond to the user clicking on a row or range of rows, connect to the "
"signal like so:"
msgstr "要响应用户单击某行或者某个范围的行,请按以下方式连接信号:"
-#: C/index-in.docbook:2659
+#: C/index-in.docbook:2667
#, no-wrap
msgid ""
"refTreeSelection->signal_changed().connect(\n"
@@ -4880,11 +4878,11 @@ msgstr ""
" sigc::mem_fun(*this, &Example_IconTheme::on_selection_changed)\n"
");"
-#: C/index-in.docbook:2665
+#: C/index-in.docbook:2673
msgid "Preventing row selection"
msgstr "防止行被选择"
-#: C/index-in.docbook:2666
+#: C/index-in.docbook:2674
msgid ""
"Maybe the user should not be able to select every item in your list or tree. "
"For instance, in the gtk-demo, you can select a demo to see the source code, "
@@ -4893,7 +4891,7 @@ msgstr ""
"或许用户不应该能选择列表或树中的每个项目。例如在gtk-demo中,你可以选择一个演"
"示来查看他的源代码,但是你选一个演示类别没有意义。"
-#: C/index-in.docbook:2671
+#: C/index-in.docbook:2679
msgid ""
"To control which rows can be selected, use the "
"<methodname>set_select_function()</methodname> method, providing a "
@@ -4902,7 +4900,7 @@ msgstr ""
"要控制一个行是否能被选择,请使用<methodname>set_select_function()</"
"methodname>方法为其提供一个<classname>sigc::slot</classname>回调。例如:"
-#: C/index-in.docbook:2676
+#: C/index-in.docbook:2684
#, no-wrap
msgid ""
"m_refTreeSelection->set_select_function( sigc::mem_fun(*this,\n"
@@ -4911,11 +4909,11 @@ msgstr ""
"m_refTreeSelection->set_select_function( sigc::mem_fun(*this,\n"
" &DemoWindow::select_function) );"
-#: C/index-in.docbook:2678
+#: C/index-in.docbook:2686
msgid "and then"
msgstr "接着"
-#: C/index-in.docbook:2681
+#: C/index-in.docbook:2689
#, no-wrap
msgid ""
"bool DemoWindow::select_function(\n"
@@ -4934,11 +4932,11 @@ msgstr ""
" return iter->children().empty(); // only allow leaf nodes to be selected\n"
"}"
-#: C/index-in.docbook:2691
+#: C/index-in.docbook:2699
msgid "Changing the selection"
msgstr "修改选择"
-#: C/index-in.docbook:2692
+#: C/index-in.docbook:2700
msgid ""
"To change the selection, specify a <classname>Gtk::TreeModel::iterator</"
"classname> or <classname>Gtk::TreeModel::Row</classname>, like so:"
@@ -4946,7 +4944,7 @@ msgstr ""
"要更改选择,请指定<classname>Gtk::TreeModel::iterator</classname>或"
"<classname>Gtk::TreeModel::Row</classname>,然后如下所示:"
-#: C/index-in.docbook:2697
+#: C/index-in.docbook:2705
#, no-wrap
msgid ""
"auto row = m_refModel->children()[5]; //The sixth row.\n"
@@ -4957,11 +4955,11 @@ msgstr ""
"if(row)\n"
" refTreeSelection->select(row.get_iter());"
-#: C/index-in.docbook:2700
+#: C/index-in.docbook:2708
msgid "or"
msgstr "或者"
-#: C/index-in.docbook:2703
+#: C/index-in.docbook:2711
#, no-wrap
msgid ""
"auto iter = m_refModel->children().begin()\n"
@@ -4972,11 +4970,11 @@ msgstr ""
"if(iter)\n"
" refTreeSelection->select(iter);"
-#: C/index-in.docbook:2712
+#: C/index-in.docbook:2720
msgid "Sorting"
msgstr "排序"
-#: C/index-in.docbook:2713
+#: C/index-in.docbook:2721
msgid ""
"The standard tree models (<classname>TreeStore</classname> and "
"<classname>ListStore</classname>) derive from <classname>TreeSortable</"
@@ -4992,7 +4990,7 @@ msgstr ""
"排序。或者向<methodname>set_sort_func()</methodname>提供一个回调函数以实现更"
"复杂的排序算法。"
-#: C/index-in.docbook:2717
+#: C/index-in.docbook:2725
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TreeSortable.html\">TreeSortable Reference</ulink>"
@@ -5000,11 +4998,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TreeSortable.html\">可排序树参考</ulink>"
-#: C/index-in.docbook:2720
+#: C/index-in.docbook:2728
msgid "Sorting by clicking on columns"
msgstr "单击列进行排序"
-#: C/index-in.docbook:2721
+#: C/index-in.docbook:2729
msgid ""
"So that a user can click on a <classname>TreeView</classname>'s column "
"header to sort the <classname>TreeView</classname>'s contents, call "
@@ -5017,7 +5015,7 @@ msgstr ""
"<methodname>Gtk::TreeView::Column::set_sort_column()</methodname>,以提供此功"
"能。如下所示:"
-#: C/index-in.docbook:2724
+#: C/index-in.docbook:2732
#, no-wrap
msgid ""
"auto pColumn = treeview.get_column(0);\n"
@@ -5028,11 +5026,11 @@ msgstr ""
"if(pColumn)\n"
" pColumn->set_sort_column(m_columns.m_col_id);"
-#: C/index-in.docbook:2730
+#: C/index-in.docbook:2738
msgid "Independently sorted views of the same model"
msgstr "对同一模型进行独立排序的视图"
-#: C/index-in.docbook:2731
+#: C/index-in.docbook:2739
msgid ""
"The <classname>TreeView</classname> already allows you to show the same "
"<classname>TreeModel</classname> in two <classname>TreeView</classname> "
@@ -5052,7 +5050,7 @@ msgstr ""
"的将已排序版本。你可以如下所示的将已排序版本模型添加到<classname>TreeView</"
"classname>:"
-#: C/index-in.docbook:2739
+#: C/index-in.docbook:2747
#, no-wrap
msgid ""
"auto sorted_model = Gtk::TreeModelSort::create(model);\n"
@@ -5063,7 +5061,7 @@ msgstr ""
"sorted_model->set_sort_column(columns.m_col_name, Gtk::SORT_ASCENDING);\n"
"treeview.set_model(sorted_model);"
-#: C/index-in.docbook:2743
+#: C/index-in.docbook:2751
msgid ""
"Note, however, that the TreeView will provide iterators to the sorted model. "
"You must convert them to iterators to the underlying child model in order to "
@@ -5072,7 +5070,7 @@ msgstr ""
"请注意,这样做树形视图将会提供已排序模型的迭代器。你必须将其转换为基础的子模"
"型迭代器以便对这个模型进行操作。例如:"
-#: C/index-in.docbook:2745
+#: C/index-in.docbook:2753
#, no-wrap
msgid ""
"void ExampleWindow::on_button_delete()\n"
@@ -5103,7 +5101,7 @@ msgstr ""
" }\n"
"}"
-#: C/index-in.docbook:2759
+#: C/index-in.docbook:2767
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TreeModelSort.html\">TreeModelSort Reference</ulink>"
@@ -5111,12 +5109,12 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TreeModelSort.html\">树模型排序参考</ulink>"
-#: C/index-in.docbook:2765 C/index-in.docbook:2887 C/index-in.docbook:4604
-#: C/index-in.docbook:4757
+#: C/index-in.docbook:2773 C/index-in.docbook:2895 C/index-in.docbook:4611
+#: C/index-in.docbook:4764
msgid "Drag and Drop"
msgstr "拖放"
-#: C/index-in.docbook:2766
+#: C/index-in.docbook:2774
msgid ""
"<classname>Gtk::TreeView</classname> already implements simple drag-and-drop "
"when used with the <classname>Gtk::ListStore</classname> or <classname>Gtk::"
@@ -5129,11 +5127,11 @@ msgstr ""
"果有必要,它还允许你使用常规的<link linkend=\"chapter-draganddrop\">拖放</"
"link>API实现更复杂的拖放行为。"
-#: C/index-in.docbook:2775
+#: C/index-in.docbook:2783
msgid "Reorderable rows"
msgstr "可重排序的行"
-#: C/index-in.docbook:2776
+#: C/index-in.docbook:2784
msgid ""
"If you call <methodname>Gtk::TreeView::set_reorderable()</methodname> then "
"your TreeView's items can be moved within the treeview itself. This is "
@@ -5143,7 +5141,7 @@ msgstr ""
"视图中移动其本身的项目。<classname>TreeStore</classname>的示例对此进行了演"
"示。"
-#: C/index-in.docbook:2781
+#: C/index-in.docbook:2789
msgid ""
"However, this does not allow you any control of which items can be dragged, "
"and where they can be dropped. If you need that extra control then you might "
@@ -5163,15 +5161,15 @@ msgstr ""
"TreeModel::Path</literal>并返回<literal>true</literal>或<literal>false</"
"literal>来允许或禁止拖放。"
-#: C/index-in.docbook:2788
+#: C/index-in.docbook:2796
msgid "This is demonstrated in the drag_and_drop example."
msgstr "在drag_and_drop示例中对此进行了演示。"
-#: C/index-in.docbook:2794 C/index-in.docbook:2909
+#: C/index-in.docbook:2802 C/index-in.docbook:2917
msgid "Popup Context Menu"
msgstr "弹出上下文菜单"
-#: C/index-in.docbook:2795
+#: C/index-in.docbook:2803
msgid ""
"Lots of people need to implement right-click context menus for "
"<classname>TreeView</classname>'s so we will explain how to do that here to "
@@ -5183,11 +5181,11 @@ msgstr ""
"们在这里说明如何做到这个以节省你的时间。其与普通的上下文菜单只有一两点不同,"
"如<link linkend=\"sec-menus-popup\">菜单章节</link>所述。"
-#: C/index-in.docbook:2804
+#: C/index-in.docbook:2812
msgid "Handling <literal>button_press_event</literal>"
msgstr "处理<literal>button_press_event</literal>"
-#: C/index-in.docbook:2805
+#: C/index-in.docbook:2813
msgid ""
"To detect a click of the right mouse button, you need to handle the "
"<literal>button_press_event</literal> signal, and check exactly which button "
@@ -5206,16 +5204,16 @@ msgstr ""
"<classname>TreeView</classname>的派生类中覆盖默认信号处理函数。你可能还想在执"
"行任何其他操作之前先调用默认信号处理函数,以便右键时先选择该行。"
-#: C/index-in.docbook:2815
+#: C/index-in.docbook:2823
msgid "This is demonstrated in the Popup Context Menu example."
msgstr "Popup Context Menu示例中对此进行了演示。"
-#: C/index-in.docbook:2820 C/index-in.docbook:3314 C/index-in.docbook:3618
-#: C/index-in.docbook:4867
+#: C/index-in.docbook:2828 C/index-in.docbook:3322 C/index-in.docbook:3626
+#: C/index-in.docbook:4874
msgid "Examples"
msgstr "示例"
-#: C/index-in.docbook:2822
+#: C/index-in.docbook:2830
msgid ""
"Some <classname>TreeView</classname> examples are shown here. There are more "
"examples in the <ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-"
@@ -5227,7 +5225,7 @@ msgstr ""
"documentation/tree/master/examples/book/treeview/\">树形视图文件夹</ulink>还"
"有更多的示例。"
-#: C/index-in.docbook:2826
+#: C/index-in.docbook:2834
msgid ""
"If neither <classname>ListStore</classname> nor <classname>TreeStore</"
"classname> is suitable for your application, look at the <ulink url="
@@ -5242,11 +5240,11 @@ msgstr ""
"模型</ulink>示例。它向你展示了如何实现自己的<classname>TreeModel</classname>"
"接口"
-#: C/index-in.docbook:2832
+#: C/index-in.docbook:2840
msgid "ListStore"
msgstr "列表储存(ListStore)"
-#: C/index-in.docbook:2833
+#: C/index-in.docbook:2841
msgid ""
"This example has a <classname>Gtk::TreeView</classname> widget, with a "
"<classname>Gtk::ListStore</classname> model."
@@ -5254,7 +5252,7 @@ msgstr ""
"这个例子有一个使用<classname>Gtk::ListStore</classname>模型的<classname>Gtk::"
"TreeView</classname>部件。"
-#: C/index-in.docbook:2845
+#: C/index-in.docbook:2853
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/list/\">Source Code</ulink>"
@@ -5262,11 +5260,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/list/\">源代码</ulink>"
-#: C/index-in.docbook:2849
+#: C/index-in.docbook:2857
msgid "TreeStore"
msgstr "树储存(TreeStore)"
-#: C/index-in.docbook:2851
+#: C/index-in.docbook:2859
msgid ""
"This example is very similar to the <classname>ListStore</classname> "
"example, but uses a <classname>Gtk::TreeStore</classname> model instead, and "
@@ -5275,7 +5273,7 @@ msgstr ""
"这个示例和<classname>ListStore</classname>示例非常的相似,但是使用的是"
"<classname>Gtk::TreeStore</classname>模型并且添加了子行。"
-#: C/index-in.docbook:2864
+#: C/index-in.docbook:2872
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/tree/\">Source Code</ulink>"
@@ -5283,7 +5281,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/tree/\">源代码</ulink>"
-#: C/index-in.docbook:2870
+#: C/index-in.docbook:2878
msgid ""
"This example is identical to the <classname>ListStore</classname> example, "
"but it uses <methodname>TreeView::append_column_editable()</methodname> "
@@ -5293,11 +5291,11 @@ msgstr ""
"<methodname>TreeView::append_column_editable()</methodname>代替"
"<methodname>TreeView::append_column()</methodname>。"
-#: C/index-in.docbook:2877
+#: C/index-in.docbook:2885
msgid "TreeView - Editable Cells"
msgstr "树形视图 - 可编辑单元格"
-#: C/index-in.docbook:2883
+#: C/index-in.docbook:2891
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/editable_cells/\">Source Code</ulink>"
@@ -5305,7 +5303,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/editable_cells/\">源代码</ulink>"
-#: C/index-in.docbook:2889
+#: C/index-in.docbook:2897
msgid ""
"This example is much like the <classname>TreeStore</classname> example, but "
"has 2 extra columns to indicate whether the row can be dragged, and whether "
@@ -5319,11 +5317,11 @@ msgstr ""
"classname>来覆盖虚函数,如<link linkend=\"sec-treeview-draganddrop\">拖放树视"
"图</link>小节所述。"
-#: C/index-in.docbook:2899
+#: C/index-in.docbook:2907
msgid "TreeView - Drag And Drop"
msgstr "树形视图 - 拖放"
-#: C/index-in.docbook:2905
+#: C/index-in.docbook:2913
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/drag_and_drop/\">Source Code</ulink>"
@@ -5331,7 +5329,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/drag_and_drop/\">源代码</ulink>"
-#: C/index-in.docbook:2911
+#: C/index-in.docbook:2919
msgid ""
"This example is much like the <classname>ListStore</classname> example, but "
"derives a custom <classname>TreeView</classname> in order to override the "
@@ -5344,11 +5342,11 @@ msgstr ""
"literal>,并将树模型代码封装在派生类代码中,请参阅<link linkend=\"sec-"
"treeview-contextmenu\">树形视图弹出上下文菜单</link>小节。"
-#: C/index-in.docbook:2921
+#: C/index-in.docbook:2929
msgid "TreeView - Popup Context Menu"
msgstr "树形视图 - 弹出上下文菜单"
-#: C/index-in.docbook:2927
+#: C/index-in.docbook:2935
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/popup/\">Source Code</ulink>"
@@ -5356,11 +5354,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/treeview/popup/\">源代码</ulink>"
-#: C/index-in.docbook:2934
+#: C/index-in.docbook:2942
msgid "Combo Boxes"
msgstr "组合框(Combo Boxes)"
-#: C/index-in.docbook:2936
+#: C/index-in.docbook:2944
msgid ""
"The <classname>ComboBox</classname> widget offers a list (or tree) of "
"choices in a dropdown menu. If appropriate, it can show extra information "
@@ -5375,7 +5373,7 @@ msgstr ""
"<classname>ComboBox</classname>部件通常将显示用户的可选项,但是它可以有一个"
"<classname>Entry</classname>以允许用户在没有合适的选项的时候输入任意文本。"
-#: C/index-in.docbook:2939
+#: C/index-in.docbook:2947
msgid ""
"The list is provided via a <classname>TreeModel</classname>, and columns "
"from this model are added to the ComboBox's view with the "
@@ -5389,7 +5387,7 @@ msgstr ""
"供了灵活性和编译时的类型安全,在不需要灵活性的情况下,"
"<classname>ComboBoxText</classname>类提供了更简单的基于文本的特化支持。"
-#: C/index-in.docbook:2942
+#: C/index-in.docbook:2950
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ComboBox."
"html\">Reference</ulink>"
@@ -5397,11 +5395,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1ComboBox."
"html\">参考</ulink>"
-#: C/index-in.docbook:2945
+#: C/index-in.docbook:2953
msgid "The model"
msgstr "模型"
-#: C/index-in.docbook:2946
+#: C/index-in.docbook:2954
msgid ""
"The model for a ComboBox can be defined and filled exactly as for a "
"<classname>TreeView</classname>. For instance, you might derive a ComboBox "
@@ -5410,7 +5408,7 @@ msgstr ""
"可以像<classname>TreeView</classname>一样定义和填充组合框的模型。你可以与如下"
"所示的一样派生具有一个整数行和一个文本行的组合框类:"
-#: C/index-in.docbook:2948
+#: C/index-in.docbook:2956
#, no-wrap
msgid ""
"class ModelColumns : public Gtk::TreeModel::ColumnRecord\n"
@@ -5437,7 +5435,7 @@ msgstr ""
"\n"
"ModelColumns m_columns;"
-#: C/index-in.docbook:2960
+#: C/index-in.docbook:2968
msgid ""
"After appending rows to this model, you should provide the model to the "
"<classname>ComboBox</classname> with the <methodname>set_model()</"
@@ -5460,11 +5458,11 @@ msgstr ""
"methodname>或<methodname>set_cell_data_func()</methodname>指定具体映射到哪"
"行。请注意这些方法在<classname>CellLayout</classname>基类中。"
-#: C/index-in.docbook:2964
+#: C/index-in.docbook:2972
msgid "The chosen item"
msgstr "所选项"
-#: C/index-in.docbook:2965
+#: C/index-in.docbook:2973
msgid ""
"To discover what item, if any, the user has chosen from the ComboBox, call "
"<methodname>ComboBox::get_active()</methodname>. This returns a "
@@ -5480,7 +5478,7 @@ msgstr ""
"以在组合框中只显示人类可读的描述,然后你可以读取模型中储存于该行的整数ID值"
"(于并未被显示的列)。例如:"
-#: C/index-in.docbook:2967
+#: C/index-in.docbook:2975
#, no-wrap
msgid ""
"Gtk::TreeModel::iterator iter = m_Combo.get_active();\n"
@@ -5509,11 +5507,11 @@ msgstr ""
"else\n"
" set_nothing_chosen(); //Your own function."
-#: C/index-in.docbook:2982 C/index-in.docbook:3038
+#: C/index-in.docbook:2990 C/index-in.docbook:3046
msgid "Responding to changes"
msgstr "响应变更"
-#: C/index-in.docbook:2983
+#: C/index-in.docbook:2991
msgid ""
"You might need to react to every change of selection in the ComboBox, for "
"instance to update other widgets. To do so, you should handle the "
@@ -5522,7 +5520,7 @@ msgstr ""
"你可能需要对组合框中每个选择的变更进行响应,例如更新其他的部件。为此你应该处"
"理<literal>changed</literal>。例如:"
-#: C/index-in.docbook:2986
+#: C/index-in.docbook:2994
#, no-wrap
msgid ""
"m_combo.signal_changed().connect( sigc::mem_fun(*this,\n"
@@ -5531,15 +5529,15 @@ msgstr ""
"m_combo.signal_changed().connect( sigc::mem_fun(*this,\n"
" &ExampleWindow::on_combo_changed) );"
-#: C/index-in.docbook:2990 C/index-in.docbook:3071
+#: C/index-in.docbook:2998 C/index-in.docbook:3079
msgid "Full Example"
msgstr "完整例子"
-#: C/index-in.docbook:2993
+#: C/index-in.docbook:3001
msgid "ComboBox"
msgstr "组合框(ComboBox)"
-#: C/index-in.docbook:2999
+#: C/index-in.docbook:3007
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/complex\">Source Code</ulink>"
@@ -5547,15 +5545,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/complex\">源代码</ulink>"
-#: C/index-in.docbook:3003 C/index-in.docbook:3084
+#: C/index-in.docbook:3011 C/index-in.docbook:3092
msgid "Simple Text Example"
msgstr "简单文字示例"
-#: C/index-in.docbook:3006
+#: C/index-in.docbook:3014
msgid "ComboBoxText"
msgstr "文本组合框(ComboBoxText)"
-#: C/index-in.docbook:3012
+#: C/index-in.docbook:3020
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/text\">Source Code</ulink>"
@@ -5563,11 +5561,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/text\">源代码</ulink>"
-#: C/index-in.docbook:3017
+#: C/index-in.docbook:3025
msgid "ComboBox with an Entry"
msgstr "带有条目的组合框"
-#: C/index-in.docbook:3019
+#: C/index-in.docbook:3027
msgid ""
"A <classname>ComboBox</classname> may contain an <classname>Entry</"
"classname> widget for entering of arbitrary text, by specifying "
@@ -5578,39 +5576,38 @@ msgstr ""
"参数为<literal>true</literal>,可以令其包含一个<classname>Entry</classname>部"
"件用以输入任意文本。"
-#: C/index-in.docbook:3022
+#: C/index-in.docbook:3030
msgid "The text column"
msgstr "文本列"
-#: C/index-in.docbook:3024
-#, no-wrap
-msgid "m_combo.set_entry_text_column(m_columns.m_col_name);"
-msgstr "m_combo.set_entry_text_column(m_columns.m_col_name);"
-
-#: C/index-in.docbook:3023
+#: C/index-in.docbook:3031
msgid ""
"So that the <classname>Entry</classname> can interact with the drop-down "
"list of choices, you must specify which of your model columns is the text "
-"column, with <methodname>set_entry_text_column()</methodname>. For instance: "
-"<_:programlisting-1/>"
+"column, with <methodname>set_entry_text_column()</methodname>. For instance:"
msgstr ""
"为了使<classname>Entry</classname>可以与下拉列表的选项进行交互,你必须使用"
"<methodname>set_entry_text_column()</methodname>指定哪些模型列是文本列。例"
-"如:<_:programlisting-1/>"
+"如:"
-#: C/index-in.docbook:3026
-msgid ""
-"When you select a choice from the drop-down menu, the value from this column "
+#: C/index-in.docbook:3033
+#, no-wrap
+msgid "m_combo.set_entry_text_column(m_columns.m_col_name);"
+msgstr "m_combo.set_entry_text_column(m_columns.m_col_name);"
+
+#: C/index-in.docbook:3034
+msgid ""
+"When you select a choice from the drop-down menu, the value from this column "
"will be placed in the <classname>Entry</classname>."
msgstr ""
"当你从下拉菜单中选择一个选项的时候,该列的值将被放于<classname>Entry</"
"classname>中。"
-#: C/index-in.docbook:3032
+#: C/index-in.docbook:3040
msgid "The entry"
msgstr "条目"
-#: C/index-in.docbook:3033
+#: C/index-in.docbook:3041
msgid ""
"Because the user may enter arbitrary text, an active model row isn't enough "
"to tell us what text the user has entered. Therefore, you should retrieve "
@@ -5623,7 +5620,7 @@ msgstr ""
"中的<classname>Entry</classname>部件并在其上调用<methodname>get_text()</"
"methodname>。"
-#: C/index-in.docbook:3047
+#: C/index-in.docbook:3055
#, no-wrap
msgid ""
"auto entry = m_Combo.get_entry();\n"
@@ -5654,7 +5651,7 @@ msgstr ""
" &ExampleWindow::on_entry_focus_out_event) );\n"
"}"
-#: C/index-in.docbook:3039
+#: C/index-in.docbook:3047
msgid ""
"When the user enters arbitrary text, it may not be enough to connect to the "
"<literal>changed</literal> signal, which is emitted for every typed "
@@ -5679,7 +5676,7 @@ msgstr ""
"<literal>changed</literal>信号,你可以连接它们中的任意一个。但是在这里只有"
"<classname>Entry</classname>的<literal>focus_out_event</literal>信号才有用。"
-#: C/index-in.docbook:3065
+#: C/index-in.docbook:3073
msgid ""
"X events are described in more detail in the <link linkend=\"sec-"
"xeventsignals\">X Event signals</link> section in the appendix."
@@ -5687,11 +5684,11 @@ msgstr ""
"X事件在附录的<link linkend=\"sec-xeventsignals\">X事件信号</link>小节有更详细"
"的描述。"
-#: C/index-in.docbook:3074
+#: C/index-in.docbook:3082
msgid "ComboBox with Entry"
msgstr "带条目的组合框"
-#: C/index-in.docbook:3080
+#: C/index-in.docbook:3088
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/entry_complex\">Source Code</ulink>"
@@ -5699,11 +5696,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/entry_complex\">源代码</ulink>"
-#: C/index-in.docbook:3087
+#: C/index-in.docbook:3095
msgid "ComboBoxText with Entry"
msgstr "带条目的文本组合框"
-#: C/index-in.docbook:3093
+#: C/index-in.docbook:3101
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/entry_text\">Source Code</ulink>"
@@ -5711,11 +5708,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/combobox/entry_text\">源代码</ulink>"
-#: C/index-in.docbook:3106 C/index-in.docbook:3319
+#: C/index-in.docbook:3114 C/index-in.docbook:3327
msgid "TextView"
msgstr "文本视图(TextView)"
-#: C/index-in.docbook:3107
+#: C/index-in.docbook:3115
msgid ""
"The <classname>TextView</classname> widget can be used to display and edit "
"large amounts of formatted text. Like the <classname>TreeView</classname>, "
@@ -5726,11 +5723,11 @@ msgstr ""
"<classname>TreeView</classname>一样,它具有模型/视图设计。"
"<classname>TextBuffer</classname>是它预期的模型。"
-#: C/index-in.docbook:3115
+#: C/index-in.docbook:3123
msgid "The Buffer"
msgstr "缓冲区"
-#: C/index-in.docbook:3116
+#: C/index-in.docbook:3124
msgid ""
"<classname>Gtk::TextBuffer</classname> is a model containing the data for "
"the <classname>Gtk::TextView</classname>, like the <classname>Gtk::"
@@ -5748,7 +5745,7 @@ msgstr ""
"方式显示文本缓冲区。你也可以维护多个<classname>Gtk::TextBuffer</classname>并"
"让同一个<classname>Gtk::TextView</classname>部件于不同时候分别显示它们。"
-#: C/index-in.docbook:3126
+#: C/index-in.docbook:3134
msgid ""
"The <classname>TextView</classname> creates its own default "
"<classname>TextBuffer</classname>, which you can access via the "
@@ -5758,7 +5755,7 @@ msgstr ""
"<classname>TextBuffer</classname>,你可以通过<methodname>get_buffer()</"
"methodname>方法访问这个缓冲区。"
-#: C/index-in.docbook:3132
+#: C/index-in.docbook:3140
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TextBuffer.html\">Reference</ulink>"
@@ -5766,11 +5763,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TextBuffer.html\">参考</ulink>"
-#: C/index-in.docbook:3135
+#: C/index-in.docbook:3143
msgid "Iterators"
msgstr "迭代器"
-#: C/index-in.docbook:3136
+#: C/index-in.docbook:3144
msgid ""
"A <classname>Gtk::TextBuffer::iterator</classname> and a <classname>Gtk::"
"TextBuffer::const_iterator</classname> represent a position between two "
@@ -5786,7 +5783,7 @@ msgstr ""
"效。因此,迭代器不能用于保存越过缓冲区被修改部分的位置。如果想保存位置,请使"
"用<classname>Gtk::TextBuffer::Mark</classname>。"
-#: C/index-in.docbook:3143
+#: C/index-in.docbook:3151
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextIter."
"html\">Reference</ulink>"
@@ -5794,15 +5791,15 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextIter."
"html\">参考</ulink>"
-#: C/index-in.docbook:3147
+#: C/index-in.docbook:3155
msgid "Tags and Formatting"
msgstr "标签和格式"
-#: C/index-in.docbook:3150
+#: C/index-in.docbook:3158
msgid "Tags"
msgstr "标签(Tags)"
-#: C/index-in.docbook:3151
+#: C/index-in.docbook:3159
msgid ""
"To specify that some text in the buffer should have specific formatting, you "
"must define a tag to hold that formatting information, and then apply that "
@@ -5812,7 +5809,7 @@ msgstr ""
"要指定缓冲区中的一些文本具有特定的格式,你需要定义一个标签来保存格式信息,并"
"将该标签应用于文本区域。例如,定义标签及其属性:"
-#: C/index-in.docbook:3154
+#: C/index-in.docbook:3162
#, no-wrap
msgid ""
"auto refTagMatch = Gtk::TextBuffer::Tag::create();\n"
@@ -5821,7 +5818,7 @@ msgstr ""
"auto refTagMatch = Gtk::TextBuffer::Tag::create();\n"
"refTagMatch->property_background() = \"orange\";"
-#: C/index-in.docbook:3156
+#: C/index-in.docbook:3164
msgid ""
"You can specify a name for the <classname>Tag</classname> when using the "
"<methodname>create()</methodname> method, but it is not necessary."
@@ -5829,11 +5826,11 @@ msgstr ""
"你可以在使用<classname>Tag</classname>的<methodname>create()</methodname>方法"
"时为其指定一个名称,但这不是必须的。"
-#: C/index-in.docbook:3161
+#: C/index-in.docbook:3169
msgid "The <classname>Tag</classname> class has many other properties."
msgstr "<classname>Tag</classname>类还有许多其他的特性。"
-#: C/index-in.docbook:3165
+#: C/index-in.docbook:3173
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextTag."
"html\">Reference</ulink>"
@@ -5841,11 +5838,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextTag."
"html\">参考</ulink>"
-#: C/index-in.docbook:3170
+#: C/index-in.docbook:3178
msgid "TagTable"
msgstr "标签表(TagTable)"
-#: C/index-in.docbook:3172
+#: C/index-in.docbook:3180
msgid ""
"Each <classname>Gtk::TextBuffer</classname> uses a <classname>Gtk::"
"TextBuffer::TagTable</classname>, which contains the <classname>Tag</"
@@ -5860,7 +5857,7 @@ msgstr ""
"<classname>TagTable</classname>。当你创建<classname>Tag</classname>的时候,你"
"应该将其加入<classname>TagTable</classname>。例如:"
-#: C/index-in.docbook:3180
+#: C/index-in.docbook:3188
#, no-wrap
msgid ""
"auto refTagTable = Gtk::TextBuffer::TagTable::create();\n"
@@ -5875,7 +5872,7 @@ msgstr ""
"//for use after creation of the buffer.\n"
"auto refBuffer = Gtk::TextBuffer::create(refTagTable);"
-#: C/index-in.docbook:3186
+#: C/index-in.docbook:3194
msgid ""
"You can also use <methodname>get_tag_table()</methodname> to get, and maybe "
"modify, the <classname>TextBuffer</classname>'s default <classname>TagTable</"
@@ -5885,7 +5882,7 @@ msgstr ""
"<classname>TextBuffer</classname>的默认<classname>TagTable</classname>,而不"
"是显示创建一个。"
-#: C/index-in.docbook:3192
+#: C/index-in.docbook:3200
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TextTagTable.html\">Reference</ulink>"
@@ -5893,11 +5890,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TextTagTable.html\">参考</ulink>"
-#: C/index-in.docbook:3197
+#: C/index-in.docbook:3205
msgid "Applying Tags"
msgstr "应用标签"
-#: C/index-in.docbook:3198
+#: C/index-in.docbook:3206
msgid ""
"If you have created a <classname>Tag</classname> and added it to the "
"<classname>TagTable</classname>, you may apply that tag to part of the "
@@ -5910,23 +5907,21 @@ msgstr ""
"用该格式显示某些文本。你可以通过使用<classname>Gtk::TextBuffer::iterator</"
"classname>指示文本的开始和结束范围。例如:"
-#: C/index-in.docbook:3205
+#: C/index-in.docbook:3213
#, no-wrap
msgid "refBuffer->apply_tag(refTagMatch, iterRangeStart, iterRangeStop);"
msgstr "refBuffer->apply_tag(refTagMatch, iterRangeStart, iterRangeStop);"
-#: C/index-in.docbook:3208
+#: C/index-in.docbook:3214
+msgid "Or you could specify the tag when first inserting the text:"
+msgstr "或者你可以在首次插入文本的时候指定标签:"
+
+#: C/index-in.docbook:3217
#, no-wrap
msgid "refBuffer->insert_with_tag(iter, \"Some text\", refTagMatch);"
msgstr "refBuffer->insert_with_tag(iter, \"Some text\", refTagMatch);"
-#: C/index-in.docbook:3206
-msgid ""
-"Or you could specify the tag when first inserting the text: <_:"
-"programlisting-1/>"
-msgstr "或者你可以在首次插入文本的时候指定标签:<_:programlisting-1/>"
-
-#: C/index-in.docbook:3211
+#: C/index-in.docbook:3219
msgid ""
"You can apply more than one <classname>Tag</classname> to the same text, by "
"using <methodname>apply_tag()</methodname> more than once, or by using "
@@ -5939,11 +5934,11 @@ msgstr ""
"应用于同一文本。<classname>Tag</classname>可能会为同一属性指定不同的值,但你"
"可以使用<methodname>Tag::set_priority()</methodname>解决这些冲突。"
-#: C/index-in.docbook:3223
+#: C/index-in.docbook:3231
msgid "Marks"
msgstr "标记(Marks)"
-#: C/index-in.docbook:3224
+#: C/index-in.docbook:3232
msgid ""
"<classname>TextBuffer</classname> iterators are generally invalidated when "
"the text changes, but you can use a <classname>Gtk::TextBuffer::Mark</"
@@ -5952,12 +5947,12 @@ msgstr ""
"当文本发生更改的时候<classname>TextBuffer</classname>迭代器通常会失效,但是你"
"可以使用<classname>Gtk::TextBuffer::Mark</classname>记住位置,例如:"
-#: C/index-in.docbook:3229
+#: C/index-in.docbook:3237
#, no-wrap
msgid "auto refMark = refBuffer->create_mark(iter);"
msgstr "auto refMark = refBuffer->create_mark(iter);"
-#: C/index-in.docbook:3231
+#: C/index-in.docbook:3239
msgid ""
"You can then use the <methodname>get_iter()</methodname> method later to "
"create an iterator for the <classname>Mark</classname>'s new position."
@@ -5965,7 +5960,7 @@ msgstr ""
"你可以在之后使用<methodname>get_iter()</methodname>方法为<classname>Mark</"
"classname>的新位置创建迭代器。"
-#: C/index-in.docbook:3236
+#: C/index-in.docbook:3244
msgid ""
"There are two built-in <classname>Mark</classname>s - <literal>insert</"
"literal> and <literal>selection_bound</literal>, which you can access with "
@@ -5977,7 +5972,7 @@ msgstr ""
"classname>的<methodname>get_insert()</methodname>和"
"<methodname>get_selection_bound()</methodname>方法访问它们。"
-#: C/index-in.docbook:3243
+#: C/index-in.docbook:3251
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextMark."
"html\">Reference</ulink>"
@@ -5985,7 +5980,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextMark."
"html\">参考</ulink>"
-#: C/index-in.docbook:3249
+#: C/index-in.docbook:3257
msgid ""
"As mentioned above, each <classname>TextView</classname> has a "
"<classname>TextBuffer</classname>, and one or more <classname>TextView</"
@@ -5995,7 +5990,7 @@ msgstr ""
"classname>,并且多个<classname>TextView</classname>可以共享同一个"
"<classname>TextBuffer</classname>。"
-#: C/index-in.docbook:3256
+#: C/index-in.docbook:3264
msgid ""
"Like the <classname>TreeView</classname>, you should probably put your "
"<classname>TextView</classname> inside a <classname>ScrolledWindow</"
@@ -6006,7 +6001,7 @@ msgstr ""
"classname>放入<classname>ScrolledWindow</classname>中以允许用户使用滚动条查看"
"并在整个文本区域中移动。"
-#: C/index-in.docbook:3263
+#: C/index-in.docbook:3271
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextView."
"html\">Reference</ulink>"
@@ -6014,11 +6009,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1TextView."
"html\">参考</ulink>"
-#: C/index-in.docbook:3266
+#: C/index-in.docbook:3274
msgid "Default formatting"
msgstr "默认格式"
-#: C/index-in.docbook:3267
+#: C/index-in.docbook:3275
msgid ""
"<classname>TextView</classname> has various methods which allow you to "
"change the presentation of the buffer for this particular view. Some of "
@@ -6033,11 +6028,11 @@ msgstr ""
"<methodname>set_right_margin()</methodname>、<methodname>set_indent()</"
"methodname>等。"
-#: C/index-in.docbook:3278
+#: C/index-in.docbook:3286
msgid "Scrolling"
msgstr "滚动"
-#: C/index-in.docbook:3279
+#: C/index-in.docbook:3287
msgid ""
"<classname>Gtk::TextView</classname> has various <methodname>scroll_to()</"
"methodname> methods. These allow you to ensure that a particular part of the "
@@ -6049,11 +6044,11 @@ msgstr ""
"methodname>方法。这些可以确保你能看到缓冲区中的特定部分。例如你的应用程序可能"
"会使用<methodname>Gtk::TextView::scroll_to()</methodname>方法显示找到的文本。"
-#: C/index-in.docbook:3294
+#: C/index-in.docbook:3302
msgid "Widgets and ChildAnchors"
msgstr "部件和子锚(ChildAnchors)"
-#: C/index-in.docbook:3295
+#: C/index-in.docbook:3303
msgid ""
"You can embed widgets, such as <classname>Gtk::Button</classname>s, in the "
"text. Each such child widget needs a <classname>ChildAnchor</classname>. "
@@ -6066,12 +6061,12 @@ msgstr ""
"如,使用<methodname>Gtk::TextBuffer::create_child_anchor()</methodname>于特定"
"位置创建子锚:"
-#: C/index-in.docbook:3302
+#: C/index-in.docbook:3310
#, no-wrap
msgid "auto refAnchor = refBuffer->create_child_anchor(iter);"
msgstr "auto refAnchor = refBuffer->create_child_anchor(iter);"
-#: C/index-in.docbook:3304
+#: C/index-in.docbook:3312
msgid ""
"Then, to add a widget at that position, use <methodname>Gtk::TextView::"
"add_child_at_anchor()</methodname>:"
@@ -6079,12 +6074,12 @@ msgstr ""
"然后使用<methodname>Gtk::TextView::add_child_at_anchor()</methodname>将部件添"
"加到该位置:"
-#: C/index-in.docbook:3308
+#: C/index-in.docbook:3316
#, no-wrap
msgid "m_TextView.add_child_at_anchor(m_Button, refAnchor);"
msgstr "m_TextView.add_child_at_anchor(m_Button, refAnchor);"
-#: C/index-in.docbook:3310
+#: C/index-in.docbook:3318
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TextChildAnchor.html\">Reference</ulink>"
@@ -6092,7 +6087,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1TextChildAnchor.html\">参考</ulink>"
-#: C/index-in.docbook:3325
+#: C/index-in.docbook:3333
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/textview/\">Source Code</ulink>"
@@ -6100,11 +6095,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/textview/\">源代码</ulink>"
-#: C/index-in.docbook:3334
+#: C/index-in.docbook:3342
msgid "Menus and Toolbars"
msgstr "菜单和工具栏"
-#: C/index-in.docbook:3336
+#: C/index-in.docbook:3344
msgid ""
"There are specific APIs for menus and toolbars, but you should usually deal "
"with them together, creating <classname>Gio::SimpleAction</classname>s that "
@@ -6119,7 +6114,7 @@ msgstr ""
"被激活而不需要分别响应菜单和工具栏。你可以通过动作启用或者禁用菜单和工具栏"
"项。<classname>Gtk::Builder</classname>可以创建菜单和工具栏。"
-#: C/index-in.docbook:3344
+#: C/index-in.docbook:3352
msgid ""
"This involves the use of the <classname>Gio::SimpleActionGroup</classname>, "
"<classname>Gio::SimpleAction</classname> and <classname>Gtk::Builder</"
@@ -6132,11 +6127,11 @@ msgstr ""
"这些类都需要通过返回<classname>RefPtr</classname>的<methodname>create()</"
"methodname>方法进行实例化。"
-#: C/index-in.docbook:3352
+#: C/index-in.docbook:3360
msgid "Actions"
msgstr "动作(Actions)"
-#: C/index-in.docbook:3353
+#: C/index-in.docbook:3361
msgid ""
"First create the <classname>Gio::SimpleAction</classname>s and add them to a "
"<classname>Gio::SimpleActionGroup</classname>, with <methodname>Gio::"
@@ -6151,7 +6146,7 @@ msgstr ""
"<classname>Gio::SimpleActionGroup</classname>的基类。)。然后将动作组使用"
"<methodname>Gtk::Widget::insert_action_group()</methodname>加入到你的窗口中。"
-#: C/index-in.docbook:3361
+#: C/index-in.docbook:3369
msgid ""
"The arguments to <methodname>add_action()</methodname> specify the action's "
"name, which is used in the menu items and toolbar buttons. You can also "
@@ -6163,11 +6158,11 @@ msgstr ""
"具栏按钮使用。你还可以在调用<methodname>add_action()</methodname>时指定信号处"
"理函数。在菜单项或工具栏按钮被激活的时候此信号处理函数被调用。"
-#: C/index-in.docbook:3369 C/index-in.docbook:3495
+#: C/index-in.docbook:3377 C/index-in.docbook:3503
msgid "For instance:"
msgstr "例如:"
-#: C/index-in.docbook:3371
+#: C/index-in.docbook:3379
#, no-wrap
msgid ""
"\n"
@@ -6188,7 +6183,7 @@ msgstr ""
"\n"
"insert_action_group(\"example\", m_refActionGroup);\n"
-#: C/index-in.docbook:3381
+#: C/index-in.docbook:3389
msgid ""
"If you use an <classname>Gtk::ApplicationWindow</classname>, you don't have "
"to create your own action group. <classname>Gio::ActionGroup</classname> and "
@@ -6199,11 +6194,11 @@ msgstr ""
"作组。因为<classname>Gio::ActionGroup</classname>和<classname>Gio::"
"ActionMap</classname>是<classname>Gtk::ApplicationWindow</classname>的基类。"
-#: C/index-in.docbook:3392
+#: C/index-in.docbook:3400
msgid "Menubar and Toolbar"
msgstr "菜单和工具栏"
-#: C/index-in.docbook:3393
+#: C/index-in.docbook:3401
msgid ""
"Next you should create a <classname>Gtk::Builder</classname>. At this point "
"is also a good idea to tell the application to respond to keyboard "
@@ -6214,11 +6209,12 @@ msgstr ""
"<methodname>Gtk::Application::set_accel_for_action()</methodname>告诉应用程序"
"响应键盘快捷键也是一个好主意。"
-#: C/index-in.docbook:3399
+#: C/index-in.docbook:3407 C/index-in.docbook:5053 C/index-in.docbook:5118
+#: C/index-in.docbook:10564
msgid "For instance,"
msgstr "例如:"
-#: C/index-in.docbook:3401
+#: C/index-in.docbook:3409
#, no-wrap
msgid ""
"\n"
@@ -6237,7 +6233,7 @@ msgstr ""
"app->set_accel_for_action(\"example.copy\", \"<Primary>c\");\n"
"app->set_accel_for_action(\"example.paste\", \"<Primary>v\");\n"
-#: C/index-in.docbook:3409
+#: C/index-in.docbook:3417
msgid ""
"If your main window is derived from <classname>ApplicationWindow</classname> "
"and you instantiate your menubar with <methodname>Gtk::Application::"
@@ -6250,7 +6246,7 @@ msgstr ""
"则你不需要调用<methodname>set_accel_for_action()</methodname>。有关示例参见:"
"<link linkend=\"menu-example-main\">应用程序菜单和主菜单示例</link>。"
-#: C/index-in.docbook:3417
+#: C/index-in.docbook:3425
msgid ""
"Then, you can define the actual visible layout of the menus and toolbars, "
"and add the UI layout to the <classname>Builder</classname>. This \"ui string"
@@ -6261,7 +6257,7 @@ msgstr ""
"<classname>Builder</classname>。这个\"UI字符串\"使用XML格式,你应该在其中使用"
"你已经创建的动作的名称。例如:"
-#: C/index-in.docbook:3423
+#: C/index-in.docbook:3431
#, no-wrap
msgid ""
"\n"
@@ -6344,7 +6340,7 @@ msgstr ""
"m_refBuilder->add_from_string(ui_info);\n"
"m_refBuilder->add_from_resource(\"/toolbar/toolbar.glade\");\n"
-#: C/index-in.docbook:3464
+#: C/index-in.docbook:3472
msgid ""
"This is where we specify the names of the menu items as they will be seen by "
"users in the menu. Therefore, this is where you should make strings "
@@ -6353,7 +6349,7 @@ msgstr ""
"这里我们指定菜单项的名称,因为用户可以在菜单中看到它们。因此你应该添加"
"<literal>translatable='yes'</literal>使这些的字符串可以被翻译。"
-#: C/index-in.docbook:3468
+#: C/index-in.docbook:3476
msgid ""
"To instantiate a <classname>Gtk::MenuBar</classname> and <classname>Gtk::"
"Toolbar</classname> which you can actually show, you should use the "
@@ -6366,7 +6362,7 @@ msgstr ""
"methodname>和<methodname>Builder::get_widget()</methodname>方法,然后将部件加"
"入容器中。例如:"
-#: C/index-in.docbook:3475
+#: C/index-in.docbook:3483
#, no-wrap
msgid ""
"\n"
@@ -6385,11 +6381,11 @@ msgstr ""
"auto toolbar = m_refBuilder->get_widget<Gtk::Toolbar>(\"toolbar\");\n"
"m_Box.append(*toolbar);\n"
-#: C/index-in.docbook:3487
+#: C/index-in.docbook:3495
msgid "Popup Menus"
msgstr "弹出菜单"
-#: C/index-in.docbook:3488
+#: C/index-in.docbook:3496
msgid ""
"<classname>Menus</classname> are normally just added to a window, but they "
"can also be displayed temporarily as the result of a mouse button click. For "
@@ -6399,7 +6395,7 @@ msgstr ""
"<classname>Menus</classname>通常将直接被加入到窗口中,但也可以通过鼠标单击来"
"临时显示他们。例如当用户单击鼠标右键的时候,可能需要显示上下文菜单。"
-#: C/index-in.docbook:3497
+#: C/index-in.docbook:3505
#, no-wrap
msgid ""
"\n"
@@ -6454,7 +6450,7 @@ msgstr ""
"auto gmenu = m_refBuilder->get_object<Gio::Menu>(\"menu-examplepopup\");\n"
"m_pMenuPopup = std::make_unique<Gtk::Menu>(gmenu);\n"
-#: C/index-in.docbook:3524
+#: C/index-in.docbook:3532
msgid ""
"To show the popup menu, use <classname>Gtk::Menu</classname>'s "
"<methodname>popup()</methodname> method, providing the button identifier and "
@@ -6466,7 +6462,7 @@ msgstr ""
"信号提供的激活时机(鼠标单双三击、按下还是释放)和按钮标识(哪个鼠标按键)。"
"例如:"
-#: C/index-in.docbook:3530
+#: C/index-in.docbook:3538
#, no-wrap
msgid ""
"\n"
@@ -6499,11 +6495,11 @@ msgstr ""
" return false;\n"
"}\n"
-#: C/index-in.docbook:3549
+#: C/index-in.docbook:3557
msgid "Gio::Resource and glib-compile-resources"
msgstr "Gio::Resource和glib-compile-resources"
-#: C/index-in.docbook:3551
+#: C/index-in.docbook:3559
msgid ""
"Applications and libraries often contain binary or textual data that is "
"really part of the application, rather than user data. For instance "
@@ -6519,7 +6515,7 @@ msgstr ""
"文件、图标等。这些通常这些文件放于<filename class=\"directory\">$datadir/"
"appname</filename>目录下,也可以将其转换为文本字面量手动包含在代码中。"
-#: C/index-in.docbook:3559
+#: C/index-in.docbook:3567
msgid ""
"The <classname>Gio::Resource</classname> API and the <application>glib-"
"compile-resources</application> program provide a convenient and efficient "
@@ -6539,7 +6535,7 @@ msgstr ""
"例共享)且很简单(无需对IO错误进行检查和在文件系统中查找文件)。这也使得创建"
"可重定位应用程序变得更为简单。"
-#: C/index-in.docbook:3568
+#: C/index-in.docbook:3576
msgid ""
"Resource bundles are created by the <ulink url=\"https://developer.gnome.org/"
"gio/stable/glib-compile-resources.html\">glib-compile-resources</ulink> "
@@ -6552,7 +6548,7 @@ msgstr ""
"文件描述资源包并由该XML文件指示资源包引用了那些文件。被引用的文件和XML文件将"
"被组合为一个二进制的资源包。"
-#: C/index-in.docbook:3574
+#: C/index-in.docbook:3582
msgid ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGio_1_1Resource."
"html\">Gio::Resource Reference</ulink>"
@@ -6560,7 +6556,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGio_1_1Resource."
"html\">Gio::Resource参考</ulink>"
-#: C/index-in.docbook:3577
+#: C/index-in.docbook:3585
#, no-wrap
msgid ""
"\n"
@@ -6581,15 +6577,15 @@ msgstr ""
" </gresource>\n"
"</gresources>\n"
-#: C/index-in.docbook:3588
+#: C/index-in.docbook:3596
msgid "<filename>/toolbar/toolbar.glade</filename>"
msgstr "<filename>/toolbar/toolbar.glade</filename>"
-#: C/index-in.docbook:3589
+#: C/index-in.docbook:3597
msgid "<filename>/toolbar/rain.png</filename>"
msgstr "<filename>/toolbar/rain.png</filename>"
-#: C/index-in.docbook:3575
+#: C/index-in.docbook:3583
msgid ""
"An example: <_:programlisting-1/> This will create a resource bundle with "
"the files <_:itemizedlist-2/>"
@@ -6597,12 +6593,12 @@ msgstr ""
"一个示例:<_:programlisting-1/> 这将创建一个包含以下文件的资源包:<_:"
"itemizedlist-2/>"
-#: C/index-in.docbook:3597
+#: C/index-in.docbook:3605
#, no-wrap
msgid "$ glib-compile-resources --target=resources.c --generate-source toolbar.gresource.xml"
msgstr "$ glib-compile-resources --target=resources.c --generate-source toolbar.gresource.xml"
-#: C/index-in.docbook:3592
+#: C/index-in.docbook:3600
msgid ""
"You can then use <application>glib-compile-resources</application> to "
"compile the xml to a binary bundle that you can load with <methodname>Gio::"
@@ -6616,7 +6612,7 @@ msgstr ""
"包。但是使用--generate-source生成C源文件直接链接到你的应用程序更为常见。例"
"如:<_:screen-1/>"
-#: C/index-in.docbook:3599
+#: C/index-in.docbook:3607
msgid ""
"Once a <classname>Gio::Resource</classname> has been created and registered "
"all the data in it can be accessed globally in the process by using API "
@@ -6633,7 +6629,7 @@ msgstr ""
"的全局访问数据。你还可以使用类似于<uri>resource:///toolbar/rain.png</uri>的"
"URI通过<classname>Gio::File</classname>访问资源数据。"
-#: C/index-in.docbook:3607
+#: C/index-in.docbook:3615
msgid ""
"Often you don't need a <classname>Gio::Resource</classname> instance, "
"because resource data can be loaded with methods such as <methodname>Gdk::"
@@ -6646,11 +6642,11 @@ msgstr ""
"<methodname>Gtk::Builder::add_from_resource()</methodname>和<methodname>Gtk::"
"Image::set_from_resource()</methodname>直接加载资源数据。"
-#: C/index-in.docbook:3620
+#: C/index-in.docbook:3628
msgid "Application Menu and Main Menu example"
msgstr "应用程序菜单和主菜单实例"
-#: C/index-in.docbook:3621
+#: C/index-in.docbook:3629
msgid ""
"This program contains an application menu, a menubar and a toolbar. Classes "
"are derived from <classname>Gtk::Application</classname> and <classname>Gtk::"
@@ -6660,11 +6656,11 @@ msgstr ""
"<classname>Gtk::Application</classname>和<classname>Gtk::ApplicationWindow</"
"classname>派生而来的。"
-#: C/index-in.docbook:3628
+#: C/index-in.docbook:3636
msgid "App and Main Menu"
msgstr "应用程序和主菜单"
-#: C/index-in.docbook:3634
+#: C/index-in.docbook:3642
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/menus/main_menu/\">Source Code</ulink>"
@@ -6672,11 +6668,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/menus/main_menu/\">源代码</ulink>"
-#: C/index-in.docbook:3638
+#: C/index-in.docbook:3646
msgid "Main Menu example"
msgstr "主菜单示例"
-#: C/index-in.docbook:3639
+#: C/index-in.docbook:3647
msgid ""
"This program contains a menubar and a toolbar. A class is derived from "
"<classname>Gtk::Window</classname>."
@@ -6684,11 +6680,11 @@ msgstr ""
"该程序包含一个菜单栏和一个工具栏。一个从<classname>Gtk::Window</classname>派"
"生的类。"
-#: C/index-in.docbook:3645
+#: C/index-in.docbook:3653
msgid "Main Menu"
msgstr "主菜单"
-#: C/index-in.docbook:3651
+#: C/index-in.docbook:3659
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/menus_and_toolbars\">Source Code</ulink>"
@@ -6696,15 +6692,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/menus_and_toolbars\">源代码</ulink>"
-#: C/index-in.docbook:3655
+#: C/index-in.docbook:3663
msgid "Popup Menu example"
msgstr "弹出菜单示例"
-#: C/index-in.docbook:3658
+#: C/index-in.docbook:3666
msgid "Popup Menu"
msgstr "弹出菜单"
-#: C/index-in.docbook:3664
+#: C/index-in.docbook:3672
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/menus/popup/\">Source Code</ulink>"
@@ -6712,11 +6708,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/menus/popup/\">源代码</ulink>"
-#: C/index-in.docbook:3673
+#: C/index-in.docbook:3681
msgid "Adjustments"
msgstr "调整(Adjustments)"
-#: C/index-in.docbook:3675
+#: C/index-in.docbook:3683
msgid ""
"<application>gtkmm</application> has various widgets that can be visually "
"adjusted using the mouse or the keyboard, such as the <classname>Range</"
@@ -6732,7 +6728,7 @@ msgstr ""
"<classname>Viewport</classname>部件。这些部件的<classname>Gtk::Adjustment</"
"classname>对象表达了它的共有部分的API。"
-#: C/index-in.docbook:3685
+#: C/index-in.docbook:3693
msgid ""
"So that applications can react to changes, for instance when a user moves a "
"scrollbar, <classname>Gtk::Adjustment</classname> has a "
@@ -6744,11 +6740,11 @@ msgstr ""
"号。你可以在信号处理函数中使用<methodname>get_value()</methodname>方法获取新"
"的值。"
-#: C/index-in.docbook:3693
+#: C/index-in.docbook:3701
msgid "Creating an Adjustment"
msgstr "创建调整"
-#: C/index-in.docbook:3695
+#: C/index-in.docbook:3703
msgid ""
"The <classname>Gtk::Adjustment</classname> is created by its "
"<methodname>create()</methodname> method which is as follows:"
@@ -6756,7 +6752,7 @@ msgstr ""
"<classname>Gtk::Adjustment</classname>由它的<methodname>create()</methodname>"
"方法创建,该方法的声明如下:"
-#: C/index-in.docbook:3700
+#: C/index-in.docbook:3708
#, no-wrap
msgid ""
"Glib::RefPtr<Gtk::Adjustment> Gtk::Adjustment::create(\n"
@@ -6775,7 +6771,7 @@ msgstr ""
" double page_increment = 10,\n"
" double page_size = 0);"
-#: C/index-in.docbook:3708
+#: C/index-in.docbook:3716
msgid ""
"The <parameter>value</parameter> argument is the initial value of the "
"adjustment, usually corresponding to the topmost or leftmost position of an "
@@ -6797,11 +6793,11 @@ msgstr ""
"种方式与平移部件能见到的区域大小。<parameter>upper</parameter>参数被用于表示"
"平移子部件最底端或最右端的坐标。"
-#: C/index-in.docbook:3727
+#: C/index-in.docbook:3735
msgid "Using Adjustments the Easy Way"
msgstr "轻松使用调整"
-#: C/index-in.docbook:3729
+#: C/index-in.docbook:3737
msgid ""
"The adjustable widgets can be roughly divided into those which use and "
"require specific units for these values, and those which treat them as "
@@ -6809,7 +6805,7 @@ msgid ""
msgstr ""
"可调整部件大致可以分为使用并要求这些值使用特定单位的和将它们视作任意数字的。"
-#: C/index-in.docbook:3734
+#: C/index-in.docbook:3742
msgid ""
"The group which treats the values as arbitrary numbers includes the "
"<classname>Range</classname> widgets (<classname>Scrollbar</classname> and "
@@ -6829,7 +6825,7 @@ msgstr ""
"整的<parameter>value</parameter>的范围。默认情况下它们只会修改调整的"
"<parameter>value</parameter>。"
-#: C/index-in.docbook:3746
+#: C/index-in.docbook:3754
msgid ""
"The other group includes the <classname>Viewport</classname> widget and the "
"<classname>ScrolledWindow</classname> widget. All of these widgets use pixel "
@@ -6843,7 +6839,7 @@ msgstr ""
"的修改调整的值。虽然所有使用调整的部件都可以创建自己的调整也可以使用你提供的"
"调整,但是通常情况下你都会希望使用这些部件自行创建的调整。"
-#: C/index-in.docbook:3755
+#: C/index-in.docbook:3763
msgid ""
"If you share an adjustment object between a Scrollbar and a TextView widget, "
"manipulating the scrollbar will automagically adjust the TextView widget. "
@@ -6852,7 +6848,7 @@ msgstr ""
"如果你使滚动条和文本视图部件共享一个调整对象,则你操纵滚动条的时候文本视图将"
"被自动调整。你可以这样设置:"
-#: C/index-in.docbook:3760
+#: C/index-in.docbook:3768
#, no-wrap
msgid ""
"// creates its own adjustments\n"
@@ -6865,11 +6861,11 @@ msgstr ""
"// uses the newly-created adjustment for the scrollbar as well\n"
"Gtk::Scrollbar vscrollbar (textview.get_vadjustment(), Gtk::ORIENTATION_VERTICAL);"
-#: C/index-in.docbook:3768
+#: C/index-in.docbook:3776
msgid "Adjustment Internals"
msgstr "调整的内部"
-#: C/index-in.docbook:3770
+#: C/index-in.docbook:3778
msgid ""
"OK, you say, that's nice, but what if I want to create my own handlers to "
"respond when the user adjusts a <classname>Range</classname> widget or a "
@@ -6882,7 +6878,7 @@ msgstr ""
"Adjustment</classname>的<methodname>get_value()</methodname>和"
"<methodname>set_value()</methodname>方法访问其值:"
-#: C/index-in.docbook:3778
+#: C/index-in.docbook:3786
msgid ""
"As mentioned earlier, <classname>Gtk::Adjustment</classname> can emit "
"signals. This is, of course, how updates happen automatically when you share "
@@ -6897,7 +6893,7 @@ msgstr ""
"享一个<classname>Adjustment</classname>对象时,如果你操纵滚动条与其共享调整对"
"象的其他可调整部件将会自动更新。"
-#: C/index-in.docbook:3787
+#: C/index-in.docbook:3795
msgid ""
"So, for example, if you have a <classname>Scale</classname> widget, and you "
"want to change the rotation of a picture whenever its value changes, you "
@@ -6906,7 +6902,7 @@ msgstr ""
"因此,例如,如果你有一个<classname>Scale</classname>部件并且你想要当调整值变"
"更以后更改图片的旋转角度,你可以创建一个如下所示的信号处理函数:"
-#: C/index-in.docbook:3792
+#: C/index-in.docbook:3800
#, no-wrap
msgid ""
"void cb_rotate_picture (MyPicture* picture)\n"
@@ -6919,11 +6915,11 @@ msgstr ""
" picture->set_rotation(adj->get_value());\n"
"..."
-#: C/index-in.docbook:3796
+#: C/index-in.docbook:3804
msgid "and connect it to the scale widget's adjustment like this:"
msgstr "并且将其连接到比例部件的调整对象上,如下所示:"
-#: C/index-in.docbook:3799
+#: C/index-in.docbook:3807
#, no-wrap
msgid ""
"adj->signal_value_changed().connect(sigc::bind<MyPicture*>(sigc::mem_fun(*this,\n"
@@ -6932,7 +6928,7 @@ msgstr ""
"adj->signal_value_changed().connect(sigc::bind<MyPicture*>(sigc::mem_fun(*this,\n"
" &cb_rotate_picture), picture));"
-#: C/index-in.docbook:3802
+#: C/index-in.docbook:3810
msgid ""
"What if a widget reconfigures the <parameter>upper</parameter> or "
"<parameter>lower</parameter> fields of its <classname>Adjustment</"
@@ -6943,7 +6939,7 @@ msgstr ""
"parameter>和<parameter>lower</parameter>字段(例如:用户向文本部件添加了更多"
"的文本),那么它将发出<literal>changed</literal>信号。"
-#: C/index-in.docbook:3809
+#: C/index-in.docbook:3817
msgid ""
"<classname>Range</classname> widgets typically connect a handler to this "
"signal, which changes their appearance to reflect the change - for example, "
@@ -6956,23 +6952,23 @@ msgstr ""
"<parameter>lower</parameter>与<parameter>upper</parameter>的差值的增大逐渐变"
"小,反之则逐渐增大。"
-#: C/index-in.docbook:3818
+#: C/index-in.docbook:3826
msgid ""
"You probably won't ever need to attach a handler to this signal, unless "
"you're writing a new type of range widget."
msgstr ""
"除非你正在编写新的范围部件,否则你可能永远不需要将处理程序连接到这个信号。"
-#: C/index-in.docbook:3822
+#: C/index-in.docbook:3830
#, no-wrap
msgid "adjustment->signal_changed();"
msgstr "adjustment->signal_changed();"
-#: C/index-in.docbook:3829
+#: C/index-in.docbook:3837
msgid "Dialogs"
msgstr "对话框(Dialogs)"
-#: C/index-in.docbook:3831
+#: C/index-in.docbook:3839
msgid ""
"Dialogs are used as secondary windows, to provide specific information or to "
"ask questions. <classname>Gtk::Dialog</classname> windows contain a few pre-"
@@ -6983,7 +6979,7 @@ msgstr ""
"classname>窗口包含了一些预装部件以确保一致性,且有一个<methodname>run()</"
"methodname>方法可以阻塞到用户关闭对话框。"
-#: C/index-in.docbook:3838
+#: C/index-in.docbook:3846
msgid ""
"There are several derived <classname>Dialog</classname> classes which you "
"might find useful. <classname>Gtk::MessageDialog</classname> is used for "
@@ -6994,7 +6990,7 @@ msgstr ""
"<classname>Gtk::MessageDialog</classname>多被用于简单的通知。但有时候你也需要"
"派生自己的对话框类以提供更为复杂的功能。"
-#: C/index-in.docbook:3845
+#: C/index-in.docbook:3853
msgid ""
"To pack widgets into a custom dialog, you should pack them into the "
"<classname>Gtk::Box</classname>, available via "
@@ -7008,7 +7004,7 @@ msgstr ""
"<classname>Button</classname>,那么你可以直接使用<methodname>add_button()</"
"methodname>方法。"
-#: C/index-in.docbook:3853
+#: C/index-in.docbook:3861
msgid ""
"The <methodname>run()</methodname> method returns an <literal>int</literal>. "
"This may be a value from the <literal>Gtk::ResponseType</literal> if the "
@@ -7021,7 +7017,7 @@ msgstr ""
"literal>中的一个也可能是使用<methodname>add_button()</methodname>时你所指定的"
"值。"
-#: C/index-in.docbook:3860
+#: C/index-in.docbook:3868
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Dialog."
"html\">Reference</ulink>"
@@ -7029,11 +7025,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Dialog."
"html\">参考</ulink>"
-#: C/index-in.docbook:3862 C/index-in.docbook:3877
+#: C/index-in.docbook:3870 C/index-in.docbook:3885
msgid "MessageDialog"
msgstr "消息对话框(MessageDialog)"
-#: C/index-in.docbook:3863
+#: C/index-in.docbook:3871
msgid ""
"<classname>MessageDialog</classname> is a convenience class, used to create "
"simple, standard message dialogs, with a message, an icon, and buttons for "
@@ -7046,7 +7042,7 @@ msgstr ""
"消息文本,也可以通过<literal>Gtk::ButtonsType</literal>枚举指定其包含的标准按"
"钮。"
-#: C/index-in.docbook:3871
+#: C/index-in.docbook:3879
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1MessageDialog.html\">Reference</ulink>"
@@ -7054,7 +7050,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1MessageDialog.html\">参考</ulink>"
-#: C/index-in.docbook:3883
+#: C/index-in.docbook:3891
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/messagedialog\">Source Code</ulink>"
@@ -7062,18 +7058,18 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/messagedialog\">源代码</ulink>"
-#: C/index-in.docbook:3888
+#: C/index-in.docbook:3896
msgid "FileChooserDialog"
msgstr "文件选择对话框(FileChooserDialog)"
-#: C/index-in.docbook:3889
+#: C/index-in.docbook:3897
msgid ""
"The <classname>FileChooserDialog</classname> is suitable for use with \"Open"
"\" or \"Save\" menu items."
msgstr ""
"<classname>FileChooserDialog</classname>通常被用于\"打开\"或\"保存\"菜单项。"
-#: C/index-in.docbook:3893
+#: C/index-in.docbook:3901
msgid ""
"Most of the useful member methods for this class are actually in the "
"<classname>Gtk::FileChooser</classname> base class."
@@ -7081,7 +7077,7 @@ msgstr ""
"该类的大部分有用的成员函数都在其基类<classname>Gtk::FileChooser</classname>"
"中。"
-#: C/index-in.docbook:3898
+#: C/index-in.docbook:3906
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1FileChooserDialog.html\">Reference</ulink>"
@@ -7089,11 +7085,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1FileChooserDialog.html\">参考</ulink>"
-#: C/index-in.docbook:3904 C/index-in.docbook:5437
+#: C/index-in.docbook:3912 C/index-in.docbook:5440
msgid "FileChooser"
msgstr "文件选择器(FileChooser)"
-#: C/index-in.docbook:3910
+#: C/index-in.docbook:3918
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/filechooserdialog\">Source Code</ulink>"
@@ -7101,11 +7097,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/filechooserdialog\">源代码</ulink>"
-#: C/index-in.docbook:3914 C/index-in.docbook:3927
+#: C/index-in.docbook:3922 C/index-in.docbook:3935
msgid "ColorChooserDialog"
msgstr "颜色选择器对话框(ColorChooserDialog)"
-#: C/index-in.docbook:3915
+#: C/index-in.docbook:3923
msgid ""
"The <classname>ColorChooserDialog</classname> allows the user to choose a "
"color. The <classname>ColorButton</classname> opens a color selection dialog "
@@ -7114,7 +7110,7 @@ msgstr ""
"<classname>ColorChooserDialog</classname>允许用户选择一个颜色。当"
"<classname>ColorButton</classname>被点击的时会打开一个颜色选择对话框。"
-#: C/index-in.docbook:3921
+#: C/index-in.docbook:3929
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ColorChooserDialog.html\">Reference</ulink>"
@@ -7122,7 +7118,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1ColorChooserDialog.html\">参考</ulink>"
-#: C/index-in.docbook:3933
+#: C/index-in.docbook:3941
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/colorchooserdialog\">Source Code</ulink>"
@@ -7130,11 +7126,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/colorchooserdialog\">源代码</ulink>"
-#: C/index-in.docbook:3938 C/index-in.docbook:3951
+#: C/index-in.docbook:3946 C/index-in.docbook:3959
msgid "FontChooserDialog"
msgstr "字体选择器对话框(FontChooserDialog)"
-#: C/index-in.docbook:3939
+#: C/index-in.docbook:3947
msgid ""
"The <classname>FontChooserDialog</classname> allows the user to choose a "
"font. The <classname>FontButton</classname> opens a font chooser dialog when "
@@ -7143,7 +7139,7 @@ msgstr ""
"<classname>FontChooserDialog</classname>允许用户选择一个字体。当"
"<classname>FontButton</classname>被点击时将打开一个字体选择对话框。"
-#: C/index-in.docbook:3945
+#: C/index-in.docbook:3953
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1FontChooserDialog.html\">Reference</ulink>"
@@ -7151,7 +7147,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1FontChooserDialog.html\">参考</ulink>"
-#: C/index-in.docbook:3957
+#: C/index-in.docbook:3965
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/fontchooserdialog\">Source Code</ulink>"
@@ -7159,11 +7155,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/fontchooserdialog\">源代码</ulink>"
-#: C/index-in.docbook:3962
+#: C/index-in.docbook:3970
msgid "Non-modal AboutDialog"
msgstr "非模态关于对话框(AboutDialog)"
-#: C/index-in.docbook:3963
+#: C/index-in.docbook:3971
msgid ""
"The <classname>AboutDialog</classname> offers a simple way to display "
"information about a program, like its logo, name, copyright, website and "
@@ -7172,7 +7168,7 @@ msgstr ""
"<classname>AboutDialog</classname>提供了一个简单的显示程序有关信息(例如标"
"志、名称、版权、网站、许可证)的方式。"
-#: C/index-in.docbook:3967
+#: C/index-in.docbook:3975
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 "
@@ -7188,7 +7184,7 @@ msgstr ""
"不会想要将该对话框做成非模态,但这不表示非模态对话框在其它情况下没有用。例"
"如:在<application>gedit</application>中搜索和替换对话框就是非模态的。"
-#: C/index-in.docbook:3977
+#: C/index-in.docbook:3985
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1AboutDialog.html\">Reference</ulink>"
@@ -7196,11 +7192,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1AboutDialog.html\">参考</ulink>"
-#: C/index-in.docbook:3983
+#: C/index-in.docbook:3991
msgid "AboutDialog"
msgstr "关于对话框"
-#: C/index-in.docbook:3989
+#: C/index-in.docbook:3997
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/aboutdialog\">Source Code</ulink>"
@@ -7208,11 +7204,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/dialogs/aboutdialog\">源代码</ulink>"
-#: C/index-in.docbook:3997
+#: C/index-in.docbook:4005
msgid "The DrawingArea Widget"
msgstr "绘图区域部件(DrawingArea Widget)"
-#: C/index-in.docbook:3998
+#: C/index-in.docbook:4006
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 "
@@ -7231,7 +7227,7 @@ msgstr ""
"确定如何绘制绘部件的内容。你可以调用<methodname>set_draw_func()</methodname>"
"成员函数来设置绘图函数。"
-#: C/index-in.docbook:4010
+#: C/index-in.docbook:4018
msgid ""
"GTK uses the <ulink url=\"http://cairographics.org\">Cairo</ulink> drawing "
"API. With <application>gtkmm</application>, you may use the <ulink url="
@@ -7241,7 +7237,7 @@ msgstr ""
"<application>gtkmm</application>中你可以使用由<ulink url=\"http://www."
"cairographics.org/cairomm/\">cairomm</ulink>提供的开罗C++ API。"
-#: C/index-in.docbook:4015
+#: C/index-in.docbook:4023
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 "
@@ -7256,11 +7252,11 @@ msgstr ""
"复杂的形状和路径,然后用纯色、渐变、模式等进行填充。除此之外,开罗还可以进行"
"复杂的转换、合成图像和渲染抗锯齿文本等。"
-#: C/index-in.docbook:4025
+#: C/index-in.docbook:4033
msgid "Cairo and Pango"
msgstr "开罗和Pango"
-#: C/index-in.docbook:4026
+#: C/index-in.docbook:4034
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 "
@@ -7271,7 +7267,7 @@ msgstr ""
"渲染(例如环绕和省略文本)则Pango会是更好的选择。只有当文本是图形的一部分的时"
"候才应该使用开罗绘制文本。"
-#: C/index-in.docbook:4031
+#: C/index-in.docbook:4039
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), "
@@ -7281,11 +7277,11 @@ msgstr ""
"在本教程的这一部分中,我们将介绍开罗的基本绘图模型,详细描述每个基本绘制元素"
"(包括示例),然后介绍一个使用开罗绘制自定义时钟部件的简单应用程序。"
-#: C/index-in.docbook:4038
+#: C/index-in.docbook:4046
msgid "The Cairo Drawing Model"
msgstr "开罗绘制模型"
-#: C/index-in.docbook:4039
+#: C/index-in.docbook:4047
msgid ""
"The basic concept of drawing in Cairo involves defining 'invisible' paths "
"and then stroking or filling them to make them visible."
@@ -7293,7 +7289,7 @@ msgstr ""
"开罗的基本概念包括定义'不可见'路径然后描绘(stroking)或者填充(filling)它们使其"
"可见。"
-#: C/index-in.docbook:4043
+#: C/index-in.docbook:4051
msgid ""
"To do any drawing in <application>gtkmm</application> with Cairo, you must "
"first get a <classname>Cairo::Context</classname> object. This class holds "
@@ -7325,7 +7321,7 @@ msgstr ""
"RefPtr<Cairo::Context></classname>对象(请注意区分<classname>Gdk::"
"CairoContext</classname>与<classname>Cairo::Context</classname>。)。"
-#: C/index-in.docbook:4060
+#: C/index-in.docbook:4068
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 "
@@ -7334,7 +7330,7 @@ msgstr ""
"以下示例显示如何设置一个开罗上下文(Cairo Context)的前景色为红色且宽度为2。任"
"何使用该上下文的绘图函数都将使用这些设置。"
-#: C/index-in.docbook:4065
+#: C/index-in.docbook:4073
#, no-wrap
msgid ""
"\n"
@@ -7353,7 +7349,7 @@ msgstr ""
"myContext->set_line_width(2.0);\n"
" "
-#: C/index-in.docbook:4072
+#: C/index-in.docbook:4080
msgid ""
"Each <classname>Cairo::Context</classname> is associated with a particular "
"<classname>Gdk::Surface</classname>, so the first line of the above example "
@@ -7368,7 +7364,7 @@ msgstr ""
"Surface</classname>创建一个<classname>Cairo::Context</classname>对象。最后两"
"行更改上下文的图形状态。"
-#: C/index-in.docbook:4080
+#: C/index-in.docbook:4088
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 "
@@ -7395,7 +7391,7 @@ msgstr ""
"填充规则、是否执行抗锯齿规则等。更多详情请参阅<ulink url=\"http://www."
"cairographics.org/cairomm/\">cairomm</ulink>API文档。"
-#: C/index-in.docbook:4112
+#: C/index-in.docbook:4120
msgid ""
"It is good practice to put all modifications to the graphics state between "
"<methodname>save()</methodname>/<methodname>restore()</methodname> function "
@@ -7407,7 +7403,7 @@ msgstr ""
"methodname>调用之间进行所有对图形状态的更改。例如,如果你有一个将"
"<classname>Cairo::Context</classname>的引用作为参数的函数,你可以这样实现它:"
-#: C/index-in.docbook:4118
+#: C/index-in.docbook:4126
#, no-wrap
msgid ""
"void doSomething(const Cairo::RefPtr<Cairo::Context>& context, int x)\n"
@@ -7426,7 +7422,7 @@ msgstr ""
" context->restore();\n"
"}"
-#: C/index-in.docbook:4095
+#: C/index-in.docbook:4103
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 "
@@ -7453,7 +7449,7 @@ msgstr ""
"<methodname>restore()</methodname>调用都会将恢复状态到与之相对应的"
"<methodname>save()</methodname>所保存的状态。 <_:tip-1/>"
-#: C/index-in.docbook:4127
+#: C/index-in.docbook:4135
msgid ""
"The draw function that you set with a call to <methodname>set_draw_func()</"
"methodname> is called with a Cairo context that you shall use for drawing in "
@@ -7465,11 +7461,11 @@ msgstr ""
"要在绘图函数中对此开罗上下文进行保存和恢复(部件会在调用绘图函数时做保存与恢"
"复)。"
-#: C/index-in.docbook:4135
+#: C/index-in.docbook:4143
msgid "Drawing Straight Lines"
msgstr "画直线"
-#: C/index-in.docbook:4144
+#: C/index-in.docbook:4152
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 "
@@ -7488,7 +7484,7 @@ msgstr ""
"你可能会需要使一个窗口的宽和高在调整比例后的坐标系中取值范围均处于0到1之间"
"(单位正方形)。"
-#: C/index-in.docbook:4136
+#: C/index-in.docbook:4144
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 "
@@ -7501,7 +7497,7 @@ msgstr ""
"元素:直线 开始。但是在此之前你需要对开罗的坐标系有所了解。开罗的坐标系原点在"
"窗口的左上角,从左向右X的值逐渐增大,从上往下Y的值逐渐增大。 <_:tip-1/>"
-#: C/index-in.docbook:4159
+#: C/index-in.docbook:4167
msgid ""
"In this example, we'll construct a small but fully functional "
"<application>gtkmm</application> program and draw some lines into the "
@@ -7520,7 +7516,7 @@ msgstr ""
"方 -- 在你移动到的点和你之前所在的点直接不会画出一条线。使用"
"<methodname>line_to()</methodname>函数可以在两点之间画线。"
-#: C/index-in.docbook:4171
+#: C/index-in.docbook:4179
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 "
@@ -7534,7 +7530,7 @@ msgstr ""
"Context</classname>对象中保存的线宽与样式绘制当前的路径。描绘完成后,当前路径"
"将被清除,以便你可以从下一个路径开始。"
-#: C/index-in.docbook:4180
+#: C/index-in.docbook:4188
msgid ""
"Many Cairo drawing functions have a <methodname>_preserve()</methodname> "
"variant. Normally drawing functions such as <methodname>clip()</methodname>, "
@@ -7549,11 +7545,11 @@ msgstr ""
"<methodname>_preserve()</methodname>变体,则当前路径会被保留,以便下一个绘图"
"函数能继续在一样的路径上绘制。"
-#: C/index-in.docbook:4190 C/index-in.docbook:4310
+#: C/index-in.docbook:4198 C/index-in.docbook:4318
msgid "Drawing Area - Lines"
msgstr "绘图区域 - 线"
-#: C/index-in.docbook:4196
+#: C/index-in.docbook:4204
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/simple\">Source Code</ulink>"
@@ -7561,7 +7557,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/simple\">源代码</ulink>"
-#: C/index-in.docbook:4198
+#: C/index-in.docbook:4206
msgid ""
"This program contains a single class, <classname>MyArea</classname>, which "
"is a subclass of <classname>Gtk::DrawingArea</classname> and contains an "
@@ -7591,11 +7587,11 @@ msgstr ""
"<methodname>move_to()</methodname>和<methodname>line_to()</methodname>函数创"
"建一个新的路径,然后使用<methodname>stroke()</methodname>绘制了这个路径。"
-#: C/index-in.docbook:4217
+#: C/index-in.docbook:4225
msgid "Drawing with relative coordinates"
msgstr "使用相对坐标绘图"
-#: C/index-in.docbook:4218
+#: C/index-in.docbook:4226
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 "
@@ -7605,11 +7601,11 @@ msgstr ""
"直线而言,你可以通过<methodname>Cairo::Context::rel_line_to()</methodname>完"
"成用相对坐标绘图。"
-#: C/index-in.docbook:4224
+#: C/index-in.docbook:4232
msgid "Line styles"
msgstr "线型"
-#: C/index-in.docbook:4225
+#: C/index-in.docbook:4233
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 "
@@ -7618,7 +7614,7 @@ msgstr ""
"除了绘制基本直线以外,你还可以对线条进行很多自定义。你已经看到了对线条颜色和"
"线条宽度的示例,但还有其他示例。"
-#: C/index-in.docbook:4231
+#: C/index-in.docbook:4239
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 "
@@ -7628,11 +7624,11 @@ msgstr ""
"提供了三种不同的连接线条的方式:斜接(Miter)、斜切(Bevel)、圆(Round)。这些连接"
"方式的示意图如下:"
-#: C/index-in.docbook:4238
+#: C/index-in.docbook:4246
msgid "Different join types in Cairo"
msgstr "开罗的不同连接类型"
-#: C/index-in.docbook:4243
+#: C/index-in.docbook:4251
msgid ""
"The line join style is set using the function <methodname>Cairo::Context::"
"set_line_join()</methodname>."
@@ -7640,7 +7636,7 @@ msgstr ""
"线条连接样式由<methodname>Cairo::Context::set_line_join()</methodname>函数进"
"行设置。"
-#: C/index-in.docbook:4247
+#: C/index-in.docbook:4255
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 "
@@ -7654,7 +7650,7 @@ msgstr ""
"方形的中心)。这可以使用<methodname>Cairo::Context::set_line_cap()</"
"methodname>函数使用。"
-#: C/index-in.docbook:4257
+#: C/index-in.docbook:4265
msgid ""
"There are other things you can customize as well, including creating dashed "
"lines and other things. For more information, see the Cairo API "
@@ -7662,11 +7658,11 @@ msgid ""
msgstr ""
"你还可以自定义其他内容,比如创建虚线等。更多有关信息请参阅开罗API文档。"
-#: C/index-in.docbook:4264
+#: C/index-in.docbook:4272
msgid "Drawing thin lines"
msgstr "画细线"
-#: C/index-in.docbook:4265
+#: C/index-in.docbook:4273
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 "
@@ -7683,7 +7679,7 @@ msgstr ""
"能做到的(像素是最小的单位)。所以当像素的宽度是奇数的时候就会出现这种情况"
"(不只是一个像素的时候)。"
-#: C/index-in.docbook:4275
+#: C/index-in.docbook:4283
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 "
@@ -7693,11 +7689,11 @@ msgstr ""
"<ulink url=\"http://cairographics.org/FAQ/#sharp_lines\">开罗常见问题</"
"ulink>。"
-#: C/index-in.docbook:4282
+#: C/index-in.docbook:4290
msgid "Drawing Area - Thin Lines"
msgstr "绘图区域 - 细线"
-#: C/index-in.docbook:4288
+#: C/index-in.docbook:4296
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/thin_lines\">Source Code</ulink>"
@@ -7705,11 +7701,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/thin_lines\">源代码</ulink>"
-#: C/index-in.docbook:4293
+#: C/index-in.docbook:4301
msgid "Drawing Curved Lines"
msgstr "画曲线"
-#: C/index-in.docbook:4294
+#: C/index-in.docbook:4302
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::"
@@ -7723,13 +7719,13 @@ msgstr ""
"的绘制曲线(从技术上而言是三次贝塞尔曲线)。这些函数需要一个目标点的坐标和两"
"个'控制'点的坐标。这最好用一个示例来解释,所以让我们开始吧。"
-#: C/index-in.docbook:4305
+#: C/index-in.docbook:4313
msgid ""
"This simple application draws a curve with Cairo and displays the control "
"points for each end of the curve."
msgstr "这个简单的示例程序使用开罗绘制了一条曲线并显示了曲线两端的控制点。"
-#: C/index-in.docbook:4316
+#: C/index-in.docbook:4324
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/curve\">Source Code</ulink>"
@@ -7737,7 +7733,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/curve\">源代码</ulink>"
-#: C/index-in.docbook:4317
+#: C/index-in.docbook:4325
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 "
@@ -7746,7 +7742,7 @@ msgstr ""
"这个示例与绘制直线示例的唯一区别在它们的<methodname>on_draw()</methodname>函"
"数,不过这里引入了一些新的概念和函数,所以让我们简要的介绍一下它们。"
-#: C/index-in.docbook:4323
+#: C/index-in.docbook:4331
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 "
@@ -7759,7 +7755,7 @@ msgstr ""
"其实并没有什么特别的要对坐标系进行缩放的理由,只是为了使绘图操作有时候更易"
"用。"
-#: C/index-in.docbook:4332
+#: C/index-in.docbook:4340
msgid ""
"The call to <methodname>Cairo::Context::curve_to()</methodname> should be "
"fairly self-explanatory. The first pair of coordinates define the control "
@@ -7782,11 +7778,11 @@ msgstr ""
"<methodname>set_source_rgba()</methodname>实现的。这个函数使用第四个参数来接"
"受指定颜色的alpha值(值的有效区间为0到1)。"
-#: C/index-in.docbook:4350
+#: C/index-in.docbook:4358
msgid "Drawing Arcs and Circles"
msgstr "画圆弧和圆"
-#: C/index-in.docbook:4351
+#: C/index-in.docbook:4359
msgid ""
"With Cairo, the same function is used to draw arcs, circles, or ellipses: "
"<methodname>Cairo::Context::arc()</methodname>. This function takes five "
@@ -7809,7 +7805,18 @@ msgstr ""
"沿着X轴的正方向向Y轴的正方向逐渐增加。所以使用默认的变换矩阵的时候,角度沿着"
"顺时针方向增加(请记住Y轴的正方向指向下方)。"
-#: C/index-in.docbook:4372
+#: C/index-in.docbook:4374
+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 "
+"with center at <varname>x</varname>, <varname>y</varname> and size "
+"<varname>width</varname>, <varname>height</varname>:"
+msgstr ""
+"想要绘制椭圆的话,你可以在X和Y方向用不同的量缩放当前的变换矩阵。例如,如果你"
+"想要绘制一个以<varname>x</varname>,<varname>y</varname>为中心,大小为"
+"<varname>width</varname>,<varname>height</varname>的椭圆:"
+
+#: C/index-in.docbook:4380
#, no-wrap
msgid ""
"context->save();\n"
@@ -7824,29 +7831,17 @@ msgstr ""
"context->arc(0.0, 0.0, 1.0, 0.0, 2 * M_PI);\n"
"context->restore();"
-#: C/index-in.docbook:4366
-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 "
-"with center at <varname>x</varname>, <varname>y</varname> and size "
-"<varname>width</varname>, <varname>height</varname>: <_:programlisting-1/>"
-msgstr ""
-"想要绘制椭圆的话,你可以在X和Y方向用不同的量缩放当前的变换矩阵。例如,如果你"
-"想要绘制一个以<varname>x</varname>,<varname>y</varname>为中心,大小为"
-"<varname>width</varname>,<varname>height</varname>的椭圆: <_:"
-"programlisting-1/>"
-
-#: C/index-in.docbook:4380
+#: C/index-in.docbook:4387
msgid ""
"Here's an example of a simple program that draws an arc, a circle and an "
"ellipse into a drawing area."
msgstr "这是一个简单的示例程序,它在绘图区域绘制了一个圆弧、一个圆和一个椭圆。"
-#: C/index-in.docbook:4385
+#: C/index-in.docbook:4392
msgid "Drawing Area - Arcs"
msgstr "绘图区域 - 圆弧"
-#: C/index-in.docbook:4392
+#: C/index-in.docbook:4399
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/arcs\">Source Code</ulink>"
@@ -7854,7 +7849,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/arcs\">源代码</ulink>"
-#: C/index-in.docbook:4394
+#: C/index-in.docbook:4401
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 "
@@ -7866,7 +7861,7 @@ msgstr ""
"<methodname>on_draw()</methodname>函数中,因此我们重点接受这个函数。另外,函"
"数的第一部分与之前的也几乎一样,所以我们将会跳过该部分。"
-#: C/index-in.docbook:4402
+#: C/index-in.docbook:4409
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 "
@@ -7881,7 +7876,7 @@ msgstr ""
"methodname>/<methodname>restore()</methodname>包裹,以便我们在每次绘完图都能"
"返回已知状态。"
-#: C/index-in.docbook:4411
+#: C/index-in.docbook:4418
msgid ""
"The section for drawing an arc introduces one new function, "
"<methodname>close_path()</methodname>. This function will in effect draw a "
@@ -7900,11 +7895,11 @@ msgstr ""
"起。如果你改用<methodname>line_to()</methodname>,那么这些线将在同一个点结束"
"但是开罗不会对此做任何特殊的连接。"
-#: C/index-in.docbook:4424
+#: C/index-in.docbook:4431
msgid "Drawing counter-clockwise"
msgstr "逆时针绘图"
-#: C/index-in.docbook:4425
+#: C/index-in.docbook:4432
msgid ""
"The function <methodname>Cairo::Context::arc_negative()</methodname> is "
"exactly the same as <methodname>Cairo::Context::arc()</methodname> but the "
@@ -7914,15 +7909,15 @@ msgstr ""
"<methodname>Cairo::Context::arc()</methodname>函数完全一致,但是他们的绘制方"
"向是相反的。"
-#: C/index-in.docbook:4437
+#: C/index-in.docbook:4444
msgid "Drawing Text"
msgstr "绘制文本"
-#: C/index-in.docbook:4439
+#: C/index-in.docbook:4446
msgid "Drawing Text with Pango"
msgstr "使用Pango绘制文本"
-#: C/index-in.docbook:4440
+#: C/index-in.docbook:4447
msgid ""
"Text is drawn via Pango Layouts. The easiest way to create a "
"<classname>Pango::Layout</classname> is to use <methodname>Gtk::Widget::"
@@ -7936,7 +7931,7 @@ msgstr ""
"以后,可以通过各种方式操纵布局,包括更改文本、字体等。然后可以使用"
"<methodname>Pango::Layout::show_in_cairo_context()</methodname>方法渲染布局。"
-#: C/index-in.docbook:4452
+#: C/index-in.docbook:4459
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-"
@@ -7945,11 +7940,11 @@ msgstr ""
"这是一个绘制一些文本的示例程序,其中的一些文本上下颠倒。打印一章包含了另一个"
"绘制文本的<link linkend=\"sec-printing-example\">示例</link>。"
-#: C/index-in.docbook:4458
+#: C/index-in.docbook:4465
msgid "Drawing Area - Text"
msgstr "绘图区域 - 文本"
-#: C/index-in.docbook:4464
+#: C/index-in.docbook:4471
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/pango_text\">Source Code</ulink>"
@@ -7957,11 +7952,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/pango_text\">源代码</ulink>"
-#: C/index-in.docbook:4475
+#: C/index-in.docbook:4482
msgid "Drawing Images"
msgstr "绘制图片"
-#: C/index-in.docbook:4476
+#: C/index-in.docbook:4483
msgid ""
"There is a method for drawing from a <classname>Gdk::Pixbuf</classname> to a "
"<classname>Cairo::Context</classname>. A <classname>Gdk::Pixbuf</classname> "
@@ -7972,7 +7967,7 @@ msgstr ""
"Context</classname>。<classname>Gdk::Pixbuf</classname>缓冲区是对像素集合的有"
"效封装,它提供了从文件读取以及各种操纵像素的方式。"
-#: C/index-in.docbook:4483
+#: C/index-in.docbook:4490
msgid ""
"Probably the most common way of creating <classname>Gdk::Pixbuf</classname>s "
"is to use <methodname>Gdk::Pixbuf::create_from_file()</methodname> or "
@@ -7984,7 +7979,7 @@ msgstr ""
"create_from_resource()</methodname>,它们可以将图像文件(例如png文件)读取到"
"pixbuf中用于渲染。"
-#: C/index-in.docbook:4491
+#: C/index-in.docbook:4498
msgid ""
"The <classname>Gdk::Pixbuf</classname> can be rendered by setting it as the "
"source pattern of the Cairo context with <methodname>Gdk::Cairo::"
@@ -8004,7 +7999,7 @@ msgstr ""
"<methodname>set_source_pixbuf()</methodname>不是<classname>Cairo::Context</"
"classname>的成员函数。<classname>Cairo::Context</classname>是它的第一个参数。"
-#: C/index-in.docbook:4502
+#: C/index-in.docbook:4509
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 "
@@ -8013,7 +8008,7 @@ msgstr ""
"这是一小段将他们结合在一起的代码(请注意,通常你不应该在每次调用绘制信号处理"
"函数的时候都加载一次图片):"
-#: C/index-in.docbook:4507
+#: C/index-in.docbook:4514
#, no-wrap
msgid ""
"void MyArea::on_draw(const Cairo::RefPtr<Cairo::Context>& cr, int width, int height)\n"
@@ -8034,12 +8029,12 @@ msgstr ""
" cr->fill();\n"
"}"
-#: C/index-in.docbook:4524
+#: C/index-in.docbook:4531
#, no-wrap
msgid "$ glib-compile-resources --target=resources.c --generate-source image.gresource.xml"
msgstr "$ glib-compile-resources --target=resources.c --generate-source image.gresource.xml"
-#: C/index-in.docbook:4517
+#: C/index-in.docbook:4524
msgid ""
"Here is an example of a simple program that draws an image. The program "
"loads the image from a resource file. See the <link linkend=\"sec-gio-"
@@ -8053,11 +8048,11 @@ msgstr ""
"节。使用<application>glib-compile-resources</application>将资源文件编译为C源"
"文件,然后将该源文件与C++代码一起编译链接。例如:<_:screen-1/>"
-#: C/index-in.docbook:4527
+#: C/index-in.docbook:4534
msgid "Drawing Area - Image"
msgstr "绘图区域 - 图像"
-#: C/index-in.docbook:4533
+#: C/index-in.docbook:4540
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/image\">Source Code</ulink>"
@@ -8065,11 +8060,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/image\">源代码</ulink>"
-#: C/index-in.docbook:4547
+#: C/index-in.docbook:4554
msgid "Example Application: Creating a Clock with Cairo"
msgstr "示例程序:使用开罗创建时钟"
-#: C/index-in.docbook:4548
+#: C/index-in.docbook:4555
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. "
@@ -8082,7 +8077,7 @@ msgstr ""
"定义的<classname>Clock</classname>部件。这个时钟有秒针、分针、时针,并且每一"
"秒更新一次。"
-#: C/index-in.docbook:4559
+#: C/index-in.docbook:4566
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/clock\">Source Code</ulink>"
@@ -8090,7 +8085,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drawingarea/clock\">源代码</ulink>"
-#: C/index-in.docbook:4560
+#: C/index-in.docbook:4567
msgid ""
"As before, almost all of the interesting stuff is done in the draw function "
"<methodname>on_draw()</methodname>. Before we dig into the draw function, "
@@ -8108,7 +8103,7 @@ msgstr ""
"将每秒被调用一次。这个函数的唯一任务就是使窗口无效,以便<application>gtkmm</"
"application>强制重绘它。"
-#: C/index-in.docbook:4571
+#: C/index-in.docbook:4578
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 "
@@ -8123,7 +8118,7 @@ msgstr ""
"按窗口大小的百分比绘制时钟。此外坐标系是按比例缩放的,所以(0,0)坐标位于窗口的"
"正中央。"
-#: C/index-in.docbook:4581
+#: C/index-in.docbook:4588
msgid ""
"The function <methodname>Cairo::Context::paint()</methodname> is used here "
"to set the background color of the window. This function takes no arguments "
@@ -8141,7 +8136,7 @@ msgstr ""
"行描边。请注意,这两个操作都用<methodname>_preserve</methodname>变体以保留当"
"前路径,然后对相同的路径进行剪辑以确保我们下一行不会超过时钟的轮廓。"
-#: C/index-in.docbook:4593
+#: C/index-in.docbook:4600
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 "
@@ -8153,7 +8148,7 @@ msgstr ""
"线。接着我们就可以实现时钟的计时功能了 -- 获取当前时间的时、分、秒然后以正确"
"的角度将指针绘制出来。"
-#: C/index-in.docbook:4605
+#: C/index-in.docbook:4612
msgid ""
"<classname>Gtk::Widget</classname> has several methods and signals which are "
"prefixed with \"drag_\". These are used for Drag and Drop."
@@ -8161,11 +8156,11 @@ msgstr ""
"<classname>Gtk::Widget</classname>提供了几个带有\"drag_\"前缀的方法和信号用以"
"支持拖放。"
-#: C/index-in.docbook:4610
+#: C/index-in.docbook:4617
msgid "Sources and Destinations"
msgstr "源与目的地"
-#: C/index-in.docbook:4611
+#: C/index-in.docbook:4618
msgid ""
"Things are dragged from <literal>sources</literal> to be dropped on "
"<literal>destinations</literal>. Each source and destination has information "
@@ -8180,7 +8175,7 @@ msgstr ""
"送或接受的数据格式的相关信息。放置目的地只会在拖动项与其具有共同的兼容类型时"
"才会接受它们。然后将会发出适当的信号,告诉信号处理函数使用了那种格式。"
-#: C/index-in.docbook:4619
+#: C/index-in.docbook:4626
msgid ""
"<classname>Gdk::ContentFormats</classname> objects contain information about "
"available <type>GType</type>s and mime types (media types)."
@@ -8188,7 +8183,7 @@ msgstr ""
"<classname>Gdk::ContentFormats</classname>对象包含了可用的<type>GType</type>"
"和MIME类型(媒体类型)的相关信息。"
-#: C/index-in.docbook:4628
+#: C/index-in.docbook:4635
msgid ""
"<classname>Widget</classname>s can be identified as sources or destinations "
"using these <classname>Gtk::Widget</classname> methods:"
@@ -8196,7 +8191,7 @@ msgstr ""
"<classname>Gtk::Widget</classname>的以下方法可以将<classname>Widget</"
"classname>作为源或者目标:"
-#: C/index-in.docbook:4632
+#: C/index-in.docbook:4639
#, no-wrap
msgid ""
"void drag_source_set(const Glib::RefPtr<Gdk::ContentFormats>& targets,\n"
@@ -8205,7 +8200,7 @@ msgstr ""
"void drag_source_set(const Glib::RefPtr<Gdk::ContentFormats>& targets,\n"
" Gdk::ModifierType start_button_mask, Gdk::DragAction actions);"
-#: C/index-in.docbook:4637
+#: C/index-in.docbook:4644
msgid ""
"<literal>targets</literal> is a <classname>Gdk::ContentFormats</classname> "
"object."
@@ -8213,7 +8208,7 @@ msgstr ""
"<literal>targets</literal>是一个<classname>Gdk::ContentFormats</classname>对"
"象。"
-#: C/index-in.docbook:4642
+#: C/index-in.docbook:4649
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."
@@ -8221,7 +8216,7 @@ msgstr ""
"<literal>start_button_mask</literal>是一组值异或后的结果,用于指定按下哪个组"
"合键或鼠标按键才能开始拖动。"
-#: C/index-in.docbook:4649
+#: C/index-in.docbook:4656
msgid ""
"<literal>actions</literal> is an ORed combination of values, which specify "
"which Drag and Drop operations will be possible from this source - for "
@@ -8235,7 +8230,7 @@ msgstr ""
"<keycap>Shift</keycap>键将动作从<literal>copy</literal>改变为<literal>move</"
"literal>,这还会使光标显示不同的样式。"
-#: C/index-in.docbook:4660
+#: C/index-in.docbook:4667
#, no-wrap
msgid ""
"void drag_dest_set(const Glib::RefPtr<Gdk::ContentFormats>& targets,\n"
@@ -8244,42 +8239,42 @@ msgstr ""
"void drag_dest_set(const Glib::RefPtr<Gdk::ContentFormats>& targets,\n"
" Gtk::DestDefaults flags, Gdk::DragAction actions);"
-#: C/index-in.docbook:4665
+#: C/index-in.docbook:4672
msgid ""
"<literal>flags</literal> is an ORed combination of values which indicates "
"how the widget will respond visually to Drag and Drop items."
msgstr "是一组值异或后的结果,用于表示部件在视觉上如何响应拖放项。"
-#: C/index-in.docbook:4671
+#: C/index-in.docbook:4678
msgid ""
"<literal>actions</literal> indicates the Drag and Drop actions which this "
"destination can receive - see the description above."
msgstr ""
"<literal>actions</literal>指示此目的地可以接受的拖放动作 - 请参阅上面的描述。"
-#: C/index-in.docbook:4680
+#: C/index-in.docbook:4687
msgid "<methodname>drag_source_add_text_targets()</methodname>"
msgstr "<methodname>drag_source_add_text_targets()</methodname>"
-#: C/index-in.docbook:4681
+#: C/index-in.docbook:4688
msgid "<methodname>drag_source_add_image_targets()</methodname>"
msgstr "<methodname>drag_source_add_image_targets()</methodname>"
-#: C/index-in.docbook:4682
+#: C/index-in.docbook:4689
msgid "<methodname>drag_dest_add_text_targets()</methodname>"
msgstr "<methodname>drag_dest_add_text_targets()</methodname>"
-#: C/index-in.docbook:4683
+#: C/index-in.docbook:4690
msgid "<methodname>drag_dest_add_image_targets()</methodname>"
msgstr "<methodname>drag_dest_add_image_targets()</methodname>"
-#: C/index-in.docbook:4677
+#: C/index-in.docbook:4684
msgid ""
"There are several methods to add source formats and destination formats. "
"Examples: <_:itemizedlist-1/>"
msgstr "有些添加源格式和目的地格式的方法。例如:<_:itemizedlist-1/>"
-#: C/index-in.docbook:4690
+#: C/index-in.docbook:4697
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 "
@@ -8295,17 +8290,17 @@ msgstr ""
"<methodname>drag_dest_set()</methodname>和<methodname>drag_source_set()</"
"methodname>时所指定的动作。"
-#: C/index-in.docbook:4701 C/index-in.docbook:4822
+#: C/index-in.docbook:4708 C/index-in.docbook:4829
msgid "Copy"
msgstr "复制"
-#: C/index-in.docbook:4705
+#: C/index-in.docbook:4712
msgid ""
"<literal>drag_begin</literal>: Provides a <classname>Gdk::Drag</classname>."
msgstr ""
"<literal>drag_begin</literal>:提供一个<classname>Gdk::Drag</classname>。"
-#: C/index-in.docbook:4706
+#: C/index-in.docbook:4713
msgid ""
"<literal>drag_data_get</literal>: Provides a <classname>Gdk::Drag</"
"classname>, and a <classname>Gtk::SelectionData</classname> object, in which "
@@ -8315,18 +8310,18 @@ msgstr ""
"一个<classname>Gtk::SelectionData</classname>对象,你应该在其中放入所请求的数"
"据。"
-#: C/index-in.docbook:4708
+#: C/index-in.docbook:4715
msgid ""
"<literal>drag_end</literal>: Provides a <classname>Gdk::Drag</classname>."
msgstr ""
"<literal>drag_end</literal>:提供一个<classname>Gdk::Drag</classname>。"
-#: C/index-in.docbook:4702
+#: C/index-in.docbook:4709
msgid ""
"The source widget will emit these signals, in this order: <_:itemizedlist-1/>"
msgstr "源部件将按以下顺序发出这些信号:<_:itemizedlist-1/>"
-#: C/index-in.docbook:4714
+#: C/index-in.docbook:4721
msgid ""
"<literal>drag_motion</literal>: Provides a <classname>Gdk::Drop</classname> "
"and coordinates. You can call the <methodname>status()</methodname> method "
@@ -8337,7 +8332,7 @@ msgstr ""
"坐标。你可以调用<classname>Gdk::Drop</classname>的<methodname>status()</"
"methodname>方法来指示要接受的动作。"
-#: C/index-in.docbook:4717
+#: C/index-in.docbook:4724
msgid ""
"<literal>drag_drop</literal>: Provides a <classname>Gdk::Drop</classname> "
"and coordinates. You can call <methodname>drag_get_data()</methodname>, "
@@ -8350,7 +8345,7 @@ msgstr ""
"<literal>drag_data_get</literal>信号,并在之后触发目的地部件的"
"<literal>drag_data_received</literal>信号。"
-#: C/index-in.docbook:4722
+#: C/index-in.docbook:4729
msgid ""
"<literal>drag_data_received</literal>: Provides a <classname>Gdk::Drop</"
"classname>, and a <methodname>Gtk::SelectionData</methodname> object which "
@@ -8364,23 +8359,23 @@ msgstr ""
"对象。你应该调用<classname>Gdk::Drop</classname>的<methodname>finish()</"
"methodname>或<methodname>failed()</methodname>方法来指示操作是否成功。"
-#: C/index-in.docbook:4711
+#: C/index-in.docbook:4718
msgid ""
"The destination widget will emit these signals, in this order: <_:"
"itemizedlist-1/>"
msgstr "目的地部件将按以下顺序发出这些信号:<_:itemizedlist-1/>"
-#: C/index-in.docbook:4736
+#: C/index-in.docbook:4743
msgid "Move"
msgstr "移动"
-#: C/index-in.docbook:4739
+#: C/index-in.docbook:4746
msgid ""
"<literal>drag_data_delete</literal>: Gives the source the opportunity to "
"delete the original data if that's appropriate."
msgstr "<literal>drag_data_delete</literal>:给源删除原始数据的合适时机。"
-#: C/index-in.docbook:4737
+#: C/index-in.docbook:4744
msgid ""
"During a <literal>move</literal>, the source widget will also emit this "
"signal: <_:itemizedlist-1/>"
@@ -8388,13 +8383,13 @@ msgstr ""
"在<literal>move</literal>的过程中,源部件还将会发出以下信号:<_:"
"itemizedlist-1/>"
-#: C/index-in.docbook:4754
+#: C/index-in.docbook:4761
msgid ""
"Here is a very simple example, demonstrating a drag and drop <literal>Copy</"
"literal> operation:"
msgstr "这是一个非常简单的示例,演示了拖放的<literal>Copy</literal>操作:"
-#: C/index-in.docbook:4763
+#: C/index-in.docbook:4770
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drag_and_drop\">Source Code</ulink>"
@@ -8402,15 +8397,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/drag_and_drop\">源代码</ulink>"
-#: C/index-in.docbook:4765
+#: C/index-in.docbook:4772
msgid "There is a more complex example in examples/others/dnd."
msgstr "在examples/others/dnd中有一个更复杂的示例。"
-#: C/index-in.docbook:4774
+#: C/index-in.docbook:4781
msgid "The Clipboard"
msgstr "剪切板(Clipboard)"
-#: C/index-in.docbook:4775
+#: C/index-in.docbook:4782
msgid ""
"Simple text copy-paste functionality is provided for free by widgets such as "
"<classname>Gtk::Entry</classname> and <classname>Gtk::TextView</classname>, "
@@ -8423,7 +8418,7 @@ msgstr ""
"编写特定的代码。例如,绘图程序需要编写特定的代码以支持在视图内或文档之间进行"
"复制粘贴。"
-#: C/index-in.docbook:4781
+#: C/index-in.docbook:4788
msgid ""
"You can get a clipboard instance with <methodname>Gtk::Widget::"
"get_clipboard()</methodname> or <methodname>Gdk::Display::get_clipboard()</"
@@ -8432,7 +8427,7 @@ msgstr ""
"你可以使用<methodname>Gtk::Widget::get_clipboard()</methodname>或"
"<methodname>Gdk::Display::get_clipboard()</methodname>获取剪切板实例。"
-#: C/index-in.docbook:4786
+#: C/index-in.docbook:4793
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. "
@@ -8446,7 +8441,7 @@ msgstr ""
"classname>,它们指定了回调函数。当<classname>Gdk::Clipboard</classname>准备就"
"绪时,它将会调用这些回调函数,并向其提供所请求的数据。"
-#: C/index-in.docbook:4794
+#: C/index-in.docbook:4801
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGdk_1_1Clipboard."
"html\">Reference</ulink>"
@@ -8454,11 +8449,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGdk_1_1Clipboard."
"html\">参考</ulink>"
-#: C/index-in.docbook:4797
+#: C/index-in.docbook:4804
msgid "Formats"
msgstr "格式"
-#: C/index-in.docbook:4798
+#: C/index-in.docbook:4805
msgid ""
"Different applications contain different types of data, and they might make "
"that data available in a variety of formats. <application>gtkmm</"
@@ -8467,7 +8462,7 @@ msgstr ""
"不同的应用程序包含不同类型的数据,并且它们可能使用多种可用格式提供数据。"
"<application>gtkmm</application>称这些数据类型为<literal>format</literal>。"
-#: C/index-in.docbook:4802
+#: C/index-in.docbook:4809
msgid ""
"For instance, <application>gedit</application> can supply and receive the "
"<literal>text/plain</literal> mime type, so you can paste data into "
@@ -8483,7 +8478,7 @@ msgstr ""
"各种图像格式。只要其中一个应用程序可以接收其他应用程序提供的一种格式,那么你"
"就可以将数据从一个复制到另一个。"
-#: C/index-in.docbook:4810
+#: C/index-in.docbook:4817
msgid ""
"Clipboard data 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 "
@@ -8493,7 +8488,7 @@ msgstr ""
"剪切板数据可以使用多种二进制格式。本章和示例程序假定数据是8位文本。这将使我们"
"可以对剪切板数据使用XML格式。但这可能不适合二进制数据(例如图像)。"
-#: C/index-in.docbook:4817
+#: C/index-in.docbook:4824
msgid ""
"The <link linkend=\"chapter-draganddrop\">Drag and Drop</link> API uses the "
"same mechanism. You should probably use the same data formats for both "
@@ -8502,7 +8497,7 @@ msgstr ""
"<link linkend=\"chapter-draganddrop\">拖放</link>API使用一样的机制。剪切板和"
"拖放操作都应该使用一样的数据格式。"
-#: C/index-in.docbook:4823
+#: C/index-in.docbook:4830
msgid ""
"When the user asks to copy some data, you should copy the data to the "
"<classname>Clipboard</classname>. For instance,"
@@ -8510,7 +8505,7 @@ msgstr ""
"当用户要复制某些数据的时候,你应该将数据复制到<classname>Clipboard</"
"classname>。例如:"
-#: C/index-in.docbook:4827
+#: C/index-in.docbook:4834
#, no-wrap
msgid ""
"void ExampleWindow::on_button_copy()\n"
@@ -8523,11 +8518,11 @@ msgstr ""
" get_clipboard()->set_text(\"example_custom_target\");\n"
"}"
-#: C/index-in.docbook:4835
+#: C/index-in.docbook:4842
msgid "Paste"
msgstr "粘贴"
-#: C/index-in.docbook:4836
+#: C/index-in.docbook:4843
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 "
@@ -8536,7 +8531,7 @@ msgstr ""
"当用户要从<classname>Clipboard</classname>中粘贴数据时,你应该请求一种特定的"
"格式并提供一个回调函数,该回调函数将与实际数据一并被调用。例如:"
-#: C/index-in.docbook:4841
+#: C/index-in.docbook:4848
#, no-wrap
msgid ""
"void ExampleWindow::on_button_paste()\n"
@@ -8551,11 +8546,11 @@ msgstr ""
" &ExampleWindow::on_clipboard_received));\n"
"}"
-#: C/index-in.docbook:4847
+#: C/index-in.docbook:4854
msgid "Here is an example callback method:"
msgstr "这是一个回调函数的示例:"
-#: C/index-in.docbook:4849
+#: C/index-in.docbook:4856
#, no-wrap
msgid ""
"void ExampleWindow::on_clipboard_received(Glib::RefPtr<Gio::AsyncResult>& result)\n"
@@ -8570,11 +8565,11 @@ msgstr ""
" //Do something with the pasted data.\n"
"}"
-#: C/index-in.docbook:4856
+#: C/index-in.docbook:4863
msgid "Discovering the available formats"
msgstr "发现可用格式"
-#: C/index-in.docbook:4857
+#: C/index-in.docbook:4864
msgid ""
"To find out what formats are currently available on the "
"<classname>Clipboard</classname> for pasting, call the "
@@ -8586,11 +8581,11 @@ msgstr ""
"<methodname>get_formats()</methodname>方法。然后调用<classname>Gdk::"
"ContentFormats</classname>方法来确定你的应用程序所支持的格式是否可用。"
-#: C/index-in.docbook:4869 C/index-in.docbook:5260
+#: C/index-in.docbook:4876 C/index-in.docbook:5263
msgid "Simple"
msgstr "简单"
-#: C/index-in.docbook:4870
+#: C/index-in.docbook:4877
msgid ""
"This example allows copy and pasting of application-specific data, using the "
"standard text format. Although this is simple, it's not ideal because it "
@@ -8601,11 +8596,11 @@ msgstr ""
"并不够理想,因为他不能将<classname>Clipboard</classname>的数据标识为特定的类"
"型。"
-#: C/index-in.docbook:4878
+#: C/index-in.docbook:4885
msgid "Clipboard - Simple"
msgstr "剪切板 - 简单"
-#: C/index-in.docbook:4884
+#: C/index-in.docbook:4891
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/clipboard/simple/\">Source Code</ulink>"
@@ -8613,15 +8608,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/clipboard/simple/\">源代码</ulink>"
-#: C/index-in.docbook:4888
+#: C/index-in.docbook:4895
msgid "Ideal"
msgstr "理想"
-#: C/index-in.docbook:4891
+#: C/index-in.docbook:4898
msgid "Defines a custom clipboard target, though the format is still text."
msgstr "定义了一个自定义剪切板目标,尽管格式依旧是文本。"
-#: C/index-in.docbook:4892
+#: C/index-in.docbook:4899
msgid ""
"It uses the <methodname>Gdk::ContentFormats::signal_changed()</methodname> "
"signal and disables the Paste button if it can't use anything on the "
@@ -8630,15 +8625,15 @@ msgstr ""
"它使用<methodname>Gdk::ContentFormats::signal_changed()</methodname>信号并在"
"剪切板不可用的时候禁用粘贴按钮。"
-#: C/index-in.docbook:4889
+#: C/index-in.docbook:4896
msgid "This is like the simple example, but it <_:orderedlist-1/>"
msgstr "这个与简单示例类型,但是它<_:orderedlist-1/>"
-#: C/index-in.docbook:4898
+#: C/index-in.docbook:4905
msgid "Clipboard - Ideal"
msgstr "剪切板 - 理想"
-#: C/index-in.docbook:4904
+#: C/index-in.docbook:4911
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/clipboard/ideal/\">Source Code</ulink>"
@@ -8646,11 +8641,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/clipboard/ideal/\">源代码</ulink>"
-#: C/index-in.docbook:4914
+#: C/index-in.docbook:4921
msgid "Printing"
msgstr "打印"
-#: C/index-in.docbook:4916
+#: C/index-in.docbook:4923
msgid ""
"At the application development level, <application>gtkmm</application>'s "
"printing API provides dialogs that are consistent across applications and "
@@ -8662,11 +8657,11 @@ msgstr ""
"容的对话框,并允许使用开罗通用绘制API和Pango驱动的文本渲染。在此通用API实现"
"中,使用了特定平台的后端和特定打印机的驱动。"
-#: C/index-in.docbook:4922
+#: C/index-in.docbook:4929
msgid "PrintOperation"
msgstr "打印操作"
-#: C/index-in.docbook:4924
+#: C/index-in.docbook:4931
msgid ""
"The primary object is <classname>Gtk::PrintOperation</classname>, allocated "
"for each print operation. To handle page drawing connect to its signals, or "
@@ -8678,7 +8673,7 @@ msgstr ""
"处理绘制页请连接到它的信号,或从其继承并覆盖默认的虚信号处理函数。"
"<classname>PrintOperation</classname>将自动处理所有影响打印循环的设置。"
-#: C/index-in.docbook:4941
+#: C/index-in.docbook:4948
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 "
@@ -8689,7 +8684,7 @@ msgstr ""
"<classname>Gtk::PrintContext</classname>创建和设置<classname>Pango::Layout</"
"classname>的地方,以及对你的打印输出进行分页的地方。"
-#: C/index-in.docbook:4951
+#: C/index-in.docbook:4958
msgid ""
"<literal>paginate</literal>: Pagination is potentially slow so if you need "
"to monitor it you can call the <methodname>PrintOperation::"
@@ -8699,7 +8694,7 @@ msgstr ""
"<methodname>PrintOperation::set_show_progress()</methodname>方法并处理此信"
"号。"
-#: C/index-in.docbook:4965
+#: C/index-in.docbook:4972
msgid ""
"<literal>request_page_setup</literal>: Provides a <classname>PrintContext</"
"classname>, page number and <classname>Gtk::PageSetup</classname>. Handle "
@@ -8709,7 +8704,7 @@ msgstr ""
"classname>、页码和<classname>Gtk::PageSetup</classname>。如果你需要逐页的修改"
"页面设置,请处理此信号。"
-#: C/index-in.docbook:4974
+#: C/index-in.docbook:4981
msgid ""
"<literal>draw_page</literal>: You must handle this signal, which provides a "
"<classname>PrintContext</classname> and a page number. The "
@@ -8725,13 +8720,13 @@ msgstr ""
"<literal>begin_print</literal>处理程序中创建的<classname>Pango::Layout</"
"classname>。"
-#: C/index-in.docbook:4960
+#: C/index-in.docbook:4967
msgid ""
"For each page that needs to be rendered, the following signals are emitted: "
"<_:itemizedlist-1/>"
msgstr "对于每个要渲染的页面,都会发出以下信号:<_:itemizedlist-1/>"
-#: C/index-in.docbook:4989
+#: C/index-in.docbook:4996
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 "
@@ -8743,7 +8738,7 @@ msgstr ""
"<classname>PrintOperation</classname>创建了自定义类,则直接在自定义类的析构函"
"数中进行此操作会更简单。"
-#: C/index-in.docbook:4999
+#: C/index-in.docbook:5006
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::"
@@ -8754,7 +8749,7 @@ msgstr ""
"意,所提供的<literal>Gtk::PrintOperationResult</literal>可能表明发生了错误。"
"无论如何你都应该让用户知道最终的状态。"
-#: C/index-in.docbook:5009
+#: C/index-in.docbook:5016
msgid ""
"<literal>status_changed</literal>: Emitted whenever a print job's status "
"changes, until it is finished. Call the <methodname>PrintOperation::"
@@ -8768,7 +8763,7 @@ msgstr ""
"<methodname>get_status()</methodname>或<methodname>get_status_string()</"
"methodname>。"
-#: C/index-in.docbook:4935
+#: C/index-in.docbook:4942
msgid ""
"The <methodname>PrintOperation::run()</methodname> method starts the print "
"loop, during which various signals are emitted: <_:itemizedlist-1/>"
@@ -8776,7 +8771,7 @@ msgstr ""
"<methodname>PrintOperation::run()</methodname>方法启动打印循环,在此期间会发"
"出以下信号:<_:itemizedlist-1/>"
-#: C/index-in.docbook:5022
+#: C/index-in.docbook:5029
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1PrintOperation.html\">Reference</ulink>"
@@ -8784,11 +8779,11 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1PrintOperation.html\">参考</ulink>"
-#: C/index-in.docbook:5031
+#: C/index-in.docbook:5038
msgid "Page setup"
msgstr "页面设置"
-#: C/index-in.docbook:5033
+#: C/index-in.docbook:5040
msgid ""
"The <classname>PrintOperation</classname> class has a method called "
"<methodname>set_default_page_setup()</methodname> which selects the default "
@@ -8808,7 +8803,7 @@ msgstr ""
"PaperSize</classname>、<literal>Gtk::PageOrientation</literal>和特定打印机的"
"边距。"
-#: C/index-in.docbook:5043
+#: C/index-in.docbook:5050
msgid ""
"You should save the chosen <classname>Gtk::PageSetup</classname> so you can "
"use it again if the page setup dialog is shown again."
@@ -8816,24 +8811,22 @@ msgstr ""
"你应该保存所选的<classname>Gtk::PageSetup</classname>以便在下次打开页面设置对"
"话框的时候使用。"
-#: C/index-in.docbook:5047
+#: C/index-in.docbook:5054
#, no-wrap
msgid ""
"\n"
-"//Within a class that inherits from Gtk::Window and keeps m_refPageSetup and m_refSettings as members...\n"
+"// Within a class that inherits from Gtk::Window and keeps m_refPageSetup\n"
+"// and m_refSettings as members...\n"
"auto new_page_setup = Gtk::run_page_setup_dialog(*this, m_refPageSetup, m_refSettings);\n"
"m_refPageSetup = new_page_setup;\n"
msgstr ""
"\n"
-"//Within a class that inherits from Gtk::Window and keeps m_refPageSetup and m_refSettings as members...\n"
+"// Within a class that inherits from Gtk::Window and keeps m_refPageSetup\n"
+"// and m_refSettings as members...\n"
"auto new_page_setup = Gtk::run_page_setup_dialog(*this, m_refPageSetup, m_refSettings);\n"
"m_refPageSetup = new_page_setup;\n"
-#: C/index-in.docbook:5046 C/index-in.docbook:5111 C/index-in.docbook:10636
-msgid "For instance, <_:programlisting-1/>"
-msgstr "例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:5054
+#: C/index-in.docbook:5061
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1PageSetup."
"html\">Reference</ulink>"
@@ -8841,7 +8834,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1PageSetup."
"html\">参考</ulink>"
-#: C/index-in.docbook:5058
+#: C/index-in.docbook:5065
msgid ""
"The Cairo coordinate system, in the <literal>draw_page</literal> handler, is "
"automatically rotated to the current page orientation. It is normally within "
@@ -8855,11 +8848,11 @@ msgstr ""
"set_use_full_page()</methodname>方法来更改它。默认的度量单位是设备像素。要选"
"择其他单位请使用<methodname>PrintOperation::set_unit()</methodname>方法。"
-#: C/index-in.docbook:5070
+#: C/index-in.docbook:5077
msgid "Rendering text"
msgstr "渲染文本"
-#: C/index-in.docbook:5072
+#: C/index-in.docbook:5079
msgid ""
"Text rendering is done using Pango. The <classname>Pango::Layout</classname> "
"object for printing should be created by calling the "
@@ -8882,7 +8875,7 @@ msgstr ""
"get_cairo_context()</methodname>获取<classname>Cairo::Context</classname>并显"
"示在请求的页码中出现的<classname>Pango::LayoutLine</classname>。"
-#: C/index-in.docbook:5087
+#: C/index-in.docbook:5094
msgid ""
"See <link linkend=\"sec-printing-example-simple\">an example</link> of "
"exactly how this can be done."
@@ -8890,11 +8883,11 @@ msgstr ""
"请看<link linkend=\"sec-printing-example-simple\">具体示例</link>如何做到这"
"点。"
-#: C/index-in.docbook:5095
+#: C/index-in.docbook:5102
msgid "Asynchronous operations"
msgstr "异步操作"
-#: C/index-in.docbook:5097
+#: C/index-in.docbook:5104
msgid ""
"By default, <methodname>PrintOperation::run()</methodname> returns when a "
"print operation is completed. If you need to run a non-blocking print "
@@ -8908,71 +8901,80 @@ msgstr ""
"<methodname>set_allow_async()</methodname>,但<literal>done</literal>信号仍然"
"会被发出。"
-#: C/index-in.docbook:5104
+#: C/index-in.docbook:5111
msgid ""
-"<methodname>run()</methodname> may return "
-"<literal>PRINT_OPERATION_RESULT_IN_PROGRESS</literal>. To track status and "
-"handle the result or error you need to implement signal handlers for the "
-"<literal>done</literal> and <literal>status_changed</literal> signals:"
+"<methodname>run()</methodname> may return <literal>PrintOperation::Result::"
+"IN_PROGRESS</literal>. To track status and handle the result or error you "
+"need to implement signal handlers for the <literal>done</literal> and "
+"<literal>status_changed</literal> signals:"
msgstr ""
"<methodname>run()</methodname>可能会返回"
-"<literal>PRINT_OPERATION_RESULT_IN_PROGRESS</literal>。要跟踪状态并处理结果或"
+"<literal>PrintOperation::Result::IN_PROGRESS</literal>。要跟踪状态并处理结果或"
"错误,你需要实现<literal>done</literal>和<literal>status_changed</literal>信"
"号的信号处理函数。"
-#: C/index-in.docbook:5112
+#: C/index-in.docbook:5119
#, no-wrap
msgid ""
"\n"
"// in class ExampleWindow's method...\n"
"auto op = PrintOperation::create();\n"
"// ...set up op...\n"
-"op->signal_done().connect(sigc::bind(sigc::mem_fun(*this, &ExampleWindow::on_printoperation_done),
op));\n"
+"op->signal_done().connect(sigc::bind(sigc::mem_fun(\n"
+" *this, &ExampleWindow::on_printoperation_done), op));\n"
"// run the op\n"
msgstr ""
"\n"
"// in class ExampleWindow's method...\n"
"auto op = PrintOperation::create();\n"
"// ...set up op...\n"
-"op->signal_done().connect(sigc::bind(sigc::mem_fun(*this, &ExampleWindow::on_printoperation_done),
op));\n"
+"op->signal_done().connect(sigc::bind(sigc::mem_fun(\n"
+" *this, &ExampleWindow::on_printoperation_done), op));\n"
"// run the op\n"
-#: C/index-in.docbook:5122
+#: C/index-in.docbook:5128
+msgid ""
+"Second, check for an error and connect to the <literal>status_changed</"
+"literal> signal. For instance:"
+msgstr ""
+"然后,检查错误并连接到<literal>status_changed</literal>信号,例如:"
+
+#: C/index-in.docbook:5130
#, no-wrap
msgid ""
"\n"
-"void ExampleWindow::on_printoperation_done(Gtk::PrintOperationResult result, const
Glib::RefPtr<PrintOperation>& op)\n"
+"void ExampleWindow::on_printoperation_done(Gtk::PrintOperationResult result,\n"
+" const Glib::RefPtr<PrintOperation>& op)\n"
"{\n"
-" if (result == Gtk::PRINT_OPERATION_RESULT_ERROR)\n"
+" if (result == Gtk::PrintOperation::Result::ERROR)\n"
" //notify user\n"
-" else if (result == Gtk::PRINT_OPERATION_RESULT_APPLY)\n"
+" else if (result == Gtk::PrintOperation::Result::APPLY)\n"
" //Update PrintSettings with the ones used in this PrintOperation\n"
"\n"
" if (! op->is_finished())\n"
-" op->signal_status_changed().connect(sigc::bind(sigc::mem_fun(*this,
&ExampleWindow::on_printoperation_status_changed), op));\n"
+" op->signal_status_changed().connect(sigc::bind(sigc::mem_fun(\n"
+" *this, &ExampleWindow::on_printoperation_status_changed), op));\n"
"}\n"
msgstr ""
"\n"
-"void ExampleWindow::on_printoperation_done(Gtk::PrintOperationResult result, const
Glib::RefPtr<PrintOperation>& op)\n"
+"void ExampleWindow::on_printoperation_done(Gtk::PrintOperationResult result,\n"
+" const Glib::RefPtr<PrintOperation>& op)\n"
"{\n"
-" if (result == Gtk::PRINT_OPERATION_RESULT_ERROR)\n"
+" if (result == Gtk::PrintOperation::Result::ERROR)\n"
" //notify user\n"
-" else if (result == Gtk::PRINT_OPERATION_RESULT_APPLY)\n"
+" else if (result == Gtk::PrintOperation::Result::APPLY)\n"
" //Update PrintSettings with the ones used in this PrintOperation\n"
"\n"
" if (! op->is_finished())\n"
-" op->signal_status_changed().connect(sigc::bind(sigc::mem_fun(*this,
&ExampleWindow::on_printoperation_status_changed), op));\n"
+" op->signal_status_changed().connect(sigc::bind(sigc::mem_fun(\n"
+" *this, &ExampleWindow::on_printoperation_status_changed), op));\n"
"}\n"
-#: C/index-in.docbook:5121
-msgid ""
-"Second, check for an error and connect to the <literal>status_changed</"
-"literal> signal. For instance: <_:programlisting-1/>"
-msgstr ""
-"然后,检查错误并连接到<literal>status_changed</literal>信号,例如:<_:"
-"programlisting-1/>"
+#: C/index-in.docbook:5145
+msgid "Finally, check the status. For instance,"
+msgstr "最后检查状态。例如:"
-#: C/index-in.docbook:5137
+#: C/index-in.docbook:5146
#, no-wrap
msgid ""
"\n"
@@ -8997,43 +8999,39 @@ msgstr ""
" //update UI\n"
"}\n"
-#: C/index-in.docbook:5136
-msgid "Finally, check the status. For instance, <_:programlisting-1/>"
-msgstr "最后检查状态。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:5153
+#: C/index-in.docbook:5161
msgid "Export to PDF"
msgstr "导出为PDF"
-#: C/index-in.docbook:5157
+#: C/index-in.docbook:5162
+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 "
+"pdf file directly from code. For instance,"
+msgstr ""
+"\"打印到文件\"选项在打印对话框可用,不需要额外实现。但是有时候从代码直接生成"
+"PDF文件会很有用。例如:"
+
+#: C/index-in.docbook:5165
#, no-wrap
msgid ""
"\n"
"auto op = Gtk::PrintOperation::create();\n"
"// ...set up op...\n"
"op->set_export_filename(\"test.pdf\");\n"
-"auto res = op->run(Gtk::PRINT_OPERATION_ACTION_EXPORT);\n"
+"auto res = op->run(Gtk::PrintOperation::Action::EXPORT);\n"
msgstr ""
"\n"
"auto op = Gtk::PrintOperation::create();\n"
"// ...set up op...\n"
"op->set_export_filename(\"test.pdf\");\n"
-"auto res = op->run(Gtk::PRINT_OPERATION_ACTION_EXPORT);\n"
-
-#: C/index-in.docbook:5154
-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 "
-"pdf file directly from code. For instance, <_:programlisting-1/>"
-msgstr ""
-"\"打印到文件\"选项在打印对话框可用,不需要额外实现。但是有时候从代码直接生成"
-"PDF文件会很有用。例如:<_:programlisting-1/>"
+"auto res = op->run(Gtk::PrintOperation::Action::EXPORT);\n"
-#: C/index-in.docbook:5169
+#: C/index-in.docbook:5175
msgid "Extending the print dialog"
msgstr "扩展打印对话框"
-#: C/index-in.docbook:5176
+#: C/index-in.docbook:5182
msgid ""
"Set the title of the tab via <methodname>PrintOperation::"
"set_custom_tab_label()</methodname>, create a new widget and return it from "
@@ -9044,18 +9042,32 @@ msgstr ""
"标题,创建一个新的部件然后从<literal>create_custom_widget</literal>的信号处理"
"函数中返回它。你可能希望它是一个容器部件,在其中包含一些其他部件。"
-#: C/index-in.docbook:5186
+#: C/index-in.docbook:5192
msgid ""
"Get the data from the widgets in the <literal>custom_widget_apply</literal> "
"signal handler."
msgstr ""
"从部件的<literal>custom_widget_apply</literal>的信号处理函数中获取数据。"
-#: C/index-in.docbook:5171
+#: C/index-in.docbook:5177
msgid "You may add a custom tab to the print dialog: <_:itemizedlist-1/>"
msgstr "你可以在打印对话框中添加自定义标签: <_:itemizedlist-1/>"
-#: C/index-in.docbook:5201
+#: C/index-in.docbook:5200
+msgid ""
+"Although the <literal>custom_widget_apply</literal> signal provides the "
+"widget you previously created, to simplify things you can keep the widgets "
+"you expect to contain some user input as class members. For example, let's "
+"say you have a <classname>Gtk::Entry</classname> called <literal>m_Entry</"
+"literal> as a member of your <classname>CustomPrintOperation</classname> "
+"class:"
+msgstr ""
+"尽管<literal>custom_widget_apply</literal>信号提供了你之前创建的部件,但是为"
+"了简化操作,你可以保存一些用户输入作为部件类的成员。例如,你可能希望你有一个"
+"叫做<literal>m_Entry</literal>的<classname>Gtk::Entry</classname>拥有"
+"<classname>CustomPrintOperation</classname>作为类成员:"
+
+#: C/index-in.docbook:5207
#, no-wrap
msgid ""
"\n"
@@ -9102,52 +9114,37 @@ msgstr ""
" //...\n"
"}\n"
-#: C/index-in.docbook:5194
-msgid ""
-"Although the <literal>custom_widget_apply</literal> signal provides the "
-"widget you previously created, to simplify things you can keep the widgets "
-"you expect to contain some user input as class members. For example, let's "
-"say you have a <classname>Gtk::Entry</classname> called <literal>m_Entry</"
-"literal> as a member of your <classname>CustomPrintOperation</classname> "
-"class: <_:programlisting-1/>"
-msgstr ""
-"尽管<literal>custom_widget_apply</literal>信号提供了你之前创建的部件,但是为"
-"了简化操作,你可以保存一些用户输入作为部件类的成员。例如,你可能希望你有一个"
-"叫做<literal>m_Entry</literal>的<classname>Gtk::Entry</classname>拥有"
-"<classname>CustomPrintOperation</classname>作为类成员:<_:programlisting-1/>"
-
-#: C/index-in.docbook:5226
+#: C/index-in.docbook:5230
msgid "The example in examples/book/printing/advanced demonstrates this."
msgstr "examples/book/printing/advanced示例对此进行了演示。"
-#: C/index-in.docbook:5233
+#: C/index-in.docbook:5237
msgid "Preview"
msgstr "预览"
#: C/index-in.docbook:5239
+msgid ""
+"The native GTK print dialog has a preview button, but you may also start a "
+"preview directly from an application:"
+msgstr ""
+"原生的GTK打印对话框有一个预览按钮,但是你也可以自己从应用程序开始预览:"
+
+#: C/index-in.docbook:5243
#, no-wrap
msgid ""
"\n"
"// in a class that inherits from Gtk::Window...\n"
"auto op = PrintOperation::create();\n"
"// ...set up op...\n"
-"op->run(Gtk::PRINT_OPERATION_ACTION_PREVIEW, *this);\n"
+"op->run(Gtk::PrintOperation::Action::PREVIEW, *this);\n"
msgstr ""
"\n"
"// in a class that inherits from Gtk::Window...\n"
"auto op = PrintOperation::create();\n"
"// ...set up op...\n"
-"op->run(Gtk::PRINT_OPERATION_ACTION_PREVIEW, *this);\n"
-
-#: C/index-in.docbook:5235
-msgid ""
-"The native GTK print dialog has a preview button, but you may also start a "
-"preview directly from an application: <_:programlisting-1/>"
-msgstr ""
-"原生的GTK打印对话框有一个预览按钮,但是你也可以自己从应用程序开始预览:<_:"
-"programlisting-1/>"
+"op->run(Gtk::PrintOperation::Action::PREVIEW, *this);\n"
-#: C/index-in.docbook:5247
+#: C/index-in.docbook:5250
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 "
@@ -9158,7 +9155,7 @@ msgstr ""
"话框。如果有必要,你可以覆盖此默认行为并为此提供一个自定义的预览对话框。请参"
"阅位于/examples/book/printing/advanced的示例。"
-#: C/index-in.docbook:5262
+#: C/index-in.docbook:5265
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 "
@@ -9169,11 +9166,11 @@ msgstr ""
"<literal>on_begin_print</literal>和<literal>on_draw_page</literal>,以及如何"
"跟踪打印状态和更新打印设置。"
-#: C/index-in.docbook:5270
+#: C/index-in.docbook:5273
msgid "Printing - Simple"
msgstr "打印 - 简单"
-#: C/index-in.docbook:5276
+#: C/index-in.docbook:5279
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/printing/simple/\">Source Code</ulink>"
@@ -9181,11 +9178,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/printing/simple/\">源代码</ulink>"
-#: C/index-in.docbook:5285
+#: C/index-in.docbook:5288
msgid "Recently Used Documents"
msgstr "最近使用过的文件"
-#: C/index-in.docbook:5287
+#: C/index-in.docbook:5290
msgid ""
"<application>gtkmm</application> provides an easy way to manage recently "
"used documents. This functionality is implemented in the <classname>Gtk::"
@@ -9194,7 +9191,7 @@ msgstr ""
"<application>gtkmm</application>提供了一种管理最近使用文件的简便方法。该功能"
"在<classname>Gtk::RecentManager</classname>类中实现。"
-#: C/index-in.docbook:5291
+#: C/index-in.docbook:5294
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 "
@@ -9206,11 +9203,11 @@ msgstr ""
"以用于指定如何显示文件、如何描述文件、及其它的MIME类型、哪个应用程序注册了"
"它、对于注册的应用程序是不是私有的等。"
-#: C/index-in.docbook:5299
+#: C/index-in.docbook:5302
msgid "RecentManager"
msgstr "最近管理器(RecentManager)"
-#: C/index-in.docbook:5300
+#: C/index-in.docbook:5303
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, "
@@ -9221,7 +9218,7 @@ msgstr ""
"注册新文件、从列表中删除文件、查找最近使用文件。每个用户都拥有一个最近使用的"
"文件列表。"
-#: C/index-in.docbook:5306
+#: C/index-in.docbook:5309
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 "
@@ -9232,18 +9229,18 @@ msgstr ""
"那个。你可以通过<methodname>get_default()</methodname>获取默认"
"<classname>RecentManager</classname>的引用。"
-#: C/index-in.docbook:5313
+#: C/index-in.docbook:5316
msgid "Adding Items to the List of Recent Files"
msgstr "将项目添加到最近文件列表"
-#: C/index-in.docbook:5314
+#: C/index-in.docbook:5317
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:"
msgstr ""
"在最简单的情况下,要添加项目到最近文件列表只需要提供一个URI即可。例如:"
-#: C/index-in.docbook:5318
+#: C/index-in.docbook:5321
#, no-wrap
msgid ""
"auto recent_manager = Gtk::RecentManager::get_default();\n"
@@ -9252,7 +9249,7 @@ msgstr ""
"auto recent_manager = Gtk::RecentManager::get_default();\n"
"recent_manager->add_item(uri);"
-#: C/index-in.docbook:5320
+#: C/index-in.docbook:5323
msgid ""
"If you want to register a file with metadata, you can pass a "
"<classname>RecentManager::Data</classname> parameter to "
@@ -9263,7 +9260,7 @@ msgstr ""
"classname>参数传递给<methodname>add_item()</methodname>。可以在特定的文件项上"
"设置的元数据如下所示:"
-#: C/index-in.docbook:5328
+#: C/index-in.docbook:5331
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 "
@@ -9272,25 +9269,25 @@ msgstr ""
"<varname>app_exec</varname>:用于启动此资源的命令行。此字符串可以包含\"f\"和"
"\"u\"转义字符,它们将分别扩展为资源文件路径和URI"
-#: C/index-in.docbook:5334
+#: C/index-in.docbook:5337
msgid ""
"<varname>app_name</varname>: The name of the application that registered the "
"resource"
msgstr "<varname>app_name</varname>:此资源注册的应用程序名"
-#: C/index-in.docbook:5338
+#: C/index-in.docbook:5341
msgid ""
"<varname>description</varname>: A short description of the resource as a "
"UTF-8 encoded string"
msgstr "<varname>description</varname>:资源的简单描述(UTF-8编码字符串)"
-#: C/index-in.docbook:5342
+#: C/index-in.docbook:5345
msgid ""
"<varname>display_name</varname>: The name of the resource to be used for "
"display as a UTF-8 encoded string"
msgstr "<varname>display_name</varname>:用于显示的资源名(UTF-8编码字符串)"
-#: C/index-in.docbook:5346
+#: C/index-in.docbook:5349
msgid ""
"<varname>groups</varname>: A list of groups associated with this item. "
"Groups are essentially arbitrary strings associated with a particular "
@@ -9300,28 +9297,28 @@ msgstr ""
"<varname>groups</varname>:与该项相关联的组列表。组本质上是与特定资源相关联的"
"任意字符串。可以将它们视为资源的类别(例如:电子邮件、图形等)或标签"
-#: C/index-in.docbook:5352
+#: C/index-in.docbook:5355
msgid ""
"<varname>is_private</varname>: Whether this resource should be visible only "
"to applications that have registered it or not"
msgstr ""
"<varname>is_private</varname>:此资源是否仅对已注册该资源的应用程序可见"
-#: C/index-in.docbook:5356
+#: C/index-in.docbook:5359
msgid "<varname>mime_type</varname>: The MIME type of the resource"
msgstr "<varname>mime_type</varname>:此资源的MIME类型"
-#: C/index-in.docbook:5359
+#: C/index-in.docbook:5362
msgid ""
"In addition to adding items to the list, you can also look up items from the "
"list and modify or remove items."
msgstr "除了向列表中添加项目以外,你还可以从列表项中删除、修改、查找项目。"
-#: C/index-in.docbook:5365
+#: C/index-in.docbook:5368
msgid "Looking up Items in the List of Recent Files"
msgstr "在最近文件列表中查找项目"
-#: C/index-in.docbook:5366
+#: C/index-in.docbook:5369
msgid ""
"To look up recently used files, <classname>RecentManager</classname> "
"provides several functions. To look up a specific item by its URI, you can "
@@ -9336,7 +9333,7 @@ msgstr ""
"件列表中不存在,则<methodname>lookup_item()</methodname>将抛出一个"
"<classname>RecentManagerError</classname>异常。例如:"
-#: C/index-in.docbook:5375
+#: C/index-in.docbook:5378
#, no-wrap
msgid ""
"Glib::RefPtr<Gtk::RecentInfo> info;\n"
@@ -9367,7 +9364,7 @@ msgstr ""
" // item was found\n"
"}"
-#: C/index-in.docbook:5388
+#: C/index-in.docbook:5391
msgid ""
"A <classname>RecentInfo</classname> object is essentially an object "
"containing all of the metadata about a single recently-used file. You can "
@@ -9378,7 +9375,7 @@ msgstr ""
"据的对象。你可以使用该对象查找<link linkend=\"list-file-metadata\">这里</"
"link>所列出的任何属性。"
-#: C/index-in.docbook:5394
+#: C/index-in.docbook:5397
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 "
@@ -9392,12 +9389,12 @@ msgstr ""
"methodname>函数。这个函数返回值是一个<classname>std::vector</classname>,其包"
"含了所有最近使用的文件。以下代码演示了你该如何获取最近使用文件列表:"
-#: C/index-in.docbook:5402
+#: C/index-in.docbook:5405
#, no-wrap
msgid "auto info_list = recent_manager->get_items();"
msgstr "auto info_list = recent_manager->get_items();"
-#: C/index-in.docbook:5403
+#: C/index-in.docbook:5406
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>. "
@@ -9406,11 +9403,11 @@ msgstr ""
"可以使用<methodname>Gtk::Settings::property_gtk_recent_files_max_age()</"
"methodname>设置最近使用文件列表中项目的最长使用期限。默认时长是:30天。"
-#: C/index-in.docbook:5410
+#: C/index-in.docbook:5413
msgid "Modifying the List of Recent Files"
msgstr "修改最近使用文件列表"
-#: C/index-in.docbook:5411
+#: C/index-in.docbook:5414
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 "
@@ -9422,7 +9419,7 @@ msgstr ""
"新该文件在最近使用文件列表中的位置,以使其不会指向错误的位置。你可以使用"
"<methodname>move_item()</methodname>来更新项目的位置。"
-#: C/index-in.docbook:5418
+#: C/index-in.docbook:5421
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 "
@@ -9433,7 +9430,7 @@ msgstr ""
"用<methodname>remove_item()</methodname>,后者使用<methodname>purge_items()</"
"methodname>。"
-#: C/index-in.docbook:5425
+#: C/index-in.docbook:5428
msgid ""
"The functions <methodname>move_item()</methodname>, "
"<methodname>remove_item()</methodname> and <methodname>purge_items()</"
@@ -9444,7 +9441,7 @@ msgstr ""
"和<methodname>purge_items()</methodname>并不影响URI所引用的真实文件,它们只是"
"对最近文件列表进行修改。"
-#: C/index-in.docbook:5438
+#: C/index-in.docbook:5441
msgid ""
"<classname>FileChooser</classname> is an interface that can be implemented "
"by widgets displaying a list of files. <application>gtkmm</application> "
@@ -9459,7 +9456,7 @@ msgstr ""
"<classname>FileChooserDialog</classname>、<classname>FileChooserNative</"
"classname>。"
-#: C/index-in.docbook:5447
+#: C/index-in.docbook:5450
msgid ""
"<classname>FileChooserWidget</classname> is a simple widget for displaying a "
"list of recently used files or other files. <classname>FileChooserWidget</"
@@ -9471,11 +9468,11 @@ msgstr ""
"<classname>FileChooserDialog</classname>的基本构建块,但是你根据需要可以将其"
"嵌入到用户界面中。"
-#: C/index-in.docbook:5455
+#: C/index-in.docbook:5458
msgid "Simple FileChooserDialog example"
msgstr "简单的文件选择对话框示例"
-#: C/index-in.docbook:5456
+#: C/index-in.docbook:5459
msgid ""
"Shown below is a simple example of how to use the "
"<classname>FileChooserDialog</classname> class in a program. This simple "
@@ -9490,7 +9487,7 @@ msgstr ""
"如果你选中侧边栏的<guimenuitem>Recent</guimenuitem>,则对话框将显示最近使用文"
"件列表。"
-#: C/index-in.docbook:5466
+#: C/index-in.docbook:5469
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 "
@@ -9499,7 +9496,7 @@ msgstr ""
"如果这是你第一次使用使用了最近文件框架的应用程序,那么对话框最初可能是空的。"
"否则它应该显示其他应用程序注册的最近使用文件列表。"
-#: C/index-in.docbook:5473
+#: C/index-in.docbook:5476
msgid ""
"After selecting the <guimenuitem>File Chooser Dialog</guimenuitem> menu item "
"and the <guimenuitem>Recent</guimenuitem> sidebar item, you should see "
@@ -9508,7 +9505,7 @@ msgstr ""
"选择<guimenuitem>File Chooser Dialog</guimenuitem>菜单项和"
"<guimenuitem>Recent</guimenuitem>侧边项后,你将看到与下方窗口类似的内容。"
-#: C/index-in.docbook:5481
+#: C/index-in.docbook:5484
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/recent_files\">Source Code</ulink>"
@@ -9516,7 +9513,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/recent_files\">源代码</ulink>"
-#: C/index-in.docbook:5482
+#: C/index-in.docbook:5485
msgid ""
"The constructor for <classname>ExampleWindow</classname> creates the menu "
"and the toolbar using <classname>Builder</classname> (see <xref linkend="
@@ -9527,11 +9524,11 @@ msgstr ""
"classname>创建菜单和工具栏(更多有关信息请参阅<xref linkend=\"chapter-menus-"
"and-toolbars\"/>)。然后将菜单和工具栏添加到窗口中。"
-#: C/index-in.docbook:5490
+#: C/index-in.docbook:5493
msgid "Filtering Files"
msgstr "筛选文件"
-#: C/index-in.docbook:5491
+#: C/index-in.docbook:5494
msgid ""
"For any of the <classname>FileChooser</classname> classes, if you don't wish "
"to display all of the items in the list of files, you can filter the list to "
@@ -9546,7 +9543,7 @@ msgstr ""
"(<methodname>add_pattern()</methodname>)或MIME类型"
"(<methodname>add_mime_type()</methodname>)筛选文件。"
-#: C/index-in.docbook:5500
+#: C/index-in.docbook:5503
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 <methodname>FileChooser::"
@@ -9556,11 +9553,11 @@ msgstr ""
"<methodname>FileChooser::add_filter()</methodname>函数将筛选器应用于你所选的"
"部件。"
-#: C/index-in.docbook:5510
+#: C/index-in.docbook:5513
msgid "Keyboard Events"
msgstr "键盘事件"
-#: C/index-in.docbook:5511
+#: C/index-in.docbook:5514
msgid ""
"X events differ in some ways from other signals. These differences are "
"described in the <link linkend=\"sec-xeventsignals\">X Event signals</link> "
@@ -9571,11 +9568,11 @@ msgstr ""
"xeventsignals\">X事件信号</link>小节中说明。在这,我们将使用键盘事件说明如何"
"在程序中使用X事件。"
-#: C/index-in.docbook:5518
+#: C/index-in.docbook:5521
msgid "Overview"
msgstr "总览"
-#: C/index-in.docbook:5519
+#: C/index-in.docbook:5522
msgid ""
"Whenever you press or release a key, an event is emitted. You can connect a "
"signal handler to handle such events."
@@ -9583,7 +9580,7 @@ msgstr ""
"每当你按下或放开一个按键,就会发出一个事件。你可以连接到信号处理函数来处理此"
"类事件。"
-#: C/index-in.docbook:5523
+#: C/index-in.docbook:5526
msgid ""
"The event signal handler will receive an argument that depends on the type "
"of event. For keyboard events it's a <type>GdkEventKey*</type>. As discribed "
@@ -9597,7 +9594,7 @@ msgstr ""
"link>中所述,事件处理函数返回一个<type>bool</type>值,以表示信号已经被完全处"
"理(返回<literal>true</literal>)或允许事件传播(<literal>false</literal>)。"
-#: C/index-in.docbook:5532
+#: C/index-in.docbook:5535
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 "
@@ -9610,7 +9607,11 @@ msgstr ""
"较。<varname>GdkEventKey::state</varname>的位标志可以用作表示修饰键(shift、"
"ctrl等)的状态。"
-#: C/index-in.docbook:5541
+#: C/index-in.docbook:5542 C/index-in.docbook:8400
+msgid "Here's a simple example:"
+msgstr "这是一个简单的例子:"
+
+#: C/index-in.docbook:5545
#, no-wrap
msgid ""
"\n"
@@ -9651,11 +9652,7 @@ msgstr ""
"m_entry.signal_key_press_event().connect( sigc::ptr_fun(&on_key_press_or_release_event) );\n"
"m_entry.signal_key_release_event().connect( sigc::ptr_fun(&on_key_press_or_release_event) );\n"
-#: C/index-in.docbook:5539 C/index-in.docbook:8443
-msgid "Here's a simple example: <_:programlisting-1/>"
-msgstr "这是一个简单的例子:<_:programlisting-1/>"
-
-#: C/index-in.docbook:5564
+#: C/index-in.docbook:5567
msgid ""
"In this example there are three keyboard shortcuts: <keycap>Alt</keycap>"
"+<keycap>1</keycap> selects the first radio button, <keycap>Alt</keycap>"
@@ -9670,11 +9667,11 @@ msgstr ""
"linkend=\"sec-overriding-default-signal-handlers\">覆盖默认信号处理程序</"
"link>小节所述。"
-#: C/index-in.docbook:5575
+#: C/index-in.docbook:5578
msgid "Keyboard Events - Simple"
msgstr "键盘事件 - 简单"
-#: C/index-in.docbook:5581
+#: C/index-in.docbook:5584
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/keyboard_events/simple/\">Source Code</ulink>"
@@ -9682,11 +9679,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/keyboard_events/simple/\">源代码</ulink>"
-#: C/index-in.docbook:5586
+#: C/index-in.docbook:5589
msgid "Event Propagation"
msgstr "事件传播"
-#: C/index-in.docbook:5587
+#: C/index-in.docbook:5590
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 "
@@ -9697,7 +9694,7 @@ msgstr ""
"个部件又可以将信号传递给它的父部件,以此类推),如果父部件有对该事件的事件处"
"理程序,该处理程序将被调用。"
-#: C/index-in.docbook:5593
+#: C/index-in.docbook:5596
msgid ""
"Contrary to other events, keyboard events are first sent to the toplevel "
"window (<classname>Gtk::Window</classname>), where it will be checked for "
@@ -9711,7 +9708,7 @@ msgstr ""
"键、助记符)。然后(假设事件没有被处理)将其发送到焦点部件,然后从此部件开始"
"传播。"
-#: C/index-in.docbook:5601
+#: C/index-in.docbook:5604
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 "
@@ -9720,13 +9717,13 @@ msgstr ""
"事件将一直传播直到顶级窗口为止或直到你通过事件处理程序返回<literal>true</"
"literal>为止。"
-#: C/index-in.docbook:5606
+#: C/index-in.docbook:5609
msgid ""
"Notice, that after canceling an event, no other function will be called "
"(even if it is from the same widget)."
msgstr "请注意,取消事件之后,不再会调用其他函数(哪怕它来自同一个部件)。"
-#: C/index-in.docbook:5613
+#: C/index-in.docbook:5616
msgid ""
"In this example there are three event handlers that are called after "
"<classname>Gtk::Window</classname>'s default event handler, one in the "
@@ -9738,7 +9735,7 @@ msgstr ""
"<classname>Gtk::Grid</classname>中、一个在<classname>Gtk::Window</classname>"
"中。"
-#: C/index-in.docbook:5619
+#: C/index-in.docbook:5622
msgid ""
"In the <classname>Gtk::Window</classname>, we have also the default handler "
"overridden (<methodname>on_key_release_event()</methodname>), and another "
@@ -9749,13 +9746,13 @@ msgstr ""
"(<methodname>on_key_release_event()</methodname>),并在调用默认处理程序之前"
"调用了另一个处理程序(<methodname>windowKeyReleaseBefore()</methodname>)。"
-#: C/index-in.docbook:5625
+#: C/index-in.docbook:5628
msgid ""
"The purpose of this example is to show the steps the event takes when it is "
"emitted."
msgstr "本示例的目的是显示事件发出时进行的步骤。"
-#: C/index-in.docbook:5628
+#: C/index-in.docbook:5631
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 "
@@ -9777,11 +9774,11 @@ msgstr ""
"播,你写入的文本将出现在<classname>Entry</classname>上方的<classname>Label</"
"classname>中。"
-#: C/index-in.docbook:5643
+#: C/index-in.docbook:5646
msgid "Keyboard Events - Event Propagation"
msgstr "键盘事件 - 事件传播"
-#: C/index-in.docbook:5649
+#: C/index-in.docbook:5652
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/keyboard_events/propagation/\">Source Code</ulink>"
@@ -9789,15 +9786,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/keyboard_events/propagation/\">源代码</ulink>"
-#: C/index-in.docbook:5655
+#: C/index-in.docbook:5658
msgid "Timeouts, I/O and Idle Functions"
msgstr "超时,I/O和空闲函数"
-#: C/index-in.docbook:5658
+#: C/index-in.docbook:5661
msgid "Timeouts"
msgstr "超时"
-#: C/index-in.docbook:5660
+#: C/index-in.docbook:5663
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 "
@@ -9807,7 +9804,7 @@ msgstr ""
"你可能想知道如何使<application>gtkmm</application>在空闲的时候做一些有用的工"
"作。幸运的是你有几种选择。你可以创建一个每几毫秒就调用的超时方法。"
-#: C/index-in.docbook:5667
+#: C/index-in.docbook:5669
#, no-wrap
msgid ""
"\n"
@@ -9818,7 +9815,7 @@ msgstr ""
"sigc::connection Glib::SignalTimeout::connect(const sigc::slot<bool()>& slot,\n"
" unsigned int interval, int priority = Glib::PRIORITY_DEFAULT);\n"
-#: C/index-in.docbook:5673
+#: C/index-in.docbook:5674
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 "
@@ -9831,7 +9828,7 @@ msgstr ""
"classname>对象,可以在该对象上调用<methodname>disconnect()</methodname>方法断"
"开连接。"
-#: C/index-in.docbook:5683
+#: C/index-in.docbook:5682
#, no-wrap
msgid ""
"\n"
@@ -9840,29 +9837,28 @@ msgstr ""
"\n"
"my_connection.disconnect();\n"
-#: C/index-in.docbook:5695
-#, no-wrap
-msgid ""
-"\n"
-"bool MyCallback() { std::cout << \"Hello World!\\n\" << std::endl; return true; }\n"
-msgstr ""
-"\n"
-"bool MyCallback() { std::cout << \"Hello World!\\n\" << std::endl; return true; }\n"
-
-#: C/index-in.docbook:5688
+#: C/index-in.docbook:5686
msgid ""
"Another way of destroying the connection is your signal handler. It has to "
"be of the type <classname>sigc::slot<bool()></classname>. As you see "
"from the definition your signal handler has to return a value of the type "
"<literal>bool</literal>. A definition of a sample method might look like "
-"this: <_:programlisting-1/>"
+"this:"
msgstr ""
"破坏连接的另一种方法是通过你的信号处理函数的返回值。其类型必须是"
"<classname>sigc::slot<bool()></classname>。从定义可以看出信号处理函数必"
-"须返回一个<literal>bool</literal>类型的值。示例方法的定义可能如下所示:<_:"
-"programlisting-1/>"
+"须返回一个<literal>bool</literal>类型的值。示例方法的定义可能如下所示:"
+
+#: C/index-in.docbook:5694
+#, no-wrap
+msgid ""
+"\n"
+"bool MyCallback() { std::cout << \"Hello World!\\n\" << std::endl; return true; }\n"
+msgstr ""
+"\n"
+"bool MyCallback() { std::cout << \"Hello World!\\n\" << std::endl; return true; }\n"
-#: C/index-in.docbook:5701
+#: C/index-in.docbook:5698
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 "
@@ -9872,11 +9868,11 @@ msgstr ""
"此,如果你还想重复调用此方法,则你需要让信号处理函数返回<literal>true</"
"literal>。"
-#: C/index-in.docbook:5707
+#: C/index-in.docbook:5704
msgid "Here's an example of this technique:"
msgstr "这是此技术的示例:"
-#: C/index-in.docbook:5711
+#: C/index-in.docbook:5708
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/timeout/\">Source Code</ulink>"
@@ -9884,11 +9880,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/timeout/\">源代码</ulink>"
-#: C/index-in.docbook:5716
+#: C/index-in.docbook:5713
msgid "Monitoring I/O"
msgstr "监视I/O"
-#: C/index-in.docbook:5718
+#: C/index-in.docbook:5715
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 "
@@ -9899,7 +9895,7 @@ msgstr ""
"帮你检查文件描述符中的数据的能力。这对于需要联网的应用程序十分的有用。使用以"
"下方法来执行此操作:"
-#: C/index-in.docbook:5726
+#: C/index-in.docbook:5722
#, no-wrap
msgid ""
"\n"
@@ -9912,7 +9908,7 @@ msgstr ""
" Glib::PollFD::fd_t fd, Glib::IOCondition condition,\n"
" int priority = Glib::PRIORITY_DEFAULT);\n"
-#: C/index-in.docbook:5733
+#: C/index-in.docbook:5728
msgid ""
"The first argument is a slot you wish to have called when the specified "
"event (see argument 3) occurs on the file descriptor you specify using "
@@ -9924,37 +9920,37 @@ msgstr ""
"使用<literal>|</literal>,例如:<literal>Glib::IO_IN | Glib::IO_OUT | Glib::"
"IO_PRI</literal>):"
-#: C/index-in.docbook:5743
+#: C/index-in.docbook:5738
msgid ""
"Glib::IO_IN - Call your method when there is data ready for reading on your "
"file descriptor."
msgstr "Glib::IO_IN - 当你提供的文件描述符有数据准备好被读取时调用你的方法。"
-#: C/index-in.docbook:5751
+#: C/index-in.docbook:5746
msgid ""
"Glib::IO_OUT - Call your method when the file descriptor is ready for "
"writing."
msgstr "Glib::IO_OUT - 当提供的文件描述符准备好被写入时调用你的方法。"
-#: C/index-in.docbook:5759
+#: C/index-in.docbook:5754
msgid ""
"Glib::IO_PRI - Call your method when the file descriptor has urgent data to "
"be read."
msgstr "Glib::IO_PRI - 当提供的文件描述符有紧急数据要读取时调用你的方法。"
-#: C/index-in.docbook:5766
+#: C/index-in.docbook:5761
msgid ""
"Glib::IO_ERR - Call your method when an error has occurred on the file "
"descriptor."
msgstr "Glib::IO_ERR - 当提供的文件描述符上发生错误的时候调用你的方法。"
-#: C/index-in.docbook:5773
+#: C/index-in.docbook:5768
msgid ""
"Glib::IO_HUP - Call your method when hung up (the connection has been broken "
"usually for pipes and sockets)."
msgstr "Glib::IO_HUP - 挂起时(常见于管道和套接字的连接被断开)调用你的方法。"
-#: C/index-in.docbook:5780
+#: C/index-in.docbook:5775
msgid ""
"The return value is a <classname>sigc::connection</classname> that may be "
"used to stop monitoring this file descriptor using its "
@@ -9965,7 +9961,7 @@ msgstr ""
"<methodname>disconnect()</methodname>方法以停止对该文件描述符的监视。信号处理"
"函数<parameter>slot</parameter>应声明如下:"
-#: C/index-in.docbook:5787
+#: C/index-in.docbook:5781
#, no-wrap
msgid ""
"\n"
@@ -9974,7 +9970,7 @@ msgstr ""
"\n"
"bool input_callback(Glib::IOCondition condition);\n"
-#: C/index-in.docbook:5792
+#: C/index-in.docbook:5785
msgid ""
"where <parameter>condition</parameter> is as specified above. As usual the "
"slot is created with <function>sigc::mem_fun()</function> (for a member "
@@ -9985,7 +9981,7 @@ msgstr ""
"mem_fun()</function>(通过一个对象的成员函数创建)或<function>sigc::"
"ptr_fun()</function>(通过一个普通函数创建)函数创建槽。"
-#: C/index-in.docbook:5799
+#: C/index-in.docbook:5792
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 "
@@ -9999,7 +9995,7 @@ msgstr ""
"shell并执行<literal>echo \"Hello\" > testfifo</literal>。该示例将打印你输"
"入的每一行直到你执行<literal>echo \"Q\" > testfifo</literal>"
-#: C/index-in.docbook:5808
+#: C/index-in.docbook:5801
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/input/\">Source Code</ulink>"
@@ -10007,17 +10003,17 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/input/\">源代码</ulink>"
-#: C/index-in.docbook:5813
+#: C/index-in.docbook:5806
msgid "Idle Functions"
msgstr "空闲函数"
-#: C/index-in.docbook:5815
+#: C/index-in.docbook:5808
msgid ""
"If you want to specify a method that gets called when nothing else is "
"happening, use the following:"
msgstr "如果你想要指定一个在无事发生时调用的方法,请使用以下函数:"
-#: C/index-in.docbook:5820
+#: C/index-in.docbook:5812
#, no-wrap
msgid ""
"\n"
@@ -10028,7 +10024,7 @@ msgstr ""
"sigc::connection Glib::SignalIdle::connect(const sigc::slot<bool()>& slot,\n"
" int priority = Glib::PRIORITY_DEFAULT_IDLE);\n"
-#: C/index-in.docbook:5826
+#: C/index-in.docbook:5817
msgid ""
"This causes <application>gtkmm</application> to call the specified method "
"whenever nothing else is happening. You can add a priority (lower numbers "
@@ -10043,7 +10039,7 @@ msgstr ""
"methodname>、在信号处理程序中返回<literal>false</literal>,信号处理程序的声明"
"应如下所示:"
-#: C/index-in.docbook:5836
+#: C/index-in.docbook:5826
#, no-wrap
msgid ""
"\n"
@@ -10052,14 +10048,14 @@ msgstr ""
"\n"
"bool idleFunc();\n"
-#: C/index-in.docbook:5841
+#: C/index-in.docbook:5830
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:"
msgstr ""
"这与前一小节的方法极其类似,所以在此不再进行过多的解释。以下是个小例子:"
-#: C/index-in.docbook:5846
+#: C/index-in.docbook:5835
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/idle/\">Source Code</ulink>"
@@ -10067,7 +10063,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/idle/\">源代码</ulink>"
-#: C/index-in.docbook:5848
+#: C/index-in.docbook:5837
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 "
@@ -10079,7 +10075,7 @@ msgstr ""
"则你应该使用超时方法。如果你需要尽可能多的调用方法(例如在后台计算分形)那你"
"应该使用空闲方法。"
-#: C/index-in.docbook:5856
+#: C/index-in.docbook:5845
msgid ""
"Try executing the example and increasing the system load. The upper progress "
"bar will increase steadily; the lower one will slow down."
@@ -10087,15 +10083,15 @@ msgstr ""
"尝试执行此示例并逐渐增加系统的负载。上方的进度条将稳定的逐渐增加;下方的则会"
"增加的越来越慢。"
-#: C/index-in.docbook:5866
+#: C/index-in.docbook:5855
msgid "Memory management"
msgstr "内存管理"
-#: C/index-in.docbook:5872
+#: C/index-in.docbook:5861
msgid "Normal C++ memory management"
msgstr "标准C++内存管理"
-#: C/index-in.docbook:5874
+#: C/index-in.docbook:5863
msgid ""
"<application>gtkmm</application> allows the programmer to control the "
"lifetime (that is, the construction and destruction) of any widget in the "
@@ -10114,15 +10110,15 @@ msgstr ""
"灵活性在某些C++ GUI工具包中不存在,这些工具包限制程序员只能使用C++内存管理特"
"性中的一部分。"
-#: C/index-in.docbook:5886
+#: C/index-in.docbook:5875
msgid "Here are some examples of normal C++ memory management:"
msgstr "以下是一些使用标准C++进行内存管理的示例:"
-#: C/index-in.docbook:5889
+#: C/index-in.docbook:5878
msgid "Class Scope widgets"
msgstr "类作用域部件"
-#: C/index-in.docbook:5891
+#: C/index-in.docbook:5880
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 "
@@ -10133,7 +10129,7 @@ msgstr ""
"类作用域中使用自动储存期的部件的优点之一是内存管理被集中在一个地方。程序员不"
"需要承担因<literal>delete</literal>部件出现差错而导致内存泄漏的风险。"
-#: C/index-in.docbook:5898
+#: C/index-in.docbook:5887
msgid ""
"The primary disadvantage of using class scope widgets is revealing the class "
"implementation rather than the class interface in the class header."
@@ -10141,7 +10137,7 @@ msgstr ""
"使用类作用域部件的主要缺点是在包含类声明的头文件中展示了类的实现而不只是类的"
"接口。"
-#: C/index-in.docbook:5904
+#: C/index-in.docbook:5892
#, no-wrap
msgid ""
"\n"
@@ -10164,11 +10160,20 @@ msgstr ""
" // will be destroyed when the Foo object is destroyed\n"
"};\n"
-#: C/index-in.docbook:5918
+#: C/index-in.docbook:5905
msgid "Function scope widgets"
msgstr "函数作用域部件"
-#: C/index-in.docbook:5924
+#: C/index-in.docbook:5907
+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 "
+"increased data hiding and reduced dependencies."
+msgstr ""
+"如果程序员不需要类作用域部件,那么也可以使用函数作用域部件。函数作用域相比于"
+"类作用域的优点是增加了数据的隐蔽性和隐藏了依赖。"
+
+#: C/index-in.docbook:5912
#, no-wrap
msgid ""
"\n"
@@ -10187,20 +10192,11 @@ msgstr ""
" app->run();\n"
"}\n"
-#: C/index-in.docbook:5920
-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 "
-"increased data hiding and reduced dependencies. <_:programlisting-1/>"
-msgstr ""
-"如果程序员不需要类作用域部件,那么也可以使用函数作用域部件。函数作用域相比于"
-"类作用域的优点是增加了数据的隐蔽性和隐藏了依赖。<_:programlisting-1/>"
-
-#: C/index-in.docbook:5936
+#: C/index-in.docbook:5923
msgid "Dynamic allocation with new and delete"
msgstr "使用new和delete进行动态分配"
-#: C/index-in.docbook:5946
+#: C/index-in.docbook:5933
#, no-wrap
msgid ""
"\n"
@@ -10217,7 +10213,7 @@ msgstr ""
"\n"
"delete pButton;\n"
-#: C/index-in.docbook:5938
+#: C/index-in.docbook:5925
msgid ""
"Usually, the programmer will prefer to allow containers to automatically "
"destroy their children by creating them using <function>Gtk::make_managed()</"
@@ -10236,11 +10232,11 @@ msgstr ""
"让他们的父部件销毁它们,而不是手动执行动态内存分配。<_:programlisting-1/> 在"
"这,程序员删除<varname>pButton</varname>以防止内存泄漏。"
-#: C/index-in.docbook:5960
+#: C/index-in.docbook:5947
msgid "Managed Widgets"
msgstr "托管部件"
-#: C/index-in.docbook:5962
+#: C/index-in.docbook:5949
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 "
@@ -10256,11 +10252,11 @@ msgstr ""
"<methodname>Gtk::Box::append()</methodname>这类的方法将其装入容器中。这样部件"
"就会随着容器一并销毁。"
-#: C/index-in.docbook:5972
+#: C/index-in.docbook:5959
msgid "Dynamic allocation with make_managed() and append()"
msgstr "使用make_managed()和append()进行动态分配"
-#: C/index-in.docbook:5974
+#: C/index-in.docbook:5961
msgid ""
"<application>gtkmm</application> provides ways including the "
"<function>make_managed()</function> function and <methodname>Gtk::Box::"
@@ -10271,7 +10267,7 @@ msgstr ""
"函数和<methodname>Gtk::Box::append()</methodname>方法在内的用于简化创建和销毁"
"部件的很多方法。这些部件的生命周期可以由其父部件进行管理。"
-#: C/index-in.docbook:5980
+#: C/index-in.docbook:5967
msgid ""
"Every widget except a top-level window must be added to a parent container "
"in order to be displayed. The <function>manage()</function> function marks a "
@@ -10288,7 +10284,7 @@ msgstr ""
"行管理的部件的原始方法是调用<function>manage()</function>,并将向其传入使用"
"<literal>new</literal>表达式创建的动态分配的部件。"
-#: C/index-in.docbook:5990
+#: C/index-in.docbook:5977
msgid ""
"However, usually, when you create such a widget, you will already know that "
"its parent container should be responsible for destroying it, In addition, "
@@ -10307,7 +10303,7 @@ msgstr ""
"数,这个函数将两个步骤合并到了一起。这避免了让你编写现代C++风格不建议的带有"
"<literal>new</literal>的代码,并更清楚的表达了创建托管部件的意图。"
-#: C/index-in.docbook:6002
+#: C/index-in.docbook:5988
#, no-wrap
msgid ""
"\n"
@@ -10324,20 +10320,19 @@ msgstr ""
" append(*pButton); //add *pButton to MyContainer\n"
"}\n"
-#: C/index-in.docbook:6001
+#: C/index-in.docbook:5995
msgid ""
-"<_:programlisting-1/> Now, when objects of type <classname>MyContainer</"
-"classname> are destroyed, the button will also be deleted. It is no longer "
-"necessary to delete <varname>pButton</varname> to free the button's memory; "
-"its deletion has been delegated to the <classname>MyContainer</classname> "
-"object."
+"Now, when objects of type <classname>MyContainer</classname> are destroyed, "
+"the button will also be deleted. It is no longer necessary to delete "
+"<varname>pButton</varname> to free the button's memory; its deletion has "
+"been delegated to the <classname>MyContainer</classname> object."
msgstr ""
-"<_:programlisting-1/> 现在,当你销毁<classname>MyContainer</classname>类型对"
+"现在,当你销毁<classname>MyContainer</classname>类型对"
"象时,该按钮也被销毁。不再需要主动<literal>delete</literal><varname>pButton</"
"varname>以释放其内存;对其的删除操作委托给了<classname>MyContainer</"
"classname>对象。"
-#: C/index-in.docbook:6015
+#: C/index-in.docbook:6002
msgid ""
"Note that if you never added the widget to any parent container, or you did "
"but later <methodname>Gtk::Container::remove()</methodname>d it from said "
@@ -10352,7 +10347,7 @@ msgstr ""
"<function>manage()</function>之前的状态,这通常意味着删除部件的责任被归还给了"
"用户。"
-#: C/index-in.docbook:6023
+#: C/index-in.docbook:6010
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 "
@@ -10363,11 +10358,11 @@ msgstr ""
"级容器。例如,你的顶级窗口可能只是<function>main()</function>函数中的一个实"
"例。"
-#: C/index-in.docbook:6035
+#: C/index-in.docbook:6022
msgid "Shared resources"
msgstr "共享资源"
-#: C/index-in.docbook:6037
+#: C/index-in.docbook:6024
msgid ""
"Some objects, such as <classname>Gdk::Pixbuf</classname>s and "
"<classname>Pango::Font</classname>s, are obtained from a shared store. "
@@ -10383,7 +10378,15 @@ msgstr ""
"智能指针<classname>Glib::RefPtr<></classname>而不是要求你引用和解引用这"
"些对象。开罗有自己的智能指针:<classname>Cairo::RefPtr<></classname>。"
-#: C/index-in.docbook:6050
+#: C/index-in.docbook:6034
+msgid ""
+"Objects such as <classname>Gdk::Pixbuf</classname> can only be instantiated "
+"with a <methodname>create()</methodname> function. For instance,"
+msgstr ""
+"诸如<classname>Gdk::Pixbuf</classname>之类的对象只能通过"
+"<methodname>create()</methodname>函数进行实例化。例如:"
+
+#: C/index-in.docbook:6038
#, no-wrap
msgid ""
"\n"
@@ -10392,16 +10395,16 @@ msgstr ""
"\n"
"auto pixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
-#: C/index-in.docbook:6047
+#: C/index-in.docbook:6042
msgid ""
-"Objects such as <classname>Gdk::Pixbuf</classname> can only be instantiated "
-"with a <methodname>create()</methodname> function. For instance, <_:"
-"programlisting-1/>"
+"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, "
+"much like a normal pointer:"
msgstr ""
-"诸如<classname>Gdk::Pixbuf</classname>之类的对象只能通过"
-"<methodname>create()</methodname>函数进行实例化。例如:<_:programlisting-1/>"
+"你无法暴露<classname>Gdk::Pixbuf</classname>对象。在示例中,<varname>pixbuf</"
+"varname>是一个智能指针,因此可以像正常指针一样执行此操作:"
-#: C/index-in.docbook:6059
+#: C/index-in.docbook:6047
#, no-wrap
msgid ""
"\n"
@@ -10420,16 +10423,6 @@ msgstr ""
#: C/index-in.docbook:6055
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, "
-"much like a normal pointer: <_:programlisting-1/>"
-msgstr ""
-"你无法暴露<classname>Gdk::Pixbuf</classname>对象。在示例中,<varname>pixbuf</"
-"varname>是一个智能指针,因此可以像正常指针一样执行此操作:<_:"
-"programlisting-1/>"
-
-#: C/index-in.docbook:6068
-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 "
"it anymore. There's no <literal>new</literal> so there's no <literal>delete</"
@@ -10439,7 +10432,7 @@ msgstr ""
"methodname>,你无需为它担心。没有进行<literal>new</literal>因此也不需要进行"
"<literal>delete</literal>。"
-#: C/index-in.docbook:6076
+#: C/index-in.docbook:6063
#, no-wrap
msgid ""
"\n"
@@ -10448,7 +10441,7 @@ msgstr ""
"\n"
"auto pixbuf2 = pixbuf;\n"
-#: C/index-in.docbook:6074
+#: C/index-in.docbook:6061
msgid ""
"If you copy a <classname>RefPtr</classname>, for instance <_:"
"programlisting-1/> , or if you pass it as a method argument or a return "
@@ -10461,35 +10454,35 @@ msgstr ""
"做必要的引用以确保在最后一个<classname>RefPtr</classname>超出作用域之前该实例"
"不会被销毁。"
-#: C/index-in.docbook:6084
+#: C/index-in.docbook:6071
msgid ""
"See the <link linkend=\"chapter-refptr\">appendix</link> for detailed "
"information about RefPtr."
msgstr ""
"更多与RefPtr有关的信息,请参见<link linkend=\"chapter-refptr\">附录</link>。"
-#: C/index-in.docbook:6089
+#: C/index-in.docbook:6076
msgid ""
"Bjarne Stroustrup, \"The C++ Programming Language\" Forth Edition - section "
"34.3"
msgstr "Bjarne Stroustrup,《C++编程语言》第四版 第34章第3小节"
-#: C/index-in.docbook:6092
+#: C/index-in.docbook:6079
msgid "Nicolai M. Josuttis, \"The C++ Standard Library\" - section 4.2"
msgstr "Nicolai M. Josuttis,《C++标准库》第4章第2节"
-#: C/index-in.docbook:6085
+#: C/index-in.docbook:6072
msgid ""
"If you wish to learn more about smartpointers, you might look in these "
"books: <_:itemizedlist-1/>"
msgstr ""
"如果你想了解与智能指针更多的有关信息,请阅读以下书籍:<_:itemizedlist-1/>"
-#: C/index-in.docbook:6103
+#: C/index-in.docbook:6090
msgid "Glade and Gtk::Builder"
msgstr "Glade和Gtk::Builder"
-#: C/index-in.docbook:6104
+#: C/index-in.docbook:6091
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 "
@@ -10505,23 +10498,23 @@ msgstr ""
"<application>Gtk::Builder</application>API在运行时加载该XML文件,并获取特定名"
"称部件实例的指针。"
-#: C/index-in.docbook:6117
+#: C/index-in.docbook:6104
msgid "Less C++ code is required."
msgstr "需要的C++代码更少。"
-#: C/index-in.docbook:6118
+#: C/index-in.docbook:6105
msgid "UI changes can be seen more quickly, so UIs are able to improve."
msgstr "可以更快的看到UI的更改,更便于改进UI。"
-#: C/index-in.docbook:6119
+#: C/index-in.docbook:6106
msgid "Designers without programming skills can create and edit UIs."
msgstr "没有编程技能的设计人员可以创建和编辑UI。"
-#: C/index-in.docbook:6114
+#: C/index-in.docbook:6101
msgid "This has the following advantages: <_:orderedlist-1/>"
msgstr "这具有以下优点:<_:orderedlist-1/>"
-#: C/index-in.docbook:6123
+#: C/index-in.docbook:6110
msgid ""
"You still need C++ code to deal with User Interface changes triggered by "
"user actions, but using <application>Gtk::Builder</application> for the "
@@ -10530,11 +10523,11 @@ msgstr ""
"你仍然需要编写C++代码以处理由用户操作触发的UI更改,但是将<application>Gtk::"
"Builder</application>用于部件布局允许你更专注的实现该功能。"
-#: C/index-in.docbook:6130
+#: C/index-in.docbook:6117
msgid "Loading the .glade file"
msgstr "加载.glade文件"
-#: C/index-in.docbook:6135
+#: C/index-in.docbook:6122
#, no-wrap
msgid ""
"\n"
@@ -10543,7 +10536,7 @@ msgstr ""
"\n"
"auto builder = Gtk::Builder::create_from_file(\"basic.glade\");\n"
-#: C/index-in.docbook:6131
+#: C/index-in.docbook:6118
msgid ""
"<classname>Gtk::Builder</classname> must be used via a <classname>Glib::"
"RefPtr</classname>. Like all such classes, you need to use a "
@@ -10556,52 +10549,50 @@ msgstr ""
"methodname>方法实例化它。例如:<_:programlisting-1/>这将实例化<filename>."
"glade</filename>文件中定义的窗口。"
-#: C/index-in.docbook:6142
-#, no-wrap
+#: C/index-in.docbook:6128
msgid ""
-"\n"
-"auto builder = Gtk::Builder::create_from_file(\"basic.glade\", \"treeview_products\");\n"
-msgstr ""
-"\n"
-"auto builder = Gtk::Builder::create_from_file(\"basic.glade\", \"treeview_products\");\n"
-
-#: C/index-in.docbook:6141
-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, <_:"
-"programlisting-1/>"
+"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,"
msgstr ""
"如果只想实例化一个窗口或实例化一个子部件,你可以将部件的名称指定为第二个参"
-"数。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:6150
-msgid "Accessing widgets"
-msgstr "访问部件"
+"数。例如:"
-#: C/index-in.docbook:6158
+#: C/index-in.docbook:6130
#, no-wrap
msgid ""
"\n"
-"auto pDialog = builder->get_widget<Gtk::Dialog>(\"DialogBasic\");\n"
+"auto builder = Gtk::Builder::create_from_file(\"basic.glade\", \"treeview_products\");\n"
msgstr ""
"\n"
-"auto pDialog = builder->get_widget<Gtk::Dialog>(\"DialogBasic\");\n"
+"auto builder = Gtk::Builder::create_from_file(\"basic.glade\", \"treeview_products\");\n"
+
+#: C/index-in.docbook:6137
+msgid "Accessing widgets"
+msgstr "访问部件"
-#: C/index-in.docbook:6152
+#: C/index-in.docbook:6139
msgid ""
"To access a widget, for instance to <methodname>show()</methodname> a "
"dialog, use the <methodname>get_widget()</methodname> method, providing the "
"widget's name. This name should be specified in the <application>Glade</"
"application> Properties window. If the widget could not be found, or is of "
-"the wrong type, then the pointer will be set to nullptr. <_:programlisting-1/"
-">"
+"the wrong type, then the pointer will be set to nullptr."
msgstr ""
"要访问部件,例如<methodname>show()</methodname>一个对话框,请使用"
"<methodname>get_widget()</methodname>方法,并向其提供一个部件名。这个名称应该"
"在<application>Glade</application>的窗口属性中指定。如果找不到该部件或是部件"
-"的类型不对,则指针将被设为<literal>nullptr</literal>。<_:programlisting-1/>"
+"的类型不对,则指针将被设为<literal>nullptr</literal>。"
+
+#: C/index-in.docbook:6146
+#, no-wrap
+msgid ""
+"\n"
+"auto pDialog = builder->get_widget<Gtk::Dialog>(\"DialogBasic\");\n"
+msgstr ""
+"\n"
+"auto pDialog = builder->get_widget<Gtk::Dialog>(\"DialogBasic\");\n"
-#: C/index-in.docbook:6163
+#: C/index-in.docbook:6150
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 "
@@ -10610,7 +10601,7 @@ msgstr ""
"<application>Gtk::Builder</application>会进行空指针和部件类型检查,并在命令行"
"上显示相关的警告。"
-#: C/index-in.docbook:6169
+#: C/index-in.docbook:6156
msgid ""
"Remember that you are not instantiating a widget with "
"<methodname>get_widget()</methodname>, you are just obtaining a pointer to "
@@ -10626,7 +10617,7 @@ msgstr ""
"例的指针。部件在函数<methodname>Gtk::Builder::create_from_file()</methodname>"
"执行期间被实例化。"
-#: C/index-in.docbook:6178
+#: C/index-in.docbook:6165
msgid ""
"<methodname>get_widget()</methodname> returns child widgets that are "
"<function>manage()</function>ed (see the <link linkend=\"chapter-memory"
@@ -10644,7 +10635,7 @@ msgstr ""
"须在某个时候删除它们。<classname>Gtk::Builder</classname>的文档中有更多关于对"
"不同类型的对象如何进行内存管理的介绍。"
-#: C/index-in.docbook:6188
+#: C/index-in.docbook:6175
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Builder."
"html\">Reference</ulink>"
@@ -10652,7 +10643,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/classGtk_1_1Builder."
"html\">参考</ulink>"
-#: C/index-in.docbook:6192
+#: C/index-in.docbook:6179
msgid ""
"This simple example shows how to load a <application>Glade</application> "
"file at runtime and access the widgets with <application>Gtk::Builder</"
@@ -10661,7 +10652,7 @@ msgstr ""
"这个简单示例展示了如何在运行时加载<application>Glade</application>文件并使用"
"<application>Gtk::Builder</application>访问部件。"
-#: C/index-in.docbook:6197
+#: C/index-in.docbook:6184
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/builder/basic\">Source Code</ulink>"
@@ -10669,11 +10660,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/builder/basic\">源代码</ulink>"
-#: C/index-in.docbook:6204
+#: C/index-in.docbook:6191
msgid "Using derived widgets"
msgstr "使用派生部件"
-#: C/index-in.docbook:6205
+#: C/index-in.docbook:6192
msgid ""
"You can use <classname>Gtk::Builder</classname> and <application>Glade</"
"application> to layout your own custom widgets derived from "
@@ -10687,7 +10678,13 @@ msgstr ""
"这使得你的代码保持有序和封装性,将声明式表述与业务逻辑分离开来,避免你的大多"
"数源代码都是在设置属性和装填容器。"
-#: C/index-in.docbook:6214
+#: C/index-in.docbook:6200
+msgid ""
+"Use <methodname>Gtk::Builder::get_widget_derived()</methodname> like so:"
+msgstr ""
+"像这样用<methodname>Gtk::Builder::get_widget_derived()</methodname>:"
+
+#: C/index-in.docbook:6202
#, no-wrap
msgid ""
"\n"
@@ -10696,15 +10693,7 @@ msgstr ""
"\n"
"auto pDialog = Gtk::Builder::get_widget_derived<DerivedDialog>(builder, \"DialogDerived\");\n"
-#: C/index-in.docbook:6213
-msgid ""
-"Use <methodname>Gtk::Builder::get_widget_derived()</methodname> like so: <_:"
-"programlisting-1/>"
-msgstr ""
-"像这样用<methodname>Gtk::Builder::get_widget_derived()</methodname>:<_:"
-"programlisting-1/>"
-
-#: C/index-in.docbook:6219
+#: C/index-in.docbook:6206
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 "
@@ -10719,7 +10708,14 @@ msgstr ""
"classname>(例如:<classname>Gtk::Dialog</classname>将<type>GtkDialog</type>"
"别名为<classname>BaseObjectType</classname>)。"
-#: C/index-in.docbook:6229
+#: C/index-in.docbook:6213
+msgid ""
+"You must call the base class's constructor in the initialization list, "
+"providing the C pointer. For instance,"
+msgstr ""
+"你必须在初始化列表中调用基类的构造函数,并提供C指针。例如:"
+
+#: C/index-in.docbook:6217
#, no-wrap
msgid ""
"\n"
@@ -10734,15 +10730,18 @@ msgstr ""
"{\n"
"}\n"
-#: C/index-in.docbook:6226
+#: C/index-in.docbook:6224
msgid ""
-"You must call the base class's constructor in the initialization list, "
-"providing the C pointer. For instance, <_:programlisting-1/>"
+"You could then encapsulate the manipulation of the child widgets in the "
+"constructor of the derived class, maybe using <methodname>get_widget()</"
+"methodname> or <methodname>get_widget_derived()</methodname> again. For "
+"instance,"
msgstr ""
-"你必须在初始化列表中调用基类的构造函数,并提供C指针。例如:<_:"
-"programlisting-1/>"
+"然后你可以将对子部件的操作封装于派生类的构造函数中,可以在构造函数中再次使用"
+"<methodname>get_widget()</methodname>或<methodname>get_widget_derived()</"
+"methodname>。例如:"
-#: C/index-in.docbook:6241
+#: C/index-in.docbook:6229
#, no-wrap
msgid ""
"\n"
@@ -10771,18 +10770,7 @@ msgstr ""
" }\n"
"}\n"
-#: C/index-in.docbook:6237
-msgid ""
-"You could then encapsulate the manipulation of the child widgets in the "
-"constructor of the derived class, maybe using <methodname>get_widget()</"
-"methodname> or <methodname>get_widget_derived()</methodname> again. For "
-"instance, <_:programlisting-1/>"
-msgstr ""
-"然后你可以将对子部件的操作封装于派生类的构造函数中,可以在构造函数中再次使用"
-"<methodname>get_widget()</methodname>或<methodname>get_widget_derived()</"
-"methodname>。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:6260
+#: C/index-in.docbook:6247
#, no-wrap
msgid ""
"\n"
@@ -10791,7 +10779,7 @@ msgstr ""
"\n"
"auto pDialog = Gtk::Builder::get_widget_derived<DerivedDialog>(builder, \"DialogDerived\", true);\n"
-#: C/index-in.docbook:6264
+#: C/index-in.docbook:6251
#, no-wrap
msgid ""
"\n"
@@ -10812,7 +10800,7 @@ msgstr ""
" // ....\n"
"}\n"
-#: C/index-in.docbook:6256
+#: C/index-in.docbook:6243
msgid ""
"It's possible to pass additional arguments from "
"<methodname>get_widget_derived()</methodname> to the constructor of the "
@@ -10824,11 +10812,33 @@ msgstr ""
"发给派生部件的构造函数。例如这样调用<methodname>get_widget_derived()</"
"methodname>:<_:programlisting-1/>可以调用此构造函数:<_:programlisting-2/>"
-#: C/index-in.docbook:6276
+#: C/index-in.docbook:6263
msgid "Gtk::Builder and Glib::Property"
msgstr "Gtk::Builder和Glib::Property"
-#: C/index-in.docbook:6287
+#: C/index-in.docbook:6264
+msgid ""
+"If your derived widget uses <classname>Glib::Property</classname>, it "
+"becomes slightly more complicated. A derived widget that contains "
+"<classname>Glib::Property</classname> members must be registered with its "
+"own name in the <type>GType</type> system. It must be registered before any "
+"of the <methodname>create_from_*()</methodname> or <methodname>add_from_*()</"
+"methodname> methods are called, meaning that you may have to create an "
+"instance of your derived widget just to have its class registered. Your "
+"derived widget must have a constructor that has the parameters required by "
+"<methodname>get_widget_derived()</methodname> and calls the <classname>Glib::"
+"ObjectBase</classname> constructor to register the <type>GType</type>."
+msgstr ""
+"如果你派生的部件使用了<classname>Glib::Property</classname>,它将变得更复杂了"
+"一些。包涵<classname>Glib::Property</classname>成员的派生部件必须在"
+"<type>GType</type>系统中用自己的名称进行注册。必须在调用任何"
+"<methodname>create_from_*()</methodname>或<methodname>add_from_*()</"
+"methodname>方法之前进行注册,这意味着你可能需要完成对该类的注册才能创建派生部"
+"件的实例。你派生的部件必须有一个具有<methodname>get_widget_derived()</"
+"methodname>所需的所有参数以及调用<classname>Glib::ObjectBase</classname>构造"
+"函数以注册<type>GType</type>的构造函数。"
+
+#: C/index-in.docbook:6275
#, no-wrap
msgid ""
"\n"
@@ -10851,30 +10861,7 @@ msgstr ""
" // ....\n"
"}\n"
-#: C/index-in.docbook:6277
-msgid ""
-"If your derived widget uses <classname>Glib::Property</classname>, it "
-"becomes slightly more complicated. A derived widget that contains "
-"<classname>Glib::Property</classname> members must be registered with its "
-"own name in the <type>GType</type> system. It must be registered before any "
-"of the <methodname>create_from_*()</methodname> or <methodname>add_from_*()</"
-"methodname> methods are called, meaning that you may have to create an "
-"instance of your derived widget just to have its class registered. Your "
-"derived widget must have a constructor that has the parameters required by "
-"<methodname>get_widget_derived()</methodname> and calls the <classname>Glib::"
-"ObjectBase</classname> constructor to register the <type>GType</type>. <_:"
-"programlisting-1/>"
-msgstr ""
-"如果你派生的部件使用了<classname>Glib::Property</classname>,它将变得更复杂了"
-"一些。包涵<classname>Glib::Property</classname>成员的派生部件必须在"
-"<type>GType</type>系统中用自己的名称进行注册。必须在调用任何"
-"<methodname>create_from_*()</methodname>或<methodname>add_from_*()</"
-"methodname>方法之前进行注册,这意味着你可能需要完成对该类的注册才能创建派生部"
-"件的实例。你派生的部件必须有一个具有<methodname>get_widget_derived()</"
-"methodname>所需的所有参数以及调用<classname>Glib::ObjectBase</classname>构造"
-"函数以注册<type>GType</type>的构造函数。<_:programlisting-1/>"
-
-#: C/index-in.docbook:6298
+#: C/index-in.docbook:6285
msgid ""
"When using <application>gtkmm</application> with a version of "
"<application>glibmm</application> from 2.62 onwards, it is possible also to "
@@ -10895,7 +10882,7 @@ msgstr ""
"性,但这应该能通过使用<ulink url=\"https://developer.gnome.org/gladeui/"
"stable/properties.html\">属性类定义</ulink>和声明一个新属性目录来实现。"
-#: C/index-in.docbook:6312
+#: C/index-in.docbook:6299
msgid ""
"This example shows how to load a <application>Glade</application> file at "
"runtime and access the widgets via derived classes."
@@ -10903,7 +10890,7 @@ msgstr ""
"本示例展示了如何在运行时加载<application>Glade</application>文件以及如何通过"
"派生类访问部件。"
-#: C/index-in.docbook:6316
+#: C/index-in.docbook:6303
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/builder/derived\">Source Code</ulink>"
@@ -10911,11 +10898,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/builder/derived\">源代码</ulink>"
-#: C/index-in.docbook:6325
+#: C/index-in.docbook:6312
msgid "Internationalization and Localization"
msgstr "国际化和本地化"
-#: C/index-in.docbook:6327
+#: C/index-in.docbook:6314
msgid ""
"<application>gtkmm</application> applications can easily support multiple "
"languages, including non-European languages such as Chinese and right-to-"
@@ -10928,7 +10915,7 @@ msgstr ""
"<application>gtkmm</application>应用程序可以在运行时根据用户环境使用合适的语"
"言。"
-#: C/index-in.docbook:6333
+#: C/index-in.docbook:6320
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 "
@@ -10937,7 +10924,7 @@ msgstr ""
"你可能没有预料到需要支持其他语言,但你永远不能排除这种可能性。而且事先准备好"
"支持多语言比后来改进要容易的多。"
-#: C/index-in.docbook:6339
+#: C/index-in.docbook:6326
msgid ""
"The process of writing source code that allows for translation is called "
"<literal>internationalization</literal>, often abbreviated to <literal>i18n</"
@@ -10949,7 +10936,7 @@ msgstr ""
"通常被缩写为<literal>i18n</literal>。而根据该源代码提供其他语言的翻译文本的过"
"程<literal>Localization</literal>通常被简写为<literal>l10n</literal>。"
-#: C/index-in.docbook:6347
+#: C/index-in.docbook:6334
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 "
@@ -10961,7 +10948,7 @@ msgstr ""
"要一次性完成所有的操作 - 只要你的项目准备好了进行国际化无论你有多少个字符串被"
"标记为可翻译都不会影响程序的正常运行。"
-#: C/index-in.docbook:6355
+#: C/index-in.docbook:6342
msgid ""
"String literals should be typed in the source code in English, but "
"surrounded by a macro. The <application>gettext</application> (or intltool) "
@@ -10972,11 +10959,11 @@ msgstr ""
"application>(或intltool)实用程序可以提取被标记的字符串进行翻译,并在运行时"
"将其替换为翻译后的文本。"
-#: C/index-in.docbook:6363
+#: C/index-in.docbook:6350
msgid "Preparing your project"
msgstr "准备你的项目"
-#: C/index-in.docbook:6366
+#: C/index-in.docbook:6353
msgid ""
"In the instructions below we will assume that you will not be using "
"<application>gettext</application> directly, but <application>intltool</"
@@ -10995,7 +10982,7 @@ msgstr ""
"单详情、glade的GUI资源文件)中提取字符串写入到标准的<application>gettext</"
"application><filename>.pot/.po</filename>文件中。"
-#: C/index-in.docbook:6377
+#: C/index-in.docbook:6364
msgid ""
"We also assume that you are using autotools (e.g. <application>automake</"
"application> and <application>autoconf</application>) to build your project, "
@@ -11012,7 +10999,7 @@ msgstr ""
"ulink>或与之类似的<literal>autogen.sh</literal>文件,在这里它负责初始化"
"<application>intltool</application>。"
-#: C/index-in.docbook:6391
+#: C/index-in.docbook:6378
msgid ""
"An alternative to <application>gnome-common</application>'s <literal>autogen."
"sh</literal> may look like this:"
@@ -11020,7 +11007,7 @@ msgstr ""
"<application>gnome-common</application>的<literal>autogen.sh</literal>的替代"
"方案可能如下所示:"
-#: C/index-in.docbook:6395
+#: C/index-in.docbook:6382
#, no-wrap
msgid ""
"#! /bin/sh -e\n"
@@ -11041,7 +11028,7 @@ msgstr ""
"intltoolize --copy --force --automake\n"
"test -n \"$NOCONFIGURE\" || \"$srcdir/configure\" \"$@\""
-#: C/index-in.docbook:6404
+#: C/index-in.docbook:6391
msgid ""
"Create a sub-directory named <literal>po</literal> in your project's root "
"directory. This directory will eventually contain all of your translations. "
@@ -11055,7 +11042,7 @@ msgstr ""
"<literal>POTFILES.in</literal>的文件。通常做法是在<literal>po</literal>文件夹"
"再创建一个<literal>ChangeLog</literal>文件以便翻译人员跟踪翻译更改。"
-#: C/index-in.docbook:6414
+#: C/index-in.docbook:6401
msgid ""
"<literal>LINGUAS</literal> contains an alphabetically sorted list of codes "
"identifying the languages for which your program is translated (comment "
@@ -11070,7 +11057,7 @@ msgstr ""
"文件。因此如果你的程序有德语和日语翻译,你的<literal>LINGUAS</literal>应如下"
"所示:"
-#: C/index-in.docbook:6423
+#: C/index-in.docbook:6410
#, no-wrap
msgid ""
"# keep this file sorted alphabetically, one language code per line\n"
@@ -11081,7 +11068,7 @@ msgstr ""
"de\n"
"ja"
-#: C/index-in.docbook:6426
+#: C/index-in.docbook:6413
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 "
@@ -11090,7 +11077,7 @@ msgstr ""
"(此外,你的<literal>po</literal>文件夹必须有包含德语和日语翻译的<literal>ja."
"po</literal>和<literal>de.po</literal>文件)"
-#: C/index-in.docbook:6433
+#: C/index-in.docbook:6420
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. "
@@ -11104,7 +11091,7 @@ msgstr ""
"中,其中有两个文件包含有需要被翻译的字符串,则你的<literal>POTFILES.in</"
"literal>可能如下所示:"
-#: C/index-in.docbook:6442
+#: C/index-in.docbook:6429
#, no-wrap
msgid ""
"src/main.cc\n"
@@ -11113,7 +11100,7 @@ msgstr ""
"src/main.cc\n"
"src/other.cc"
-#: C/index-in.docbook:6445
+#: C/index-in.docbook:6432
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 "
@@ -11133,7 +11120,7 @@ msgstr ""
"了应用程序UI,则你还需要将<filename>.glade</filename>添加到你的"
"<literal>POTFILES.in</literal>列表中。"
-#: C/index-in.docbook:6458
+#: C/index-in.docbook:6445
msgid ""
"Now that there is a place to put your translations, you need to initialize "
"<application>intltool</application> and <application>gettext</application>. "
@@ -11144,7 +11131,7 @@ msgstr ""
"<application>gettext</application>。将一下代码添加到你的<literal>configure."
"ac</literal>,将\"programname\"替换为你的程序的名称:"
-#: C/index-in.docbook:6465
+#: C/index-in.docbook:6452
#, no-wrap
msgid ""
"IT_PROG_INTLTOOL([0.35.0])\n"
@@ -11171,7 +11158,7 @@ msgstr ""
"PROGRAMNAME_LOCALEDIR=[${datadir}/locale]\n"
"AC_SUBST(PROGRAMNAME_LOCALEDIR)"
-#: C/index-in.docbook:6477
+#: C/index-in.docbook:6464
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 "
@@ -11181,7 +11168,7 @@ msgstr ""
"literal>文件使用。以定义在源代码中初始化<application>gettext</application>时"
"将用到的宏。"
-#: C/index-in.docbook:6484
+#: C/index-in.docbook:6471
msgid ""
"<literal>AM_GLIB_GNU_GETTEXT</literal> has been an alternative to "
"<literal>AM_GNU_GETTEXT</literal> and <literal>AM_GNU_GETTEXT_VERSION</"
@@ -11192,7 +11179,7 @@ msgstr ""
"<literal>AM_GNU_GETTEXT_VERSION</literal>替代,且"
"<literal>AM_GLIB_GNU_GETTEXT</literal>已被弃用,不应在任何新代码中使用。"
-#: C/index-in.docbook:6495
+#: C/index-in.docbook:6482
msgid ""
"Add <literal>po</literal> to the <literal>SUBDIRS</literal> variable. "
"Without this, your translations won't get built and installed when you build "
@@ -11201,7 +11188,7 @@ msgstr ""
"将<literal>po</literal>添加到<literal>SUBDIRS</literal>变量中。如果没有这个,"
"在构建程序时不会生成和安装翻译。"
-#: C/index-in.docbook:6502
+#: C/index-in.docbook:6489
#, no-wrap
msgid ""
"INTLTOOL_FILES = intltool-extract.in \\\n"
@@ -11212,11 +11199,11 @@ msgstr ""
" intltool-merge.in \\\n"
" intltool-update.in"
-#: C/index-in.docbook:6500
+#: C/index-in.docbook:6487
msgid "Define <literal>INTLTOOL_FILES</literal> as: <_:programlisting-1/>"
msgstr "定义<literal>INTLTOOL_FILES</literal>为:<_:programlisting-1/>"
-#: C/index-in.docbook:6508
+#: C/index-in.docbook:6495
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>, "
@@ -11225,7 +11212,7 @@ msgstr ""
"将<literal>INTLTOOL_FILES</literal>添加到<literal>EXTRA_DIST</literal>文件列"
"表。这样可以确保执行<command>make dist</command>时这些文件包含在源压缩包中。"
-#: C/index-in.docbook:6518
+#: C/index-in.docbook:6505
#, no-wrap
msgid ""
"DISTCLEANFILES = ... intltool-extract \\\n"
@@ -11238,11 +11225,11 @@ msgstr ""
" intltool-update \\\n"
" po/.intltool-merge-cache"
-#: C/index-in.docbook:6516
+#: C/index-in.docbook:6503
msgid "Update your <literal>DISTCLEANFILES</literal>: <_:programlisting-1/>"
msgstr "更新你的<literal>DISTCLEANFILES</literal>:<_:programlisting-1/>"
-#: C/index-in.docbook:6528
+#: C/index-in.docbook:6515
#, no-wrap
msgid ""
"desktopdir = $(datadir)/applications\n"
@@ -11255,17 +11242,17 @@ msgstr ""
"desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)\n"
"@INTLTOOL_DESKTOP_RULE@"
-#: C/index-in.docbook:6525
+#: C/index-in.docbook:6512
msgid ""
"Depending on the types of files that contain translatable strings, add code "
"such as <_:programlisting-1/>"
msgstr "根据包含可翻译字符串的文件类型,添加以下代码:<_:programlisting-1/>"
-#: C/index-in.docbook:6491
+#: C/index-in.docbook:6478
msgid "In the top-level Makefile.am: <_:itemizedlist-1/>"
msgstr "在顶层<literal>Makefile.am</literal>中:<_:itemizedlist-1/>"
-#: C/index-in.docbook:6537
+#: C/index-in.docbook:6524
msgid ""
"In your <literal>src/Makefile.am</literal>, update your "
"<literal>AM_CPPFLAGS</literal> to add the following preprocessor macro "
@@ -11274,22 +11261,22 @@ msgstr ""
"在你的<literal>src/Makefile.am</literal>中,更新你的<literal>AM_CPPFLAGS</"
"literal>以添加以下预处理宏定义:"
-#: C/index-in.docbook:6542
+#: C/index-in.docbook:6529
#, no-wrap
msgid "AM_CPPFLAGS = ... -DPROGRAMNAME_LOCALEDIR=\\\"${PROGRAMNAME_LOCALEDIR}\\\""
msgstr "AM_CPPFLAGS = ... -DPROGRAMNAME_LOCALEDIR=\\\"${PROGRAMNAME_LOCALEDIR}\\\""
-#: C/index-in.docbook:6543
+#: C/index-in.docbook:6530
msgid ""
"This macro will be used when you initialize <literal>gettext</literal> in "
"your source code."
msgstr "在你的源代码中初始化<literal>gettext</literal>时将使用这个宏。"
-#: C/index-in.docbook:6550
+#: C/index-in.docbook:6537
msgid "Marking strings for translation"
msgstr "标记要翻译的字符串"
-#: C/index-in.docbook:6552
+#: C/index-in.docbook:6539
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> "
@@ -11300,7 +11287,7 @@ msgstr ""
"function>函数的调用中。这些字符串将被提取以进行翻译,并且在运行时翻译可以替代"
"原始的英文字符串。"
-#: C/index-in.docbook:6560
+#: C/index-in.docbook:6547
msgid ""
"The <application>GNU gettext</application> package allows you to mark "
"strings in source code, extract those strings for translation, and use the "
@@ -11309,17 +11296,17 @@ msgstr ""
"<application>GNU gettext</application>允许你标记源代码中的字符串,提取这些字"
"符串进行翻译,并在你的应用程序中使用翻译好的字符串。"
-#: C/index-in.docbook:6572
+#: C/index-in.docbook:6559
#, no-wrap
msgid "display_message(\"Getting ready for i18n.\");"
msgstr "display_message(\"Getting ready for i18n.\");"
-#: C/index-in.docbook:6574
+#: C/index-in.docbook:6561
#, no-wrap
msgid "display_message(_(\"Getting ready for i18n.\"));"
msgstr "display_message(_(\"Getting ready for i18n.\"));"
-#: C/index-in.docbook:6566
+#: C/index-in.docbook:6553
msgid ""
"However, <application>Glib</application> defines <function>gettext()</"
"function> support macros which are shorter wrappers in an easy-to-use form. "
@@ -11331,24 +11318,33 @@ msgstr ""
"些宏更为简单易用,要使用这些宏请<literal>#include <glibmm/i18n.h></"
"literal>然后将:<_:programlisting-1/>替换为:<_:programlisting-2/>"
-#: C/index-in.docbook:6585
-#, no-wrap
-msgid "xgettext -a -o my-strings --omit-header *.cc *.h"
-msgstr "xgettext -a -o my-strings --omit-header *.cc *.h"
-
-#: C/index-in.docbook:6577
+#: C/index-in.docbook:6564
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, "
"together with file name and line number references. To generate such a file "
"named <literal>my-strings</literal>, execute the following command, within "
-"the source code directory: <_:programlisting-1/>"
+"the source code directory:"
msgstr ""
"可以生成一个包含代码中出现的所有字符串(即使没有被标记为需要翻译)以及其文件"
"名与行号引用的文件作为参考。要生成名为<literal>my-strings</literal>的文件,请"
-"在源代码目录执行以下命令:<_:programlisting-1/>"
+"在源代码目录执行以下命令:"
+
+#: C/index-in.docbook:6573
+#, no-wrap
+msgid "xgettext -a -o my-strings --omit-header *.cc *.h"
+msgstr "xgettext -a -o my-strings --omit-header *.cc *.h"
-#: C/index-in.docbook:6592
+#: C/index-in.docbook:6575
+msgid ""
+"Finally, to let your program use the translation for the current locale, add "
+"this code to the beginning of your <filename>main.cc</filename> file, to "
+"initialize gettext."
+msgstr ""
+"最后,要让你的程序使用当前环境的翻译,请将以下代码添加到你的<filename>main."
+"cc</filename>文件的开头,以初始化<function>gettext()</function>。"
+
+#: C/index-in.docbook:6580
#, no-wrap
msgid ""
"bindtextdomain(GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR);\n"
@@ -11359,21 +11355,11 @@ msgstr ""
"bind_textdomain_codeset(GETTEXT_PACKAGE, \"UTF-8\");\n"
"textdomain(GETTEXT_PACKAGE);"
-#: C/index-in.docbook:6588
-msgid ""
-"Finally, to let your program use the translation for the current locale, add "
-"this code to the beginning of your <filename>main.cc</filename> file, to "
-"initialize gettext. <_:programlisting-1/>"
-msgstr ""
-"最后,要让你的程序使用当前环境的翻译,请将以下代码添加到你的<filename>main."
-"cc</filename>文件的开头,以初始化<function>gettext()</function>。<_:"
-"programlisting-1/>"
-
-#: C/index-in.docbook:6598
+#: C/index-in.docbook:6585
msgid "How gettext works"
msgstr "gettext如何工作"
-#: C/index-in.docbook:6600
+#: C/index-in.docbook:6587
msgid ""
"The <application>intltool-update</application> or <application>xgettext</"
"application> script extracts the strings and puts them in a "
@@ -11395,7 +11381,7 @@ msgstr ""
"application>脚本重新生成的<filename>.pot</filename>文件更新"
"<filename>localename.po</filename>文件。"
-#: C/index-in.docbook:6614
+#: C/index-in.docbook:6601
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 "
@@ -11406,7 +11392,7 @@ msgstr ""
"mo</filename>),并将其放置于系统所有的区域设置文件夹中,例如<filename>/usr/"
"share/locale/</filename>。"
-#: C/index-in.docbook:6621
+#: C/index-in.docbook:6608
msgid ""
"When the application runs, the <application>gettext</application> library "
"checks the system-wide directory to see if there is a <filename>.mo</"
@@ -11422,26 +11408,25 @@ msgstr ""
"后在程序到达<literal>gettext</literal>调用时,它将从中寻找特定字符串的翻译,"
"如果未找到则使用原始字符串。"
-#: C/index-in.docbook:6633
+#: C/index-in.docbook:6620
msgid "Testing and adding translations"
msgstr "测试和添加翻译"
-#: C/index-in.docbook:6640
-#, no-wrap
-msgid "intltool-update --pot"
-msgstr "intltool-update --pot"
-
-#: C/index-in.docbook:6635
+#: C/index-in.docbook:6622
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</"
-"filename> subdirectory of your project and execute the following command: <_:"
-"programlisting-1/>"
+"filename> subdirectory of your project and execute the following command:"
msgstr ""
"为了说服自己做得很好,你可能希望为新的语言环境添加翻译。为此请转到项目的"
-"<filename>po</filename>子文件夹并执行以下命令:<_:programlisting-1/>"
+"<filename>po</filename>子文件夹并执行以下命令:"
-#: C/index-in.docbook:6643
+#: C/index-in.docbook:6628
+#, no-wrap
+msgid "intltool-update --pot"
+msgstr "intltool-update --pot"
+
+#: C/index-in.docbook:6630
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</"
@@ -11459,7 +11444,7 @@ msgstr ""
"留了空间。请确保将<filename>.po</filename>文件的编码设置(在标头中指定,但也"
"指定其内容的编码)为了<literal>UTF-8</literal>。"
-#: C/index-in.docbook:6656
+#: C/index-in.docbook:6643
msgid ""
"It's possible that certain strings will be marked as <literal>fuzzy</"
"literal> in the <filename>.po</filename> file. These translations will not "
@@ -11471,11 +11456,11 @@ msgstr ""
"<literal>fuzzy</literal>标记删除即可(通常该标记意味着翻译需要更新,不检查翻"
"译直接删除标记是不对的)。"
-#: C/index-in.docbook:6666
+#: C/index-in.docbook:6653
msgid "Resources"
msgstr "资源"
-#: C/index-in.docbook:6674
+#: C/index-in.docbook:6661
msgid ""
"<ulink url=\"https://wiki.gnome.org/TranslationProject/DevGuidelines\"> L10N "
"Guidelines for Developers</ulink>"
@@ -11483,7 +11468,7 @@ msgstr ""
"<ulink url=\"https://wiki.gnome.org/TranslationProject/DevGuidelines\">本地化"
"开发人员指南</ulink>"
-#: C/index-in.docbook:6681
+#: C/index-in.docbook:6668
msgid ""
"<ulink url=\"http://bazaar.launchpad.net/~intltool/intltool/trunk/view/head:/"
"README\">Intltool README</ulink>"
@@ -11491,7 +11476,7 @@ msgstr ""
"<ulink url=\"http://bazaar.launchpad.net/~intltool/intltool/trunk/view/head:/"
"README\">Intltool自述文件</ulink>"
-#: C/index-in.docbook:6687
+#: C/index-in.docbook:6674
msgid ""
"<ulink url=\"https://wiki.gnome.org/TranslationProject/GitHowTo\">How to use "
"Git for GNOME translators</ulink>"
@@ -11499,7 +11484,7 @@ msgstr ""
"<ulink url=\"https://wiki.gnome.org/TranslationProject/GitHowTo\">GNOME译者如"
"何使用Git</ulink>"
-#: C/index-in.docbook:6693
+#: C/index-in.docbook:6680
msgid ""
"<ulink url=\"http://www.gnu.org/software/gettext/manual/gettext.html"
"\">gettext manual</ulink>"
@@ -11507,7 +11492,7 @@ msgstr ""
"<ulink url=\"http://www.gnu.org/software/gettext/manual/gettext.html"
"\">gettext手册</ulink>"
-#: C/index-in.docbook:6699
+#: C/index-in.docbook:6686
msgid ""
"<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gtkmm_hello/"
"\"><literal>gtkmm_hello</literal> example package</ulink>"
@@ -11515,7 +11500,7 @@ msgstr ""
"<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gtkmm_hello/"
"\"><literal>gtkmm_hello</literal>示例包</ulink>"
-#: C/index-in.docbook:6705
+#: C/index-in.docbook:6692
msgid ""
"<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gnomemm_hello/"
"\"><literal>gnomemm_hello</literal> example package</ulink>"
@@ -11523,17 +11508,17 @@ msgstr ""
"<ulink url=\"http://ftp.gnome.org/pub/GNOME/sources/gnomemm_hello/"
"\"><literal>gnomemm_hello</literal>示例包</ulink>"
-#: C/index-in.docbook:6668
+#: C/index-in.docbook:6655
msgid ""
"More information about what lies behind the internationalization and "
"localization process is presented and demonstrated in: <_:itemizedlist-1/>"
msgstr "更多与国际化与本地化有关的信息,请参阅以下内容:<_:itemizedlist-1/>"
-#: C/index-in.docbook:6716
+#: C/index-in.docbook:6703
msgid "Expecting UTF8"
msgstr "期望使用UTF8"
-#: C/index-in.docbook:6717
+#: C/index-in.docbook:6704
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 "
@@ -11546,7 +11531,7 @@ msgstr ""
"<function>strlen()</function>这样的与字符串有关的标准C函数,因为他们都对字符"
"的字节数做了假设。"
-#: C/index-in.docbook:6724
+#: C/index-in.docbook:6711
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 "
@@ -11559,28 +11544,11 @@ msgstr ""
"换成使用<classname>Glib::ustring</classname>即可。更多详情请参阅<link "
"linkend=\"sec-basics-ustring\">Glib::ustring基础</link>章节。"
-#: C/index-in.docbook:6733
+#: C/index-in.docbook:6720
msgid "Glib::ustring and std::iostreams"
msgstr "Glib::ustring和std::iostreams"
-#: C/index-in.docbook:6750
-#, no-wrap
-msgid ""
-"std::locale::global(std::locale(\"\")); // Set the global locale to the user's preferred locale.\n"
-" // Usually unnecessary here, because Glib::init()\n"
-" // or Gtk::Application::create() does it for you.\n"
-"std::ostringstream output;\n"
-"output << percentage << \" % done\";\n"
-"label->set_text(Glib::locale_to_utf8(output.str()));"
-msgstr ""
-"std::locale::global(std::locale(\"\")); // Set the global locale to the user's preferred locale.\n"
-" // Usually unnecessary here, because Glib::init()\n"
-" // or Gtk::Application::create() does it for you.\n"
-"std::ostringstream output;\n"
-"output << percentage << \" % done\";\n"
-"label->set_text(Glib::locale_to_utf8(output.str()));"
-
-#: C/index-in.docbook:6735
+#: C/index-in.docbook:6722
msgid ""
"Unfortunately, the integration with the standard iostreams is not completely "
"foolproof. <application>gtkmm</application> converts <classname>Glib::"
@@ -11596,8 +11564,7 @@ msgid ""
"characters and the current locale is not UTF-8 encoded, the result is a "
"corrupted <classname>Glib::ustring</classname>. You can work around this "
"with a manual conversion. For instance, to retrieve the <classname>std::"
-"string</classname> from a <classname>ostringstream</classname>: <_:"
-"programlisting-1/>"
+"string</classname> from a <classname>ostringstream</classname>:"
msgstr ""
"不幸的是,与标准<classname>iostreams</classname>的集成并非绝对安全的。如果你"
"将<classname>Glib::ustring</classname>使用<function>operator<<</"
@@ -11611,23 +11578,40 @@ msgstr ""
"言环境不使用UTF-8编码,则得到的结果是一个损坏的<classname>Glib::ustring</"
"classname>。你可以通过手动转换编码解决此问题。例如,若要从"
"<classname>ostringstream</classname>中接受<classname>std::string</"
-"classname>:<_:programlisting-1/>"
+"classname>:"
+
+#: C/index-in.docbook:6738
+#, no-wrap
+msgid ""
+"std::locale::global(std::locale(\"\")); // Set the global locale to the user's preferred locale.\n"
+" // Usually unnecessary here, because Glib::init()\n"
+" // or Gtk::Application::create() does it for you.\n"
+"std::ostringstream output;\n"
+"output << percentage << \" % done\";\n"
+"label->set_text(Glib::locale_to_utf8(output.str()));"
+msgstr ""
+"std::locale::global(std::locale(\"\")); // Set the global locale to the user's preferred locale.\n"
+" // Usually unnecessary here, because Glib::init()\n"
+" // or Gtk::Application::create() does it for you.\n"
+"std::ostringstream output;\n"
+"output << percentage << \" % done\";\n"
+"label->set_text(Glib::locale_to_utf8(output.str()));"
-#: C/index-in.docbook:6762
+#: C/index-in.docbook:6749
msgid "Pitfalls"
msgstr "陷阱"
-#: C/index-in.docbook:6764
+#: C/index-in.docbook:6751
msgid ""
"There are a few common mistakes that you would discover eventually yourself. "
"But this section might help you to avoid them."
msgstr "有几个你最终会自己发现的错误。但本小节可能能帮助你避免它们。"
-#: C/index-in.docbook:6767
+#: C/index-in.docbook:6754
msgid "Same strings, different semantics"
msgstr "不同语义的同一字符串。"
-#: C/index-in.docbook:6769
+#: C/index-in.docbook:6756
msgid ""
"Sometimes two English strings are identical but have different meanings in "
"different contexts, so they would probably not be identical when translated. "
@@ -11636,7 +11620,7 @@ msgstr ""
"有时,两个英文字符串是相同的但是在不同的上下文中有不同的含义,因此他们的译文"
"不一定相同。此时用英文字符串作为查找键会引起问题。"
-#: C/index-in.docbook:6773
+#: C/index-in.docbook:6760
msgid ""
"In these cases, you should add extra characters to the strings. For "
"instance, use <literal>\"jumps[noun]\"</literal> and <literal>"
@@ -11652,7 +11636,7 @@ msgstr ""
"离。如果你添加了额外的字符,你还应该在调用<function>gettext</function>之前为"
"译者添加注释。这样的注释将被显示于<filename>.po</filename>中。例如:"
-#: C/index-in.docbook:6782
+#: C/index-in.docbook:6769
#, no-wrap
msgid ""
"// note to translators: don't translate the \"[noun]\" part - it is\n"
@@ -11663,7 +11647,7 @@ msgstr ""
"// just here to distinguish the string from another \"jumps\" string\n"
"text = strip(gettext(\"jumps[noun]\"), \"[noun]\");"
-#: C/index-in.docbook:6786
+#: C/index-in.docbook:6773
msgid ""
"If you use <application>Glib</application>'s support macros, it's easier. "
"Use <function>C_()</function> instead of <function>_()</function>. For "
@@ -11672,16 +11656,16 @@ msgstr ""
"如果你使用<application>Glib</application>宏,将会更为方便。你只需要使用"
"<function>C_()</function>替换<function>_()</function>。例如:"
-#: C/index-in.docbook:6790
+#: C/index-in.docbook:6777
#, no-wrap
msgid "GLib::ustring text(C_(\"noun\", \"jumps\"));"
msgstr "GLib::ustring text(C_(\"noun\", \"jumps\"));"
-#: C/index-in.docbook:6795
+#: C/index-in.docbook:6782
msgid "Composition of strings"
msgstr "合成字符串"
-#: C/index-in.docbook:6797
+#: C/index-in.docbook:6784
msgid ""
"C programmers use <function>sprintf()</function> to compose and concatenate "
"strings. C++ favours streams, but unfortunately, this approach makes "
@@ -11693,11 +11677,11 @@ msgstr ""
"的是,使用这种方法生成的字符串将给翻译带来困难,因为文本被分成了多个片段,译"
"者必须分开翻译多个片段而不能进行重新排列,这会导致很多字符串无法被正确翻译。"
-#: C/index-in.docbook:6804
+#: C/index-in.docbook:6791
msgid "For instance, this code would be problematic:"
msgstr "例如,此代码将会出现问题:"
-#: C/index-in.docbook:6806
+#: C/index-in.docbook:6793
#, no-wrap
msgid ""
"std::cout << _(\"Current amount: \") << amount\n"
@@ -11710,7 +11694,18 @@ msgstr ""
"\n"
"label.set_text(_(\"Really delete \") + filename + _(\" now?\"));"
-#: C/index-in.docbook:6815
+#: C/index-in.docbook:6798
+msgid ""
+"So you should either avoid this situation or use <ulink url=\"http://"
+"developer.gnome.org/glibmm/unstable/classGlib_1_1ustring.html"
+"\"><function>Glib::ustring::compose()</function></ulink> which supports "
+"syntax such as:"
+msgstr ""
+"因此你应该避免这种情况的出现或者使用<ulink url=\"http://developer.gnome.org/"
+"glibmm/unstable/classGlib_1_1ustring.html\"><function>Glib::ustring::"
+"compose()</function></ulink>以支持如下所示的语法:"
+
+#: C/index-in.docbook:6803
#, no-wrap
msgid ""
"std::cout << Glib::ustring::compose(\n"
@@ -11723,22 +11718,11 @@ msgstr ""
"\n"
"label.set_text(Glib::ustring::compose(_(\"Really delete %1 now?\"), filename));"
-#: C/index-in.docbook:6811
-msgid ""
-"So you should either avoid this situation or use <ulink url=\"http://"
-"developer.gnome.org/glibmm/unstable/classGlib_1_1ustring.html"
-"\"><function>Glib::ustring::compose()</function></ulink> which supports "
-"syntax such as: <_:programlisting-1/>"
-msgstr ""
-"因此你应该避免这种情况的出现或者使用<ulink url=\"http://developer.gnome.org/"
-"glibmm/unstable/classGlib_1_1ustring.html\"><function>Glib::ustring::"
-"compose()</function></ulink>以支持如下所示的语法:<_:programlisting-1/>"
-
-#: C/index-in.docbook:6823
+#: C/index-in.docbook:6810
msgid "Assuming the displayed size of strings"
msgstr "假设显示字符串所需的空间"
-#: C/index-in.docbook:6825
+#: C/index-in.docbook:6812
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. "
@@ -11749,11 +11733,11 @@ msgstr ""
"英文字符串的两倍甚至更多。幸运的是 <application>gtkmm</application>的多数部件"
"都能在运行时自动扩展到需要的尺寸。"
-#: C/index-in.docbook:6829
+#: C/index-in.docbook:6816
msgid "Unusual words"
msgstr "\"黑话\""
-#: C/index-in.docbook:6831
+#: C/index-in.docbook:6818
msgid ""
"You should avoid cryptic abbreviations, slang, or jargon. They are usually "
"difficult to translate, and are often difficult for even native speakers to "
@@ -11763,11 +11747,11 @@ msgstr ""
"译,甚至将该语言作为母语的译者也无法理解。例如,最好使用\"application\"而不是"
"\"app\""
-#: C/index-in.docbook:6837
+#: C/index-in.docbook:6824
msgid "Using non-ASCII characters in strings"
msgstr "在字符串中使用非ASCII字符"
-#: C/index-in.docbook:6839
+#: C/index-in.docbook:6826
msgid ""
"Currently, <application>gettext</application> does not support non-ASCII "
"characters (i.e. any characters with a code above 127) in source code. For "
@@ -11776,7 +11760,7 @@ msgstr ""
"当前,<application>gettext</application>并不支持在源代码中使用非ASCII字符。例"
"如,你不能使用版权标志(©)"
-#: C/index-in.docbook:6845
+#: C/index-in.docbook:6832
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 "
@@ -11787,11 +11771,11 @@ msgstr ""
"要解决这个问题你可以使用注释提醒译者可以使用他们语言中可用的特殊字符。对于英"
"语用户你可以在美国英语<filename>en_US.po</filename>翻译中使用特殊字符。"
-#: C/index-in.docbook:6853
+#: C/index-in.docbook:6840
msgid "Getting help with translations"
msgstr "获取翻译帮助"
-#: C/index-in.docbook:6855
+#: C/index-in.docbook:6842
msgid ""
"If your program is free software, there is a whole <literal>GNOME</literal> "
"subproject devoted to helping you make translations, the <ulink url="
@@ -11802,7 +11786,7 @@ msgstr ""
"子项目:<ulink url=\"https://wiki.gnome.org/TranslationProject/"
"\"><literal>GNOME</literal>翻译项目</ulink>。"
-#: C/index-in.docbook:6860
+#: C/index-in.docbook:6847
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 "
@@ -11813,7 +11797,7 @@ msgstr ""
"gnome-i18n请求将你的程序添加到<ulink url=\"http://l10n.gnome.org/module/\">待"
"翻译模块列表</ulink>中。"
-#: C/index-in.docbook:6865
+#: C/index-in.docbook:6852
msgid ""
"Then you make sure you update the file <filename>POTFILES.in</filename> in "
"the <filename>po/</filename> subdirectory (<command>intltool-update -m</"
@@ -11831,7 +11815,7 @@ msgstr ""
"以及程序的受欢迎程度,译者将逐渐向你提交<filename>languagename.po</filename>"
"文件。"
-#: C/index-in.docbook:6877
+#: C/index-in.docbook:6864
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 "
@@ -11844,11 +11828,11 @@ msgstr ""
"串,则可能需要很长时间才有译者查看它。此外,大多数译者都不想浪费时间,因此如"
"果他们认为你的项目质量很低,他们可能不会想为你提供翻译。"
-#: C/index-in.docbook:6889 C/index-in.docbook:6960
+#: C/index-in.docbook:6876 C/index-in.docbook:6947
msgid "Custom Widgets"
msgstr "自定义部件"
-#: C/index-in.docbook:6891
+#: C/index-in.docbook:6878
msgid ""
"<application>gtkmm</application> makes it very easy to derive new widgets by "
"inheriting from an existing widget class, either by deriving from a "
@@ -11861,11 +11845,11 @@ msgstr ""
"向其中添加子部件、从单项部件派生并修改其行为等手段派生新的部件。但有时你会发"
"现找不到合适的起点。在这种情况下你可以从头实现部件。"
-#: C/index-in.docbook:6898
+#: C/index-in.docbook:6885
msgid "Custom Containers"
msgstr "自定义容器"
-#: C/index-in.docbook:6902
+#: C/index-in.docbook:6889
msgid ""
"<methodname>get_request_mode_vfunc()</methodname>: Return what <literal>Gtk::"
"SizeRequestMode</literal> is preferred by the container."
@@ -11873,14 +11857,14 @@ msgstr ""
"<methodname>get_request_mode_vfunc()</methodname>:返回容器的<literal>Gtk::"
"SizeRequestMode</literal>偏好。"
-#: C/index-in.docbook:6903
+#: C/index-in.docbook:6890
msgid ""
"<methodname>measure_vfunc()</methodname>: Calculate the minimum and natural "
"width or height of the container."
msgstr ""
"<methodname>measure_vfunc()</methodname>:返回容器的最小自然宽度或高度。"
-#: C/index-in.docbook:6904
+#: C/index-in.docbook:6891
msgid ""
"<methodname>on_size_allocate()</methodname>: Position the child widgets, "
"given the height and width that the container has actually been given."
@@ -11888,7 +11872,7 @@ msgstr ""
"<methodname>on_size_allocate()</methodname>:根据容器实际宽度和高度定位子部"
"件。"
-#: C/index-in.docbook:6899
+#: C/index-in.docbook:6886
msgid ""
"When deriving a custom container widget directly from <classname>Gtk::"
"Widget</classname>, you should override the following virtual methods: <_:"
@@ -11897,7 +11881,7 @@ msgstr ""
"直接从<classname>Gtk::Widget</classname>派生自定义容器部件时,应重写一下虚方"
"法:<_:itemizedlist-1/>"
-#: C/index-in.docbook:6908
+#: C/index-in.docbook:6895
msgid ""
"The <methodname>get_request_mode_vfunc()</methodname>, "
"<methodname>measure_vfunc()</methodname>, and "
@@ -11924,7 +11908,7 @@ msgstr ""
"这个结果确保部件获得足够的空间。通过对每个部件的父部件进行检查最终确认顶级窗"
"口的大小。"
-#: C/index-in.docbook:6925
+#: C/index-in.docbook:6912
msgid ""
"You are not guaranteed to get the <literal>Gtk::SizeRequestMode</literal> "
"that you request. Therefore <methodname>measure_vfunc()</methodname> must "
@@ -11939,7 +11923,7 @@ msgstr ""
"<methodname>Gtk::Widget::measure()</methodname>的描述可能比查看"
"<methodname>measure_vfunc()</methodname>的文档更好。"
-#: C/index-in.docbook:6932
+#: C/index-in.docbook:6919
msgid ""
"<methodname>on_size_allocate()</methodname> receives the actual height and "
"width that the parent container has decided to give to your widget. This "
@@ -11954,7 +11938,7 @@ msgstr ""
"以选择忽略多余的空间留出一个空白区域,或者选择扩展子部件以填充该空间,或者是"
"选择扩展部件之间的填充。"
-#: C/index-in.docbook:6943
+#: C/index-in.docbook:6930
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 "
@@ -11964,11 +11948,11 @@ msgstr ""
"使用垂直<classname>Gtk::Box</classname>或<classname>Gtk::Grid</classname>会更"
"简单。"
-#: C/index-in.docbook:6948
+#: C/index-in.docbook:6935
msgid "Custom Container"
msgstr "自定义容器"
-#: C/index-in.docbook:6954
+#: C/index-in.docbook:6941
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/custom/custom_container/\">Source Code</ulink>"
@@ -11976,7 +11960,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/custom/custom_container/\">源代码</ulink>"
-#: C/index-in.docbook:6961
+#: C/index-in.docbook:6948
msgid ""
"By deriving directly from <classname>Gtk::Widget</classname> you can do all "
"the drawing for your widget directly, instead of just arranging child "
@@ -11987,7 +11971,7 @@ msgstr ""
"而不仅仅是排列子部件。例如:<classname>Gtk::Label</classname>不需要使用其他部"
"件即可绘制标签文本。"
-#: C/index-in.docbook:6972
+#: C/index-in.docbook:6959
msgid ""
"<methodname>get_request_mode_vfunc()</methodname>: (optional) Return what "
"<literal>Gtk::SizeRequestMode</literal> is preferred by the widget."
@@ -11995,14 +11979,14 @@ msgstr ""
"<methodname>get_request_mode_vfunc()</methodname>:覆写此虚函数是可选的,返回"
"此部件的<literal>Gtk::SizeRequestMode</literal>偏好。"
-#: C/index-in.docbook:6973
+#: C/index-in.docbook:6960
msgid ""
"<methodname>measure_vfunc()</methodname>: Calculate the minimum and natural "
"width or height of the widget."
msgstr ""
"<methodname>measure_vfunc()</methodname>:计算此部件的最小自然高度或宽度。"
-#: C/index-in.docbook:6974
+#: C/index-in.docbook:6961
msgid ""
"<methodname>on_size_allocate()</methodname>: Position the widget, given the "
"height and width that it has actually been given."
@@ -12010,7 +11994,7 @@ msgstr ""
"<methodname>on_size_allocate()</methodname>:提供将实际给予部件的宽度和高度以"
"定位部件。"
-#: C/index-in.docbook:6975
+#: C/index-in.docbook:6962
msgid ""
"<methodname>on_realize()</methodname>: Associate a <classname>Gdk::Surface</"
"classname> with the widget."
@@ -12018,7 +12002,7 @@ msgstr ""
"<methodname>on_realize()</methodname>:将一个<classname>Gdk::Surface</"
"classname>与部件相关联。"
-#: C/index-in.docbook:6976
+#: C/index-in.docbook:6963
msgid ""
"<methodname>on_unrealize()</methodname>: (optional) Break the association "
"with the <classname>Gdk::Surface</classname>."
@@ -12026,15 +12010,15 @@ msgstr ""
"<methodname>on_unrealize()</methodname>:覆写此虚函数是可选的,断开"
"<classname>Gdk::Surface</classname>与部件的关联。"
-#: C/index-in.docbook:6977
+#: C/index-in.docbook:6964
msgid "<methodname>on_map()</methodname>: (optional)"
msgstr "<methodname>on_map()</methodname>:覆写此虚函数是可选的。"
-#: C/index-in.docbook:6978
+#: C/index-in.docbook:6965
msgid "<methodname>on_unmap()</methodname>: (optional)"
msgstr "<methodname>on_unmap()</methodname>:覆写此虚函数是可选的。"
-#: C/index-in.docbook:6979
+#: C/index-in.docbook:6966
msgid ""
"<methodname>snapshot_vfunc()</methodname>: Create a render node, e.g. a "
"<classname>Cairo::Context</classname> node, and draw on it."
@@ -12042,7 +12026,7 @@ msgstr ""
"<methodname>snapshot_vfunc()</methodname>:创建一个渲染节点(例如:一个"
"<classname>Cairo::Context</classname>节点),并在其上进行绘制。"
-#: C/index-in.docbook:6967
+#: C/index-in.docbook:6954
msgid ""
"When deriving from <classname>Gtk::Widget</classname>, you should override "
"the following virtual methods. The methods marked (optional) need not be "
@@ -12053,7 +12037,7 @@ msgstr ""
"中标记为可选的的虚函数不必在所有自定义部件中都进行覆写。它们的基类方法通常情"
"况下已经很合适。<_:itemizedlist-1/>"
-#: C/index-in.docbook:6983
+#: C/index-in.docbook:6970
msgid ""
"The first 3 methods in the previous table are also overridden in custom "
"containers. They are briefly described in the <link linkend=\"sec-custom-"
@@ -12062,11 +12046,11 @@ msgstr ""
"上述前三个函数在自定义容器中也被覆写。它们在<link linkend=\"sec-custom-"
"containers\">自定义容器</link>小节做了简要说明。"
-#: C/index-in.docbook:6989
+#: C/index-in.docbook:6976
msgid "Class Init and Instance Init Functions"
msgstr "类初始化和实例初始化函数"
-#: C/index-in.docbook:6991
+#: C/index-in.docbook:6978
msgid ""
"Some <application>GTK</application> functions, if called at all, must be "
"called from the class init function. Some other <application>GTK</"
@@ -12082,11 +12066,11 @@ msgstr ""
"ExtraClassInit</classname>派生一个类,并从该类派生你的自定义类。以下示例演示"
"了如何完成这些操作。"
-#: C/index-in.docbook:7000
+#: C/index-in.docbook:6987
msgid "Custom Style Information"
msgstr "自定义样式信息"
-#: C/index-in.docbook:7002
+#: C/index-in.docbook:6989
msgid ""
"Your widget class, whether it's derived directly from <classname>Gtk::"
"Widget</classname> or from another widget class, can read some style "
@@ -12109,15 +12093,15 @@ msgstr ""
"的支持情况。以下是示例演示了<methodname>Gtk::StyleContext::get_padding()</"
"methodname>的简单用法。"
-#: C/index-in.docbook:7016
+#: C/index-in.docbook:7003
msgid "This example implements a widget which draws Penrose triangles."
msgstr "本示例实现了绘制彭罗斯三角形的部件"
-#: C/index-in.docbook:7019
+#: C/index-in.docbook:7006
msgid "Custom Widget"
msgstr "自定义部件"
-#: C/index-in.docbook:7025
+#: C/index-in.docbook:7012
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/custom/custom_widget/\">Source Code</ulink>"
@@ -12125,15 +12109,15 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/custom/custom_widget/\">源代码</ulink>"
-#: C/index-in.docbook:7033
+#: C/index-in.docbook:7020
msgid "Multi-threaded programs"
msgstr "多线程程序"
-#: C/index-in.docbook:7036
+#: C/index-in.docbook:7023
msgid "The constraints"
msgstr "约束条件"
-#: C/index-in.docbook:7047
+#: C/index-in.docbook:7034
msgid ""
"These interactions arise from the fact that, amongst other things, a class "
"inheriting from <classname>sigc::trackable</classname> will, via that "
@@ -12163,7 +12147,7 @@ msgstr ""
"<methodname>connect()</methodname>方法或任何与该连接有关的<classname>sigc::"
"connection</classname>对象进行更新。"
-#: C/index-in.docbook:7038
+#: C/index-in.docbook:7025
msgid ""
"Care is required when writing programs based on <application>gtkmm</"
"application> using multiple threads of execution, arising from the fact that "
@@ -12178,11 +12162,11 @@ msgstr ""
"多线程程序时需要格外小心。这是因为使用<application>libsigc++</application>时"
"在幕后发生的复杂交互不受互斥量或其他同步方式的保护。"
-#: C/index-in.docbook:7071
+#: C/index-in.docbook:7058
msgid "The rules"
msgstr "规则"
-#: C/index-in.docbook:7073
+#: C/index-in.docbook:7060
msgid ""
"This requires a number of rules to be observed when writing multi-threaded "
"programs using <application>gtkmm</application>. These are set out below, "
@@ -12194,7 +12178,7 @@ msgstr ""
"规则下下面列出,但要注意的一点是从<classname>sigc::trackable</classname>派生"
"类时需要格外小心,因为效果很不直观(特别是下述4、5条)。"
-#: C/index-in.docbook:7084
+#: C/index-in.docbook:7071
msgid ""
"Use <classname>Glib::Dispatcher</classname> to invoke <application>gtkmm</"
"application> functions from worker threads (this is dealt with in more "
@@ -12203,7 +12187,7 @@ msgstr ""
"使用<classname>Glib::Dispatcher</classname>在工作线程中调用"
"<application>gtkmm</application>函数(这点将在下一节详细介绍)"
-#: C/index-in.docbook:7092
+#: C/index-in.docbook:7079
msgid ""
"A <classname>sigc::signal</classname> object should be regarded as owned by "
"the thread which created it. Only that thread should connect a "
@@ -12225,7 +12209,7 @@ msgstr ""
"作,以及任何从<classname>sigc::trackable</classname>派生的对象(其非静态方法"
"由连接到信号对象的槽引用)都应该在该线程中销毁。"
-#: C/index-in.docbook:7108
+#: C/index-in.docbook:7095
msgid ""
"Any <classname>sigc::connection</classname> object should be regarded as "
"owned by the thread in which the method returning the <classname>sigc::"
@@ -12236,7 +12220,7 @@ msgstr ""
"了返回<classname>sigc::connection</classname>对象的方法。只有该线程才应在此对"
"象上调用<classname>sigc::connection</classname>方法。"
-#: C/index-in.docbook:7118
+#: C/index-in.docbook:7105
msgid ""
"A <classname>sigc::slot</classname> object created by a call to "
"<function>sigc::mem_fun()</function> which references a method of a class "
@@ -12248,7 +12232,7 @@ msgstr ""
"classname>对象具有由<classname>sigc::trackable</classname>所派生类的成员函数"
"的引用,请勿将其复制到另一个线程中,也不要让除创建线程以外的线程销毁它。"
-#: C/index-in.docbook:7128
+#: C/index-in.docbook:7115
msgid ""
"If a particular class object derives from <classname>sigc::trackable</"
"classname>, only one thread should create <classname>sigc::slot</classname> "
@@ -12266,7 +12250,7 @@ msgstr ""
"用该函数以创建槽,或者在<classname>sigc::trackable</classname>对象断开连接和"
"被销毁时将那些槽无效化。"
-#: C/index-in.docbook:7142
+#: C/index-in.docbook:7129
msgid ""
"Although <application>glib</application> is itself thread-safe, any "
"<application>glibmm</application> wrappers which use <application>libsigc++</"
@@ -12285,7 +12269,7 @@ msgstr ""
"connect()</methodname>、<methodname>Glib::SignalTimeout::connect_seconds</"
"methodname>或是处理由它们返回的<classname>sigc::connection</classname>对象。"
-#: C/index-in.docbook:7154
+#: C/index-in.docbook:7141
msgid ""
"The connect*_once() variants, <methodname>Glib::SignalIdle::connect_once()</"
"methodname>, <methodname>Glib::SignalTimeout::connect_once()</methodname>, "
@@ -12301,11 +12285,11 @@ msgstr ""
"trackable</classname>派生类的成员函数调用<function>sigc::mem_fun()</function>"
"创建的,那么它们在任何情况下都是线程安全的。"
-#: C/index-in.docbook:7172
+#: C/index-in.docbook:7159
msgid "Using Glib::Dispatcher"
msgstr "使用<classname>Glib::Dispatcher</classname>"
-#: C/index-in.docbook:7174
+#: C/index-in.docbook:7161
msgid ""
"The slots connected to <classname>sigc::signal</classname> objects execute "
"in the thread which calls <methodname>emit()</methodname> or "
@@ -12326,7 +12310,7 @@ msgstr ""
"classname>,任何工作线程都可以在其上调用<methodname>emit()</methodname>并让槽"
"安全的执行连接的<application>gtkmm</application>函数。"
-#: C/index-in.docbook:7188
+#: C/index-in.docbook:7175
msgid ""
"Some thread safety rules on the use of <classname>Glib::Dispatcher</"
"classname> still apply. As mentioned, a <classname>Glib::Dispatcher</"
@@ -12357,7 +12341,7 @@ msgstr ""
"<methodname>emit()</methodname>,但前提是该对象是在工作线程启动前构造的,如果"
"不是则需要进行额外的同步以确保可见性。"
-#: C/index-in.docbook:7208
+#: C/index-in.docbook:7195
msgid ""
"Aside from the fact that connected slots always execute in the receiver "
"thread, <classname>Glib::Dispatcher</classname> objects are similar to "
@@ -12376,7 +12360,7 @@ msgstr ""
"是编写<application>glibmm</application>时没有(尽管线程安全与强异常安全结合有"
"些微妙,但编写它们相对容易)。"
-#: C/index-in.docbook:7221
+#: C/index-in.docbook:7208
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 "
@@ -12401,7 +12385,7 @@ msgstr ""
"收者线程想要发出信号可以使用普通的<classname>sigc::signal<void()></"
"classname>对象。"
-#: C/index-in.docbook:7241
+#: C/index-in.docbook:7228
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 "
@@ -12414,7 +12398,7 @@ msgstr ""
"将创建工作线程,当工作完成或你按下<literal>Stop work</literal>按钮或是你按下"
"<literal>Quit</literal>按钮时该线程将被删除。"
-#: C/index-in.docbook:7249
+#: C/index-in.docbook:7236
msgid ""
"A <classname>Glib::Dispatcher</classname> is used for sending notifications "
"from the worker thread to the GUI thread. The <classname>ExampleWorker</"
@@ -12426,7 +12410,7 @@ msgstr ""
"<classname>ExampleWorker</classname>包含两个线程都可以访问的数据。该数据被一"
"个<classname>std::mutex</classname>保护。只有GUI线程对GUI进行更新。"
-#: C/index-in.docbook:7257
+#: C/index-in.docbook:7244
msgid ""
"Compiling and linking a multi-threaded program can require special compiler "
"and linker options. If you use the <application>g++</application> compiler, "
@@ -12441,11 +12425,11 @@ msgstr ""
"果你在构建脚本中添加了<function>dependency('threads')</function>,它会帮你处"
"理多线程的复杂性。"
-#: C/index-in.docbook:7266
+#: C/index-in.docbook:7253
msgid "Multi-Threaded Program"
msgstr "多线程程序"
-#: C/index-in.docbook:7272
+#: C/index-in.docbook:7259
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/multithread\">Source Code</ulink>"
@@ -12453,11 +12437,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/multithread\">源代码</ulink>"
-#: C/index-in.docbook:7279
+#: C/index-in.docbook:7266
msgid "Recommended Techniques"
msgstr "推荐技术"
-#: C/index-in.docbook:7281
+#: C/index-in.docbook:7268
msgid ""
"This section is simply a gathering of wisdom, general style guidelines and "
"hints for creating <application>gtkmm</application> applications."
@@ -12465,7 +12449,7 @@ msgstr ""
"本小节将向你展示一些创建<application>gtkmm</application>应用程序的智慧、风格"
"指南和提示。"
-#: C/index-in.docbook:7285
+#: C/index-in.docbook:7272
msgid ""
"Use GNU <application>autoconf</application> and <application>automake</"
"application>! They are your friends :) <application>Automake</application> "
@@ -12481,7 +12465,7 @@ msgstr ""
"<application>Autoconf</application>允许自动配置软件的安装,处理大量来自系统本"
"身的差异以增强可移植性。"
-#: C/index-in.docbook:7295
+#: C/index-in.docbook:7282
msgid ""
"Subclass Widgets to better organize your code. You should probably subclass "
"your main <classname>Window</classname> at least. Then you can make your "
@@ -12490,7 +12474,7 @@ msgstr ""
"子类部件可以更好的组织你的代码。至少你的主窗口类应该继承<classname>Window</"
"classname>。这样你可以使主窗口的子部件和信号处理函数成为该类的成员。"
-#: C/index-in.docbook:7300
+#: C/index-in.docbook:7287
msgid ""
"Create your own signals instead of passing pointers around. Objects can "
"communicate with each other via signals and signal handlers. This is much "
@@ -12506,11 +12490,11 @@ msgstr ""
"classname>,但你应该使用<application>libsigc++</application>所述的正常"
"<classname>sigc::signal</classname>。"
-#: C/index-in.docbook:7309
+#: C/index-in.docbook:7296
msgid "Application Lifetime"
msgstr "应用程序生命周期"
-#: C/index-in.docbook:7310
+#: C/index-in.docbook:7297
msgid ""
"Most applications will have only one <classname>Window</classname>, or only "
"one main window. These applications can use the <methodname>Gtk::"
@@ -12532,15 +12516,15 @@ msgstr ""
"未保存变更你可能想弹出对话框询问用户是否确定要关闭窗口,再根据用户选择确定是"
"否要关闭窗口)。"
-#: C/index-in.docbook:7319
+#: C/index-in.docbook:7306
msgid "Most of our examples use this technique."
msgstr "我们的大多数示例都是用这种技术。"
-#: C/index-in.docbook:7323
+#: C/index-in.docbook:7310
msgid "Using a <application>gtkmm</application> widget"
msgstr "使用<application>gtkmm</application>部件"
-#: C/index-in.docbook:7325
+#: C/index-in.docbook:7312
msgid ""
"Our examples all tend to have the same structure. They follow these steps "
"for using a <classname>Widget</classname>:"
@@ -12548,7 +12532,7 @@ msgstr ""
"我们的示例都倾向于使用相同的结构。它们按以下步骤使用<classname>Widget</"
"classname>:"
-#: C/index-in.docbook:7334
+#: C/index-in.docbook:7321
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 "
@@ -12562,7 +12546,7 @@ msgstr ""
"<literal>new</literal>创建它。即使通过指针使用部件,也应该使该指针成为容器类"
"的成员变量,以便你后续访问它。"
-#: C/index-in.docbook:7345
+#: C/index-in.docbook:7332
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 "
@@ -12571,11 +12555,11 @@ msgstr ""
"设置部件的属性。如果部件没有默认构造函数,则你需要在容器类的构造函数的初始化"
"列表中初始化部件。"
-#: C/index-in.docbook:7351
+#: C/index-in.docbook:7338
msgid "Connect any signals you wish to use to the appropriate handlers."
msgstr "为所以你需要使用的信号连接合适的信号处理函数。"
-#: C/index-in.docbook:7357
+#: C/index-in.docbook:7344
msgid ""
"Pack the widget into a container using the appropriate call, e.g. "
"<methodname>Gtk::Box::append()</methodname>."
@@ -12583,7 +12567,7 @@ msgstr ""
"调用适当的函数将部件装入容器中,例如:<methodname>Gtk::Box::append()</"
"methodname>。"
-#: C/index-in.docbook:7367
+#: C/index-in.docbook:7354
msgid ""
"If you don't want all widgets to be shown, call <methodname>Gtk::Widget::"
"hide()</methodname> on the widgets that you don't want to show. If a "
@@ -12594,11 +12578,11 @@ msgstr ""
"hide()</methodname>可以将其隐藏,当一个容器部件被隐藏,它的所有子部件将一并被"
"隐藏,即便你没有在那些子部件上调用<methodname>hide()</methodname>。"
-#: C/index-in.docbook:7378
+#: C/index-in.docbook:7365
msgid "Building applications"
msgstr "构建应用程序"
-#: C/index-in.docbook:7380
+#: C/index-in.docbook:7367
msgid ""
"This chapter is similar to the \"Building applications\" chapter in the "
"<ulink url=\"https://developer.gnome.org/gtk4/unstable/\">GTK4 Reference "
@@ -12608,19 +12592,19 @@ msgstr ""
"本章节与<ulink url=\"https://developer.gnome.org/gtk4/unstable/\">GTK4参考文"
"档</ulink>的\"Building applications\"章节十分类似。"
-#: C/index-in.docbook:7389
+#: C/index-in.docbook:7376
msgid "The binary file"
msgstr "二进制文件"
-#: C/index-in.docbook:7390
+#: C/index-in.docbook:7377
msgid "This gets installed in <filename>/usr/bin</filename>."
msgstr "这将被安装在<filename>/usr/bin</filename>。"
-#: C/index-in.docbook:7393
+#: C/index-in.docbook:7380
msgid "A desktop file"
msgstr "桌面文件"
-#: C/index-in.docbook:7394
+#: C/index-in.docbook:7381
msgid ""
"The desktop file provides important information about the application to the "
"desktop shell, such as its name, icon, D-Bus name, commandline to launch it, "
@@ -12630,11 +12614,11 @@ msgstr ""
"Bus名、启动时的命令行等。此文件将安装在<filename>/usr/share/applications</"
"filename>。"
-#: C/index-in.docbook:7399
+#: C/index-in.docbook:7386
msgid "An icon"
msgstr "图标"
-#: C/index-in.docbook:7400
+#: C/index-in.docbook:7387
msgid ""
"The icon gets installed in <filename>/usr/share/icons/hicolor/48x48/apps</"
"filename>, where it will be found regardless of the current theme."
@@ -12642,11 +12626,11 @@ msgstr ""
"图标将被安装在<filename>/usr/share/icons/hicolor/48x48/apps</filename>,无论"
"当前主题是什么你都可以在其中找到图标。"
-#: C/index-in.docbook:7404
+#: C/index-in.docbook:7391
msgid "A settings schema"
msgstr "设置模式"
-#: C/index-in.docbook:7405
+#: C/index-in.docbook:7392
msgid ""
"If the application uses <classname>Gio::Settings</classname>, it will "
"install its schema in <filename>/usr/share/glib-2.0/schemas</filename>, so "
@@ -12656,11 +12640,11 @@ msgstr ""
"到<filename>/usr/share/glib-2.0/schemas</filename>,以便dconf-editor之类的工"
"具可以找到它。"
-#: C/index-in.docbook:7410
+#: C/index-in.docbook:7397
msgid "Other resources"
msgstr "其他资源"
-#: C/index-in.docbook:7411
+#: C/index-in.docbook:7398
msgid ""
"Other files, such as <classname>Gtk::Builder</classname> ui files, are best "
"loaded from resources stored in the application binary itself. This "
@@ -12672,11 +12656,11 @@ msgstr ""
"自身的二进制中加载。这样就不需要按照传统将大多数文件安装在<filename>/usr/"
"share</filename>中特定应用程序的位置。"
-#: C/index-in.docbook:7385
+#: C/index-in.docbook:7372
msgid "An application consists of a number of files: <_:variablelist-1/>"
msgstr "一个应用程序由许多文件组成:<_:variablelist-1/>"
-#: C/index-in.docbook:7419
+#: C/index-in.docbook:7406
msgid ""
"<application>gtkmm</application> includes application support that is built "
"on top of <classname>Gio::Application</classname>. In this chapter we'll "
@@ -12695,7 +12679,7 @@ msgstr ""
"<classname>Gtk::SearchBar</classname>、<classname>Gtk::ListBox</classname>等"
"内容。"
-#: C/index-in.docbook:7428
+#: C/index-in.docbook:7415
msgid ""
"The full, buildable sources for these examples can be found in the "
"<filename>examples/book/buildapp</filename> directory of the "
@@ -12719,11 +12703,11 @@ msgstr ""
"一个示例。更多有关信息,请参见<filename>buildapp</filename>目录中包含的"
"<filename>README</filename>文件。"
-#: C/index-in.docbook:7441 C/index-in.docbook:7485
+#: C/index-in.docbook:7428 C/index-in.docbook:7472
msgid "A trivial application"
msgstr "简单的应用程序"
-#: C/index-in.docbook:7443
+#: C/index-in.docbook:7430
msgid ""
"When using <classname>Gtk::Application</classname>, the <function>main()</"
"function> function can be very simple. We just call <methodname>Gtk::"
@@ -12733,7 +12717,7 @@ msgstr ""
"数可以非常简单。我们只是在应用程序类实例上调用<methodname>Gtk::Application::"
"run()</methodname>。"
-#: C/index-in.docbook:7449
+#: C/index-in.docbook:7436
msgid ""
"All the application logic is in the application class, which is a subclass "
"of <classname>Gtk::Application</classname>. Our example does not yet have "
@@ -12749,7 +12733,7 @@ msgstr ""
"我们的应用程序类尝试打开文件,但是应用程序的窗口子类并没有执行应执行的操"
"作)。"
-#: C/index-in.docbook:7458
+#: C/index-in.docbook:7445
msgid ""
"To handle these two cases, we override <methodname>signal_activate()</"
"methodname>'s default handler, which gets called when the application is "
@@ -12761,7 +12745,7 @@ msgstr ""
"<methodname>signal_open()</methodname>的默认处理函数,在没有命令行参数时前者"
"的处理函数被调用,有命令行参数时后者的处理函数被调用。"
-#: C/index-in.docbook:7465
+#: C/index-in.docbook:7452
msgid ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/"
"classGio_1_1Application.html\">Gio::Application Reference</ulink>"
@@ -12769,7 +12753,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/"
"classGio_1_1Application.html\">Gio::Application参考</ulink>"
-#: C/index-in.docbook:7466
+#: C/index-in.docbook:7453
msgid ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1Application.html\">Gtk::Application Reference</ulink>"
@@ -12777,7 +12761,7 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/gtkmm/unstable/"
"classGtk_1_1Application.html\">Gtk::Application参考</ulink>"
-#: C/index-in.docbook:7468
+#: C/index-in.docbook:7455
msgid ""
"Another important class that is part of the application support in "
"<application>gtkmm</application> is <classname>Gtk::ApplicationWindow</"
@@ -12788,7 +12772,7 @@ msgstr ""
"<classname>Gtk::ApplicationWindow</classname>。通常我们也会将其子类化。此时我"
"们的子类还没有做任何事,所以我们只会得到一个空白的窗口。"
-#: C/index-in.docbook:7474
+#: C/index-in.docbook:7461
msgid ""
"As part of the initial setup of our application, we also create an icon and "
"a desktop file. Note that @bindir@ in the desktop file needs to be replaced "
@@ -12797,11 +12781,11 @@ msgstr ""
"作为应用程序初始设置的一部分,我们还为其创建了一个图标和桌面文件。请注意在使"
"用这个桌面文件之前你还需要将文件中的@bindir@替换为应用程序二进制的实际路径。"
-#: C/index-in.docbook:7480
+#: C/index-in.docbook:7467
msgid "Here is what we've achieved so far:"
msgstr "到目前为止我们做到了:"
-#: C/index-in.docbook:7491
+#: C/index-in.docbook:7478
msgid ""
"This does not look very impressive yet, but our application is already "
"presenting itself on the session bus, it has single-instance semantics, and "
@@ -12810,7 +12794,7 @@ msgstr ""
"这看起来还无法让人印象深刻,但是我们的应用程序已经在会话总线上展示了自己。现"
"在它具有单实例语义,并且接受命令行参数作为文件路径。"
-#: C/index-in.docbook:7496
+#: C/index-in.docbook:7483
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step1\">Source Code</ulink>"
@@ -12818,11 +12802,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step1\">源代码</ulink>"
-#: C/index-in.docbook:7501 C/index-in.docbook:7544
+#: C/index-in.docbook:7488 C/index-in.docbook:7531
msgid "Populating the window"
msgstr "填充窗口"
-#: C/index-in.docbook:7503
+#: C/index-in.docbook:7490
msgid ""
"In this step, we use a <classname>Gtk::Builder</classname> instance to "
"associate a <classname>Gtk::Builder</classname> ui file with our application "
@@ -12831,7 +12815,7 @@ msgstr ""
"再次步骤中,我们使用<classname>Gtk::Builder</classname>实例将<classname>Gtk::"
"Builder</classname> UI文件和我们的应用程序窗口类相关联。"
-#: C/index-in.docbook:7508
+#: C/index-in.docbook:7495
msgid ""
"Our simple ui file gives the window a title, and puts a <classname>Gtk::"
"Stack</classname> widget as the main content."
@@ -12839,7 +12823,7 @@ msgstr ""
"我们的简单UI文件为窗口设定了一个标题,并将一个<classname>Gtk::Stack</"
"classname>文件放入了窗口中。"
-#: C/index-in.docbook:7513
+#: C/index-in.docbook:7500
msgid ""
"To make use of this file in our application, we revisit our <classname>Gtk::"
"ApplicationWindow</classname> subclass, and call <methodname>Gtk::Builder::"
@@ -12859,12 +12843,12 @@ msgstr ""
"<methodname>get_widget_derived()</methodname>的信息,请参见<link linkend="
"\"sec-builder-using-derived-widgets\">使用派生部件</link>小节。"
-#: C/index-in.docbook:7532
+#: C/index-in.docbook:7519
#, no-wrap
msgid "$ glib-compile-resources --target=resources.c --generate-source exampleapp.gresource.xml"
msgstr "$ glib-compile-resources --target=resources.c --generate-source exampleapp.gresource.xml"
-#: C/index-in.docbook:7524
+#: C/index-in.docbook:7511
msgid ""
"You may have noticed that we use the <methodname>_from_resource()</"
"methodname> variant of the method that reads the ui file. Now we need to use "
@@ -12889,11 +12873,11 @@ msgstr ""
"用Meson <ulink url=\"https://mesonbuild.com/Gnome-module.html\">GNOME模块</"
"ulink>中的<function>compile_resources()</function>函数。"
-#: C/index-in.docbook:7539
+#: C/index-in.docbook:7526
msgid "Our application now looks like this:"
msgstr "我们的应用程序现在看起来像这样:"
-#: C/index-in.docbook:7550
+#: C/index-in.docbook:7537
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step2\">Source Code</ulink>"
@@ -12901,17 +12885,17 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step2\">源代码</ulink>"
-#: C/index-in.docbook:7555 C/index-in.docbook:7591
+#: C/index-in.docbook:7542 C/index-in.docbook:7578
msgid "Opening files"
msgstr "打开文件"
-#: C/index-in.docbook:7557
+#: C/index-in.docbook:7544
msgid ""
"In this step, we make our application show the contents of all the files "
"that it is given on the commandline."
msgstr "在这一步中,我们使我们的应用程序显示由命令行参数给定的文件的所有内容。"
-#: C/index-in.docbook:7562
+#: C/index-in.docbook:7549
msgid ""
"To this end, we add a data member to our application window and keep a "
"pointer to the <classname>Gtk::Stack</classname> there. We get the pointer "
@@ -12922,7 +12906,7 @@ msgstr ""
"<classname>Gtk::Stack</classname>的指针。我们通过在应用程序窗口的构造函数中调"
"用<methodname>Gtk::Builder::get_widget()</methodname>获得指向该子部件的指针。"
-#: C/index-in.docbook:7568
+#: C/index-in.docbook:7555
msgid ""
"Now we revisit the <methodname>ExampleAppWindow::open_file_view()</"
"methodname> method that is called for each commandline argument, and "
@@ -12933,7 +12917,7 @@ msgstr ""
"open_file_view()</methodname>成员函数,并构造一个<classname>Gtk::TextView</"
"classname>然后将其作为页面添加到<classname>Gtk::Stack</classname>中。"
-#: C/index-in.docbook:7574
+#: C/index-in.docbook:7561
msgid ""
"Lastly, we add a <classname>Gtk::StackSwitcher</classname> to the titlebar "
"area in the ui file, and we tell it to display information about our stack."
@@ -12941,7 +12925,7 @@ msgstr ""
"最后,我们将<classname>Gtk::StackSwitcher</classname>添加到UI文件的标题栏区"
"域,并告诉它如何显示<classname>Gtk::Stack</classname>的相关信息。"
-#: C/index-in.docbook:7579
+#: C/index-in.docbook:7566
msgid ""
"The stack switcher gets all its information it needs to display tabs from "
"the stack that it belongs to. Here, we are passing the label to show for "
@@ -12952,11 +12936,11 @@ msgstr ""
"信息。在这,作为<methodname>Gtk::Stack::add()</methodname>方法的最后一个参"
"数,我们为每个显示的文件传递一个标签。"
-#: C/index-in.docbook:7586
+#: C/index-in.docbook:7573
msgid "Our application is beginning to take shape:"
msgstr "我们的应用程序开始成形:"
-#: C/index-in.docbook:7597
+#: C/index-in.docbook:7584
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step3\">Source Code</ulink>"
@@ -12964,17 +12948,17 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step3\">源代码</ulink>"
-#: C/index-in.docbook:7602 C/index-in.docbook:7637
+#: C/index-in.docbook:7589 C/index-in.docbook:7624
msgid "A menu"
msgstr "菜单"
-#: C/index-in.docbook:7604
+#: C/index-in.docbook:7591
msgid ""
"The menu is shown at the right side of the headerbar. It is meant to collect "
"infrequently used actions that affect the whole application."
msgstr "菜单显示在标题栏的右侧。它旨在放置所有应用程序不常用的动作。"
-#: C/index-in.docbook:7609
+#: C/index-in.docbook:7596
msgid ""
"Just like the application window, we specify our menu in a ui file, and add "
"it as a resource to our binary."
@@ -12982,7 +12966,7 @@ msgstr ""
"就像应用程序窗口一样,我们在UI文件中指定一个菜单,并将其作为资源添加到二进制"
"中。"
-#: C/index-in.docbook:7614
+#: C/index-in.docbook:7601
msgid ""
"To make the menu appear, we have to load the ui file and associate the "
"resulting menu model with the menu button that we've added to the headerbar. "
@@ -12993,7 +12977,7 @@ msgstr ""
"单按钮相关联。由于菜单通过激活<classname>Gio::Action</classname>工作,我们还"
"需要向应用程序中添加一组合适的动作。"
-#: C/index-in.docbook:7621
+#: C/index-in.docbook:7608
msgid ""
"Adding the actions is best done in the <methodname>on_startup()</methodname> "
"default signal handler, which is guaranteed to be called once for each "
@@ -13002,7 +12986,7 @@ msgstr ""
"最好在<methodname>on_startup()</methodname>的默认信号处理函数中完成添加动作,"
"并确保每个应用程序实例都只调用一次。"
-#: C/index-in.docbook:7626
+#: C/index-in.docbook:7613
msgid ""
"Our preferences menu item does not do anything yet, but the Quit menu item "
"is fully functional. It can also be activated by the usual Ctrl-Q shortcut. "
@@ -13013,11 +12997,11 @@ msgstr ""
"Q快捷键激活它。快捷键通过<methodname>Gtk::Application::"
"set_accel_for_action()</methodname>添加。"
-#: C/index-in.docbook:7632
+#: C/index-in.docbook:7619
msgid "The menu looks like this:"
msgstr "菜单如下所示"
-#: C/index-in.docbook:7643
+#: C/index-in.docbook:7630
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step4\">Source Code</ulink>"
@@ -13025,11 +13009,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step4\">源代码</ulink>"
-#: C/index-in.docbook:7648
+#: C/index-in.docbook:7635
msgid "A preference dialog"
msgstr "首选项对话框"
-#: C/index-in.docbook:7650
+#: C/index-in.docbook:7637
msgid ""
"A typical application will have some preferences that should be remembered "
"from one run to the next. Even for our simple example application, we may "
@@ -13038,7 +13022,7 @@ msgstr ""
"经典的应用程序会有一些首选项,它们应该被记住而不需要在下次运行时在进行设置。"
"即使对于我们这个简单的应用程序示例,我们可能也想改变用于文本内容的字体。"
-#: C/index-in.docbook:7656
+#: C/index-in.docbook:7643
msgid ""
"We are going to use <classname>Gio::Settings</classname> to store our "
"preferences. <classname>Gio::Settings</classname> requires a schema that "
@@ -13049,7 +13033,7 @@ msgstr ""
"<classname>Gio::Settings</classname>需要一个用于描述我们的设置的模式,在本例"
"中为<filename>org.gtkmm.exampleapp.gschema.xml</filename>文件。"
-#: C/index-in.docbook:7662
+#: C/index-in.docbook:7649
msgid ""
"Before we can make use of this schema in our application, we need to compile "
"it into the binary form that <classname>Gio::Settings</classname> expects. "
@@ -13066,55 +13050,55 @@ msgstr ""
"com/Gnome-module.html\">GNOME模块</ulink>中提供了"
"<function>compile_schemas()</function>执行此操作。"
-#: C/index-in.docbook:7676
-#, no-wrap
-msgid ""
-"\n"
-"m_settings = Gio::Settings::create(\"org.gtkmm.exampleapp\");\n"
-"m_settings->bind(\"transition\", m_stack->property_transition_type());\n"
-msgstr ""
-"\n"
-"m_settings = Gio::Settings::create(\"org.gtkmm.exampleapp\");\n"
-"m_settings->bind(\"transition\", m_stack->property_transition_type());\n"
-
-#: C/index-in.docbook:7671
+#: C/index-in.docbook:7658
msgid ""
"Next, we need to connect our settings to the widgets that they are supposed "
"to control. One convenient way to do this is to use <methodname>Gio::"
"Settings::bind()</methodname> to bind settings keys to object properties, as "
"we do for the transition setting in <classname>ExampleAppWindow</"
-"classname>'s constructor. <_:programlisting-1/>"
+"classname>'s constructor."
msgstr ""
"接下来,我们需要将设置连接到应该被控制的部件上。一种很方便的方法是使用"
"<methodname>Gio::Settings::bind()</methodname>将对象的属性和设置键相互绑定,"
"就像我们在<classname>ExampleAppWindow</classname>的构造函数中做的过渡设置一"
-"样。<_:programlisting-1/>"
+"样。"
-#: C/index-in.docbook:7686
+#: C/index-in.docbook:7664
#, no-wrap
msgid ""
"\n"
-"auto tag = buffer->create_tag();\n"
-"m_settings->bind(\"font\", tag->property_font());\n"
-"buffer->apply_tag(tag, buffer->begin(), buffer->end());\n"
+"m_settings = Gio::Settings::create(\"org.gtkmm.exampleapp\");\n"
+"m_settings->bind(\"transition\", m_stack->property_transition_type());\n"
msgstr ""
"\n"
-"auto tag = buffer->create_tag();\n"
-"m_settings->bind(\"font\", tag->property_font());\n"
-"buffer->apply_tag(tag, buffer->begin(), buffer->end());\n"
-
-#: C/index-in.docbook:7682
+"m_settings = Gio::Settings::create(\"org.gtkmm.exampleapp\");\n"
+"m_settings->bind(\"transition\", m_stack->property_transition_type());\n"
+
+#: C/index-in.docbook:7669
msgid ""
"The code to connect the font setting is a little more involved, since it "
"corresponds to an object property in a <classname>Gtk::TextTag</classname> "
"that we must first create. The code is in <methodname>ExampleAppWindow::"
-"open_file_view()</methodname>. <_:programlisting-1/>"
+"open_file_view()</methodname>."
msgstr ""
"字体设置的连接要麻烦的多,因为我们需要先创建对应的对象属性的<classname>Gtk::"
"TextTag</classname>。以下代码在<methodname>ExampleAppWindow::"
-"open_file_view()</methodname>函数中。<_:programlisting-1/>"
+"open_file_view()</methodname>函数中。"
+
+#: C/index-in.docbook:7674
+#, no-wrap
+msgid ""
+"\n"
+"auto tag = buffer->create_tag();\n"
+"m_settings->bind(\"font\", tag->property_font());\n"
+"buffer->apply_tag(tag, buffer->begin(), buffer->end());\n"
+msgstr ""
+"\n"
+"auto tag = buffer->create_tag();\n"
+"m_settings->bind(\"font\", tag->property_font());\n"
+"buffer->apply_tag(tag, buffer->begin(), buffer->end());\n"
-#: C/index-in.docbook:7693
+#: C/index-in.docbook:7680
msgid ""
"At this point, the application will already react if you change one of the "
"settings, e.g. using the <command>gsettings</command> commandline tool. Of "
@@ -13131,7 +13115,19 @@ msgstr ""
"classname>中看到的技术:<classname>Gtk::Builder</classname> UI文件和设置绑"
"定。"
-#: C/index-in.docbook:7706
+#: C/index-in.docbook:7689
+msgid ""
+"When we've created the <filename>prefs.ui</filename> file and the "
+"<classname>ExampleAppPrefs</classname> class, we revisit the "
+"<methodname>ExampleApplication::on_action_preferences()</methodname> method "
+"in our application class, and make it open a new preference dialog."
+msgstr ""
+"我们创建<filename>prefs.ui</filename>文件和<classname>ExampleAppPrefs</"
+"classname>子类之后,我们重访<methodname>ExampleApplication::"
+"on_action_preferences()</methodname>成员函数,并使其打开一个新的首选项对话"
+"框。"
+
+#: C/index-in.docbook:7694
#, no-wrap
msgid ""
"\n"
@@ -13142,30 +13138,17 @@ msgstr ""
"auto prefs_dialog = ExampleAppPrefs::create(*get_active_window());\n"
"prefs_dialog->present();\n"
-#: C/index-in.docbook:7702
-msgid ""
-"When we've created the <filename>prefs.ui</filename> file and the "
-"<classname>ExampleAppPrefs</classname> class, we revisit the "
-"<methodname>ExampleApplication::on_action_preferences()</methodname> method "
-"in our application class, and make it open a new preference dialog. <_:"
-"programlisting-1/>"
-msgstr ""
-"我们创建<filename>prefs.ui</filename>文件和<classname>ExampleAppPrefs</"
-"classname>子类之后,我们重访<methodname>ExampleApplication::"
-"on_action_preferences()</methodname>成员函数,并使其打开一个新的首选项对话"
-"框。<_:programlisting-1/>"
-
-#: C/index-in.docbook:7712
+#: C/index-in.docbook:7699
msgid ""
"After all this work, our application can now show a preference dialog like "
"this:"
msgstr "完成所有工作后,我们的应用程序现在可以显示如下所示的首选项对话框:"
-#: C/index-in.docbook:7717
+#: C/index-in.docbook:7704
msgid "An preference dialog"
msgstr "首选项对话框"
-#: C/index-in.docbook:7723
+#: C/index-in.docbook:7710
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step5\">Source Code</ulink>"
@@ -13173,11 +13156,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step5\">源代码</ulink>"
-#: C/index-in.docbook:7728 C/index-in.docbook:7771
+#: C/index-in.docbook:7715 C/index-in.docbook:7758
msgid "Adding a search bar"
msgstr "添加搜索栏"
-#: C/index-in.docbook:7730
+#: C/index-in.docbook:7717
msgid ""
"We continue to flesh out the functionality of our application. For now, we "
"add search. <application>gtkmm</application> supports this with "
@@ -13190,7 +13173,7 @@ msgstr ""
"<classname>Gtk::SearchBar</classname>对此提供了支持。搜索栏是一个部件,可以从"
"从顶部滑入以显示搜索条目。"
-#: C/index-in.docbook:7736
+#: C/index-in.docbook:7723
msgid ""
"We add a toggle button to the header bar, which can be used to slide out the "
"search bar below the header bar. The new widgets are added in the "
@@ -13199,7 +13182,18 @@ msgstr ""
"我们向标题栏添加了一个开关按钮,可以用于滑出位于标题栏下方的搜索栏。新的部件"
"将添加到<filename>window.ui</filename>文件中。"
-#: C/index-in.docbook:7745
+#: C/index-in.docbook:7728
+msgid ""
+"Implementing the search needs quite a few code changes that we are not going "
+"to completely go over here. The central piece of the search implementation "
+"is a signal handler that listens for text changes in the search entry, shown "
+"here without error handling."
+msgstr ""
+"实现搜索需要进行大量的代码更改,在此我们不对其进行详细的介绍。实现搜索的核心"
+"部分是一个信号处理函数,它监听搜索条目的变更,此处显示的示例没有进行错误处"
+"理。"
+
+#: C/index-in.docbook:7733
#, no-wrap
msgid ""
"\n"
@@ -13240,22 +13234,11 @@ msgstr ""
" }\n"
"}\n"
-#: C/index-in.docbook:7741
-msgid ""
-"Implementing the search needs quite a few code changes that we are not going "
-"to completely go over here. The central piece of the search implementation "
-"is a signal handler that listens for text changes in the search entry, shown "
-"here without error handling. <_:programlisting-1/>"
-msgstr ""
-"实现搜索需要进行大量的代码更改,在此我们不对其进行详细的介绍。实现搜索的核心"
-"部分是一个信号处理函数,它监听搜索条目的变更,此处显示的示例没有进行错误处"
-"理。<_:programlisting-1/>"
-
-#: C/index-in.docbook:7766
+#: C/index-in.docbook:7753
msgid "With the search bar, our application now looks like this:"
msgstr "有了搜索栏后,我们的应用程序看起来像这样:"
-#: C/index-in.docbook:7777
+#: C/index-in.docbook:7764
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step6\">Source Code</ulink>"
@@ -13263,11 +13246,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step6\">源代码</ulink>"
-#: C/index-in.docbook:7782 C/index-in.docbook:7817
+#: C/index-in.docbook:7769 C/index-in.docbook:7804
msgid "Adding a side bar"
msgstr "添加侧边栏"
-#: C/index-in.docbook:7784
+#: C/index-in.docbook:7771
msgid ""
"As another piece of functionality, we are adding a sidebar, which "
"demonstrates <classname>Gtk::Revealer</classname> and <classname>Gtk::"
@@ -13278,7 +13261,7 @@ msgstr ""
"Revealer</classname>和<classname>Gtk::ListBox</classname>。新的部件将被添加到"
"<filename>window.ui</filename>文件中。"
-#: C/index-in.docbook:7790
+#: C/index-in.docbook:7777
msgid ""
"The code to populate the sidebar with buttons for the words found in each "
"file is a little too involved to go into here. But we'll look at the code to "
@@ -13289,7 +13272,18 @@ msgstr ""
"我们将对为菜单中添加新功能的多选按钮的代码进行介绍。菜单项将被添加到"
"<filename>gears_menu.ui</filename> UI文件中。"
-#: C/index-in.docbook:7801
+#: C/index-in.docbook:7784
+msgid ""
+"To connect the menu item to the new <literal>show-words</literal> setting, "
+"we use a <classname>Gio::Action</classname> corresponding to the given "
+"<classname>Gio::Settings</classname> key. In <classname>ExampleAppWindow</"
+"classname>'s constructor:"
+msgstr ""
+"我们使用<classname>Gio::Action</classname>与给定的<classname>Gio::Settings</"
+"classname>键相关联,以使菜单项与新的<literal>show-words</literal>设置向连接。"
+"在<classname>ExampleAppWindow</classname>构造函数中:"
+
+#: C/index-in.docbook:7789
#, no-wrap
msgid ""
"\n"
@@ -13310,22 +13304,11 @@ msgstr ""
"m_gears->set_menu_model(menu);\n"
"add_action(m_settings->create_action(\"show-words\"));\n"
-#: C/index-in.docbook:7797
-msgid ""
-"To connect the menu item to the new <literal>show-words</literal> setting, "
-"we use a <classname>Gio::Action</classname> corresponding to the given "
-"<classname>Gio::Settings</classname> key. In <classname>ExampleAppWindow</"
-"classname>'s constructor: <_:programlisting-1/>"
-msgstr ""
-"我们使用<classname>Gio::Action</classname>与给定的<classname>Gio::Settings</"
-"classname>键相关联,以使菜单项与新的<literal>show-words</literal>设置向连接。"
-"在<classname>ExampleAppWindow</classname>构造函数中:<_:programlisting-1/>"
-
-#: C/index-in.docbook:7812
+#: C/index-in.docbook:7799
msgid "What our application looks like now:"
msgstr "现在我们的应用程序看起来像这样:"
-#: C/index-in.docbook:7823
+#: C/index-in.docbook:7810
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step7\">Source Code</ulink>"
@@ -13333,11 +13316,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step7\">源代码</ulink>"
-#: C/index-in.docbook:7829 C/index-in.docbook:7871
+#: C/index-in.docbook:7816 C/index-in.docbook:7858
msgid "Properties"
msgstr "属性"
-#: C/index-in.docbook:7831
+#: C/index-in.docbook:7818
msgid ""
"Widgets and other objects have many useful properties. Here we show some "
"ways to use them in new and flexible ways, by wrapping them in actions with "
@@ -13348,7 +13331,7 @@ msgstr ""
"它们的方法。例如,将它们包装在<classname>Gio::PropertyAction</classname>动作"
"中或将它们与<classname>Glib::Binding</classname>绑定。"
-#: C/index-in.docbook:7837
+#: C/index-in.docbook:7824
msgid ""
"To set this up, we add two labels to the header bar in our <filename>window."
"ui</filename> file, named <literal>lines_label</literal> and <literal>lines</"
@@ -13361,20 +13344,7 @@ msgstr ""
"的构造函数中获取指向它们的指针。接着我们向齿轮菜单中添加了一个新的\"Lines\"菜"
"单项,该菜单项会触发<literal>show-lines</literal>动作。"
-#: C/index-in.docbook:7854
-#, no-wrap
-msgid ""
-"add_action(Gio::PropertyAction::create(\"show-lines\", m_lines->property_visible()));\n"
-"m_binding_lines_visible = Glib::Binding::bind_property(m_lines->property_visible(),\n"
-" m_lines_label->property_visible());\n"
-"\n"
-msgstr ""
-"add_action(Gio::PropertyAction::create(\"show-lines\", m_lines->property_visible()));\n"
-"m_binding_lines_visible = Glib::Binding::bind_property(m_lines->property_visible(),\n"
-" m_lines_label->property_visible());\n"
-"\n"
-
-#: C/index-in.docbook:7845
+#: C/index-in.docbook:7832
msgid ""
"To make this menu item do something, we create a property action for the "
"<literal>visible</literal> property of the <literal>lines</literal> label, "
@@ -13383,16 +13353,29 @@ msgid ""
"Since we want both labels to appear and disappear together, we bind the "
"<literal>visible</literal> property of the <literal>lines_label</literal> "
"widget to the same property of the <literal>lines</literal> widget. In "
-"<classname>ExampleAppWindow</classname>'s constructor: <_:programlisting-1/>"
+"<classname>ExampleAppWindow</classname>'s constructor:"
msgstr ""
"为了使此菜单项能执行某些操作,我们为<literal>lines</literal>标签的"
"<literal>visible</literal>属性创建了一个属性动作,并将其添加到窗口动作中。这"
"样做的效果是,每当动作被激活,标签的可见性就会改变。由于我们希望两个标签的可"
"见性一致,因此我们将<literal>lines_label</literal>部件的<literal>visible</"
"literal>属性绑定到<literal>lines</literal>部件的相同属性上。在"
-"<classname>ExampleAppWindow</classname>的构造函数中:<_:programlisting-1/>"
+"<classname>ExampleAppWindow</classname>的构造函数中:"
+
+#: C/index-in.docbook:7842
+#, no-wrap
+msgid ""
+"add_action(Gio::PropertyAction::create(\"show-lines\", m_lines->property_visible()));\n"
+"m_binding_lines_visible = Glib::Binding::bind_property(m_lines->property_visible(),\n"
+" m_lines_label->property_visible());\n"
+"\n"
+msgstr ""
+"add_action(Gio::PropertyAction::create(\"show-lines\", m_lines->property_visible()));\n"
+"m_binding_lines_visible = Glib::Binding::bind_property(m_lines->property_visible(),\n"
+" m_lines_label->property_visible());\n"
+"\n"
-#: C/index-in.docbook:7861
+#: C/index-in.docbook:7848
msgid ""
"We also need a function that counts the lines of the currently active tab, "
"and updates the <literal>lines</literal> label. See the full source if you "
@@ -13401,11 +13384,11 @@ msgstr ""
"我们还需要一个函数对当前标签页的行进行计数,并更新<literal>lines</literal>标"
"签。如果你对此感兴趣请阅读完整源代码。"
-#: C/index-in.docbook:7866
+#: C/index-in.docbook:7853
msgid "This brings our example application to this appearance:"
msgstr "现在我们的示例应用程序看起来如下:"
-#: C/index-in.docbook:7877
+#: C/index-in.docbook:7864
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step8\">Source Code</ulink>"
@@ -13413,11 +13396,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step8\">源代码</ulink>"
-#: C/index-in.docbook:7882 C/index-in.docbook:7908
+#: C/index-in.docbook:7869 C/index-in.docbook:7895
msgid "Header bar"
msgstr "标题栏"
-#: C/index-in.docbook:7884
+#: C/index-in.docbook:7871
msgid ""
"Our application already uses a <classname>Gtk::HeaderBar</classname> instead "
"of a 'normal' window titlebar. The header bar is a direct child of the "
@@ -13428,36 +13411,36 @@ msgstr ""
"栏。标题栏是窗口的直接子项,其类型为<literal>titlebar</literal>。这些由"
"<filename>window.ui</filename>文件进行设置。"
-#: C/index-in.docbook:7897
-#, no-wrap
-msgid ""
-"Gtk::IconTheme::get_for_display(get_display())->add_resource_path(\"/org/gtkmm/exampleapp\");\n"
-"set_icon_name(\"exampleapp\");\n"
-"\n"
-msgstr ""
-"Gtk::IconTheme::get_for_display(get_display())->add_resource_path(\"/org/gtkmm/exampleapp\");\n"
-"set_icon_name(\"exampleapp\");\n"
-"\n"
-
-#: C/index-in.docbook:7891
+#: C/index-in.docbook:7878
msgid ""
"Here we'll just make two small changes to the header bar. The "
"<literal>decoration-layout</literal> property is set in the <filename>window."
"ui</filename> file, to show only the close button, and hide the minimize and "
"maximize buttons. We also include an icon in the resource file, and set up "
"this icon as the window icon. In <classname>ExampleAppWindow</classname>'s "
-"constructor: <_:programlisting-1/>"
+"constructor:"
msgstr ""
"在这里我们对标题栏进行了两个小的更改。<literal>decoration-layout</literal>属"
"性在<filename>window.ui</filename>文件中设置,使标题栏只显示关闭按钮,并隐藏"
"最小化和最大化按钮。我们还在资源文件中包含了一个图标,并将其设置为窗口图标。"
-"在<classname>ExampleAppWindow</classname>的构造函数中:<_:programlisting-1/>"
+"在<classname>ExampleAppWindow</classname>的构造函数中:"
+
+#: C/index-in.docbook:7885
+#, no-wrap
+msgid ""
+"Gtk::IconTheme::get_for_display(get_display())->add_resource_path(\"/org/gtkmm/exampleapp\");\n"
+"set_icon_name(\"exampleapp\");\n"
+"\n"
+msgstr ""
+"Gtk::IconTheme::get_for_display(get_display())->add_resource_path(\"/org/gtkmm/exampleapp\");\n"
+"set_icon_name(\"exampleapp\");\n"
+"\n"
-#: C/index-in.docbook:7903
+#: C/index-in.docbook:7890
msgid "Here is how the application now looks:"
msgstr "现在应用程序看起来如下所示:"
-#: C/index-in.docbook:7914
+#: C/index-in.docbook:7901
msgid ""
"The <filename>window.ui</filename> file sets a header bar title, but this "
"title is not shown. That's because the stack switcher is a child of type "
@@ -13468,7 +13451,7 @@ msgstr ""
"为堆切换器是<literal>title</literal>的子类型。此时堆切换器成为了自定义标题并"
"将正常的标题标签隐藏。"
-#: C/index-in.docbook:7920
+#: C/index-in.docbook:7907
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step9\">Source Code</ulink>"
@@ -13476,11 +13459,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/buildapp/step9\">源代码</ulink>"
-#: C/index-in.docbook:7927
+#: C/index-in.docbook:7914
msgid "Contributing"
msgstr "贡献"
-#: C/index-in.docbook:7929
+#: C/index-in.docbook:7916
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 "
@@ -13491,7 +13474,7 @@ msgstr ""
"<application>gtkmm</application>没有文档的部分有所了解,请考虑帮助编写/翻译本"
"文档。"
-#: C/index-in.docbook:7935
+#: C/index-in.docbook:7922
msgid ""
"Ideally, we would like you to <ulink url=\"https://gitlab.gnome.org/GNOME/"
"gtkmm-documentation/-/merge_requests\"> provide a merge request</ulink> to "
@@ -13503,7 +13486,7 @@ msgstr ""
"C/index-in.docbook</filename>提供MR。该文件位于GNOME的gitlab <literal>gtkmm-"
"documentation</literal>模块中。"
-#: C/index-in.docbook:7941
+#: C/index-in.docbook:7928
msgid ""
"If you do decide to contribute, please post your contribution to the "
"<application>gtkmm</application> mailing list at <ulink url=\"mailto:gtkmm-"
@@ -13522,11 +13505,11 @@ msgstr ""
"免费的,你添加所有内容也需要是免费的。也就是说人们必须能够在程序中使用示例的"
"任何部分,以及自由分发本文档的副本。"
-#: C/index-in.docbook:7954
+#: C/index-in.docbook:7941
msgid "The RefPtr smartpointer"
msgstr "RefPtr智能指针"
-#: C/index-in.docbook:7955
+#: C/index-in.docbook:7942
msgid ""
"<classname>Glib::RefPtr</classname> is a smartpointer. Specifically, it is a "
"reference-counting smartpointer. You might be familiar with <classname>std::"
@@ -13551,7 +13534,7 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/glibmm/-/issues/24\">问题24</"
"ulink>)。"
-#: C/index-in.docbook:7966
+#: C/index-in.docbook:7953
msgid ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1RefPtr."
"html\">Reference</ulink>"
@@ -13559,16 +13542,16 @@ msgstr ""
"<ulink url=\"http://developer.gnome.org/glibmm/unstable/classGlib_1_1RefPtr."
"html\">参考</ulink>"
-#: C/index-in.docbook:7968
+#: C/index-in.docbook:7955
msgid ""
"A smartpointer acts much like a normal pointer. Here are a few examples."
msgstr "智能指针的行为很像普通指针。这里有几个例子。"
-#: C/index-in.docbook:7971
+#: C/index-in.docbook:7958
msgid "Copying"
msgstr "复制"
-#: C/index-in.docbook:7972
+#: C/index-in.docbook:7959
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 "
@@ -13577,7 +13560,7 @@ msgstr ""
"你可以像复制普通指针一样复制<classname>RefPtr</classname>,你不需要担心删除底"
"层实例。"
-#: C/index-in.docbook:7978
+#: C/index-in.docbook:7964
#, no-wrap
msgid ""
"\n"
@@ -13588,7 +13571,7 @@ msgstr ""
"auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
"auto refPixbuf2 = refPixbuf;\n"
-#: C/index-in.docbook:7983
+#: C/index-in.docbook:7968
msgid ""
"Of course this means that you can store <classname>RefPtr</classname>s in "
"standard containers, such as <classname>std::vector</classname> or "
@@ -13597,7 +13580,7 @@ msgstr ""
"这意味着你可以将<classname>RefPtr</classname>储存于标准容器中,例如:"
"<classname>std::vector</classname>或<classname>std::list</classname>。"
-#: C/index-in.docbook:7988
+#: C/index-in.docbook:7972
#, no-wrap
msgid ""
"\n"
@@ -13610,18 +13593,18 @@ msgstr ""
"auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
"listPixbufs.push_back(refPixbuf);\n"
-#: C/index-in.docbook:7996
+#: C/index-in.docbook:7979
msgid "Dereferencing"
msgstr "解引用"
-#: C/index-in.docbook:7997
+#: C/index-in.docbook:7980
msgid ""
"You can dereference a smartpointer with the -> operator, to call the "
"methods of the underlying instance, just like a normal pointer."
msgstr ""
"你可以使用->操作符解引用智能指针,就像使用普通指针访问底层实例的方法一样。"
-#: C/index-in.docbook:8001
+#: C/index-in.docbook:7983
#, no-wrap
msgid ""
"\n"
@@ -13632,7 +13615,7 @@ msgstr ""
"auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
"auto width = refPixbuf->get_width();\n"
-#: C/index-in.docbook:8006
+#: C/index-in.docbook:7987
msgid ""
"You can also use the * operator and the <methodname>get()</methodname> "
"method to access the underlying instance, but it's usually a bad idea to do "
@@ -13643,7 +13626,7 @@ msgstr ""
"这不是一个好主意。除非你非常的谨慎没有犯错,否则你将得到一个不存在于引用计数"
"中的指向底层实例的指针或底层实例的引用。"
-#: C/index-in.docbook:8012
+#: C/index-in.docbook:7992
#, no-wrap
msgid ""
"\n"
@@ -13654,11 +13637,11 @@ msgstr ""
"auto refPixbuf = Gdk::Pixbuf::create_from_file(filename);\n"
"auto& underlying = *refPixbuf; // Possible, but not recommended\n"
-#: C/index-in.docbook:8019
+#: C/index-in.docbook:7998
msgid "Casting"
msgstr "类型转换"
-#: C/index-in.docbook:8020
+#: C/index-in.docbook:7999
msgid ""
"You can cast <classname>RefPtr</classname>s to base types, just like normal "
"pointers."
@@ -13666,7 +13649,7 @@ msgstr ""
"你可以像对正常指针进行类型转换一样,将<classname>RefPtr</classname>转换到基础"
"类型。"
-#: C/index-in.docbook:8025
+#: C/index-in.docbook:8003
#, no-wrap
msgid ""
"\n"
@@ -13677,7 +13660,7 @@ msgstr ""
"auto refStore = Gtk::TreeStore::create(columns);\n"
"Glib::RefPtr<Gtk::TreeModel> refModel = refStore;\n"
-#: C/index-in.docbook:8030
+#: C/index-in.docbook:8007
msgid ""
"This means that any method which takes a <type>const Glib::RefPtr<"
"BaseType>&</type> argument can also take a <type>const Glib::"
@@ -13688,13 +13671,13 @@ msgstr ""
"数也能接受<type>const Glib::RefPtr<DerivedType>&</type>对象。此转换"
"和普通指针一样是隐式的。"
-#: C/index-in.docbook:8034
+#: C/index-in.docbook:8011
msgid ""
"You can also cast to a derived type, but the syntax is a little different "
"than with a normal pointer."
msgstr "你还可以将其转换为派生类型,但是语法和普通指针的语法略有不同。"
-#: C/index-in.docbook:8038
+#: C/index-in.docbook:8014
#, no-wrap
msgid ""
"\n"
@@ -13705,18 +13688,18 @@ msgstr ""
"auto refStore = std::dynamic_pointer_cast<Gtk::TreeStore>(refModel);\n"
"auto refStore2 = std::static_pointer_cast<Gtk::TreeStore>(refModel);\n"
-#: C/index-in.docbook:8045
+#: C/index-in.docbook:8020
msgid "Checking for nullptr"
msgstr "nullptr检查"
-#: C/index-in.docbook:8046
+#: C/index-in.docbook:8021
msgid ""
"Just like normal pointers, you can check whether a <classname>RefPtr</"
"classname> points to anything."
msgstr ""
"就像普通指针一样,你可以检查<classname>RefPtr</classname>是否指向了任何东西。"
-#: C/index-in.docbook:8051
+#: C/index-in.docbook:8025
#, no-wrap
msgid ""
"\n"
@@ -13735,7 +13718,7 @@ msgstr ""
" ...\n"
"}\n"
-#: C/index-in.docbook:8060
+#: C/index-in.docbook:8033
msgid ""
"But unlike normal pointers, <classname>RefPtr</classname>s are automatically "
"initialized to <literal>nullptr</literal> so you don't need to remember to "
@@ -13744,11 +13727,11 @@ msgstr ""
"和普通指针不一样的是,<classname>RefPtr</classname>将会自动初始化为"
"<literal>nullptr</literal>,不需要你自己进行置空。"
-#: C/index-in.docbook:8066
+#: C/index-in.docbook:8039
msgid "Constness"
msgstr "常数"
-#: C/index-in.docbook:8067
+#: C/index-in.docbook:8040
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 "
@@ -13759,7 +13742,7 @@ msgstr ""
"<type>const Something*</type>声明了一个指向<type>const Something</type>的指"
"针。这个指针的指向是可以被改变的,其指向的<type>Something</type>不能被改变。"
-#: C/index-in.docbook:8073
+#: C/index-in.docbook:8046
msgid ""
"Therefore, the <classname>RefPtr</classname> equivalent of <type>Something*</"
"type> for a method parameter is <type>const Glib::RefPtr<Something>"
@@ -13771,7 +13754,7 @@ msgstr ""
"<type>const Something*</type>等效的是<type>const Glib::RefPtr<const "
"Something>&</type>。"
-#: C/index-in.docbook:8080
+#: C/index-in.docbook:8053
msgid ""
"The <literal>const ... &</literal> around both is just for efficiency, "
"like using <classname>const std::string&</classname> instead of "
@@ -13782,11 +13765,11 @@ msgstr ""
"<classname>const std::string&</classname>而不是用<classname>std::string</"
"classname>一样,这是为了避免不必要的复制。"
-#: C/index-in.docbook:8095
+#: C/index-in.docbook:8068
msgid "Connecting signal handlers"
msgstr "连接到信号处理函数"
-#: C/index-in.docbook:8096
+#: C/index-in.docbook:8069
msgid ""
"<application>gtkmm</application> widget classes have signal accessor "
"methods, such as <methodname>Gtk::Button::signal_clicked()</methodname>, "
@@ -13804,11 +13787,11 @@ msgstr ""
"使用任何函数作为信号的处理程序,不过通常你会希望使用类的成员函数。在"
"<application>GTK</application>的C代码中,这些信号处理程序被称为回调。"
-#: C/index-in.docbook:8106
+#: C/index-in.docbook:8079
msgid "Here's an example of a signal handler being connected to a signal:"
msgstr "这是将信号处理函数与信号相连接的示例:"
-#: C/index-in.docbook:8111
+#: C/index-in.docbook:8083
#, no-wrap
msgid ""
"\n"
@@ -13839,17 +13822,17 @@ msgstr ""
" button.signal_clicked().connect(sigc::ptr_fun(&on_button_clicked));\n"
"}\n"
-#: C/index-in.docbook:8127
+#: C/index-in.docbook:8098
msgid ""
"There's rather a lot to think about in this (non-functional) code. First "
"let's identify the parties involved:"
msgstr "在此代码(非功能性)中有很多事情要考虑,首先让我们确定代码的行为:"
-#: C/index-in.docbook:8135
+#: C/index-in.docbook:8106
msgid "The signal handler is <methodname>on_button_clicked()</methodname>."
msgstr "信号处理函数是<methodname>on_button_clicked()</methodname>。"
-#: C/index-in.docbook:8141
+#: C/index-in.docbook:8112
msgid ""
"We're hooking it up to the <classname>Gtk::Button</classname> object called "
"<varname>button</varname>."
@@ -13857,7 +13840,7 @@ msgstr ""
"我们将其连接到一个名为<varname>button</varname>的<classname>Gtk::Button</"
"classname>对象。"
-#: C/index-in.docbook:8148
+#: C/index-in.docbook:8119
msgid ""
"When the Button emits its <literal>clicked</literal> signal, "
"<methodname>on_button_clicked()</methodname> will be called."
@@ -13865,11 +13848,11 @@ msgstr ""
"当<varname>button</varname>发出<literal>clicked</literal>信号时,"
"<methodname>on_button_clicked()</methodname>将被调用。"
-#: C/index-in.docbook:8156
+#: C/index-in.docbook:8127
msgid "Now let's look at the connection again:"
msgstr "现在,我们再次看一下连接:"
-#: C/index-in.docbook:8161
+#: C/index-in.docbook:8131
#, no-wrap
msgid ""
"\n"
@@ -13882,7 +13865,7 @@ msgstr ""
" button.signal_clicked().connect(sigc::ptr_fun(&on_button_clicked));\n"
" ...\n"
-#: C/index-in.docbook:8168
+#: C/index-in.docbook:8137
msgid ""
"Note that we don't pass a pointer to <methodname>on_button_clicked()</"
"methodname> directly to the signal's <methodname>connect()</methodname> "
@@ -13894,7 +13877,7 @@ msgstr ""
"<function>sigc::ptr_fun()</function>并将其返回值传递给<methodname>connect()</"
"methodname>。"
-#: C/index-in.docbook:8175
+#: C/index-in.docbook:8144
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 "
@@ -13908,11 +13891,11 @@ msgstr ""
"数对象或是函子。<function>sigc::ptr_fun()</function>为独立函数或静态成员函数"
"生成槽。<function>sigc::mem_fun()</function>为特定实例的成员函数生成槽。"
-#: C/index-in.docbook:8184
+#: C/index-in.docbook:8153
msgid "Here's a slightly larger example of slots in action:"
msgstr "这是一个在动作中使用槽的较大示例:"
-#: C/index-in.docbook:8189
+#: C/index-in.docbook:8157
#, no-wrap
msgid ""
"\n"
@@ -13949,14 +13932,14 @@ msgstr ""
" button.signal_clicked().connect( sigc::mem_fun(some_object, &some_class::on_button_clicked) );\n"
"}\n"
-#: C/index-in.docbook:8208
+#: C/index-in.docbook:8175
msgid ""
"The first call to <methodname>connect()</methodname> is just like the one we "
"saw last time; nothing new here."
msgstr ""
"第一个<methodname>connect()</methodname>调用与我们之前看到的没有什么区别。"
-#: C/index-in.docbook:8211
+#: C/index-in.docbook:8178
msgid ""
"The next is more interesting. <function>sigc::mem_fun()</function> is called "
"with two arguments. The first argument is <parameter>some_object</"
@@ -13973,7 +13956,7 @@ msgstr ""
"调用指定对象上函数指针所指向的成员函数,在这个情况下调用的是"
"<methodname>some_object.on_button_clicked()</methodname>。"
-#: C/index-in.docbook:8221
+#: C/index-in.docbook:8188
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 "
@@ -13984,7 +13967,7 @@ msgstr ""
"<methodname>connect()</methodname>。所以当该按钮被点击时,这两个信号处理函数"
"都将被调用。"
-#: C/index-in.docbook:8228
+#: C/index-in.docbook:8195
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 "
@@ -13998,11 +13981,11 @@ msgstr ""
"函数与期望所调用函数不接受参数的信号相关联,当然你可以通过使用"
"<function>sigc::bind()</function>之类的适配器在一定程度上绕过这个限制。"
-#: C/index-in.docbook:8240
+#: C/index-in.docbook:8207
msgid "Writing signal handlers"
msgstr "编写信号处理函数"
-#: C/index-in.docbook:8242
+#: C/index-in.docbook:8209
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 "
@@ -14013,7 +13996,7 @@ msgstr ""
"件。这是一个你可能在<application>gtkmm</application>头文件中看到的信号声明示"
"例:"
-#: C/index-in.docbook:8249
+#: C/index-in.docbook:8215
#, no-wrap
msgid ""
"\n"
@@ -14022,7 +14005,7 @@ msgstr ""
"\n"
"Glib::SignalProxy<bool(Gtk::DirectionType)> signal_focus()\n"
-#: C/index-in.docbook:8254
+#: C/index-in.docbook:8219
msgid ""
"Other than the signal's name (<literal>focus</literal>), the template "
"arguments are important to note here. The first argument, <type>bool</type>, "
@@ -14036,7 +14019,7 @@ msgstr ""
"括号中的<type>Gtk::DirectionType</type>表示信号所期望调用的函数的第一个也是唯"
"一一个参数的类型。通过查看参考文档你还可以看到参数的名称。"
-#: C/index-in.docbook:8263
+#: C/index-in.docbook:8228
msgid ""
"The same principles apply for signals which have more arguments. Here's one "
"with three (taken from <filename><gtkmm/textbuffer.h></filename>):"
@@ -14044,7 +14027,7 @@ msgstr ""
"对于接受期望调用的函数有更多参数的信号也是一样的阅读规则。以下声明取自"
"<filename><gtkmm/textbuffer.h></filename>:"
-#: C/index-in.docbook:8269
+#: C/index-in.docbook:8233
#, no-wrap
msgid ""
"\n"
@@ -14053,7 +14036,7 @@ msgstr ""
"\n"
"Glib::SignalProxy<void(TextBuffer::iterator&, const Glib::ustrin&, int)> signal_insert();\n"
-#: C/index-in.docbook:8274
+#: C/index-in.docbook:8237
msgid ""
"It follows the same form. The first type is <type>void</type>, so that "
"should be our signal handler's return type. The following three types are "
@@ -14064,7 +14047,7 @@ msgstr ""
"type>,括号内三种类型为函数的三个参数类型。所以我们的信号处理函数原型可能如下"
"所示:"
-#: C/index-in.docbook:8282
+#: C/index-in.docbook:8244
#, no-wrap
msgid ""
"\n"
@@ -14073,16 +14056,16 @@ msgstr ""
"\n"
"void on_insert(TextBuffer::iterator& pos, const Glib::ustring& text, int bytes)\n"
-#: C/index-in.docbook:8289
+#: C/index-in.docbook:8250
msgid "Disconnecting signal handlers"
msgstr "断开信号处理函数"
-#: C/index-in.docbook:8291
+#: C/index-in.docbook:8252
msgid ""
"Let's take another look at a Signal's <literal>connect</literal> method:"
msgstr "让我们再来看看信号的<literal>connect</literal>成员函数:"
-#: C/index-in.docbook:8296
+#: C/index-in.docbook:8256
#, no-wrap
msgid ""
"\n"
@@ -14091,7 +14074,7 @@ msgstr ""
"\n"
"sigc::connection signal<void(int)>::connect(const sigc::slot<void(int)>&);\n"
-#: C/index-in.docbook:8301
+#: C/index-in.docbook:8260
msgid ""
"The returned <classname>sigc::connection</classname> can be used to control "
"the connection. By keeping a connection object you can disconnect its "
@@ -14102,11 +14085,11 @@ msgstr ""
"连接对象就可以断开与其相关联的信号处理函数的连接。若你想如此做,只需对对象调"
"用<methodname>sigc::connection::disconnect()</methodname>成员函数即可。"
-#: C/index-in.docbook:8309
+#: C/index-in.docbook:8268
msgid "Overriding default signal handlers"
msgstr "覆写默认信号处理函数"
-#: C/index-in.docbook:8311
+#: C/index-in.docbook:8270
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 "
@@ -14115,7 +14098,7 @@ msgstr ""
"到现在为止,你已经学会了通过将自定义的信号处理函数连接到信号来响应按钮按下等"
"动作。这是一种好方法,但不是唯一的方法。"
-#: C/index-in.docbook:8318
+#: C/index-in.docbook:8277
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 "
@@ -14125,7 +14108,7 @@ msgstr ""
"你还可以创建一个从部件继承而来的新类,然后覆盖默认的信号处理函数(例如,"
"Button::on_clicked()),这样你就可以省去将信号处理函数连接到信号的步骤。"
-#: C/index-in.docbook:8325
+#: C/index-in.docbook:8284
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 "
@@ -14139,7 +14122,7 @@ msgstr ""
"个对象处理同一个信号或者需要一个信号处理函数处理不同的对象的信号的时候会很不"
"方便。"
-#: C/index-in.docbook:8330
+#: C/index-in.docbook:8289
msgid ""
"<application>gtkmm</application> classes are designed with overriding in "
"mind; they contain virtual member methods specifically intended to be "
@@ -14148,11 +14131,11 @@ msgstr ""
"<application>gtkmm</application>类在设计的时候已经考虑到了覆写;它们包含了专"
"门用于被覆写的虚成员函数。"
-#: C/index-in.docbook:8335
+#: C/index-in.docbook:8294
msgid "Let's look at an example of overriding:"
msgstr "让我们看一个覆写的例子:"
-#: C/index-in.docbook:8340
+#: C/index-in.docbook:8298
#, no-wrap
msgid ""
"\n"
@@ -14189,7 +14172,7 @@ msgstr ""
" Gtk::Button::on_clicked();\n"
"}\n"
-#: C/index-in.docbook:8359
+#: C/index-in.docbook:8316
msgid ""
"Here we define a new class called <classname>OverriddenButton</classname>, "
"which inherits from <classname>Gtk::Button</classname>. The only thing we "
@@ -14207,7 +14190,7 @@ msgstr ""
"数将字符串\"Hello World\"打印到<literal>stdout</literal>,然后调用"
"<classname>Gtk::Button</classname>已被覆写本该被调用的成员函数。"
-#: C/index-in.docbook:8370
+#: C/index-in.docbook:8327
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</"
@@ -14223,11 +14206,11 @@ msgstr ""
"任何你想调用父方法的位置调用它。这对于通过连接到信号调用的信号处理函数是无法"
"做到的。"
-#: C/index-in.docbook:8384
+#: C/index-in.docbook:8341
msgid "Binding extra arguments"
msgstr "绑定额外参数"
-#: C/index-in.docbook:8391
+#: C/index-in.docbook:8348
#, no-wrap
msgid ""
"\n"
@@ -14236,7 +14219,7 @@ msgstr ""
"\n"
"m_button1.signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &HelloWorld::on_button_clicked),
\"button 1\"));\n"
-#: C/index-in.docbook:8398
+#: C/index-in.docbook:8355
#, no-wrap
msgid ""
"\n"
@@ -14245,7 +14228,7 @@ msgstr ""
"\n"
"void on_button_clicked(const Glib::ustring& data);\n"
-#: C/index-in.docbook:8385
+#: C/index-in.docbook:8342
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 "
@@ -14267,7 +14250,7 @@ msgstr ""
"添加额外的参数:<_:programlisting-2/>。当然,正常的\"clicked\"信号处理函数是没"
"有参数的。"
-#: C/index-in.docbook:8403
+#: C/index-in.docbook:8360
msgid ""
"<function>sigc::bind()</function> is not commonly used, but you might find "
"it helpful sometimes. If you are familiar with <application>GTK</"
@@ -14287,11 +14270,11 @@ msgstr ""
"有效降低代码复杂度。而在<application>gtkmm</application>中派生部件类十分的简"
"单,所以这种强侵入式的写法不再需要了。"
-#: C/index-in.docbook:8415
+#: C/index-in.docbook:8372
msgid "X Event signals"
msgstr "X事件信号"
-#: C/index-in.docbook:8416
+#: C/index-in.docbook:8373
msgid ""
"The <classname>Widget</classname> class has some special signals which "
"correspond to the underlying X-Windows events. These are suffixed by "
@@ -14302,7 +14285,7 @@ msgstr ""
"<literal>_event</literal>后缀。例如:<methodname>Widget::"
"signal_button_press_event()</methodname>。"
-#: C/index-in.docbook:8422
+#: C/index-in.docbook:8379
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</"
@@ -14316,7 +14299,7 @@ msgstr ""
"标指针的坐标,而<literal>button_press_event</literal>信号会。X事件也用于处理"
"按键。"
-#: C/index-in.docbook:8431
+#: C/index-in.docbook:8388
msgid ""
"These signals behave slightly differently. The value returned from the "
"signal handler indicates whether it has fully \"handled\" the event. If the "
@@ -14329,7 +14312,7 @@ msgstr ""
"将会把事件再次发送到下一个信号处理函数。如果返回值为<literal>true</literal>则"
"不再传播信号不再调用其他的信号处理函数。"
-#: C/index-in.docbook:8436
+#: C/index-in.docbook:8393
msgid ""
"Handling an X event doesn't affect the Widget's other signals. If you handle "
"<literal>button_press_event</literal> for <classname>Gtk::Button</"
@@ -14340,7 +14323,7 @@ msgstr ""
"的<literal>button_press_event</literal>信号,你依旧可以得到<literal>clicked</"
"literal>信号。这两个信号将几乎于同一时间被发出。"
-#: C/index-in.docbook:8445
+#: C/index-in.docbook:8402
#, no-wrap
msgid ""
"\n"
@@ -14353,7 +14336,7 @@ msgstr ""
"Gtk::Button button(\"label\");\n"
"button.signal_button_press_event().connect( sigc::ptr_fun(&on_button_press) );\n"
-#: C/index-in.docbook:8451
+#: C/index-in.docbook:8407
msgid ""
"When the mouse is over the button and a mouse button is pressed, "
"<methodname>on_button_press()</methodname> will be called."
@@ -14361,7 +14344,7 @@ msgstr ""
"当鼠标悬停在鼠标上方并按下鼠标按钮时,<methodname>on_button_press()</"
"methodname>将被调用。"
-#: C/index-in.docbook:8456
+#: C/index-in.docbook:8412
msgid ""
"<type>GdkEventButton</type> is a structure containing the event's "
"parameters, such as the coordinates of the mouse pointer at the time the "
@@ -14372,20 +14355,11 @@ msgstr ""
"指针的坐标等一系列信息。对于不同的事件,有不同的<type>GdkEvent</type>结构体类"
"型与之对应。"
-#: C/index-in.docbook:8464
+#: C/index-in.docbook:8420
msgid "Signal Handler sequence"
msgstr "信号处理函数序列"
-#: C/index-in.docbook:8472
-#, no-wrap
-msgid ""
-"\n"
-"button.signal_button_press_event().connect( sigc::ptr_fun(&on_mywindow_button_press), false );\n"
-msgstr ""
-"\n"
-"button.signal_button_press_event().connect( sigc::ptr_fun(&on_mywindow_button_press), false );\n"
-
-#: C/index-in.docbook:8465
+#: C/index-in.docbook:8421
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. "
@@ -14394,15 +14368,24 @@ msgid ""
"being called. To specify that your signal handler should be called before "
"the other signal handlers, so that it will always be called, you can specify "
"<literal>false</literal> for the optional <literal>after</literal> "
-"parameter. For instance, <_:programlisting-1/>"
+"parameter. For instance,"
msgstr ""
"默认情况下,你的信号处理函数将于所有之前连接到信号的信号处理函数之后被调用。"
"但是这对于X事件信号可能会出问题。例如,现有的信号处理函数或默认信号处理函数如"
"果返回了<literal>true</literal>将会停止事件传播,这时候你的信号处理函数就不会"
"被调用。你可以指定可选参数<literal>after</literal>为<literal>false</"
-"literal>,这样你的信号处理函数就总是会被调用。例如:<_:programlisting-1/>"
+"literal>,这样你的信号处理函数就总是会被调用。例如:"
+
+#: C/index-in.docbook:8429
+#, no-wrap
+msgid ""
+"\n"
+"button.signal_button_press_event().connect( sigc::ptr_fun(&on_mywindow_button_press), false );\n"
+msgstr ""
+"\n"
+"button.signal_button_press_event().connect( sigc::ptr_fun(&on_mywindow_button_press), false );\n"
-#: C/index-in.docbook:8476
+#: C/index-in.docbook:8432
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 "
@@ -14414,11 +14397,11 @@ msgstr ""
"<literal>false</literal>。则该信号将被传播到部件的父部件中。如果后续没有人处"
"理事件,信号会一直传播到顶级窗口部件。"
-#: C/index-in.docbook:8487
+#: C/index-in.docbook:8443
msgid "Exceptions in signal handlers"
msgstr "信号处理函数中的异常"
-#: C/index-in.docbook:8488
+#: C/index-in.docbook:8444
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 "
@@ -14428,7 +14411,7 @@ msgstr ""
"当程序因未处理C++异常而终止时,有时候可以使用调试器查找抛出异常的位置。但是如"
"果异常是在信号处理函数中抛出的,这将会比平常困难的多。"
-#: C/index-in.docbook:8493
+#: C/index-in.docbook:8449
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</"
@@ -14437,7 +14420,14 @@ msgstr ""
"本小节组要介绍使用<ulink url=\"http://www.gnu.org/software/gdb/\">gdb调试器</"
"ulink>在Linux系统上调试异常。"
-#: C/index-in.docbook:8500
+#: C/index-in.docbook:8453
+msgid ""
+"First, let's look at a simple example where an exception is thrown from a "
+"normal function (no signal handler)."
+msgstr ""
+"首先让我们看一个简单的示例,其中的一个普通函数(非信号处理函数)抛出异常:"
+
+#: C/index-in.docbook:8457
#, no-wrap
msgid ""
"\n"
@@ -14474,15 +14464,7 @@ msgstr ""
" return app->run();\n"
"}\n"
-#: C/index-in.docbook:8497
-msgid ""
-"First, let's look at a simple example where an exception is thrown from a "
-"normal function (no signal handler). <_:programlisting-1/>"
-msgstr ""
-"首先让我们看一个简单的示例,其中的一个普通函数(非信号处理函数)抛出异常:<_:"
-"programlisting-1/>"
-
-#: C/index-in.docbook:8521
+#: C/index-in.docbook:8477
#, no-wrap
msgid ""
"\n"
@@ -14505,7 +14487,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/index-in.docbook:8518
+#: C/index-in.docbook:8474
msgid ""
"Here is an excerpt from a <application>gdb</application> session. Only the "
"most interesting parts of the output are shown. <_:programlisting-1/> You "
@@ -14516,7 +14498,14 @@ msgstr ""
"programlisting-1/> 你可以看到在<filename>without_signal.cc</filename>的第六行"
"抛出了异常(<code>throw \"Something\";</code>)。"
-#: C/index-in.docbook:8537
+#: C/index-in.docbook:8490
+msgid ""
+"Now let's see what happens when an exception is thrown from a signal "
+"handler. Here's the source code."
+msgstr ""
+"现在,让我们看看从信号处理函数中抛出异常会发生什么。这是源代码:"
+
+#: C/index-in.docbook:8494
#, no-wrap
msgid ""
"\n"
@@ -14555,15 +14544,7 @@ msgstr ""
" return app->run();\n"
"}\n"
-#: C/index-in.docbook:8534
-msgid ""
-"Now let's see what happens when an exception is thrown from a signal "
-"handler. Here's the source code. <_:programlisting-1/>"
-msgstr ""
-"现在,让我们看看从信号处理函数中抛出异常会发生什么。这是源代码:<_:"
-"programlisting-1/>"
-
-#: C/index-in.docbook:8558
+#: C/index-in.docbook:8514
#, no-wrap
msgid ""
"\n"
@@ -14594,7 +14575,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/index-in.docbook:8556
+#: C/index-in.docbook:8512
msgid ""
"And here's an excerpt from a <application>gdb</application> session. <_:"
"programlisting-1/> The exception is caught in <application>glibmm</"
@@ -14610,7 +14591,15 @@ msgstr ""
"异常都会被<application>glibmm</application>或<application>gtkmm</application>"
"所捕获,并且<application>gdb</application>将无法看到异常被抛出的具体位置。"
-#: C/index-in.docbook:8581
+#: C/index-in.docbook:8534
+msgid ""
+"To see where the exception is thrown, you can use the <application>gdb</"
+"application> command <userinput>catch throw</userinput>."
+msgstr ""
+"要查看哪里抛出了异常,你可以使用<application>gdb</application>的"
+"<userinput>catch throw</userinput>命令。"
+
+#: C/index-in.docbook:8538
#, no-wrap
msgid ""
"\n"
@@ -14645,16 +14634,7 @@ msgstr ""
"\n"
"Program received signal SIGTRAP, Trace/breakpoint trap.\n"
-#: C/index-in.docbook:8578
-msgid ""
-"To see where the exception is thrown, you can use the <application>gdb</"
-"application> command <userinput>catch throw</userinput>. <_:programlisting-1/"
-">"
-msgstr ""
-"要查看哪里抛出了异常,你可以使用<application>gdb</application>的"
-"<userinput>catch throw</userinput>命令。<_:programlisting-1/>"
-
-#: C/index-in.docbook:8602
+#: C/index-in.docbook:8558
#, no-wrap
msgid ""
"\n"
@@ -14675,7 +14655,7 @@ msgstr ""
"(gdb) set pagination off\n"
"(gdb) run\n"
-#: C/index-in.docbook:8598
+#: C/index-in.docbook:8554
msgid ""
"If there are many caught exceptions before the interesting uncaught one, "
"this method can be tedious. It can be automated with the following "
@@ -14689,11 +14669,11 @@ msgstr ""
"programlisting-1/> 这些命令将在每次抛出时打印回溯信息并继续。通常最后一个或第"
"一个<code>throw</code>是你所需要的。"
-#: C/index-in.docbook:8621
+#: C/index-in.docbook:8577
msgid "Creating your own signals"
msgstr "创建属于你的信号"
-#: C/index-in.docbook:8622
+#: C/index-in.docbook:8578
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 "
@@ -14704,7 +14684,7 @@ msgstr ""
"能希望你自己的类使用相同的技术进行交互。你可以很轻松的使用"
"<application>libsigc++</application>库实现这个需求。"
-#: C/index-in.docbook:8628
+#: C/index-in.docbook:8584
msgid ""
"This isn't purely a <application>gtkmm</application> or GUI issue. "
"<application>gtkmm</application> uses <application>libsigc++</application> "
@@ -14718,7 +14698,16 @@ msgstr ""
"号,你可以使用<classname>sigc::signal<></classname>模版创建属于自己的C+"
"+信号。"
-#: C/index-in.docbook:8639
+#: C/index-in.docbook:8591
+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</"
+"classname>, like so:"
+msgstr ""
+"例如,要创建一个发送参数类型分别为<type>bool</type>和<type>int</type>的信号,"
+"只需要按如下所示声明一个<classname>sigc::signal</classname>即可:"
+
+#: C/index-in.docbook:8596
#, no-wrap
msgid ""
"\n"
@@ -14727,17 +14716,16 @@ msgstr ""
"\n"
"sigc::signal<void(bool, int)> signal_something;\n"
-#: C/index-in.docbook:8635
+#: C/index-in.docbook:8599
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</"
-"classname>, like so: <_:programlisting-1/>"
+"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 "
+"method, like so:"
msgstr ""
-"例如,要创建一个发送参数类型分别为<type>bool</type>和<type>int</type>的信号,"
-"只需要按如下所示声明一个<classname>sigc::signal</classname>即可:<_:"
-"programlisting-1/>"
+"你可以简单的将信号声明为公有成员变量,但是有些人讨厌这种声明,他们更喜欢如下"
+"所示的访问器方法:"
-#: C/index-in.docbook:8647
+#: C/index-in.docbook:8604
#, no-wrap
msgid ""
"\n"
@@ -14774,16 +14762,15 @@ msgstr ""
" return m_signal_something;\n"
"}\n"
-#: C/index-in.docbook:8643
+#: C/index-in.docbook:8622
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 "
-"method, like so: <_:programlisting-1/>"
+"You can then connect to the signal using the same syntax used when "
+"connecting to <application>gtkmm</application> signals. For instance,"
msgstr ""
-"你可以简单的将信号声明为公有成员变量,但是有些人讨厌这种声明,他们更喜欢如下"
-"所示的访问器方法:<_:programlisting-1/>"
+"然后你可以使用与连接<application>gtkmm</application>信号一样的语法连接到这个"
+"信号。例如:"
-#: C/index-in.docbook:8669
+#: C/index-in.docbook:8626
#, no-wrap
msgid ""
"\n"
@@ -14794,20 +14781,11 @@ msgstr ""
"server.signal_something().connect(\n"
" sigc::mem_fun(client, &Client::on_server_something) );\n"
-#: C/index-in.docbook:8666
-msgid ""
-"You can then connect to the signal using the same syntax used when "
-"connecting to <application>gtkmm</application> signals. For instance, <_:"
-"programlisting-1/>"
-msgstr ""
-"然后你可以使用与连接<application>gtkmm</application>信号一样的语法连接到这个"
-"信号。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:8677
+#: C/index-in.docbook:8633
msgid "This is a full working example that defines and uses custom signals."
msgstr "这是一个完整的定义了并使用了自定义信号的示例。"
-#: C/index-in.docbook:8681
+#: C/index-in.docbook:8637
msgid ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/signals/custom/\">Source Code</ulink>"
@@ -14815,11 +14793,11 @@ msgstr ""
"<ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/"
"examples/book/signals/custom/\">源代码</ulink>"
-#: C/index-in.docbook:8689
+#: C/index-in.docbook:8645
msgid "Comparison with other signalling systems"
msgstr "与其他信号系统的比较"
-#: C/index-in.docbook:8690
+#: C/index-in.docbook:8646
msgid ""
"(An aside: <application>GTK</application> calls this scheme \"signalling\"; "
"the sharp-eyed reader with GUI toolkit experience will note that this same "
@@ -14841,7 +14819,7 @@ msgstr ""
"<application>gtkmm</application>中,信号对象扮演广播者的角色,而槽扮演监听者"
"的角色。"
-#: C/index-in.docbook:8704
+#: C/index-in.docbook:8660
msgid ""
"<application>gtkmm</application> signal handlers are strongly-typed, whereas "
"<application>GTK</application> C code allows you to connect a callback with "
@@ -14854,7 +14832,7 @@ msgstr ""
"的回调函数,这会导致运行时出现段错误。并且和<application>Qt</application>不"
"同,<application>gtkmm</application>不需要对C++语言进行修改即可达到此目的。"
-#: C/index-in.docbook:8710
+#: C/index-in.docbook:8666
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 go "
@@ -14866,7 +14844,7 @@ msgstr ""
"言对于高级特性的支持特别弱,你需要编写一系列复杂的代码才能做到继承和重载。而"
"在C++中,因为语言本身就支持这些特性,所以你可以让编译器代为完成肮脏的工作。"
-#: C/index-in.docbook:8718
+#: C/index-in.docbook:8674
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 "
@@ -14880,11 +14858,11 @@ msgstr ""
"+中覆写成员函数非常简单,因此为了修改部件的某个行为而将其子类化是完全可行且明"
"智的。"
-#: C/index-in.docbook:8729
+#: C/index-in.docbook:8685
msgid "<application>gtkmm</application> and Win32"
msgstr "<application>gtkmm</application>与Win32"
-#: C/index-in.docbook:8730
+#: C/index-in.docbook:8686
msgid ""
"One of the major advantages of <application>gtkmm</application> is that it "
"is crossplatform. <application>gtkmm</application> programs written on other "
@@ -14895,7 +14873,7 @@ msgstr ""
"的<application>gtkmm</application>程序只需要修改很少一部分的源代码就可以从"
"GNU/Linux移植到Windows,当然反之亦然。"
-#: C/index-in.docbook:8735
+#: C/index-in.docbook:8691
msgid ""
"<application>gtkmm</application> currently works with the <ulink url="
"\"http://mingw.org/\">MinGW/GCC compiler</ulink> with a compiler version "
@@ -14918,7 +14896,7 @@ msgstr ""
"情况下可以混合使用VS2017和2019完成构建,但是在构建带有-mm依赖的"
"<application>gtkmm</application>时千万不要如此做。"
-#: C/index-in.docbook:8748
+#: C/index-in.docbook:8704
msgid ""
"Refer to the <ulink url=\"https://gitlab.gnome.org/GNOME/gtkmm/tree/master/"
"README.win32\">README.win32</ulink>, as well as the <ulink url=\"https://"
@@ -14931,11 +14909,11 @@ msgstr ""
"GNOME/gtkmm/tree/master/MSVC_NMake/README\">自述文件</ulink>中关于如何在"
"WIndwos上构建<application>gtkmm</application>的说明。"
-#: C/index-in.docbook:8755
+#: C/index-in.docbook:8711
msgid "Working with gtkmm's Source Code"
msgstr "使用gtkmm源代码"
-#: C/index-in.docbook:8756
+#: C/index-in.docbook:8712
msgid ""
"If you are interested in helping out with the development of "
"<application>gtkmm</application>, or fixing a bug in <application>gtkmm</"
@@ -14950,7 +14928,7 @@ msgstr ""
"application>的开发版。但是你不应该将开发版本覆盖稳定版。你应该选择已存在"
"<application>gtkmm</application>版本的目录外的路径安装开发版。"
-#: C/index-in.docbook:8763
+#: C/index-in.docbook:8719
msgid ""
"The easiest way to do this is using <ulink url=\"https://wiki.gnome.org/"
"Projects/Jhbuild\">jhbuild</ulink>. <application>jhbuild</application> is a "
@@ -14971,7 +14949,7 @@ msgstr ""
"最新信息,请参考<ulink url=\"http://developer.gnome.org/jhbuild/unstable/"
"\">jhbuild手册</ulink>。"
-#: C/index-in.docbook:8775
+#: C/index-in.docbook:8731
msgid ""
"Note that to build <application>gtkmm</application> from git, you'll often "
"need to build many of its dependencies from git as well. "
@@ -14985,7 +14963,7 @@ msgstr ""
"和安装这些依赖依旧需要相当长的时间。在这过程中你可能会遇到构建问题,因为"
"master分支并不总是能构建成功的,当然构建问题通常很快就会被修复。"
-#: C/index-in.docbook:8783
+#: C/index-in.docbook:8739
msgid ""
"<application>gnome-build-meta</application> is an alternative to "
"<application>jhbuild</application>. It is described at the <ulink url="
@@ -14998,16 +14976,16 @@ msgstr ""
"BuildSystemComponent\">构建系统组件</ulink>维基页面对其进行了详细的介绍,在这"
"里我们只介绍<application>jhbuild</application>。"
-#: C/index-in.docbook:8790
+#: C/index-in.docbook:8746
msgid "Setting up jhbuild"
msgstr "设置jhbuild"
-#: C/index-in.docbook:8799
+#: C/index-in.docbook:8755
#, no-wrap
msgid "$ cp examples/sample.jhbuildrc ~/.config/jhbuildrc"
msgstr "$ cp examples/sample.jhbuildrc ~/.config/jhbuildrc"
-#: C/index-in.docbook:8791
+#: C/index-in.docbook:8747
msgid ""
"To set up <application>jhbuild</application>, follow the basic installation "
"instructions from the <ulink url=\"http://developer.gnome.org/jhbuild/"
@@ -15023,39 +15001,39 @@ msgstr ""
"application>目录执行以下命令将示例<application>jhbuild</application>配置文件"
"复制到你的主目录中:<_:screen-1/>"
-#: C/index-in.docbook:8805
-#, no-wrap
-msgid "moduleset = 'gnome-suites-core-deps-latest'"
-msgstr "moduleset = 'gnome-suites-core-deps-latest'"
-
-#: C/index-in.docbook:8801
+#: C/index-in.docbook:8757
msgid ""
"The <application>gtkmm</application> module is defined in the "
"<filename>gnome-suites-core-deps-latest.modules</filename> moduleset. So "
"edit your <filename>jhbuildrc</filename> file and set your moduleset setting "
-"like so: <_:programlisting-1/>"
+"like so:"
msgstr ""
"<application>gtkmm</application>模块在文件<filename>gnome-suites-core-deps-"
"latest.modules</filename>中的模块组(moduleset)定义。因此你需要按以下方式编辑"
-"你的<filename>jhbuildrc</filename>文件并设置你的模块组:<_:programlisting-1/>"
+"你的<filename>jhbuildrc</filename>文件并设置你的模块组:"
-#: C/index-in.docbook:8812
+#: C/index-in.docbook:8762
#, no-wrap
-msgid "modules = [ 'gtkmm' ]"
-msgstr "modules = [ 'gtkmm' ]"
+msgid "moduleset = 'gnome-suites-core-deps-latest'"
+msgstr "moduleset = 'gnome-suites-core-deps-latest'"
-#: C/index-in.docbook:8807
+#: C/index-in.docbook:8763
msgid ""
"After setting the correct moduleset, you need to tell <application>jhbuild</"
"application> which module or modules to build. To build <application>gtkmm</"
"application> and all of its dependencies, set <varname>modules</varname> "
-"like so: <_:programlisting-1/>"
+"like so:"
msgstr ""
"正确设置模块组之后,你需要告诉<application>jhbuild</application>哪些模块需要"
"构建。想要构建<application>gtkmm</application>以及所有相关的依赖项,请按如下"
-"所示设置<varname>modules</varname>:<_:programlisting-1/>"
+"所示设置<varname>modules</varname>:"
+
+#: C/index-in.docbook:8769
+#, no-wrap
+msgid "modules = [ 'gtkmm' ]"
+msgstr "modules = [ 'gtkmm' ]"
-#: C/index-in.docbook:8814
+#: C/index-in.docbook:8770
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 "
@@ -15070,11 +15048,11 @@ msgstr ""
"哪些模块。你始终可以用命令行指定其他模块组来构建其他模块组(例如:"
"<command>jhbuild build gtkmm</command>)。"
-#: C/index-in.docbook:8824
+#: C/index-in.docbook:8780
msgid "Setting a prefix"
msgstr "设置前缀"
-#: C/index-in.docbook:8825
+#: C/index-in.docbook:8781
msgid ""
"By default, <application>jhbuild</application>'s configuration is configured "
"to install all software built with <application>jhbuild</application> under "
@@ -15091,7 +15069,7 @@ msgstr ""
"前缀设置为<filename>/usr</filename>。如果你遵循jhbuild的说明进行操作,该前缀"
"属于你的用户,你将无需以<literal>root</literal>用户权限运行jhbuild。"
-#: C/index-in.docbook:8837
+#: C/index-in.docbook:8793
msgid ""
"When you downloaded <application>jhbuild</application> from the git "
"repository, you got a number of <filename>.modules</filename> files, "
@@ -15108,12 +15086,12 @@ msgstr ""
"<filename>.jhbuildrc</filename>文件中定义<varname>use_local_modulesets</"
"varname>以修改此行为。"
-#: C/index-in.docbook:8848
+#: C/index-in.docbook:8804
msgid ""
"Installing and Using the git version of <application>gtkmm</application>"
msgstr "安装和使用<application>gtkmm</application>的git版本"
-#: C/index-in.docbook:8856
+#: C/index-in.docbook:8812
#, no-wrap
msgid ""
"$ jhbuild bootstrap\n"
@@ -15122,7 +15100,7 @@ msgstr ""
"$ jhbuild bootstrap\n"
"$ jhbuild sanitycheck"
-#: C/index-in.docbook:8849
+#: C/index-in.docbook:8805
msgid ""
"Once you've configured <application>jhbuild</application> as described "
"above, building <application>gtkmm</application> should be relatively "
@@ -15136,14 +15114,14 @@ msgstr ""
"application>时,你应运行以下命令序列,以确保<application>jhbuild</"
"application>拥有所有所需的工具以及验证设置是否正确:<_:screen-1/>"
-#: C/index-in.docbook:8860
+#: C/index-in.docbook:8816
msgid ""
"Installing <application>gtkmm</application> with <application>jhbuild</"
"application>"
msgstr ""
"用<application>jhbuild</application>安装<application>gtkmm</application>"
-#: C/index-in.docbook:8861
+#: C/index-in.docbook:8817
msgid ""
"If everything worked correctly, you should be able to build "
"<application>gtkmm</application> and all of its dependencies from git by "
@@ -15156,7 +15134,7 @@ msgstr ""
"那也可以使用命令<command>jhbuild build gtkmm</command>来进行构建)来从git构建"
"<application>gtkmm</application>以及所有有关的依赖项。"
-#: C/index-in.docbook:8868
+#: C/index-in.docbook:8824
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, "
@@ -15173,11 +15151,11 @@ msgstr ""
"gtkmm</command>重新构建<application>gtkmm</application>(不需要重新构建相关依"
"赖)。"
-#: C/index-in.docbook:8879
+#: C/index-in.docbook:8835
msgid "Using the git version of <application>gtkmm</application>"
msgstr "使用git版本的<application>gtkmm</application>"
-#: C/index-in.docbook:8880
+#: C/index-in.docbook:8836
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 "
@@ -15200,7 +15178,7 @@ msgstr ""
"有环境变量的shell。现在如果你和往常一样重新配置并构建你的项目,它应该链接到新"
"的库。要返回之前的环境你只需要<application>jhbuild</application> shell即可。"
-#: C/index-in.docbook:8894
+#: C/index-in.docbook:8850
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 "
@@ -15219,11 +15197,11 @@ msgstr ""
"command-name</command>。在这种情况下,命令将在设置了正确的环境变量的环境中运"
"行,命令退出后,环境将恢复到之前的状态。"
-#: C/index-in.docbook:8911
+#: C/index-in.docbook:8867
msgid "Wrapping C Libraries with gmmproc"
msgstr "使用gmmproc封装C库"
-#: C/index-in.docbook:8912
+#: C/index-in.docbook:8868
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 "
@@ -15235,18 +15213,18 @@ msgstr ""
"库的API。因此,可以很容易为其他基于glib/Gobject的库创建类似于gtkmm风格的封"
"装。"
-#: C/index-in.docbook:8917
+#: C/index-in.docbook:8873
msgid ""
"This involves a variety of tools, some of them crufty, but at least they "
"work, and has been used successfully by several projects."
msgstr ""
"这涉及到很多工具,其中有一些很笨重,不过还算能用,并且已经被多个项目使用。"
-#: C/index-in.docbook:8922
+#: C/index-in.docbook:8878
msgid "The build structure"
msgstr "构建结构"
-#: C/index-in.docbook:8923
+#: C/index-in.docbook:8879
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."
@@ -15262,7 +15240,7 @@ msgstr ""
"利用<application>mm-common</application>模块提供的构建基础设施。选择一个已经"
"存在绑定的模块作为示例对于开始使用gmmproc很有帮助。"
-#: C/index-in.docbook:8931
+#: C/index-in.docbook:8887
msgid ""
"For instance, let's pretend that we are wrapping a C library called "
"libsomething. It provides a <classname>GObject</classname>-based API with "
@@ -15273,41 +15251,41 @@ msgstr ""
"classname> API的具名类型,例如类型名为:<classname>SomeWidget</classname>和"
"<classname>SomeStuff</classname>。"
-#: C/index-in.docbook:8937
+#: C/index-in.docbook:8893
msgid "Copying the skeleton project"
msgstr "复制skeleton项目"
-#: C/index-in.docbook:8944
-#, no-wrap
-msgid ""
-"\n"
-" $ git clone https://gitlab.gnome.org/GNOME/mm-common.git\n"
-" $ cp -a mm-common/skeletonmm libsomethingmm\n"
-msgstr ""
-"\n"
-" $ git clone https://gitlab.gnome.org/GNOME/mm-common.git\n"
-" $ cp -a mm-common/skeletonmm libsomethingmm\n"
-
-#: C/index-in.docbook:8939
+#: C/index-in.docbook:8895
msgid ""
"Typically our wrapper library would be called libsomethingmm. We can start "
"by copying the <ulink url=\"https://gitlab.gnome.org/GNOME/mm-common/tree/"
"master/skeletonmm\"> skeleton source tree</ulink> from the <application>mm-"
"common</application> module. Starting with <application>mm-common</"
"application> 1.0.0 this skeleton application is built with the <ulink url="
-"\"https://mesonbuild.com/\">Meson build system</ulink>. <_:programlisting-1/>"
+"\"https://mesonbuild.com/\">Meson build system</ulink>."
msgstr ""
"我们封装的库名为libsomethingmm。我们可以从在<application>mm-common</"
"application>模块中复制<ulink url=\"https://gitlab.gnome.org/GNOME/mm-common/"
"tree/master/skeletonmm\">skeleton源代码树</ulink>开始。自<application>mm-"
"common</application> 1.0.0开始skeleton应用程序使用<ulink url=\"https://"
-"mesonbuild.com/\">Meson构建系统</ulink>进行构建。<_:programlisting-1/>"
+"mesonbuild.com/\">Meson构建系统</ulink>进行构建。"
-#: C/index-in.docbook:8954
+#: C/index-in.docbook:8901
+#, no-wrap
+msgid ""
+"\n"
+" $ git clone https://gitlab.gnome.org/GNOME/mm-common.git\n"
+" $ cp -a mm-common/skeletonmm libsomethingmm\n"
+msgstr ""
+"\n"
+" $ git clone https://gitlab.gnome.org/GNOME/mm-common.git\n"
+" $ cp -a mm-common/skeletonmm libsomethingmm\n"
+
+#: C/index-in.docbook:8910
msgid "<filename>libsomethingmm</filename>: The top-level directory."
msgstr "<filename>libsomethingmm</filename>:顶级目录。"
-#: C/index-in.docbook:8956
+#: C/index-in.docbook:8912
msgid ""
"<filename>libsomething</filename>: Contains the main include file and the "
"pkg-config .pc file."
@@ -15315,16 +15293,16 @@ msgstr ""
"<filename>libsomething</filename>:包含主要的被包含文件(被#include的文件)和由"
"<application>pkg-config</application>所需的.pc文件。"
-#: C/index-in.docbook:8958
+#: C/index-in.docbook:8914
msgid "<filename>src</filename>: Contains .hg and .ccg source files."
msgstr "<filename>src</filename>:包含.hg和.ccg源文件。"
-#: C/index-in.docbook:8959
+#: C/index-in.docbook:8915
msgid ""
"<filename>libsomethingmm</filename>: Contains hand-written .h and .cc files."
msgstr "<filename>libsomethingmm</filename>:包含手写的.h和.cc文件。"
-#: C/index-in.docbook:8949
+#: C/index-in.docbook:8905
msgid ""
"This provides a directory structure for the source .hg and .ccg files and "
"the hand-written .h and .cc files, with <filename>meson.build</filename> "
@@ -15336,7 +15314,7 @@ msgstr ""
"filename>文件可以通过各种变量指定Meson使用哪些文件进行编译。适当的重命名目录"
"后,目录结构将如下所示:<_:itemizedlist-1/>"
-#: C/index-in.docbook:8970
+#: C/index-in.docbook:8926
#, no-wrap
msgid ""
"\n"
@@ -15349,7 +15327,7 @@ msgstr ""
" d=\"${f%/*}\"; b=\"${f##*/}\"; mv \"$f\" \"$d/${b//skeleton/libsomething}\"; \\\n"
" done\n"
-#: C/index-in.docbook:8968
+#: C/index-in.docbook:8924
msgid ""
"As well as renaming the directories, we should rename some of the source "
"files. For instance: <_:programlisting-1/> A number of the skeleton files "
@@ -15358,7 +15336,7 @@ msgstr ""
"除了重命名目录外,我们还应该重命名一些源文件。例如:<_:programlisting-1/>然"
"后,还有些skeleton文件需要在特定项目内容完成后填写。"
-#: C/index-in.docbook:8977
+#: C/index-in.docbook:8933
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 "
@@ -15367,7 +15345,7 @@ msgstr ""
"请注意,在配置阶段中某些变量将会替换为实际值,这将会生成与<filename>.in</"
"filename>相同名称但不带<filename>.in</filename>后缀的文件。"
-#: C/index-in.docbook:8980
+#: C/index-in.docbook:8936
msgid ""
"Generated files are saved in the build tree, which is separated from the "
"source tree when <command>meson</command> and <command>ninja</command> are "
@@ -15376,11 +15354,11 @@ msgstr ""
"生成的文件被保存在构建树中,当使用<command>meson</command>和<command>ninja</"
"command>时构建树会与源树分离。"
-#: C/index-in.docbook:8985
+#: C/index-in.docbook:8941
msgid "Modifying build files"
msgstr "修改构建文件"
-#: C/index-in.docbook:8987
+#: C/index-in.docbook:8943
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</"
@@ -15393,7 +15371,7 @@ msgstr ""
"提供的所有文件几乎都包含了占位符。因此,应该进行全局替换而不是仅对Meson文件替"
"换。"
-#: C/index-in.docbook:8991
+#: C/index-in.docbook:8947
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 "
@@ -15406,7 +15384,7 @@ msgstr ""
"varname>都应该被替换成\"SOMETHING\"或\"LIBSOMETHING\",以及所有的"
"<varname>Skeleton</varname>都应该被替换为\"Something\"。"
-#: C/index-in.docbook:8995
+#: C/index-in.docbook:8951
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 "
@@ -15416,11 +15394,11 @@ msgstr ""
"就是你的名称。然后对<varname>joe example com</varname>邮件地址进行同样的操"
"作。"
-#: C/index-in.docbook:9000
+#: C/index-in.docbook:8956
msgid "meson.build in the top-level directory"
msgstr "顶级目录中的meson.build"
-#: C/index-in.docbook:9003
+#: C/index-in.docbook:8959
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, "
@@ -15432,14 +15410,14 @@ msgstr ""
"的初始版本为1.23.0。但是请尽量避免以偶数次要版本开始,因为这通常意味着该版本"
"是稳定版本。"
-#: C/index-in.docbook:9008
+#: C/index-in.docbook:8964
msgid ""
"In the <function>project()</function> function, change the license and the C+"
"+ version, if necessary."
msgstr ""
"如果有必要,请在<function>project()</function>函数中修改许可证和C++版本。"
-#: C/index-in.docbook:9010
+#: C/index-in.docbook:8966
msgid ""
"You probably need to add more required modules than <application>glibmm</"
"application> and <application>skeleton</application> "
@@ -15448,11 +15426,11 @@ msgstr ""
"你可能需要添加除<application>glibmm</application>和"
"<application>skeleton(libsomething)</application>以外的必需模块。"
-#: C/index-in.docbook:9018
+#: C/index-in.docbook:8974
msgid "Other meson.build files"
msgstr "其他meson.build文件"
-#: C/index-in.docbook:9021
+#: C/index-in.docbook:8977
msgid ""
"<filename>skeleton/meson.build</filename>: Perhaps not much to change here "
"more than the global name substitutions."
@@ -15460,34 +15438,34 @@ msgstr ""
"<filename>skeleton/meson.build</filename>:在这除了全局替换以外基本上不需要做"
"什么。"
-#: C/index-in.docbook:9024
+#: C/index-in.docbook:8980
msgid "<filename>skeleton/skeletonmm/meson.build</filename>"
msgstr "<filename>skeleton/skeletonmm/meson.build</filename>"
-#: C/index-in.docbook:9027
+#: C/index-in.docbook:8983
msgid "<varname>defs_basefiles</varname>"
msgstr "<varname>defs_basefiles</varname>"
-#: C/index-in.docbook:9028
+#: C/index-in.docbook:8984
msgid "If we have more .defs and docs.xml files, we add them here."
msgstr "在这添加额外的.defs和docs.xml文件"
-#: C/index-in.docbook:9032
+#: C/index-in.docbook:8988
msgid "<varname>hg_ccg_basenames</varname>"
msgstr "<varname>hg_ccg_basenames</varname>"
-#: C/index-in.docbook:9033
+#: C/index-in.docbook:8989
msgid ""
"We must mention all of our <filename>.hg</filename> and <filename>.ccg</"
"filename> files here."
msgstr ""
"必须在这里提及所有的<filename>.hg</filename>和<filename>.ccg</filename>。"
-#: C/index-in.docbook:9037
+#: C/index-in.docbook:8993
msgid "<varname>extra_cc_files, extra_h_files</varname>"
msgstr "<varname>extra_cc_files, extra_h_files</varname>"
-#: C/index-in.docbook:9038
+#: C/index-in.docbook:8994
msgid ""
"Any additional hand-written <filename>.h</filename> and <filename>.cc</"
"filename> source files go here."
@@ -15495,7 +15473,7 @@ msgstr ""
"所有手写的<filename>.h</filename>和<filename>.cc</filename>源文件都需要写在"
"这。"
-#: C/index-in.docbook:9019
+#: C/index-in.docbook:8975
msgid ""
"Next we must adapt the other <filename>meson.build</filename> files: <_:"
"itemizedlist-1/>"
@@ -15503,11 +15481,11 @@ msgstr ""
"接下来我们必须对其他的<filename>meson.build</filename>文件进行修改:<_:"
"itemizedlist-1/>"
-#: C/index-in.docbook:9048
+#: C/index-in.docbook:9004
msgid "Creating .hg and .ccg files"
msgstr "创建.hg个.ccg文件"
-#: C/index-in.docbook:9049
+#: C/index-in.docbook:9005
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 "
@@ -15519,7 +15497,7 @@ msgstr ""
"<filename>skeleton.ccg</filename>和<filename>skeleton.hg</filename>。请根据需"
"要创建这些文件的副本。"
-#: C/index-in.docbook:9053
+#: C/index-in.docbook:9009
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."
@@ -15527,35 +15505,35 @@ msgstr ""
"在<link linkend=\"sec-wrapping-hg-files\">.hg和.ccg文件</link>小节你可以学到"
"这些文件使用的语法。"
-#: C/index-in.docbook:9060
+#: C/index-in.docbook:9016
msgid "Generating the .defs files."
msgstr "生成.defs文件"
-#: C/index-in.docbook:9064
+#: C/index-in.docbook:9020
msgid "objects (GObjects, widgets, interfaces, boxed-types and plain structs)"
msgstr "对象(GObjects、部件、接口、装箱类型、普通结构体)"
-#: C/index-in.docbook:9065
+#: C/index-in.docbook:9021
msgid "functions"
msgstr "函数"
-#: C/index-in.docbook:9066
+#: C/index-in.docbook:9022
msgid "enums"
msgstr "枚举"
-#: C/index-in.docbook:9067
+#: C/index-in.docbook:9023
msgid "signals"
msgstr "信号"
-#: C/index-in.docbook:9068
+#: C/index-in.docbook:9024
msgid "properties"
msgstr "属性"
-#: C/index-in.docbook:9069
+#: C/index-in.docbook:9025
msgid "vfuncs"
msgstr "虚函数(vfuncs)"
-#: C/index-in.docbook:9061
+#: C/index-in.docbook:9017
msgid ""
"The <filename>.defs</filename> files are text files, in a lisp format, that "
"describe the API of a C library, including its <_:itemizedlist-1/>"
@@ -15563,47 +15541,47 @@ msgstr ""
"<filename>.defs</filename>是一种使用lisp格式的文本文件,它描述了C库的API,其"
"中包括了以下内容:<_:itemizedlist-1/>"
-#: C/index-in.docbook:9078
+#: C/index-in.docbook:9034
msgid "<filename>gtk.defs</filename>"
msgstr "<filename>gtk.defs</filename>"
-#: C/index-in.docbook:9079
+#: C/index-in.docbook:9035
msgid "Includes the other files."
msgstr "包含其他文件。"
-#: C/index-in.docbook:9082
+#: C/index-in.docbook:9038
msgid "<filename>gtk_methods.defs</filename>"
msgstr "<filename>gtk_methods.defs</filename>"
-#: C/index-in.docbook:9083
+#: C/index-in.docbook:9039
msgid "Objects and functions."
msgstr "对象和函数。"
-#: C/index-in.docbook:9086
+#: C/index-in.docbook:9042
msgid "<filename>gtk_enums.defs</filename>"
msgstr "<filename>gtk_enums.defs</filename>"
-#: C/index-in.docbook:9087
+#: C/index-in.docbook:9043
msgid "Enumerations."
msgstr "枚举。"
-#: C/index-in.docbook:9090
+#: C/index-in.docbook:9046
msgid "<filename>gtk_signals.defs</filename>"
msgstr "<filename>gtk_signals.defs</filename>"
-#: C/index-in.docbook:9091
+#: C/index-in.docbook:9047
msgid "Signals and properties."
msgstr "信号和属性。"
-#: C/index-in.docbook:9094
+#: C/index-in.docbook:9050
msgid "<filename>gtk_vfuncs.defs</filename>"
msgstr "<filename>gtk_vfuncs.defs</filename>"
-#: C/index-in.docbook:9095
+#: C/index-in.docbook:9051
msgid "vfuncs (function pointer member fields in structs), written by hand."
msgstr "虚函数(结构体中的函数指针字段),手动编写。"
-#: C/index-in.docbook:9072
+#: C/index-in.docbook:9028
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. "
@@ -15615,7 +15593,7 @@ msgstr ""
"我们将它们拆分为单独的文件,例如在gtkmm源的<filename>gtk/src</filename>目录中"
"你将看到以下文件:<_:variablelist-1/>"
-#: C/index-in.docbook:9099
+#: C/index-in.docbook:9055
msgid ""
"The <filename>skeletonmm/tools/generate_defs_and_docs.sh</filename> script "
"generates all <filename>.defs</filename> files and the <filename>*_docs.xml</"
@@ -15626,82 +15604,79 @@ msgstr ""
"些<filename>.defs</filename>以及<filename>*_docs.xml</filename>文件,如该小节"
"的<link linkend=\"sec-wrapping-documentation\">文档</link>所述。"
-#: C/index-in.docbook:9105
+#: C/index-in.docbook:9061
msgid "Generating the methods .defs"
msgstr "生成_methods.defs文件"
-#: C/index-in.docbook:9109
-#, no-wrap
-msgid ""
-"\n"
-"$ ./h2def.py /usr/include/gtk-4.0/gtk/*.h > gtk_methods.defs\n"
-msgstr ""
-"\n"
-"$ ./h2def.py /usr/include/gtk-4.0/gtk/*.h > gtk_methods.defs\n"
-
-#: C/index-in.docbook:9106
+#: C/index-in.docbook:9062
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 "
-"in glibmm's <filename>tools/defs_gen</filename> directory. For instance, <_:"
-"programlisting-1/>"
+"in glibmm's <filename>tools/defs_gen</filename> directory. For instance,"
msgstr ""
"这个<filename>.defs</filename>文件描述了对象及其函数。它是由<command>h2def."
"py</command>脚本生成的,你可以在glibmm的<filename>tools/defs_gen</filename>文"
-"件夹中找到该脚本。例如:<_:programlisting-1/>"
+"件夹中找到该脚本。例如:"
-#: C/index-in.docbook:9116
-msgid "Generating the enums .defs"
-msgstr "生成_enums.defs文件"
-
-#: C/index-in.docbook:9120
+#: C/index-in.docbook:9066
#, no-wrap
msgid ""
"\n"
-"$ ./enum.pl /usr/include/gtk-4.0/gtk/*.h > gtk_enums.defs\n"
+"$ ./h2def.py /usr/include/gtk-4.0/gtk/*.h > gtk_methods.defs\n"
msgstr ""
"\n"
-"$ ./enum.pl /usr/include/gtk-4.0/gtk/*.h > gtk_enums.defs\n"
+"$ ./h2def.py /usr/include/gtk-4.0/gtk/*.h > gtk_methods.defs\n"
+
+#: C/index-in.docbook:9072
+msgid "Generating the enums .defs"
+msgstr "生成_enums.defs文件"
-#: C/index-in.docbook:9117
+#: C/index-in.docbook:9073
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 "
-"can find in glibmm's <filename>tools</filename> directory. For instance, <_:"
-"programlisting-1/>"
+"can find in glibmm's <filename>tools</filename> directory. For instance,"
msgstr ""
"这个<filename>.defs</filename>文件描述了枚举类型及其可能的值。它是由"
"<filename>enum.pl</filename>脚本生成的,你可以在glibmm的<filename>tools</"
-"filename>文件夹中找到该脚本。例如:<_:programlisting-1/>"
+"filename>文件夹中找到该脚本。例如:"
-#: C/index-in.docbook:9127
-msgid "Generating the signals and properties .defs"
-msgstr "生成_signals.defs文件"
-
-#: C/index-in.docbook:9132
+#: C/index-in.docbook:9077
#, no-wrap
msgid ""
"\n"
-"$ cd tools/extra_defs_gen\n"
-"$ ./generate_extra_defs > gtk_signals.defs\n"
+"$ ./enum.pl /usr/include/gtk-4.0/gtk/*.h > gtk_enums.defs\n"
msgstr ""
"\n"
-"$ cd tools/extra_defs_gen\n"
-"$ ./generate_extra_defs > gtk_signals.defs\n"
+"$ ./enum.pl /usr/include/gtk-4.0/gtk/*.h > gtk_enums.defs\n"
+
+#: C/index-in.docbook:9083
+msgid "Generating the signals and properties .defs"
+msgstr "生成_signals.defs文件"
-#: C/index-in.docbook:9128
+#: C/index-in.docbook:9084
msgid ""
"This <filename>.defs</filename> file describes signals and properties. It is "
"generated by the special <filename>generate_extra_defs</filename> utility "
"that is in every wrapping project, such as <filename>gtkmm/tools/"
-"extra_defs_gen/</filename>. For instance <_:programlisting-1/>"
+"extra_defs_gen/</filename>. For instance"
msgstr ""
"这个<filename>.defs</filename>文件描述了信号和属性。它是由封装项目自有的"
"<filename>generate_extra_defs</filename>实用程序生成的,你可以在类似于"
-"<filename>gtkmm/tools/extra_defs_gen/</filename>的目录下找到它。例如:<_:"
-"programlisting-1/>"
+"<filename>gtkmm/tools/extra_defs_gen/</filename>的目录下找到它。例如:"
-#: C/index-in.docbook:9137
+#: C/index-in.docbook:9089
+#, no-wrap
+msgid ""
+"\n"
+"$ cd tools/extra_defs_gen\n"
+"$ ./generate_extra_defs > gtk_signals.defs\n"
+msgstr ""
+"\n"
+"$ cd tools/extra_defs_gen\n"
+"$ ./generate_extra_defs > gtk_signals.defs\n"
+
+#: C/index-in.docbook:9093
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 "
@@ -15718,7 +15693,15 @@ msgstr ""
"filename>。你需要将文件重命名为正确的文件名(按前一小节所述),然后在"
"<filename>tools/extra_defs_gen/meson.build</filename>文件中提到新的源文件名。"
-#: C/index-in.docbook:9146
+#: C/index-in.docbook:9100
+msgid ""
+"Then edit the <filename>.cc</filename> file to specify the correct types. "
+"For instance, your <function>main()</function> function might look like this:"
+msgstr ""
+"然后编辑<filename>.cc</filename>以指定正确的类型。例如,你的"
+"<function>main()</function>函数可能如下所示:"
+
+#: C/index-in.docbook:9103
#, no-wrap
msgid ""
"\n"
@@ -15749,20 +15732,11 @@ msgstr ""
" return 0;\n"
"}\n"
-#: C/index-in.docbook:9144
-msgid ""
-"Then edit the <filename>.cc</filename> file to specify the correct types. "
-"For instance, your <function>main()</function> function might look like "
-"this: <_:programlisting-1/>"
-msgstr ""
-"然后编辑<filename>.cc</filename>以指定正确的类型。例如,你的"
-"<function>main()</function>函数可能如下所示:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9164
+#: C/index-in.docbook:9120
msgid "Writing the vfuncs .defs"
msgstr "编写_vfunc.defs文件"
-#: C/index-in.docbook:9165
+#: C/index-in.docbook:9121
msgid ""
"This <filename>.defs</filename> file describes virtual functions (vfuncs). "
"It must be written by hand. There is the skeleton file <filename>skeleton/"
@@ -15775,11 +15749,11 @@ msgstr ""
"以从<application>gtkmm</application>的<filename>gtk/src/gtk_vfuncs.defs</"
"filename>文件开始。"
-#: C/index-in.docbook:9176
+#: C/index-in.docbook:9132
msgid "The .hg and .ccg files"
msgstr ".hg和.ccg文件"
-#: C/index-in.docbook:9177
+#: C/index-in.docbook:9133
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()</"
@@ -15793,23 +15767,34 @@ msgstr ""
"<command>gmmproc</command>会使用这些宏在头文件中的相同位置生成合适的C++源代"
"码。而所有其他的C++源代码会按原样复制到相应的.h或.cc文件中。"
-#: C/index-in.docbook:9190
+#: C/index-in.docbook:9141
+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, "
+"<application>gtkmm</application>'s <filename>button.hg</filename> looks "
+"roughly like this:"
+msgstr ""
+".hg文件通常包含了一些头文件和声明一个类,并使用一些宏向类中添加API或行为。例"
+"如,<application>gtkmm</application>的<filename>button.hg</filename>文件看起"
+"来大概这样:"
+
+#: C/index-in.docbook:9146
#, no-wrap
msgid ""
"\n"
-"#include <gtkmm/bin.h>\n"
+"#include <gtkmm/widget.h>\n"
"#include <gtkmm/actionable.h>\n"
"_DEFS(gtkmm,gtk)\n"
-"_PINCLUDE(gtkmm/private/bin_p.h)\n"
+"_PINCLUDE(gtkmm/private/widget_p.h)\n"
"\n"
"namespace Gtk\n"
"{\n"
"\n"
"class Button\n"
-" : public Bin,\n"
+" : public Widget,\n"
" public Actionable\n"
"{\n"
-" _CLASS_GTKOBJECT(Button,GtkButton,GTK_BUTTON,Gtk::Bin,GtkBin)\n"
+" _CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Widget, GtkWidget)\n"
" _IMPLEMENTS_INTERFACE(Actionable)\n"
"public:\n"
"\n"
@@ -15830,19 +15815,19 @@ msgid ""
"} // namespace Gtk\n"
msgstr ""
"\n"
-"#include <gtkmm/bin.h>\n"
+"#include <gtkmm/widget.h>\n"
"#include <gtkmm/actionable.h>\n"
"_DEFS(gtkmm,gtk)\n"
-"_PINCLUDE(gtkmm/private/bin_p.h)\n"
+"_PINCLUDE(gtkmm/private/widget_p.h)\n"
"\n"
"namespace Gtk\n"
"{\n"
"\n"
"class Button\n"
-" : public Bin,\n"
+" : public Widget,\n"
" public Actionable\n"
"{\n"
-" _CLASS_GTKOBJECT(Button,GtkButton,GTK_BUTTON,Gtk::Bin,GtkBin)\n"
+" _CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Widget, GtkWidget)\n"
" _IMPLEMENTS_INTERFACE(Actionable)\n"
"public:\n"
"\n"
@@ -15862,22 +15847,11 @@ msgstr ""
"\n"
"} // namespace Gtk\n"
-#: C/index-in.docbook:9185
-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, "
-"<application>gtkmm</application>'s <filename>button.hg</filename> looks "
-"roughly like this: <_:programlisting-1/>"
-msgstr ""
-".hg文件通常包含了一些头文件和声明一个类,并使用一些宏向类中添加API或行为。例"
-"如,<application>gtkmm</application>的<filename>button.hg</filename>文件看起"
-"来大概这样:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9227
+#: C/index-in.docbook:9182
msgid "<function>_DEFS()</function>"
msgstr "<function>_DEFS()</function>"
-#: C/index-in.docbook:9228
+#: C/index-in.docbook:9183
msgid ""
"Specifies the destination directory for generated sources, and the name of "
"the main .defs file that <command>gmmproc</command> should parse."
@@ -15885,11 +15859,11 @@ msgstr ""
"指定所生成源代码的目标目录,以及<command>gmmproc</command>应该解析的主要.defs"
"文件的名称。"
-#: C/index-in.docbook:9231
+#: C/index-in.docbook:9186
msgid "<function>_PINCLUDE()</function>"
msgstr "<function>_PINCLUDE()</function>"
-#: C/index-in.docbook:9232
+#: C/index-in.docbook:9187
msgid ""
"Tells <command>gmmproc</command> to include a header in the generated "
"<filename>private/button_p.h</filename> file."
@@ -15897,11 +15871,11 @@ msgstr ""
"告诉<command>gmmproc</command>在生成的文件中包含<filename>private/button_p."
"h</filename>头文件。"
-#: C/index-in.docbook:9235
+#: C/index-in.docbook:9190
msgid "<function>_CLASS_GTKOBJECT()</function>"
msgstr "<function>_CLASS_GTKOBJECT()</function>"
-#: C/index-in.docbook:9236
+#: C/index-in.docbook:9191
msgid ""
"Tells <command>gmmproc</command> to add some typedefs, constructors, and "
"standard methods to this class, as appropriate when wrapping a widget."
@@ -15909,25 +15883,25 @@ msgstr ""
"告诉<command>gmmproc</command>在封装部件类时在类中添加一些类型定义(typedef)、"
"构造函数、标准方法。"
-#: C/index-in.docbook:9239
+#: C/index-in.docbook:9194
msgid "<function>_IMPLEMENTS_INTERFACE()</function>"
msgstr "<function>_IMPLEMENTS_INTERFACE()</function>"
-#: C/index-in.docbook:9240
+#: C/index-in.docbook:9195
msgid ""
"Tells <command>gmmproc</command> to add initialization code for the "
"interface."
msgstr "告诉<command>gmmproc</command>为接口添加初始化代码。"
-#: C/index-in.docbook:9243
+#: C/index-in.docbook:9198
msgid "<function>_CTOR_DEFAULT</function>"
msgstr "<function>_CTOR_DEFAULT</function>"
-#: C/index-in.docbook:9244
+#: C/index-in.docbook:9199
msgid "Adds a default constructor."
msgstr "添加默认构造函数。"
-#: C/index-in.docbook:9247
+#: C/index-in.docbook:9202
msgid ""
"<function>_WRAP_METHOD()</function>, <function>_WRAP_SIGNAL()</function>, "
"and <function>_WRAP_PROPERTY()</function>"
@@ -15935,15 +15909,24 @@ msgstr ""
"<function>_WRAP_METHOD()</function>、<function>_WRAP_SIGNAL()</function>和"
"<function>_WRAP_PROPERTY()</function>"
-#: C/index-in.docbook:9250
+#: C/index-in.docbook:9205
msgid "Add methods to wrap parts of the C API."
msgstr "添加用于封装C API的一部分的方法。"
-#: C/index-in.docbook:9224
+#: C/index-in.docbook:9179
msgid "The macros in this example do the following: <_:variablelist-1/>"
msgstr "本示例中的宏执行下述操作:<_:variablelist-1/>"
-#: C/index-in.docbook:9257
+#: C/index-in.docbook:9209
+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 "
+"automatically when using the above build structure:"
+msgstr ""
+"通过这样使用<command>gmmproc</command>处理.hg和.ccg文件,可以从.hg和.ccg文件"
+"生成.h和.cc文件,尽管这在使用上述的构建结构时会自动进行:"
+
+#: C/index-in.docbook:9213
#, no-wrap
msgid ""
"\n"
@@ -15954,17 +15937,7 @@ msgstr ""
"$ cd gtk/src\n"
"$ /usr/lib/glibmm-2.68/proc/gmmproc -I ../../tools/m4 --defs . button . ./../gtkmm\n"
-#: C/index-in.docbook:9254
-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 "
-"automatically when using the above build structure: <_:programlisting-1/>"
-msgstr ""
-"通过这样使用<command>gmmproc</command>处理.hg和.ccg文件,可以从.hg和.ccg文件"
-"生成.h和.cc文件,尽管这在使用上述的构建结构时会自动进行:<_:programlisting-1/"
-">"
-
-#: C/index-in.docbook:9262
+#: C/index-in.docbook:9217
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 "
@@ -15973,7 +15946,7 @@ msgstr ""
"请注意我们为<command>gmmproc</command>提供了.m4转换文件、.defs文件路径、.hg文"
"件名、源代码目录、目标目录。"
-#: C/index-in.docbook:9265
+#: C/index-in.docbook:9220
msgid ""
"You should avoid including the C header from your C++ header, to avoid "
"polluting the global namespace, and to avoid exporting unnecessary public "
@@ -15983,24 +15956,15 @@ msgstr ""
"你应该避免在C++头文件中包含C头文件,以免污染全局名称空间,以免导出不必要的公"
"共API。但是你需要在你的.ccg文件中包含必要的C头文件。"
-#: C/index-in.docbook:9270
+#: C/index-in.docbook:9225
msgid "The macros are explained in more detail in the following sections."
msgstr "以下各节将对宏进行详细说明。"
-#: C/index-in.docbook:9273
+#: C/index-in.docbook:9228
msgid "m4 Conversions"
msgstr "m4转换"
-#: C/index-in.docbook:9281
-#, no-wrap
-msgid ""
-"\n"
-"_CONVERSION(`GtkTreeView*',`TreeView*',`Glib::wrap($3)')\n"
-msgstr ""
-"\n"
-"_CONVERSION(`GtkTreeView*',`TreeView*',`Glib::wrap($3)')\n"
-
-#: C/index-in.docbook:9274
+#: C/index-in.docbook:9229
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. <command>gmmproc</command> "
@@ -16009,16 +15973,25 @@ msgid ""
"function in the implementation of your C++ method, passing the appropriate "
"parameters to that C functon. For instance, this tells <command>gmmproc</"
"command> how to convert a <classname>GtkTreeView</classname> pointer to a "
-"<classname>Gtk::TreeView</classname> pointer: <_:programlisting-1/>"
+"<classname>Gtk::TreeView</classname> pointer:"
msgstr ""
"在.hg和.ccg文件中使用的宏通常需要知道如何将C++类型转换为C类型,反之亦然。"
"<command>gmmproc</command>会从你的<literal>tools/m4/</literal>或"
"<literal>codegen/m4/</literal>目录的.m4文件读取此信息。这样它就可以在C++方法"
"的实现中调用C函数,并将适当的参数传递给该C函数。例如:这告诉"
"<command>gmmproc</command>如何将<classname>GtkTreeView</classname>指针转换为"
-"<classname>Gtk::TreeView</classname>指针:<_:programlisting-1/>"
+"<classname>Gtk::TreeView</classname>指针:"
-#: C/index-in.docbook:9286
+#: C/index-in.docbook:9237
+#, no-wrap
+msgid ""
+"\n"
+"_CONVERSION(`GtkTreeView*',`TreeView*',`Glib::wrap($3)')\n"
+msgstr ""
+"\n"
+"_CONVERSION(`GtkTreeView*',`TreeView*',`Glib::wrap($3)')\n"
+
+#: C/index-in.docbook:9241
msgid ""
"<literal>$3</literal> will be replaced by the parameter name when this "
"conversion is used by <command>gmmproc</command>."
@@ -16026,7 +15999,15 @@ msgstr ""
"当此转换被<command>gmmproc</command>使用时,<literal>$3</literal>将会被参数名"
"称替换。"
-#: C/index-in.docbook:9293
+#: C/index-in.docbook:9245
+msgid ""
+"Some extra macros make this easier and consistent. Look in "
+"<application>gtkmm</application>'s .m4 files for examples. For instance:"
+msgstr ""
+"使用一些额外的宏可以使其变得更简单和一致。例如<application>gtkmm</"
+"application>中的.m4文件:"
+
+#: C/index-in.docbook:9249
#, no-wrap
msgid ""
"\n"
@@ -16039,20 +16020,11 @@ msgstr ""
"_CONVERSION(`const PrintSettings&',`GtkPrintSettings*',__FCR2P)\n"
"_CONVERSION(`const Glib::RefPtr<Printer>&',`GtkPrinter*',__CONVERT_REFPTR_TO_P($3))\n"
-#: C/index-in.docbook:9290
-msgid ""
-"Some extra macros make this easier and consistent. Look in "
-"<application>gtkmm</application>'s .m4 files for examples. For instance: <_:"
-"programlisting-1/>"
-msgstr ""
-"使用一些额外的宏可以使其变得更简单和一致。例如<application>gtkmm</"
-"application>中的.m4文件:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9302
+#: C/index-in.docbook:9257
msgid "m4 Initializations"
msgstr "安装m4"
-#: C/index-in.docbook:9303
+#: C/index-in.docbook:9258
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 "
@@ -16067,28 +16039,28 @@ msgstr ""
"<command>gmmproc</command>支持此功能,但是必须使用适当的初始化宏来告诉"
"<command>gmmproc</command>如何从C函数的返回值初始化C++参数。"
-#: C/index-in.docbook:9318
-#, no-wrap
-msgid ""
-"\n"
-"_INITIALIZATION(`Gtk::Widget&',`GtkWidget*',`$3 = Glib::wrap($4)')\n"
-msgstr ""
-"\n"
-"_INITIALIZATION(`Gtk::Widget&',`GtkWidget*',`$3 = Glib::wrap($4)')\n"
-
-#: C/index-in.docbook:9312
+#: C/index-in.docbook:9267
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 "
"widget, it was desirable to have the C++ method place the widget in a "
"specified output parameter, an initialization macro such as the following "
-"would be necessary: <_:programlisting-1/>"
+"would be necessary:"
msgstr ""
"例如,如果一个C函数返回了一个<type>GtkWidget*</type>,并且由于某种原因,不想"
"让C++方法返回此部件,而是希望C++方法将此部件放入指定的输出参数中,则如下所示"
-"的初始化宏是必须的:<_:programlisting-1/>"
+"的初始化宏是必须的:"
-#: C/index-in.docbook:9323
+#: C/index-in.docbook:9274
+#, no-wrap
+msgid ""
+"\n"
+"_INITIALIZATION(`Gtk::Widget&',`GtkWidget*',`$3 = Glib::wrap($4)')\n"
+msgstr ""
+"\n"
+"_INITIALIZATION(`Gtk::Widget&',`GtkWidget*',`$3 = Glib::wrap($4)')\n"
+
+#: C/index-in.docbook:9278
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 "
@@ -16102,11 +16074,11 @@ msgstr ""
"<literal>$1</literal>也将被不带<literal>&</literal>符的C++类型替换,而"
"<literal>$2</literal>将被替换为C类型。"
-#: C/index-in.docbook:9334
+#: C/index-in.docbook:9289
msgid "Class macros"
msgstr "类宏"
-#: C/index-in.docbook:9335
+#: C/index-in.docbook:9290
msgid ""
"The class macro declares the class itself and its relationship with the "
"underlying C type. It generates some internal constructors, the member "
@@ -16119,7 +16091,7 @@ msgstr ""
"function>访问器、<function>Glib::wrap()</function>成员函数、并进行类型注册"
"等。"
-#: C/index-in.docbook:9340
+#: C/index-in.docbook:9295
msgid ""
"Other macros, such as <function>_WRAP_METHOD()</function> and "
"<function>_WRAP_SIGNAL()</function> may only be used after a call to a "
@@ -16128,11 +16100,11 @@ msgstr ""
"其他像<function>_WRAP_METHOD()</function>和<function>_WRAP_SIGNAL()</"
"function>这样的宏只能在调用<function>_CLASS_*</function>宏之后使用。"
-#: C/index-in.docbook:9345
+#: C/index-in.docbook:9300
msgid "_CLASS_GOBJECT"
msgstr "_CLASS_GOBJECT"
-#: C/index-in.docbook:9346
+#: C/index-in.docbook:9301
msgid ""
"This macro declares a wrapper for a type that is derived from "
"<classname>GObject</classname>, but whose wrapper is not derived from "
@@ -16141,33 +16113,31 @@ msgstr ""
"这个宏为从<classname>GObject</classname>派生的类型声明了一个类型包装器,但是"
"此包装器并不会派生自<classname>Gtk::Object</classname>。"
-#: C/index-in.docbook:9349
+#: C/index-in.docbook:9304
msgid ""
"<function>_CLASS_GOBJECT( C++ class, C class, C casting macro, C++ base "
"class, C base class )</function>"
msgstr ""
"<function>_CLASS_GOBJECT( C++类, C类, C转换宏, C++基类, C基类 )</function>"
-#: C/index-in.docbook:9351
+#: C/index-in.docbook:9305
+msgid "For instance, from <filename>adjustment.hg</filename>:"
+msgstr "示例来自于<filename>entry.hg</filename>:"
+
+#: C/index-in.docbook:9306
#, no-wrap
msgid ""
"\n"
-"_CLASS_GOBJECT(AccelGroup, GtkAccelGroup, GTK_ACCEL_GROUP, Glib::Object, GObject)\n"
+"_CLASS_GOBJECT(Adjustment, GtkAdjustment, GTK_ADJUSTMENT, Glib::Object, GObject)\n"
msgstr ""
"\n"
-"_CLASS_GOBJECT(AccelGroup, GtkAccelGroup, GTK_ACCEL_GROUP, Glib::Object, GObject)\n"
+"_CLASS_GOBJECT(Adjustment, GtkAdjustment, GTK_ADJUSTMENT, Glib::Object, GObject)\n"
-#: C/index-in.docbook:9350
-msgid ""
-"For instance, from <filename>accelgroup.hg</filename>: <_:programlisting-1/>"
-msgstr ""
-"来自<filename>accelgroup.hg</filename>文件中的例子:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9358
+#: C/index-in.docbook:9312
msgid "_CLASS_GTKOBJECT"
msgstr "_CLASS_GTKOBJECT"
-#: C/index-in.docbook:9359
+#: C/index-in.docbook:9313
msgid ""
"This macro declares a wrapper for a type whose wrapper is derived from "
"<classname>Gtk::Object</classname>, such as a widget or dialog."
@@ -16175,28 +16145,27 @@ msgstr ""
"这个宏为类型声明了一个类型派生包装器,此包装器将派生自<classname>Gtk::"
"Object</classname>,例如部件(Widget)和对话框(Dialog)。"
-#: C/index-in.docbook:9361
+#: C/index-in.docbook:9315
msgid ""
"<function>_CLASS_GTKOBJECT( C++ class, C class, C casting macro, C++ base "
"class, C base class )</function>"
msgstr ""
"<function>_CLASS_GTKOBJECT( C++类, C类, C转换宏, C++基类, C基类 )</function>"
-#: C/index-in.docbook:9363
+#: C/index-in.docbook:9316 C/index-in.docbook:9790 C/index-in.docbook:9894
+msgid "For instance, from <filename>button.hg</filename>:"
+msgstr "来自<filename>button.hg</filename>文件中的例子:"
+
+#: C/index-in.docbook:9317
#, no-wrap
msgid ""
"\n"
-"_CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Bin, GtkBin)\n"
+"_CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Widget, GtkWidget)\n"
msgstr ""
"\n"
-"_CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Bin, GtkBin)\n"
-
-#: C/index-in.docbook:9362 C/index-in.docbook:9847 C/index-in.docbook:9952
-msgid ""
-"For instance, from <filename>button.hg</filename>: <_:programlisting-1/>"
-msgstr "来自<filename>button.hg</filename>文件中的例子:<_:programlisting-1/>"
+"_CLASS_GTKOBJECT(Button, GtkButton, GTK_BUTTON, Gtk::Widget, GtkWidget)\n"
-#: C/index-in.docbook:9367
+#: C/index-in.docbook:9320
msgid ""
"You will typically use this macro when the class already derives from "
"<classname>Gtk::Object</classname>. For instance, you will use it when "
@@ -16207,7 +16176,7 @@ msgstr ""
"将在封装GTK部件时使用它,因为<classname>Gtk::Widget</classname>派生自"
"<classname>Gtk::Object</classname>。"
-#: C/index-in.docbook:9371
+#: C/index-in.docbook:9324
msgid ""
"You might also derive non-widget classes from <classname>Gtk::Object</"
"classname> so they can be used without <classname>Glib::RefPtr</classname>. "
@@ -16222,11 +16191,11 @@ msgstr ""
"化。这样你可以自行决定是否对它们使用引用计数。我们认为对部件使用引用计数很有"
"用。"
-#: C/index-in.docbook:9381
+#: C/index-in.docbook:9334
msgid "_CLASS_BOXEDTYPE"
msgstr "_CLASS_BOXEDTYPE"
-#: C/index-in.docbook:9382
+#: C/index-in.docbook:9335
msgid ""
"This macro declares a wrapper for a non-<classname>GObject</classname> "
"struct, registered with <function>g_boxed_type_register_static()</function>."
@@ -16234,7 +16203,7 @@ msgstr ""
"这个宏声明了一个非<classname>GObject</classname>结构体类型的包装器,并使用"
"<function>g_boxed_type_register_static()</function>对该类型进行注册。"
-#: C/index-in.docbook:9385
+#: C/index-in.docbook:9338
msgid ""
"<function>_CLASS_BOXEDTYPE( C++ class, C class, new function, copy function, "
"free function )</function>"
@@ -16242,7 +16211,11 @@ msgstr ""
"<function>_CLASS_BOXEDTYPE( C++类, C类, new函数, copy函数, free函数 )</"
"function>"
-#: C/index-in.docbook:9387
+#: C/index-in.docbook:9339
+msgid "For instance, from <classname>Gdk::RGBA</classname>:"
+msgstr "示例来自<classname>Gdk::RGBA</classname>:"
+
+#: C/index-in.docbook:9340
#, no-wrap
msgid ""
"\n"
@@ -16251,16 +16224,11 @@ msgstr ""
"\n"
"_CLASS_BOXEDTYPE(RGBA, GdkRGBA, NONE, gdk_rgba_copy, gdk_rgba_free)\n"
-#: C/index-in.docbook:9386
-msgid ""
-"For instance, from <classname>Gdk::RGBA</classname>: <_:programlisting-1/>"
-msgstr "示例来自<classname>Gdk::RGBA</classname>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9394
+#: C/index-in.docbook:9346
msgid "_CLASS_BOXEDTYPE_STATIC"
msgstr "_CLASS_BOXEDTYPE_STATIC"
-#: C/index-in.docbook:9395
+#: C/index-in.docbook:9347
msgid ""
"This macro declares a wrapper for a simple assignable struct such as "
"<classname>GdkRectangle</classname>. It is similar to "
@@ -16271,11 +16239,15 @@ msgstr ""
"一个包装器。它和<function>_CLASS_BOXEDTYPE</function>类似,不过其包装的C结构"
"体不是动态分配的。"
-#: C/index-in.docbook:9399
+#: C/index-in.docbook:9351
msgid "<function>_CLASS_BOXEDTYPE_STATIC( C++ class, C class )</function>"
msgstr "<function>_CLASS_BOXEDTYPE_STATIC( C++类, C类 )</function>"
-#: C/index-in.docbook:9401
+#: C/index-in.docbook:9352
+msgid "For instance, for <classname>Gdk::Rectangle</classname>:"
+msgstr "示例来自<classname>Gdk::Rectangle</classname>:"
+
+#: C/index-in.docbook:9353
#, no-wrap
msgid ""
"\n"
@@ -16284,17 +16256,11 @@ msgstr ""
"\n"
"_CLASS_BOXEDTYPE_STATIC(Rectangle, GdkRectangle)\n"
-#: C/index-in.docbook:9400
-msgid ""
-"For instance, for <classname>Gdk::Rectangle</classname>: <_:programlisting-1/"
-">"
-msgstr "示例来自<classname>Gdk::Rectangle</classname>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9408
+#: C/index-in.docbook:9359
msgid "_CLASS_OPAQUE_COPYABLE"
msgstr "_CLASS_OPAQUE_COPYABLE"
-#: C/index-in.docbook:9409
+#: C/index-in.docbook:9360
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 "
@@ -16303,7 +16269,7 @@ msgstr ""
"这个宏为具有复制和释放函数的不透明结构体声明了一个包装器。新建(new)、复制"
"(copy)、释放(free)函数将用于实例化默认构造函数、复制构造函数、析构函数。"
-#: C/index-in.docbook:9412
+#: C/index-in.docbook:9363
msgid ""
"<function>_CLASS_OPAQUE_COPYABLE( C++ class, C class, new function, copy "
"function, free function )</function>"
@@ -16311,26 +16277,24 @@ msgstr ""
"<function>_CLASS_OPAQUE_COPYABLE( C++类, C类, new函数, copy函数, free函数 )</"
"function>"
-#: C/index-in.docbook:9414
+#: C/index-in.docbook:9364
+msgid "For instance, from <classname>Glib::VariantType</classname>:"
+msgstr "示例来自<classname>Glib::Checksum</classname>:"
+
+#: C/index-in.docbook:9365
#, no-wrap
msgid ""
"\n"
-"_CLASS_OPAQUE_COPYABLE(Checksum, GChecksum, NONE, g_checksum_copy, g_checksum_free)\n"
+"_CLASS_OPAQUE_COPYABLE(VariantType, GVariantType, NONE, g_variant_type_copy, g_variant_type_free)\n"
msgstr ""
"\n"
-"_CLASS_OPAQUE_COPYABLE(Checksum, GChecksum, NONE, g_checksum_copy, g_checksum_free)\n"
-
-#: C/index-in.docbook:9413
-msgid ""
-"For instance, from <classname>Glib::Checksum</classname>: <_:"
-"programlisting-1/>"
-msgstr "示例来自<classname>Glib::Checksum</classname>:<_:programlisting-1/>"
+"_CLASS_OPAQUE_COPYABLE(VariantType, GVariantType, NONE, g_variant_type_copy, g_variant_type_free)\n"
-#: C/index-in.docbook:9421
+#: C/index-in.docbook:9371
msgid "_CLASS_OPAQUE_REFCOUNTED"
msgstr "_CLASS_OPAQUE_REFCOUNTED"
-#: C/index-in.docbook:9422
+#: C/index-in.docbook:9372
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 "
@@ -16339,7 +16303,7 @@ msgstr ""
"这个宏为使用引用计数的不透明结构体声明了一个包装器。C++包装器将不能直接实例"
"化,需要与<classname>Glib::RefPtr</classname>一起使用。"
-#: C/index-in.docbook:9425
+#: C/index-in.docbook:9375
msgid ""
"<function>_CLASS_OPAQUE_REFCOUNTED( C++ class, C class, new function, ref "
"function, unref function )</function>"
@@ -16347,62 +16311,58 @@ msgstr ""
"<function>_CLASS_OPAQUE_REFCOUNTED( C++函数, C函数, new函数, ref函数, unref函"
"数 )</function>"
-#: C/index-in.docbook:9427
+#: C/index-in.docbook:9376
+msgid "For instance, for <classname>Gtk::CssSection</classname>:"
+msgstr "示例来自<classname>Gdk::Rectangle</classname>:"
+
+#: C/index-in.docbook:9377
#, no-wrap
msgid ""
"\n"
-"_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref,
pango_coverage_unref)\n"
+"_CLASS_OPAQUE_REFCOUNTED(CssSection, GtkCssSection, NONE, gtk_css_section_ref, gtk_css_section_unref)\n"
msgstr ""
"\n"
-"_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref,
pango_coverage_unref)\n"
+"_CLASS_OPAQUE_REFCOUNTED(CssSection, GtkCssSection, NONE, gtk_css_section_ref, gtk_css_section_unref)\n"
-#: C/index-in.docbook:9426
-msgid ""
-"For instance, for <classname>Pango::Coverage</classname>: <_:"
-"programlisting-1/>"
-msgstr "示例来自<classname>Pango::Coverage</classname>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9434
+#: C/index-in.docbook:9383
msgid "_CLASS_GENERIC"
msgstr "_CLASS_GENERIC"
-#: C/index-in.docbook:9435
+#: C/index-in.docbook:9384
msgid ""
"This macro can be used to wrap structs which don't fit into any specialized "
"category."
msgstr "这个宏用于包装任何不属于专用包装宏的结构体。"
-#: C/index-in.docbook:9437
+#: C/index-in.docbook:9386
msgid "<function>_CLASS_GENERIC( C++ class, C class )</function>"
msgstr "<function>_CLASS_GENERIC( C++类, C类 )</function>"
-#: C/index-in.docbook:9439
+#: C/index-in.docbook:9387
+msgid "For instance, for <classname>Gdk::TimeCoord</classname>:"
+msgstr "示例来自<classname>Gdk::Rectangle</classname>:"
+
+#: C/index-in.docbook:9388
#, no-wrap
msgid ""
"\n"
-"_CLASS_GENERIC(AttrIter, PangoAttrIterator)\n"
+"_CLASS_GENERIC(TimeCoord, GdkTimeCoord)\n"
msgstr ""
"\n"
-"_CLASS_GENERIC(AttrIter, PangoAttrIterator)\n"
+"_CLASS_GENERIC(TimeCoord, GdkTimeCoord)\n"
-#: C/index-in.docbook:9438
-msgid ""
-"For instance, for <classname>Pango::AttrIter</classname>: <_:"
-"programlisting-1/>"
-msgstr "示例来自<classname>Pango::AttrIter</classname>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9446
+#: C/index-in.docbook:9394
msgid "_CLASS_INTERFACE"
msgstr "_CLASS_INTERFACE"
-#: C/index-in.docbook:9447
+#: C/index-in.docbook:9395
msgid ""
"This macro declares a wrapper for a type that is derived from "
"<classname>GTypeInterface</classname>."
msgstr ""
"这个宏为派生自<classname>GTypeInterface</classname>的类型声明了一个包装器。"
-#: C/index-in.docbook:9450
+#: C/index-in.docbook:9398
msgid ""
"<function>_CLASS_INTERFACE( C++ class, C class, C casting macro, C interface "
"struct, Base C++ class (optional), Base C class (optional) )</function>"
@@ -16410,7 +16370,11 @@ msgstr ""
"<function>_CLASS_INTERFACE( C++类, C类, C转换宏, C接口结构体, C++基类(可选"
"的), C基类(可选的) )</function>"
-#: C/index-in.docbook:9453
+#: C/index-in.docbook:9399
+msgid "For instance, from <filename>celleditable.hg</filename>:"
+msgstr "示例来自与<filename>celleditable.hg</filename>:"
+
+#: C/index-in.docbook:9401
#, no-wrap
msgid ""
"\n"
@@ -16419,13 +16383,21 @@ msgstr ""
"\n"
"_CLASS_INTERFACE(CellEditable, GtkCellEditable, GTK_CELL_EDITABLE, GtkCellEditableIface)\n"
-#: C/index-in.docbook:9451
+#: C/index-in.docbook:9404
msgid ""
-"For instance, from <filename>celleditable.hg</filename>: <_:programlisting-1/"
-">"
-msgstr "示例来自与<filename>celleditable.hg</filename>:<_:programlisting-1/>"
+"Two extra optional parameters were once added, for the case that the "
+"interface derives from another interface, which was believed to be the case "
+"when the GInterface has another GInterface as a prerequisite. This is a "
+"misunderstanding, though. When GInterface A has GInterface B as a "
+"prerequisite, it means that every class that implements A shall also "
+"implement B. For instance, from <filename>loadableicon.hg</filename> in "
+"glibmm-2.4:"
+msgstr ""
+"对于接口是从其他接口派生的情况,两个附加参数是可选的,GInterface有另一个"
+"GInterface作为先决条件时属于此情况。示例来自于<filename>loadableicon.hg</"
+"filename>:"
-#: C/index-in.docbook:9460
+#: C/index-in.docbook:9410
#, no-wrap
msgid ""
"\n"
@@ -16434,22 +16406,11 @@ msgstr ""
"\n"
"_CLASS_INTERFACE(LoadableIcon, GLoadableIcon, G_LOADABLE_ICON, GLoadableIconIface, Icon, GIcon)\n"
-#: C/index-in.docbook:9457
-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 "
-"another GInterface as a prerequisite. For instance, from "
-"<filename>loadableicon.hg</filename>: <_:programlisting-1/>"
-msgstr ""
-"对于接口是从其他接口派生的情况,两个附加参数是可选的,GInterface有另一个"
-"GInterface作为先决条件时属于此情况。示例来自于<filename>loadableicon.hg</"
-"filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9469
+#: C/index-in.docbook:9418
msgid "Constructor macros"
msgstr "构造函数宏"
-#: C/index-in.docbook:9470
+#: C/index-in.docbook:9419
msgid ""
"The <function>_CTOR_DEFAULT()</function> and <function>_WRAP_CTOR()</"
"function> macros add constructors, wrapping the specified <function>*_new()</"
@@ -16469,7 +16430,20 @@ msgstr ""
"数,因为<application>gtkmm</application>必须实例化派生的GType,而"
"<function>*_new()</function> C函数只是用于给C程序员提供便利。"
-#: C/index-in.docbook:9485
+#: C/index-in.docbook:9429
+msgid ""
+"When using <function>_CLASS_GOBJECT()</function>, the constructors should be "
+"protected (rather than public) and each constructor should have a "
+"corresponding <function>_WRAP_CREATE()</function> in the public section. "
+"This prevents the class from being instantiated without using a "
+"<classname>RefPtr</classname>. For instance:"
+msgstr ""
+"在使用<function>_CLASS_GOBJECT()</function>时,其构造函数应该是保护"
+"(protected)的而不是公有(public)。并且每个公有(public)的构造函数都应该有"
+"<function>_WRAP_CREATE()</function>。这样可以防止在不使用<classname>RefPtr</"
+"classname>的情况下直接实例化这个类。例如:"
+
+#: C/index-in.docbook:9434
#, no-wrap
msgid ""
"\n"
@@ -16494,32 +16468,19 @@ msgstr ""
"public:\n"
" _WRAP_CREATE(const Glib::ustring& name, bool left_gravity = true)\n"
-#: C/index-in.docbook:9480
-msgid ""
-"When using <function>_CLASS_GOBJECT()</function>, the constructors should be "
-"protected (rather than public) and each constructor should have a "
-"corresponding <function>_WRAP_CREATE()</function> in the public section. "
-"This prevents the class from being instantiated without using a "
-"<classname>RefPtr</classname>. For instance: <_:programlisting-1/>"
-msgstr ""
-"在使用<function>_CLASS_GOBJECT()</function>时,其构造函数应该是保护"
-"(protected)的而不是公有(public)。并且每个公有(public)的构造函数都应该有"
-"<function>_WRAP_CREATE()</function>。这样可以防止在不使用<classname>RefPtr</"
-"classname>的情况下直接实例化这个类。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9499
+#: C/index-in.docbook:9447
msgid "_CTOR_DEFAULT"
msgstr "_CTOR_DEFAULT"
-#: C/index-in.docbook:9500
+#: C/index-in.docbook:9448
msgid "This macro creates a default constructor with no arguments."
msgstr "这个宏创建一个不接受参数的默认构造函数"
-#: C/index-in.docbook:9505
+#: C/index-in.docbook:9453
msgid "_WRAP_CTOR"
msgstr "_WRAP_CTOR"
-#: C/index-in.docbook:9506
+#: C/index-in.docbook:9454
msgid ""
"This macro creates a constructor with arguments, equivalent to a "
"<function>*_new()</function> C function. It won't actually call the "
@@ -16531,11 +16492,11 @@ msgstr ""
"但是他不会调用<function>*_new()</function>函数,只会创建有相同参数类型的构造"
"函数。它需要一个C++构造函数签名和一个C函数名。"
-#: C/index-in.docbook:9516 C/index-in.docbook:10020
+#: C/index-in.docbook:9464 C/index-in.docbook:9960
msgid "errthrow"
msgstr "errthrow"
-#: C/index-in.docbook:9518
+#: C/index-in.docbook:9466
msgid ""
"This tells <command>gmmproc</command> that the C <function>*_new()</"
"function> has a final <type>GError**</type> parameter which should be "
@@ -16544,30 +16505,15 @@ msgstr ""
"这告诉<command>gmmproc</command>,<function>*_new()</function>的最后一个 "
"<type>GError**</type>是否应该被忽略。"
-#: C/index-in.docbook:9513
+#: C/index-in.docbook:9461
msgid "It also takes an optional extra argument: <_:variablelist-1/>"
msgstr "他还有需要额外的可选参数:<_:variablelist-1/>"
-#: C/index-in.docbook:9527
-msgid "Hand-coding constructors"
-msgstr "手工编码构造函数"
-
-#: C/index-in.docbook:9536
-#, no-wrap
-msgid ""
-"\n"
-"Button::Button(const Glib::ustring& label, bool mnemonic)\n"
-":\n"
-" _CONSTRUCT(\"label\", label.c_str(), \"use_underline\", gboolean(mnemonic))\n"
-"{}\n"
-msgstr ""
-"\n"
-"Button::Button(const Glib::ustring& label, bool mnemonic)\n"
-":\n"
-" _CONSTRUCT(\"label\", label.c_str(), \"use_underline\", gboolean(mnemonic))\n"
-"{}\n"
+#: C/index-in.docbook:9475
+msgid "Hand-coding constructors"
+msgstr "手工编码构造函数"
-#: C/index-in.docbook:9528
+#: C/index-in.docbook:9476
msgid ""
"When a constructor must be partly hand written because, for instance, the "
"<function>*_new()</function> C function's parameters do not correspond "
@@ -16576,20 +16522,35 @@ msgid ""
"<function>_CONSTRUCT()</function> macro may be used in the .ccg file to save "
"some work. The <function>_CONSTRUCT</function> macro takes a series of "
"property names and values. For instance, from <filename>button.ccg</"
-"filename>: <_:programlisting-1/>"
+"filename>:"
msgstr ""
"有时因为<function>*_new()</function> C函数的参数不与对象属性直接对应,或是"
"<function>*_new()</function> C函数不只是简单的调用<function>g_object_new()</"
"function>,你将必须手写一部分构造函数。在此时你可以在》ccg文件中使用"
"<function>_CONSTRUCT()</function>宏来保存一些工作。<function>_CONSTRUCT</"
"function>宏接受一系列属性名与值作为参数。示例来自<filename>button.ccg</"
-"filename>:<_:programlisting-1/>"
+"filename>:"
+
+#: C/index-in.docbook:9484
+#, no-wrap
+msgid ""
+"\n"
+"Button::Button(const Glib::ustring& label, bool mnemonic)\n"
+":\n"
+" _CONSTRUCT(\"label\", label.c_str(), \"use_underline\", gboolean(mnemonic))\n"
+"{}\n"
+msgstr ""
+"\n"
+"Button::Button(const Glib::ustring& label, bool mnemonic)\n"
+":\n"
+" _CONSTRUCT(\"label\", label.c_str(), \"use_underline\", gboolean(mnemonic))\n"
+"{}\n"
-#: C/index-in.docbook:9548
+#: C/index-in.docbook:9495
msgid "Macros that suppress generation of some code"
msgstr "抑制某些代码生成的宏"
-#: C/index-in.docbook:9549
+#: C/index-in.docbook:9496
msgid ""
"Some macros suppress the generation of some code when they are used after a "
"<function>_CLASS_*</function> macro. Some suppress the definition in the "
@@ -16600,11 +16561,11 @@ msgstr ""
"成。一些抑制在.cc文件中生成定义,另一些抑制在.h文件中生成的声明和.cc文件中生"
"成的定义。"
-#: C/index-in.docbook:9556
+#: C/index-in.docbook:9503
msgid "_CUSTOM_DEFAULT_CTOR"
msgstr "_CUSTOM_DEFAULT_CTOR"
-#: C/index-in.docbook:9557
+#: C/index-in.docbook:9504
msgid ""
"Suppresses declaration and definition of default constructor in "
"<function>_CLASS_BOXEDTYPE</function>, <function>_CLASS_BOXEDTYPE_STATIC</"
@@ -16614,11 +16575,11 @@ msgstr ""
"<function>_CLASS_BOXEDTYPE_STATIC</function>、"
"<function>_CLASS_OPAQUE_COPYABLE</function>生成默认构造函数的声明和定义。"
-#: C/index-in.docbook:9564
+#: C/index-in.docbook:9511
msgid "_CUSTOM_CTOR_CAST"
msgstr "_CUSTOM_CTOR_CAST"
-#: C/index-in.docbook:9565
+#: C/index-in.docbook:9512
msgid ""
"Suppresses declaration and definition of the constructor that takes a "
"pointer to the wrapped C object in <function>_CLASS_BOXEDTYPE</function> and "
@@ -16628,7 +16589,7 @@ msgstr ""
"<function>_CLASS_BOXEDTYPE_STATIC</function>生成接受指向其所包装的C类型的指针"
"的构造函数的声明和定义。"
-#: C/index-in.docbook:9569
+#: C/index-in.docbook:9516
msgid ""
"Suppresses definition of the constructor that takes a pointer to the wrapped "
"C object in <function>_CLASS_INTERFACE</function> and "
@@ -16637,7 +16598,7 @@ msgstr ""
"抑制<function>_CLASS_INTERFACE</function>和<function>_CLASS_OPAQUE_COPYABLE</"
"function>生成接受指向其所包装的C类型的指针的构造函数的定义。"
-#: C/index-in.docbook:9573
+#: C/index-in.docbook:9520
msgid ""
"Suppresses definition of the constructor that takes a pointer to the wrapped "
"C object and the constructor that takes construct_params in "
@@ -16648,11 +16609,11 @@ msgstr ""
"function>生成接受指向其所包装的C类型的指针且接受其他构造参数的构造函数的定"
"义。"
-#: C/index-in.docbook:9580
+#: C/index-in.docbook:9527
msgid "_CUSTOM_DTOR"
msgstr "_CUSTOM_DTOR"
-#: C/index-in.docbook:9581
+#: C/index-in.docbook:9528
msgid ""
"Suppresses definition of destructor in <function>_CLASS_GOBJECT</function> "
"and <function>_CLASS_GTKOBJECT</function>."
@@ -16660,11 +16621,11 @@ msgstr ""
"抑制<function>_CLASS_GOBJECT</function>和<function>_CLASS_GTKOBJECT</"
"function>生成析构函数的定义"
-#: C/index-in.docbook:9587
+#: C/index-in.docbook:9534
msgid "_CUSTOM_MOVE_OPERATIONS"
msgstr "_CUSTOM_MOVE_OPERATIONS"
-#: C/index-in.docbook:9588
+#: C/index-in.docbook:9535
msgid ""
"Suppresses declaration and definition of move constructor and move "
"assignment operator in <function>_CLASS_GOBJECT</function> and "
@@ -16673,7 +16634,11 @@ msgstr ""
"抑制<function>_CLASS_GOBJECT</function><function>_CLASS_GTKOBJECT</function>"
"生成移动构造函数和移动赋值运算符的声明和定义。"
-#: C/index-in.docbook:9593
+#: C/index-in.docbook:9539
+msgid "For example:"
+msgstr "例如:"
+
+#: C/index-in.docbook:9540
#, no-wrap
msgid ""
"\n"
@@ -16702,15 +16667,11 @@ msgstr ""
" // ...\n"
"};\n"
-#: C/index-in.docbook:9592
-msgid "For example: <_:programlisting-1/>"
-msgstr "例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9610
+#: C/index-in.docbook:9556
msgid "_CUSTOM_WRAP_NEW"
msgstr "_CUSTOM_WRAP_NEW"
-#: C/index-in.docbook:9611
+#: C/index-in.docbook:9557
msgid ""
"Suppresses definition of <function>Glib::wrap_new()</function> function in "
"<function>_CLASS_GOBJECT</function>."
@@ -16718,11 +16679,11 @@ msgstr ""
"抑制<function>_CLASS_GOBJECT</function>生成<function>Glib::wrap_new()</"
"function>的定义。"
-#: C/index-in.docbook:9617
+#: C/index-in.docbook:9563
msgid "_CUSTOM_WRAP_FUNCTION"
msgstr "_CUSTOM_WRAP_FUNCTION"
-#: C/index-in.docbook:9618
+#: C/index-in.docbook:9564
msgid ""
"Suppresses definition of <function>Glib::wrap()</function> function in "
"<function>_CLASS_GOBJECT</function> and <function>_CLASS_GTKOBJECT</"
@@ -16731,11 +16692,11 @@ msgstr ""
"抑制<function>_CLASS_GOBJECT</function>和<function>_CLASS_GTKOBJECT</"
"function>生成<function>Glib::wrap()</function>函数的定义。"
-#: C/index-in.docbook:9624
+#: C/index-in.docbook:9570
msgid "_NO_WRAP_FUNCTION"
msgstr "_NO_WRAP_FUNCTION"
-#: C/index-in.docbook:9625
+#: C/index-in.docbook:9571
msgid ""
"Suppresses declaration and definition of <function>Glib::wrap()</function> "
"function in <function>_CLASS_GOBJECT</function>, <function>_CLASS_BOXEDTYPE</"
@@ -16749,24 +16710,28 @@ msgstr ""
"function>和<function>_CLASS_GTKOBJECT</function>生成<function>Glib::wrap()</"
"function>函数的声明和定义。"
-#: C/index-in.docbook:9635
+#: C/index-in.docbook:9581
msgid "Method macros"
msgstr "方法宏"
-#: C/index-in.docbook:9638
+#: C/index-in.docbook:9584
msgid "_WRAP_METHOD"
msgstr "_WRAP_METHOD"
-#: C/index-in.docbook:9639
+#: C/index-in.docbook:9585
msgid "This macro generates the C++ method to wrap a C function."
msgstr "这个宏用于生成封装C函数的C++方法。"
-#: C/index-in.docbook:9640
+#: C/index-in.docbook:9586
msgid ""
"<function>_WRAP_METHOD( C++ method signature, C function name)</function>"
msgstr "<function>_WRAP_METHOD( C++方法签名, C函数名)</function>"
-#: C/index-in.docbook:9642
+#: C/index-in.docbook:9587
+msgid "For instance, from <filename>entry.hg</filename>:"
+msgstr "示例来自于<filename>entry.hg</filename>:"
+
+#: C/index-in.docbook:9588
#, no-wrap
msgid ""
"\n"
@@ -16775,11 +16740,7 @@ msgstr ""
"\n"
"_WRAP_METHOD(void set_text(const Glib::ustring& text), gtk_entry_set_text)\n"
-#: C/index-in.docbook:9641
-msgid "For instance, from <filename>entry.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>entry.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9646
+#: C/index-in.docbook:9591
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 "
@@ -16792,22 +16753,22 @@ msgstr ""
"含了从C++参数类型到C参数类型的必要转换。这个宏还基于<filename>*_docs.xml</"
"filename>和<filename>*_docs_override.xml</filename>文件生成doxygen文档注释。"
-#: C/index-in.docbook:9655 C/index-in.docbook:9885 C/index-in.docbook:9995
+#: C/index-in.docbook:9600 C/index-in.docbook:9827 C/index-in.docbook:9935
msgid "refreturn"
msgstr "refreturn"
-#: C/index-in.docbook:9657
+#: C/index-in.docbook:9602
msgid ""
"Do an extra <function>reference()</function> on the return value, in case "
"the C function does not provide a reference."
msgstr ""
"在C函数不提供引用时,对其返回值额外调用一次<function>reference()</function>。"
-#: C/index-in.docbook:9662 C/index-in.docbook:9785
+#: C/index-in.docbook:9607 C/index-in.docbook:9729
msgid "errthrow [\"<exceptions>\"]"
msgstr "errthrow [\"<exceptions>\"]"
-#: C/index-in.docbook:9664
+#: C/index-in.docbook:9609
msgid ""
"Use the last GError** parameter of the C function to throw an exception. The "
"optional \"<exceptions>\" is a comma-separated list of exceptions that "
@@ -16823,56 +16784,56 @@ msgstr ""
"号,请使用反斜杠对其进行转义。例如:<code>errthrow \"Glib::OptionError Hello"
"\\, world, Glib::ConvertError\"</code>"
-#: C/index-in.docbook:9675 C/index-in.docbook:9893 C/index-in.docbook:9960
-#: C/index-in.docbook:10206
+#: C/index-in.docbook:9620 C/index-in.docbook:9835 C/index-in.docbook:9901
+#: C/index-in.docbook:10140
msgid "deprecated [\"<text>\"]"
msgstr "deprecated [\"<text>\"]"
-#: C/index-in.docbook:9677 C/index-in.docbook:9895 C/index-in.docbook:9962
-#: C/index-in.docbook:10208
+#: C/index-in.docbook:9622 C/index-in.docbook:9837 C/index-in.docbook:9903
+#: C/index-in.docbook:10142
msgid ""
"Puts the generated code in #ifdef blocks. Text about the deprecation can be "
"specified as an optional parameter."
msgstr ""
"将生成的代码放入#ifdef块中。text是可选参数,用于提供与弃用有关的文本信息。"
-#: C/index-in.docbook:9683
+#: C/index-in.docbook:9628
msgid "constversion"
msgstr "constversion"
-#: C/index-in.docbook:9685
+#: C/index-in.docbook:9630
msgid ""
"Just call the non-const version of the same function, instead of generating "
"almost duplicate code."
msgstr "直接调用同一个函数的非const版本,而不是生成几乎相同的代码。"
-#: C/index-in.docbook:9690 C/index-in.docbook:9798 C/index-in.docbook:9900
-#: C/index-in.docbook:9967 C/index-in.docbook:10213
+#: C/index-in.docbook:9635 C/index-in.docbook:9742 C/index-in.docbook:9842
+#: C/index-in.docbook:9908 C/index-in.docbook:10147
msgid "newin \"<version>\""
msgstr "newin \"<version>\""
-#: C/index-in.docbook:9692 C/index-in.docbook:9800 C/index-in.docbook:9902
-#: C/index-in.docbook:9969 C/index-in.docbook:10215
+#: C/index-in.docbook:9637 C/index-in.docbook:9744 C/index-in.docbook:9844
+#: C/index-in.docbook:9910 C/index-in.docbook:10149
msgid ""
"Adds a @newin Doxygen command to the documentation, or replaces the @newin "
"command generated from the C documentation."
msgstr "在文档中添加@newin Doxygen命令,或替换从C文档中生成的@newin命令。"
-#: C/index-in.docbook:9697 C/index-in.docbook:9907 C/index-in.docbook:10042
-#: C/index-in.docbook:10129
+#: C/index-in.docbook:9642 C/index-in.docbook:9849 C/index-in.docbook:9982
+#: C/index-in.docbook:10068
msgid "ifdef <identifier>"
msgstr "ifdef <identifier>"
-#: C/index-in.docbook:9699 C/index-in.docbook:9909 C/index-in.docbook:10044
-#: C/index-in.docbook:10131
+#: C/index-in.docbook:9644 C/index-in.docbook:9851 C/index-in.docbook:9984
+#: C/index-in.docbook:10070
msgid "Puts the generated code in #ifdef blocks."
msgstr "将生成的代码放入ifdef <identifier>块中。"
-#: C/index-in.docbook:9703 C/index-in.docbook:10048
+#: C/index-in.docbook:9648 C/index-in.docbook:9988
msgid "slot_name <parameter_name>"
msgstr "slot_name <parameter_name>"
-#: C/index-in.docbook:9705 C/index-in.docbook:10050
+#: C/index-in.docbook:9650 C/index-in.docbook:9990
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 "
@@ -16886,11 +16847,11 @@ msgstr ""
"literal>参数的代码。<literal>slot_callback</literal>参数需要使用此选项指定的"
"名称。"
-#: C/index-in.docbook:9715 C/index-in.docbook:10060
+#: C/index-in.docbook:9660 C/index-in.docbook:10000
msgid "slot_callback <function_name>"
msgstr "slot_callback <function_name>"
-#: C/index-in.docbook:9717 C/index-in.docbook:10062
+#: C/index-in.docbook:9662 C/index-in.docbook:10002
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 "
@@ -16901,11 +16862,11 @@ msgstr ""
"指定的胶水回调函数处理提取槽然后调用它。这个回调函数的函数指针也将被传递给封"
"装此C函数的方法。"
-#: C/index-in.docbook:9725 C/index-in.docbook:10070
+#: C/index-in.docbook:9670 C/index-in.docbook:10010
msgid "no_slot_copy"
msgstr "no_slot_copy"
-#: C/index-in.docbook:9727 C/index-in.docbook:10072
+#: C/index-in.docbook:9672 C/index-in.docbook:10012
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 "
@@ -16917,12 +16878,12 @@ msgstr ""
"直接传递槽本身。槽的参数名和胶水回调函数必须分别使用<literal>slot_name</"
"literal>和<literal>slot_callback</literal>选项指定。"
-#: C/index-in.docbook:9652 C/index-in.docbook:9782 C/index-in.docbook:9855
-#: C/index-in.docbook:9957 C/index-in.docbook:9992 C/index-in.docbook:10147
+#: C/index-in.docbook:9597 C/index-in.docbook:9726 C/index-in.docbook:9797
+#: C/index-in.docbook:9898 C/index-in.docbook:9932 C/index-in.docbook:10085
msgid "There are some optional extra arguments: <_:variablelist-1/>"
msgstr "有一些可选的额外参数:<_:variablelist-1/>"
-#: C/index-in.docbook:9740
+#: C/index-in.docbook:9685
msgid ""
"Objects used via <classname>RefPtr</classname>: Pass the <classname>RefPtr</"
"classname> as a const reference. For instance, <code>const Glib::RefPtr<"
@@ -16932,7 +16893,7 @@ msgstr ""
"classname>的const引用。例如:<code>const Glib::RefPtr<Gtk::FileFilter>"
"& filter</code>。"
-#: C/index-in.docbook:9744
+#: C/index-in.docbook:9689
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, "
@@ -16944,7 +16905,7 @@ msgstr ""
"的。例如:<code>const Glib::RefPtr<const Gtk::FileFilter>& filter</"
"code>。"
-#: C/index-in.docbook:9749
+#: C/index-in.docbook:9694
msgid ""
"Wrapping <classname>GList*</classname> and <classname>GSList*</classname> "
"parameters: First, you need to discover what objects are contained in the "
@@ -16960,12 +16921,12 @@ msgstr ""
"Glib::RefPtr<Gdk::Pixbuf>></code>。你可能需要定义一个Traits类型来指"
"示C类型和C++类型如何相互转换。"
-#: C/index-in.docbook:9765
+#: C/index-in.docbook:9710
#, no-wrap
msgid "#m4
_CONVERSION(`GSList*',`std::vector<Widget*>',`Glib::SListHandler<Widget*>::slist_to_vector($3,
Glib::OWNERSHIP_SHALLOW)')"
msgstr "#m4
_CONVERSION(`GSList*',`std::vector<Widget*>',`Glib::SListHandler<Widget*>::slist_to_vector($3,
Glib::OWNERSHIP_SHALLOW)')"
-#: C/index-in.docbook:9757
+#: C/index-in.docbook:9702
msgid ""
"Wrapping <classname>GList*</classname> and <classname>GSList*</classname> "
"return types: You must discover whether the caller should free the list and "
@@ -16981,7 +16942,7 @@ msgstr ""
"将其直接放在.hg文件中,因为所有权取决于函数本身而不是其类型。例如:<_:"
"programlisting-1/>"
-#: C/index-in.docbook:9736
+#: C/index-in.docbook:9681
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++ "
@@ -16990,11 +16951,11 @@ msgstr ""
"封装C API时,选择对应的C++类型也很重要。尽管多数时候应该在C++方法中使用什么C+"
"+类型是很明显的,但我们还是想给你一些提示:<_:itemizedlist-1/>"
-#: C/index-in.docbook:9771
+#: C/index-in.docbook:9716
msgid "_WRAP_METHOD_DOCS_ONLY"
msgstr "_WRAP_METHOD_DOCS_ONLY"
-#: C/index-in.docbook:9772
+#: C/index-in.docbook:9717
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 "
@@ -17004,25 +16965,24 @@ msgstr ""
"这个宏类似于<function>_WRAP_METHOD()</function>,但是它只生成封装C函数的C++方"
"法的文档。当你需要手动编写该方法又不想手动编写文档时,请使用这个宏。"
-#: C/index-in.docbook:9776
+#: C/index-in.docbook:9721
msgid "<function>_WRAP_METHOD_DOCS_ONLY(C function name)</function>"
msgstr "<function>_WRAP_METHOD_DOCS_ONLY(C function name)</function>"
-#: C/index-in.docbook:9778
+#: C/index-in.docbook:9722
+msgid "For instance, from <filename>recentinfo.hg</filename>:"
+msgstr "示例来自于<filename>container.hg</filename>:"
+
+#: C/index-in.docbook:9723
#, no-wrap
msgid ""
"\n"
-"_WRAP_METHOD_DOCS_ONLY(gtk_container_add)\n"
+"_WRAP_METHOD_DOCS_ONLY(gtk_recent_info_get_applications)\n"
msgstr ""
"\n"
-"_WRAP_METHOD_DOCS_ONLY(gtk_container_add)\n"
-
-#: C/index-in.docbook:9777
-msgid ""
-"For instance, from <filename>container.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>container.hg</filename>:<_:programlisting-1/>"
+"_WRAP_METHOD_DOCS_ONLY(gtk_recent_info_get_applications)\n"
-#: C/index-in.docbook:9787
+#: C/index-in.docbook:9731
msgid ""
"Excludes documentation of the last GError** parameter of the C function. The "
"optional \"<exceptions>\" is a comma-separated list of exceptions that "
@@ -17038,11 +16998,11 @@ msgstr ""
"需要在异常描述中使用逗号,请使用反斜杠对其进行转义。例如:<code>errthrow "
"\"Glib::OptionError Hello\\, world, Glib::ConvertError\"</code>"
-#: C/index-in.docbook:9805
+#: C/index-in.docbook:9749
msgid "voidreturn"
msgstr "voidreturn"
-#: C/index-in.docbook:9807
+#: C/index-in.docbook:9751
msgid ""
"Don't include a @return Doxygen command in the documentation. Useful if the "
"wrapped C function returns a value, but the corresponding C++ method returns "
@@ -17051,11 +17011,11 @@ msgstr ""
"不要再文档中包含@return Doxygen命令。如果被封装的C函数有返回而封装它的C++方法"
"返回<type>void</type>,这将很有用。"
-#: C/index-in.docbook:9817
+#: C/index-in.docbook:9761
msgid "_IGNORE, _IGNORE_SIGNAL, _IGNORE_PROPERTY"
msgstr "_IGNORE, _IGNORE_SIGNAL, _IGNORE_PROPERTY"
-#: C/index-in.docbook:9818
+#: C/index-in.docbook:9762
msgid ""
"<command>gmmproc</command> will warn you on stdout about functions, signals, "
"properties and child properties that you have forgotten to wrap, helping to "
@@ -17070,7 +17030,7 @@ msgstr ""
"_IGNORE_SIGNAL()、_IGNORE_PROPERTY()宏使<command>gmmproc</command>停止发出部"
"分警告。"
-#: C/index-in.docbook:9826
+#: C/index-in.docbook:9770
#, no-wrap
msgid ""
"<function>_IGNORE(C function name 1, C function name 2, etc)\n"
@@ -17081,7 +17041,11 @@ msgstr ""
"_IGNORE_SIGNAL(C属性名1, C属性名2, ...)\n"
"_IGNORE_PROPERTY(C属性名1, C属性名2, ...)</function>"
-#: C/index-in.docbook:9831
+#: C/index-in.docbook:9774
+msgid "For instance, from <filename>flowbox.hg</filename>:"
+msgstr "示例来自<filename>flowbox.hg</filename>:"
+
+#: C/index-in.docbook:9775
#, no-wrap
msgid ""
"\n"
@@ -17092,16 +17056,11 @@ msgstr ""
"_IGNORE(gtk_flow_box_set_filter_func, gtk_flow_box_set_sort_func)\n"
"_IGNORE_SIGNAL(activate-cursor-child, toggle-cursor-child, move-cursor)\n"
-#: C/index-in.docbook:9830
-msgid ""
-"For instance, from <filename>flowbox.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自<filename>flowbox.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9839
+#: C/index-in.docbook:9782
msgid "_WRAP_SIGNAL"
msgstr "_WRAP_SIGNAL"
-#: C/index-in.docbook:9840
+#: C/index-in.docbook:9783
msgid ""
"This macro generates the C++ libsigc++-style signal to wrap a C GObject "
"signal. It actually generates a public accessor method, such as "
@@ -17114,13 +17073,13 @@ msgstr ""
"象。<command>gmmproc</command>使用.defs文件寻找C参数类型并使用.m4转换文件查找"
"如何将其转换为适当的类型。"
-#: C/index-in.docbook:9846
+#: C/index-in.docbook:9789
msgid ""
"<function>_WRAP_SIGNAL( C++ signal handler signature, C signal name)</"
"function>"
msgstr "<function>_WRAP_SIGNAL( C++信号处理函数签名, C信号名)</function>"
-#: C/index-in.docbook:9848
+#: C/index-in.docbook:9791
#, no-wrap
msgid ""
"\n"
@@ -17129,7 +17088,7 @@ msgstr ""
"\n"
"_WRAP_SIGNAL(void clicked(),\"clicked\")\n"
-#: C/index-in.docbook:9852
+#: C/index-in.docbook:9794
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 "
@@ -17138,11 +17097,11 @@ msgstr ""
"信号通常在GTK结构体中具有函数指针,在.c文件中有对应的枚举值和"
"<function>g_signal_new()</function>函数。"
-#: C/index-in.docbook:9858
+#: C/index-in.docbook:9800
msgid "no_default_handler"
msgstr "no_default_handler"
-#: C/index-in.docbook:9860
+#: C/index-in.docbook:9802
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 "
@@ -17154,11 +17113,11 @@ msgstr ""
"处理函数。可以在添加一个具有默认信号处理函数的信号会使虚函数表尺寸变大以至于"
"破坏ABI的时候,或是在需要添加一个非公共C默认处理函数的时候,使用此可选参数。"
-#: C/index-in.docbook:9869
+#: C/index-in.docbook:9811
msgid "custom_default_handler"
msgstr "custom_default_handler"
-#: C/index-in.docbook:9871
+#: C/index-in.docbook:9813
msgid ""
"Generate a declaration of the <function>on_something()</function> virtual "
"method in the <filename>.h</filename> file, but do not generate a definition "
@@ -17169,18 +17128,18 @@ msgstr ""
"函数的声明,但不在<filename>.cc</filename>文件中生成该函数的定义。请在你需要"
"手动编写函数定义的时候使用此可选参数。"
-#: C/index-in.docbook:9878
+#: C/index-in.docbook:9820
msgid "custom_c_callback"
msgstr "custom_c_callback"
-#: C/index-in.docbook:9880
+#: C/index-in.docbook:9822
msgid ""
"Do not generate a C callback function for the signal. Use this when you must "
"generate the callback function by hand."
msgstr ""
"不要为信号生成C回调函数。请在你需要手动编写回调函数的时候使用此可选参数。"
-#: C/index-in.docbook:9887
+#: C/index-in.docbook:9829
msgid ""
"Do an extra <function>reference()</function> on the return value of the "
"<function>on_something()</function> virtual method, in case the C function "
@@ -17189,11 +17148,11 @@ msgstr ""
"当C函数没有提供引用的时候,在<function>on_something()</function>虚成员函数的"
"返回值上额外调用一次<function>reference()</function>。"
-#: C/index-in.docbook:9913 C/index-in.docbook:10096
+#: C/index-in.docbook:9855 C/index-in.docbook:10036
msgid "exception_handler <method_name>"
msgstr "exception_handler <method_name>"
-#: C/index-in.docbook:9915 C/index-in.docbook:10098
+#: C/index-in.docbook:9857 C/index-in.docbook:10038
msgid ""
"Allows to use custom exception handler instead of default one. Exception "
"might be rethrown by user-defined handler, and it will be caught by default "
@@ -17202,11 +17161,11 @@ msgstr ""
"允许使用自定义异常处理函数而不是使用默认异常处理函数。如果异常被用户自定义的"
"处理函数程序抛出,则该异常将被默认异常处理函数捕获。"
-#: C/index-in.docbook:9921
+#: C/index-in.docbook:9863
msgid "detail_name <parameter_name>"
msgstr "detail_name <parameter_name>"
-#: C/index-in.docbook:9923
+#: C/index-in.docbook:9865
msgid ""
"Adds a <type>const Glib::ustring&</type> parameter to the "
"<methodname>signal_something()</methodname> method. Use it, if the signal "
@@ -17218,11 +17177,11 @@ msgstr ""
"了<literal>G_SIGNAL_DETAILED</literal>标志注册这个信号,则使用该参数作为详细"
"信号名。"
-#: C/index-in.docbook:9930
+#: C/index-in.docbook:9872
msgid "two_signal_methods"
msgstr "two_signal_methods"
-#: C/index-in.docbook:9932
+#: C/index-in.docbook:9874
msgid ""
"Used in conjunction with the <literal>detail_name</literal> option to "
"generate two <methodname>signal_something()</methodname> methods, one "
@@ -17237,11 +17196,11 @@ msgstr ""
"literal>选项,则只生成一个成员函数,此成员函数将接受一个参数且此参数有默认"
"值。请再需要保持ABI不变的情况下使用此选项。"
-#: C/index-in.docbook:9946
+#: C/index-in.docbook:9888
msgid "_WRAP_PROPERTY"
msgstr "_WRAP_PROPERTY"
-#: C/index-in.docbook:9947
+#: C/index-in.docbook:9889
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. "
@@ -17252,11 +17211,11 @@ msgstr ""
"需的C++类型。<command>gmmproc</command>使用.defs文件寻找C参数类型并使用.m4转"
"换文件查找如何将其转换为适当的类型。"
-#: C/index-in.docbook:9951
+#: C/index-in.docbook:9893
msgid "<function>_WRAP_PROPERTY(C property name, C++ type)</function>"
msgstr "<function>_WRAP_PROPERTY(C属性名, C++类型)</function>"
-#: C/index-in.docbook:9953
+#: C/index-in.docbook:9895
#, no-wrap
msgid ""
"\n"
@@ -17265,20 +17224,24 @@ msgstr ""
"\n"
"_WRAP_PROPERTY(\"label\", Glib::ustring)\n"
-#: C/index-in.docbook:9978
+#: C/index-in.docbook:9919
msgid "_WRAP_VFUNC"
msgstr "_WRAP_VFUNC"
-#: C/index-in.docbook:9979
+#: C/index-in.docbook:9920
msgid "This macro generates the C++ method to wrap a virtual C function."
msgstr "这个宏生成用于封装C虚函数的C++成员函数。"
-#: C/index-in.docbook:9980
+#: C/index-in.docbook:9921
msgid ""
"<function>_WRAP_VFUNC( C++ method signature, C function name)</function>"
msgstr "<function>_WRAP_VFUNC( C++成员函数签名, C函数名)</function>"
-#: C/index-in.docbook:9982
+#: C/index-in.docbook:9922
+msgid "For instance, from <filename>widget.hg</filename>:"
+msgstr "示例来自于<filename>widget.hg</filename>:"
+
+#: C/index-in.docbook:9923
#, no-wrap
msgid ""
"\n"
@@ -17287,12 +17250,7 @@ msgstr ""
"\n"
"_WRAP_VFUNC(SizeRequestMode get_request_mode() const, get_request_mode)\n"
-#: C/index-in.docbook:9981
-msgid ""
-"For instance, from <filename>widget.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>widget.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:9986
+#: C/index-in.docbook:9926
msgid ""
"The C function (e.g. <function>get_request_mode</function>) is described "
"more fully in the <filename>*_vfuncs.defs</filename> file, and the "
@@ -17306,7 +17264,7 @@ msgstr ""
"换。转换也可以写入.hg文件。虚函数通常需要额外的转换,这些转换最好保存在使用这"
"些虚函数的.hg文件文件中。"
-#: C/index-in.docbook:9997
+#: C/index-in.docbook:9937
msgid ""
"Do an extra <function>reference()</function> on the return value of the "
"<function>something_vfunc()</function> function, in case the virtual C "
@@ -17315,11 +17273,11 @@ msgstr ""
"当C虚函数没有提供引用的时候,在<function>something_vfunc()</function>函数的返"
"回值上额外调用一次<function>reference()</function>。"
-#: C/index-in.docbook:10003
+#: C/index-in.docbook:9943
msgid "refreturn_ctype"
msgstr "refreturn_ctype"
-#: C/index-in.docbook:10005
+#: C/index-in.docbook:9945
msgid ""
"Do an extra <function>reference()</function> on the return value of an "
"overridden <function>something_vfunc()</function> function in the C callback "
@@ -17329,11 +17287,11 @@ msgstr ""
"<function>something_vfunc()</function>函数的返回值额外调用一次"
"<function>reference()</function>。"
-#: C/index-in.docbook:10012
+#: C/index-in.docbook:9952
msgid "keep_return"
msgstr "keep_return"
-#: C/index-in.docbook:10014
+#: C/index-in.docbook:9954
msgid ""
"Keep a copy of the return value in the C callback function, in case the "
"calling C function does not expect to get its own reference."
@@ -17341,17 +17299,17 @@ msgstr ""
"当被调用的C函数不想要得到属于它的引用的时候,在C回调函数中保留一份返回值的副"
"本。"
-#: C/index-in.docbook:10022
+#: C/index-in.docbook:9962
msgid ""
"Use the last GError** parameter of the C virtual function (if there is one) "
"to throw an exception."
msgstr "如果C虚函数的参数中的最后有一个GError**参数,则使用此参数抛出异常。"
-#: C/index-in.docbook:10027
+#: C/index-in.docbook:9967
msgid "custom_vfunc"
msgstr "custom_vfunc"
-#: C/index-in.docbook:10029
+#: C/index-in.docbook:9969
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."
@@ -17359,29 +17317,29 @@ msgstr ""
"不在<filename>.cc</filename>文件中生成虚函数的定义。请在你需要手写虚函数的时"
"候使用此可选参数。"
-#: C/index-in.docbook:10035
+#: C/index-in.docbook:9975
msgid "custom_vfunc_callback"
msgstr "custom_vfunc_callback"
-#: C/index-in.docbook:10037
+#: C/index-in.docbook:9977
msgid ""
"Do not generate a C callback function for the vfunc. Use this when you must "
"generate the callback function by hand."
msgstr "不为虚函数生成C回调函数。请在你需要手写回调函数时使用此可选参数。"
-#: C/index-in.docbook:10080
+#: C/index-in.docbook:10020
msgid "return_value <value>"
msgstr "return_value <value>"
-#: C/index-in.docbook:10082
+#: C/index-in.docbook:10022
msgid "Defines a non-default return value."
msgstr "定义非默认的返回值。"
-#: C/index-in.docbook:10086
+#: C/index-in.docbook:10026
msgid "err_return_value <value>"
msgstr "err_return_value <value>"
-#: C/index-in.docbook:10088
+#: C/index-in.docbook:10028
msgid ""
"Defines a non-default return value, used only if the C++ "
"<function>something_vfunc()</function> function throws an exception which is "
@@ -17393,7 +17351,7 @@ msgstr ""
"了C回调函数中的时候才使用的非默认返回值。如果指定了return_value但没有指定"
"err_return_value,则将err_return_value的值视作return_value的值。"
-#: C/index-in.docbook:10105
+#: C/index-in.docbook:10045
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 "
@@ -17407,23 +17365,27 @@ msgstr ""
"<classname>Glib::RefPtr<></classname>对象。且需要<parameter>refreturn</"
"parameter>或<parameter>refreturn_ctype</parameter>额外参数。"
-#: C/index-in.docbook:10116
+#: C/index-in.docbook:10056
msgid "Other macros"
msgstr "其他宏"
-#: C/index-in.docbook:10118
+#: C/index-in.docbook:10058
msgid "_IMPLEMENTS_INTERFACE"
msgstr "_IMPLEMENTS_INTERFACE"
-#: C/index-in.docbook:10119
+#: C/index-in.docbook:10059
msgid "This macro generates initialization code for the interface."
msgstr "这个宏为接口生成初始化代码"
-#: C/index-in.docbook:10120
+#: C/index-in.docbook:10060
msgid "<function>_IMPLEMENTS_INTERFACE(C++ interface name)</function>"
msgstr "<function>_IMPLEMENTS_INTERFACE(C++接口名)</function>"
-#: C/index-in.docbook:10122
+#: C/index-in.docbook:10061
+msgid "For instance, from <filename>grid.hg</filename>:"
+msgstr "示例来自于<filename>grid.hg</filename>:"
+
+#: C/index-in.docbook:10062
#, no-wrap
msgid ""
"\n"
@@ -17432,43 +17394,39 @@ msgstr ""
"\n"
"_IMPLEMENTS_INTERFACE(Orientable)\n"
-#: C/index-in.docbook:10121
-msgid "For instance, from <filename>grid.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>grid.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10126
+#: C/index-in.docbook:10065
msgid "There is one optional extra argument: <_:variablelist-1/>"
msgstr "有一个可选的额外参数:<_:variablelist-1/>"
-#: C/index-in.docbook:10139
+#: C/index-in.docbook:10078
msgid "_WRAP_ENUM"
msgstr "_WRAP_ENUM"
-#: C/index-in.docbook:10140
+#: C/index-in.docbook:10079
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."
msgstr ""
"这个宏生成一个C++枚举以包装C枚举。你必须指定所需的C++名称和底层C枚举的名称。"
-#: C/index-in.docbook:10143
+#: C/index-in.docbook:10081
+msgid "For instance, from <filename>enums.hg</filename>:"
+msgstr "示例来自于<filename>enums.hg</filename>:"
+
+#: C/index-in.docbook:10082
#, no-wrap
msgid ""
"\n"
-"_WRAP_ENUM(WindowType, GtkWindowType)\n"
+"_WRAP_ENUM(Orientation, GtkOrientation)\n"
msgstr ""
"\n"
-"_WRAP_ENUM(WindowType, GtkWindowType)\n"
-
-#: C/index-in.docbook:10142
-msgid "For instance, from <filename>enums.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>enums.hg</filename>:<_:programlisting-1/>"
+"_WRAP_ENUM(Orientation, GtkOrientation)\n"
-#: C/index-in.docbook:10150
+#: C/index-in.docbook:10088
msgid "NO_GTYPE"
msgstr "NO_GTYPE"
-#: C/index-in.docbook:10152
+#: C/index-in.docbook:10090
msgid ""
"Use this option, if the enum is not a <classname>GType</classname>. This is "
"the case when there is no <function>*_get_type()</function> function for the "
@@ -17480,7 +17438,7 @@ msgstr ""
"举没有<function>*_get_type()</function>函数,你不需要为该函数额外包含头文件。"
"但你应该此为对C API提交一个bug,因为所有的枚举都应该被注册为GTypes。"
-#: C/index-in.docbook:10157
+#: C/index-in.docbook:10095
msgid ""
"If you specify <literal>NO_GTYPE</literal>, don't use that enum as the type "
"in _WRAP_PROPERTY. It would cause a runtime error, when the generated "
@@ -17490,7 +17448,11 @@ msgstr ""
"型。这会导致生成的<methodname>property_*()</methodname>成员函数被调用时出现运"
"行时错误。"
-#: C/index-in.docbook:10161
+#: C/index-in.docbook:10098
+msgid "For example, from <filename>icontheme.hg</filename>:"
+msgstr "示例来自于<filename>icontheme.hg</filename>:"
+
+#: C/index-in.docbook:10099
#, no-wrap
msgid ""
"\n"
@@ -17501,16 +17463,11 @@ msgstr ""
"_WRAP_ENUM(IconLookupFlags, GtkIconLookupFlags, NO_GTYPE)\n"
" "
-#: C/index-in.docbook:10160
-msgid ""
-"For example, from <filename>icontheme.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>icontheme.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10168
+#: C/index-in.docbook:10105
msgid "gtype_func <function_name>"
msgstr "gtype_func <function_name>"
-#: C/index-in.docbook:10170
+#: C/index-in.docbook:10107
msgid ""
"Specifies the name of the <function>*_get_type()</function> function for the "
"C enum. Use this parameter if <command>gmmproc</command> can't deduce the "
@@ -17519,7 +17476,12 @@ msgstr ""
"指定C枚举的<function>*_get_type()</function>函数名。如果<command>gmmproc</"
"command>无法从C枚举类型的名称推断出正确的函数名,请使用此额外参数。"
-#: C/index-in.docbook:10174
+#: C/index-in.docbook:10110
+msgid "For example, from <filename>dbusproxy.hg</filename> in glibmm:"
+msgstr ""
+"示例来自于glibmm的<filename>dbusproxy.hg</filename>:"
+
+#: C/index-in.docbook:10111
#, no-wrap
msgid ""
"\n"
@@ -17530,18 +17492,11 @@ msgstr ""
"_WRAP_ENUM(ProxyFlags, GDBusProxyFlags, gtype_func g_dbus_proxy_flags_get_type)\n"
" "
-#: C/index-in.docbook:10173
-msgid ""
-"For example, from <filename>dbusproxy.hg</filename> in glibmm: <_:"
-"programlisting-1/>"
-msgstr ""
-"示例来自于glibmm的<filename>dbusproxy.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10181
+#: C/index-in.docbook:10117
msgid "CONV_TO_INT"
msgstr "CONV_TO_INT"
-#: C/index-in.docbook:10183
+#: C/index-in.docbook:10119
msgid ""
"\"Convertible to int.\" Generates a plain enum (not an enum class) within a "
"class. Such an enum is scoped like an enum class, but unlike an enum class, "
@@ -17550,7 +17505,11 @@ msgstr ""
"在一个类中生成普通枚举而不是生成枚举类。这将允许该枚举类型的值可以直接转换为"
"<type>int</type>类型的值,且这样的枚举还拥有与枚举类类似的作用域。"
-#: C/index-in.docbook:10187
+#: C/index-in.docbook:10122
+msgid "For example, from <filename>dialog.hg</filename>:"
+msgstr "示例来自于<filename>dialog.hg</filename>:"
+
+#: C/index-in.docbook:10123
#, no-wrap
msgid ""
"\n"
@@ -17561,21 +17520,22 @@ msgstr ""
"_WRAP_ENUM(ResponseType, GtkResponseType, CONV_TO_INT)\n"
" "
-#: C/index-in.docbook:10186
-msgid "For example, from <filename>dialog.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>dialog.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10194
+#: C/index-in.docbook:10129
msgid "s#<from>#<to>#"
msgstr "s#<from>#<to>#"
-#: C/index-in.docbook:10196
+#: C/index-in.docbook:10131
msgid ""
"Substitutes (part of) the name of one or more enum constants. You can add "
"any number of substitutions."
msgstr "替换一个或多个枚举常量名称的全部或一部分。你可以添加任意数量的替换。"
-#: C/index-in.docbook:10199
+#: C/index-in.docbook:10133
+msgid "For example, from <filename>iochannel.hg</filename> in glibmm:"
+msgstr ""
+"示例来自于glibmm中的<filename>iochannel.hg</filename>:"
+
+#: C/index-in.docbook:10134
#, no-wrap
msgid ""
"\n"
@@ -17586,18 +17546,11 @@ msgstr ""
"_WRAP_ENUM(SeekType, GSeekType, NO_GTYPE, s#^SEEK_#SEEK_TYPE_#)\n"
" "
-#: C/index-in.docbook:10198
-msgid ""
-"For example, from <filename>iochannel.hg</filename> in glibmm: <_:"
-"programlisting-1/>"
-msgstr ""
-"示例来自于glibmm中的<filename>iochannel.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10224
+#: C/index-in.docbook:10158
msgid "_WRAP_ENUM_DOCS_ONLY"
msgstr "_WRAP_ENUM_DOCS_ONLY"
-#: C/index-in.docbook:10225
+#: C/index-in.docbook:10159
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()</"
@@ -17613,11 +17566,11 @@ msgstr ""
"成的文档的枚举类型很有用。它与<function>_WRAP_ENUM()</function>使用同一语法,"
"也处理一样的参数(尽管有些额外参数因为没有作用会被忽略)"
-#: C/index-in.docbook:10237
+#: C/index-in.docbook:10171
msgid "_WRAP_GERROR"
msgstr "_WRAP_GERROR"
-#: C/index-in.docbook:10238
+#: C/index-in.docbook:10172
msgid ""
"This macro generates a C++ exception class, derived from <classname>Glib::"
"Error</classname>, with a <type>Code</type> enum and a <methodname>code()</"
@@ -17628,13 +17581,17 @@ msgstr ""
"并具有一个<type>Code</type>枚举成员变量和一个<methodname>code()</methodname>"
"成员函数。你必须指定所需的C++名称、以及与其对应的C枚举名、C枚举值前缀。"
-#: C/index-in.docbook:10241
+#: C/index-in.docbook:10175
msgid ""
"This exception can then be thrown by methods which are generated from "
"_WRAP_METHOD() with the errthrow option."
msgstr "然后可以由带有errthrow选项的_WRAP_METHOD()生成的成员函数抛出此异常。"
-#: C/index-in.docbook:10244
+#: C/index-in.docbook:10177
+msgid "For instance, from <filename>pixbuf.hg</filename>:"
+msgstr "示例来自于<filename>pixbuf.hg</filename>:"
+
+#: C/index-in.docbook:10178
#, no-wrap
msgid ""
"\n"
@@ -17643,12 +17600,7 @@ msgstr ""
"\n"
"_WRAP_GERROR(PixbufError, GdkPixbufError, GDK_PIXBUF_ERROR)\n"
-#: C/index-in.docbook:10243
-msgid ""
-"For instance, from <filename>pixbuf.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>pixbuf.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10248
+#: C/index-in.docbook:10181
msgid ""
"_WRAP_GERROR() accepts the same optional arguments as _WRAP_ENUM() (though "
"CONV_TO_INT is ignored because all exception class enums are plain enums "
@@ -17657,11 +17609,11 @@ msgstr ""
"_WRAP_GERROR()接受与_WRAP_ENUM()一样的可选参数(尽管CONV_TO_INT参数因为没有作"
"用而被忽略)。"
-#: C/index-in.docbook:10254
+#: C/index-in.docbook:10187
msgid "_MEMBER_GET / _MEMBER_SET"
msgstr "_MEMBER_GET / _MEMBER_SET"
-#: C/index-in.docbook:10255
+#: C/index-in.docbook:10188
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 "
@@ -17670,29 +17622,28 @@ msgstr ""
"如果要包装可以被直接访问其数据成员的简单结构体或装箱类型,请使用这些宏。这些"
"宏会为其数据成员创建访问器成员函数(getter和setter)。"
-#: C/index-in.docbook:10259
+#: C/index-in.docbook:10192
msgid "<function>_MEMBER_GET(C++ name, C name, C++ type, C type)</function>"
msgstr "<function>_MEMBER_GET(C++名, C名, C++类型, C类型)</function>"
-#: C/index-in.docbook:10260
+#: C/index-in.docbook:10193
msgid "<function>_MEMBER_SET(C++ name, C name, C++ type, C type)</function>"
msgstr "<function>_MEMBER_SET(C++名, C名, C++类型, C类型)</function>"
-#: C/index-in.docbook:10263
+#: C/index-in.docbook:10194
+msgid "For example, in <filename>rectangle.hg</filename>:"
+msgstr "示例来自于<filename>rectangle.hg</filename>:"
+
+#: C/index-in.docbook:10197
#, no-wrap
msgid "_MEMBER_GET(x, x, int, int)"
msgstr "_MEMBER_GET(x, x, int, int)"
-#: C/index-in.docbook:10261
-msgid ""
-"For example, in <filename>rectangle.hg</filename>: <_:programlisting-1/>"
-msgstr "示例来自于<filename>rectangle.hg</filename>:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10267
+#: C/index-in.docbook:10200
msgid "_MEMBER_GET_PTR / _MEMBER_SET_PTR"
msgstr "_MEMBER_GET_PTR / _MEMBER_SET_PTR"
-#: C/index-in.docbook:10268
+#: C/index-in.docbook:10201
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 "
@@ -17701,18 +17652,26 @@ msgstr ""
"使用这些宏可以自动为指针类型的数据成员提供访问器(getter和setter)。对于"
"getter函数,将创建两个版本,一个const版本一个非const版本。"
-#: C/index-in.docbook:10273
+#: C/index-in.docbook:10206
msgid ""
"<function>_MEMBER_GET_PTR(C++ name, C name, C++ type, C type)</function>"
msgstr "<function>_MEMBER_GET_PTR(C++名, C名, C++类型, C类型)</function>"
-#: C/index-in.docbook:10274
-#, fuzzy
+#: C/index-in.docbook:10207
msgid ""
"<function>_MEMBER_SET_PTR(C++ name, C name, C++ type, C type)</function>"
-msgstr "<function>_MEMBER_GET_PTR(C++名, C名, C++类型, C类型)</function>"
+msgstr ""
+"<function>_MEMBER_GET_PTR(C++名, C名, C++类型, C类型)</function>"
+
+#: C/index-in.docbook:10208
+msgid ""
+"For example, for <classname>Pango::Analysis</classname> in <filename>item."
+"hg</filename>:"
+msgstr ""
+"示例来自于<filename>item.hg</filename>文件中的<classname>Pango::Analysis</"
+"classname>:"
-#: C/index-in.docbook:10276
+#: C/index-in.docbook:10210
#, no-wrap
msgid ""
"\n"
@@ -17723,19 +17682,11 @@ 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/index-in.docbook:10275
-msgid ""
-"For example, for <classname>Pango::Analysis</classname> in <filename>item."
-"hg</filename>: <_:programlisting-1/>"
-msgstr ""
-"示例来自于<filename>item.hg</filename>文件中的<classname>Pango::Analysis</"
-"classname>: <_:programlisting-1/>"
-
-#: C/index-in.docbook:10283
+#: C/index-in.docbook:10216
msgid "_MEMBER_GET_GOBJECT / _MEMBER_SET_GOBJECT"
msgstr "_MEMBER_GET_GOBJECT / _MEMBER_SET_GOBJECT"
-#: C/index-in.docbook:10284
+#: C/index-in.docbook:10217
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 "
@@ -17744,17 +17695,22 @@ msgstr ""
"使用这些宏可以为返回之前必须被引用的<classname>GObject</classname>类型数据成"
"员提供访问器(getters和setters)。"
-#: C/index-in.docbook:10289
+#: C/index-in.docbook:10222
msgid ""
"<function>_MEMBER_GET_GOBJECT(C++ name, C name, C++ type, C type)</function>"
msgstr "<function>_MEMBER_GET_GOBJECT(C++名, C名, C++类型, C类型)</function>"
-#: C/index-in.docbook:10290
+#: C/index-in.docbook:10223
msgid ""
"<function>_MEMBER_SET_GOBJECT(C++ name, C name, C++ type, C type)</function>"
msgstr "<function>_MEMBER_SET_GOBJECT(C++名, C名, C++类型, C类型)</function>"
-#: C/index-in.docbook:10292
+#: C/index-in.docbook:10224
+msgid "For example, in Pangomm, <filename>layoutline.hg</filename>:"
+msgstr ""
+"示例来自于Pangomm中的<filename>layoutline.hg</filename>:"
+
+#: C/index-in.docbook:10225
#, no-wrap
msgid ""
"\n"
@@ -17763,19 +17719,11 @@ msgstr ""
"\n"
"_MEMBER_GET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*)\n"
-#: C/index-in.docbook:10291
-msgid ""
-"For example, in Pangomm, <filename>layoutline.hg</filename>: <_:"
-"programlisting-1/>"
-msgstr ""
-"示例来自于Pangomm中的<filename>layoutline.hg</filename>:<_:programlisting-1/"
-">"
-
-#: C/index-in.docbook:10301
+#: C/index-in.docbook:10233
msgid "gmmproc Parameter Processing"
msgstr "gmmproc参数处理"
-#: C/index-in.docbook:10302
+#: C/index-in.docbook:10234
msgid ""
"<command>gmmproc</command> allows processing the parameters in a method "
"signature for the macros that process method signatures (like "
@@ -17786,11 +17734,11 @@ msgstr ""
"<function>_WRAP_METHOD()</function>、<function>_WRAP_CTOR()</function>、"
"<function>_WRAP_CREATE()</function>)处理成员函数签名中的参数:"
-#: C/index-in.docbook:10309
+#: C/index-in.docbook:10241
msgid "Parameter Reordering"
msgstr "对参数重新排序"
-#: C/index-in.docbook:10316
+#: C/index-in.docbook:10248
#, no-wrap
msgid ""
"\n"
@@ -17801,7 +17749,7 @@ msgstr ""
"void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device,\n"
" GdkEventMask events);\n"
-#: C/index-in.docbook:10323
+#: C/index-in.docbook:10255
#, no-wrap
msgid ""
"\n"
@@ -17814,7 +17762,7 @@ msgstr ""
" const Glib::RefPtr<const Gdk::Device>& device{device}),\n"
" gtk_widget_set_device_events)\n"
-#: C/index-in.docbook:10333
+#: C/index-in.docbook:10265
#, no-wrap
msgid ""
"\n"
@@ -17827,7 +17775,7 @@ msgstr ""
" const Glib::RefPtr<const Gdk::Device>& device{.}),\n"
" gtk_widget_set_device_events)\n"
-#: C/index-in.docbook:10310
+#: C/index-in.docbook:10242
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 "
@@ -17850,7 +17798,7 @@ msgstr ""
"知<command>gmmproc</command>将C++参数映射到<literal>{}</literal>内的C参数。由"
"于C++参数名与C参数名相对应,所以上述代码可以被重写为:<_:programlisting-3/>"
-#: C/index-in.docbook:10340
+#: C/index-in.docbook:10272
msgid ""
"Please note that when reordering parameters for a <function>_WRAP_SIGNAL()</"
"function> method signature, the C parameter names would always be "
@@ -17864,11 +17812,11 @@ msgstr ""
"<filename>generate_extra_defs</filename>实用工具使用,而该实用工具不在乎C API"
"中的参数名是什么。"
-#: C/index-in.docbook:10352
+#: C/index-in.docbook:10284
msgid "Optional Parameter Processing"
msgstr "可选参数处理"
-#: C/index-in.docbook:10361
+#: C/index-in.docbook:10293
#, no-wrap
msgid ""
"\n"
@@ -17877,7 +17825,7 @@ msgstr ""
"\n"
"GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label);\n"
-#: C/index-in.docbook:10370
+#: C/index-in.docbook:10302
#, no-wrap
msgid ""
"\n"
@@ -17888,7 +17836,7 @@ msgstr ""
"_WRAP_CTOR(ToolButton(Widget& icon_widget, const Glib::ustring& label{?}),\n"
" gtk_tool_button_new)\n"
-#: C/index-in.docbook:10353
+#: C/index-in.docbook:10285
msgid ""
"For all macros processing method signatures except <function>_WRAP_SIGNAL()</"
"function> and <function>_WRAP_VFUNC()</function> it is also possible to make "
@@ -17914,11 +17862,11 @@ msgstr ""
"数的原始构造函数和一个带有可选参数的构造函数。在如下所示的情况下:<_:"
"programlisting-2/> 将生成两个构造函数:一个带可选参数,另一个不带可选参数。"
-#: C/index-in.docbook:10380
+#: C/index-in.docbook:10312
msgid "Output Parameter Processing"
msgstr "输出参数处理"
-#: C/index-in.docbook:10390
+#: C/index-in.docbook:10322
#, no-wrap
msgid ""
"\n"
@@ -17927,7 +17875,7 @@ msgstr ""
"\n"
"GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget);\n"
-#: C/index-in.docbook:10396
+#: C/index-in.docbook:10328
#, no-wrap
msgid ""
"\n"
@@ -17938,7 +17886,7 @@ msgstr ""
"_WRAP_METHOD(void get_request_mode(SizeRequestMode& mode{OUT}) const,\n"
" gtk_widget_get_request_mode)\n"
-#: C/index-in.docbook:10405
+#: C/index-in.docbook:10337
#, no-wrap
msgid ""
"\n"
@@ -17947,7 +17895,7 @@ msgstr ""
"\n"
"_INITIALIZATION(`SizeRequestMode&',`GtkSizeRequestMode',`$3 = (SizeRequestMode)($4)')\n"
-#: C/index-in.docbook:10409
+#: C/index-in.docbook:10341
#, no-wrap
msgid ""
"\n"
@@ -17956,7 +17904,7 @@ msgstr ""
"\n"
"_INITIALIZATION(`SizeRequestMode&',`GtkSizeRequestMode',`$3 = ($1)($4)')\n"
-#: C/index-in.docbook:10381
+#: C/index-in.docbook:10313
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 "
@@ -17986,7 +17934,7 @@ msgstr ""
"必须指定必要的初始化宏。如下所示:<_:programlisting-3/>也可以写成:<_:"
"programlisting-4/>"
-#: C/index-in.docbook:10419
+#: C/index-in.docbook:10351
#, no-wrap
msgid ""
"\n"
@@ -17997,7 +17945,7 @@ msgstr ""
"gboolean gtk_icon_view_get_cell_rect(GtkIconView* icon_view,\n"
" GtkTreePath* path, GtkCellRenderer* cell, GdkRectangle* rect);\n"
-#: C/index-in.docbook:10426
+#: C/index-in.docbook:10358
#, no-wrap
msgid ""
"\n"
@@ -18010,7 +17958,7 @@ msgstr ""
" const CellRenderer& cell, Gdk::Rectangle& rect{>>}) const,\n"
" gtk_icon_view_get_cell_rect)\n"
-#: C/index-in.docbook:10441
+#: C/index-in.docbook:10373
#, no-wrap
msgid ""
"\n"
@@ -18019,7 +17967,7 @@ msgstr ""
"\n"
"_INITIALIZATION(`Gdk::Rectangle&',`GdkRectangle',`$3 = Glib::wrap(&($4))')\n"
-#: C/index-in.docbook:10413
+#: C/index-in.docbook:10345
msgid ""
"<function>_WRAP_METHOD()</function> also supports setting C++ output "
"parameters from C output parameters if the C function being wrapped has any. "
@@ -18052,11 +18000,11 @@ msgstr ""
"<classname>GdkRectangle*</classname>设置一个<classname>Gdk::Rectangle&</"
"classname>。如下所示:<_:programlisting-3/>"
-#: C/index-in.docbook:10448
+#: C/index-in.docbook:10380
msgid "String Parameter Processing"
msgstr "处理字符串参数"
-#: C/index-in.docbook:10449
+#: C/index-in.docbook:10381
msgid ""
"A string-valued input parameter in a C++ method is usually a <type>const "
"Glib::ustring&</type> or a <type>const std::string&</type>. In C "
@@ -18074,13 +18022,13 @@ msgstr ""
"<methodname>c_str()</methodname>)。一些C函数的一些参数接受<literal>nullptr</"
"literal>,并以特殊方式解释它。其他参数不能为<literal>nullptr</literal>。"
-#: C/index-in.docbook:10462
+#: C/index-in.docbook:10394
msgid ""
"for mandatory parameters (with or without default values): empty string to "
"empty string,"
msgstr "对于带有或不带有默认值的强制性参数:空字符串到空字符串"
-#: C/index-in.docbook:10464
+#: C/index-in.docbook:10396
msgid ""
"for optional parameters (with appended <literal>{?}</literal>): empty string "
"to <literal>nullptr</literal>."
@@ -18088,7 +18036,7 @@ msgstr ""
"对于附加了<literal>{?}</literal>的可选参数:空字符串到<literal>nullptr</"
"literal>。"
-#: C/index-in.docbook:10458
+#: C/index-in.docbook:10390
msgid ""
"The default conversion in <function>_WRAP_METHOD()</function> and similar "
"macros is <_:itemizedlist-1/> If the default conversion is not the best "
@@ -18104,11 +18052,11 @@ msgstr ""
"为非<literal>NULL</literal>)。如果想同时添加C参数名和<literal>NULL</"
"literal>,则用空格对它们进行分隔:<literal>{c_param_name NULL}</literal>。"
-#: C/index-in.docbook:10478
+#: C/index-in.docbook:10410
msgid "Basic Types"
msgstr "基本类型"
-#: C/index-in.docbook:10479
+#: C/index-in.docbook:10411
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++ "
@@ -18119,66 +18067,66 @@ msgstr ""
"type>类型,所以不需要<type>gboolean</type>类型。以下列表显示了C API中的一些常"
"用类型,以及你可以在C++封装库中将它们转换为哪些类型。"
-#: C/index-in.docbook:10484
+#: C/index-in.docbook:10416
msgid "Basic Type equivalents"
msgstr "基本类型的等效项"
-#: C/index-in.docbook:10486
+#: C/index-in.docbook:10418
msgid "C type"
msgstr "C 类型"
-#: C/index-in.docbook:10487
+#: C/index-in.docbook:10419
msgid "C++ type"
msgstr "C++类型"
-#: C/index-in.docbook:10488
+#: C/index-in.docbook:10420
msgid "<type>gboolean</type>"
msgstr "<type>gboolean</type>"
-#: C/index-in.docbook:10488
+#: C/index-in.docbook:10420
msgid "<type>bool</type>"
msgstr "<type>bool</type>"
-#: C/index-in.docbook:10489
+#: C/index-in.docbook:10421
msgid "<type>gint</type>"
msgstr "<type>gint</type>"
-#: C/index-in.docbook:10489
+#: C/index-in.docbook:10421
msgid "<type>int</type>"
msgstr "<type>int</type>"
-#: C/index-in.docbook:10490
+#: C/index-in.docbook:10422
msgid "<type>guint</type>"
msgstr "<type>guint</type>"
-#: C/index-in.docbook:10491
+#: C/index-in.docbook:10423
msgid "<type>gdouble</type>"
msgstr "<type>gdouble</type>"
-#: C/index-in.docbook:10491
+#: C/index-in.docbook:10423
msgid "<type>double</type>"
msgstr "<type>double</type>"
-#: C/index-in.docbook:10492
+#: C/index-in.docbook:10424
msgid "<type>gunichar</type>"
msgstr "<type>gunichar</type>"
-#: C/index-in.docbook:10493
+#: C/index-in.docbook:10425
msgid "<type>gchar*</type>"
msgstr "<type>gchar*</type>"
-#: C/index-in.docbook:10493
+#: C/index-in.docbook:10425
msgid ""
"<classname>Glib::ustring</classname> (or <classname>std::string</classname> "
"for filenames)"
msgstr ""
"<classname>Glib::ustring</classname>(或<classname>std::string</classname>)"
-#: C/index-in.docbook:10500
+#: C/index-in.docbook:10432
msgid "Hand-coded source files"
msgstr "手工编码源文件"
-#: C/index-in.docbook:10501
+#: C/index-in.docbook:10433
msgid ""
"You might want to include additional source files that will not be generated "
"by <command>gmmproc</command> from <filename>.hg</filename> and <filename>."
@@ -18193,11 +18141,28 @@ msgstr ""
"<filename>meson.build</filename>的<varname>extra_h_files</varname>和"
"<varname>extra_cc_files</varname>变量提到它们。"
-#: C/index-in.docbook:10511
+#: C/index-in.docbook:10443
msgid "Initialization"
msgstr "初始化"
-#: C/index-in.docbook:10520
+#: C/index-in.docbook:10444
+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 "
+"might have its own initialization function that you should call. You can do "
+"this in an <function>init()</function> function that you can place in hand-"
+"coded <filename>init.h</filename> and <filename>init.cc</filename> files. "
+"This function should initialize your dependencies (such as the C function, "
+"and <application>gtkmm</application>) and call your generated "
+"<function>wrap_init()</function> function. For instance:"
+msgstr ""
+"你必须初始化你的库,以便注册库提供给的新类型,这样你才能使用它。另外你所封装"
+"的C库可能有自己需要调用的初始化函数。你可以将其放在手动编码的<filename>init."
+"h</filename>和<filename>init.cc</filename>文件中的<function>init()</function>"
+"函数中完成此操作。这个函数应该初始化你的依赖项和调用你生成的"
+"<function>wrap_init()</function>函数。例如:"
+
+#: C/index-in.docbook:10452
#, no-wrap
msgid ""
"\n"
@@ -18214,25 +18179,7 @@ msgstr ""
" wrap_init(); //Tells the Glib::wrap() table about the libsomethingmm classes.\n"
"}\n"
-#: C/index-in.docbook:10512
-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 "
-"might have its own initialization function that you should call. You can do "
-"this in an <function>init()</function> function that you can place in hand-"
-"coded <filename>init.h</filename> and <filename>init.cc</filename> files. "
-"This function should initialize your dependencies (such as the C function, "
-"and <application>gtkmm</application>) and call your generated "
-"<function>wrap_init()</function> function. For instance: <_:programlisting-1/"
-">"
-msgstr ""
-"你必须初始化你的库,以便注册库提供给的新类型,这样你才能使用它。另外你所封装"
-"的C库可能有自己需要调用的初始化函数。你可以将其放在手动编码的<filename>init."
-"h</filename>和<filename>init.cc</filename>文件中的<function>init()</function>"
-"函数中完成此操作。这个函数应该初始化你的依赖项和调用你生成的"
-"<function>wrap_init()</function>函数。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10528
+#: C/index-in.docbook:10459
msgid ""
"The implementation of the <function>wrap_init()</function> method in "
"<filename>wrap_init.cc</filename> is generated by "
@@ -18247,11 +18194,11 @@ msgstr ""
"<filename>wrap_init.h</filename>文件以使<function>wrap_init()</function>函数"
"出现在正确的C++命名空间中。"
-#: C/index-in.docbook:10537
+#: C/index-in.docbook:10468
msgid "Problems in the C API."
msgstr "C API中的问题"
-#: C/index-in.docbook:10538
+#: C/index-in.docbook:10469
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 "
@@ -18260,11 +18207,16 @@ msgstr ""
"你可能会在封装库的过程中遇到一些问题。特别是它是一个新项目的时候。以下是一些"
"常见问题以及解决方案。"
-#: C/index-in.docbook:10540
+#: C/index-in.docbook:10471
msgid "Unable to predeclare structs"
msgstr "无法提前声明的结构体"
-#: C/index-in.docbook:10542
+#: C/index-in.docbook:10472
+msgid "By convention, structs are declared in glib/GTK-style headers like so:"
+msgstr ""
+"按照约定,glib/GTK风格的头文件中结构体声明应如下所示:"
+
+#: C/index-in.docbook:10473
#, no-wrap
msgid ""
"\n"
@@ -18283,14 +18235,7 @@ msgstr ""
" ...\n"
"};\n"
-#: C/index-in.docbook:10541
-msgid ""
-"By convention, structs are declared in glib/GTK-style headers like so: <_:"
-"programlisting-1/>"
-msgstr ""
-"按照约定,glib/GTK风格的头文件中结构体声明应如下所示:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10551
+#: C/index-in.docbook:10481
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. "
@@ -18304,7 +18249,7 @@ msgstr ""
"件。,从而将其排除在你的公共API之外。<command>gmmproc</command>假定使用了这个"
"技术,因此如果没使用这种技术就会遇到编译错误。"
-#: C/index-in.docbook:10558
+#: C/index-in.docbook:10488
#, no-wrap
msgid ""
"\n"
@@ -18317,7 +18262,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/index-in.docbook:10564
+#: C/index-in.docbook:10494
#, no-wrap
msgid ""
"\n"
@@ -18328,7 +18273,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/index-in.docbook:10556
+#: C/index-in.docbook:10486
msgid ""
"This compiler error might look like this: <_:programlisting-1/> or this: <_:"
"programlisting-2/>"
@@ -18336,17 +18281,31 @@ msgstr ""
"编译错误看起来可能如下所示:<_:programlisting-1/>或如下所示:<_:"
"programlisting-2/>"
-#: C/index-in.docbook:10569
+#: C/index-in.docbook:10499
msgid ""
"This is easy to correct in the C library, so do send a patch to the relevant "
"maintainer."
msgstr "这很容易在C库中修复,你可以向相关库的维护者发送补丁。"
-#: C/index-in.docbook:10573
+#: C/index-in.docbook:10503
msgid "Lack of properties"
msgstr "缺少属性"
-#: C/index-in.docbook:10580
+#: C/index-in.docbook:10504
+msgid ""
+"By convention, glib/GTK-style objects have <function>*_new()</function> "
+"functions, such as <function>example_widget_new()</function> that do nothing "
+"more than call <function>g_object_new()</function> and return the result. "
+"The input parameters are supplied to <function>g_object_new()</function> "
+"along with the names of the properties for which they are values. For "
+"instance,"
+msgstr ""
+"按照约定,glib/GTK风格对象应具有<function>*_new()</function>函数,例如"
+"<function>example_widget_new()</function>仅调用<function>g_object_new()</"
+"function>并返回其结果。输入参数为<function>g_object_new()</function>函数提供"
+"属性名和属性值。例如:"
+
+#: C/index-in.docbook:10510
#, no-wrap
msgid ""
"\n"
@@ -18361,21 +18320,7 @@ msgstr ""
" return g_object_new (EXAMPLE_TYPE_WIDGET, \"something\", something, \"thing\", thing, NULL);\n"
"}\n"
-#: C/index-in.docbook:10574
-msgid ""
-"By convention, glib/GTK-style objects have <function>*_new()</function> "
-"functions, such as <function>example_widget_new()</function> that do nothing "
-"more than call <function>g_object_new()</function> and return the result. "
-"The input parameters are supplied to <function>g_object_new()</function> "
-"along with the names of the properties for which they are values. For "
-"instance, <_:programlisting-1/>"
-msgstr ""
-"按照约定,glib/GTK风格对象应具有<function>*_new()</function>函数,例如"
-"<function>example_widget_new()</function>仅调用<function>g_object_new()</"
-"function>并返回其结果。输入参数为<function>g_object_new()</function>函数提供"
-"属性名和属性值。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10587
+#: C/index-in.docbook:10516
msgid ""
"This allows language bindings to implement their own equivalents (such as C+"
"+ constructors), without using the <function>*_new()</function> function. "
@@ -18386,7 +18331,7 @@ msgstr ""
"<function>*_new()</function>函数。这通常是必须的,这是为了让它们可以实例化派"
"生的GType,这样就可以为信号处理函数和虚函数添加自己的钩子。"
-#: C/index-in.docbook:10591
+#: C/index-in.docbook:10520
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 "
@@ -18398,7 +18343,16 @@ msgstr ""
"对应的函数,有时我们也可以在<function>_new()</function>函数中重新实现2到3行代"
"码,只要这些行使用的API是可用的。"
-#: C/index-in.docbook:10599
+#: C/index-in.docbook:10525
+msgid ""
+"Another workaround is to add a <function>*_construct()</function> function "
+"that the C++ constructor can call after instantiating its own type. For "
+"instance,"
+msgstr ""
+"另一个解决方法是添加一个C++构造函数可以在实例化自身类型后调用的"
+"<function>*_construct()</function>函数。例如:"
+
+#: C/index-in.docbook:10528
#, no-wrap
msgid ""
"\n"
@@ -18431,16 +18385,7 @@ msgstr ""
" do_something(something);\n"
"}\n"
-#: C/index-in.docbook:10596
-msgid ""
-"Another workaround is to add a <function>*_construct()</function> function "
-"that the C++ constructor can call after instantiating its own type. For "
-"instance, <_:programlisting-1/>"
-msgstr ""
-"另一个解决方法是添加一个C++构造函数可以在实例化自身类型后调用的"
-"<function>*_construct()</function>函数。例如:<_:programlisting-1/>"
-
-#: C/index-in.docbook:10615
+#: C/index-in.docbook:10543
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 "
@@ -18450,11 +18395,11 @@ msgstr ""
"的。若你发现了一个bug请联系相关的维护人员并向其提供相关信息以便尽快修复该"
"bug。"
-#: C/index-in.docbook:10623
+#: C/index-in.docbook:10551
msgid "Documentation"
msgstr "文档"
-#: C/index-in.docbook:10624
+#: C/index-in.docbook:10552
msgid ""
"In general, gtkmm-style projects use Doxygen, which reads specially "
"formatted C++ comments and generates HTML documentation. You may write these "
@@ -18463,11 +18408,11 @@ msgstr ""
"通常,gtkmm风格项目使用Doxygen生成文档,它会读取特殊格式的C++注释并生成HTML文"
"档。你可以直接将这些doxygen可读的注释写到头文件中。"
-#: C/index-in.docbook:10627
+#: C/index-in.docbook:10555
msgid "Reusing C documentation"
msgstr "重用C文档"
-#: C/index-in.docbook:10628
+#: C/index-in.docbook:10556
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 "
@@ -18485,12 +18430,12 @@ msgstr ""
"doxygen注释。<command>gmmproc</command>甚至会尝试转换文档以使其更适合C++ "
"API。"
-#: C/index-in.docbook:10638
+#: C/index-in.docbook:10566
#, no-wrap
msgid "./docextract_to_xml.py -s ~/checkout/gnome/gtk/gtk/ > gtk_docs.xml\n"
msgstr "./docextract_to_xml.py -s ~/checkout/gnome/gtk/gtk/ > gtk_docs.xml\n"
-#: C/index-in.docbook:10641
+#: C/index-in.docbook:10568
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 "
@@ -18504,11 +18449,11 @@ msgstr ""
"<filename>something_docs_override.xml</filename>文件并更改其内容。你也可以在"
"<filename>.hg</filename>文件中编写自己的文档。"
-#: C/index-in.docbook:10651
+#: C/index-in.docbook:10578
msgid "Documentation build structure"
msgstr "文档构建结构"
-#: C/index-in.docbook:10652
+#: C/index-in.docbook:10579
msgid ""
"If you copied the skeleton source tree in <application>mm-common</"
"application> and substituted the placeholder text, then you will already "
@@ -18528,6 +18473,44 @@ msgstr ""
"入文件不是通过Doxygen配置文件定义的,而是由<command>meson/ninja</command>传递"
"文件内容到<command>doxygen</command>的标准输入。"
+#~ msgid "For instance, <_:programlisting-1/>"
+#~ msgstr "例如:<_:programlisting-1/>"
+
+#~ msgid ""
+#~ "For instance, from <filename>accelgroup.hg</filename>: <_:"
+#~ "programlisting-1/>"
+#~ msgstr ""
+#~ "来自<filename>accelgroup.hg</filename>文件中的例子:<_:programlisting-1/>"
+
+#~ msgid ""
+#~ "\n"
+#~ "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref,
pango_coverage_unref)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "_CLASS_OPAQUE_REFCOUNTED(Coverage, PangoCoverage, pango_coverage_new, pango_coverage_ref,
pango_coverage_unref)\n"
+
+#~ msgid ""
+#~ "For instance, for <classname>Pango::Coverage</classname>: <_:"
+#~ "programlisting-1/>"
+#~ msgstr ""
+#~ "示例来自<classname>Pango::Coverage</classname>:<_:programlisting-1/>"
+
+#~ msgid ""
+#~ "\n"
+#~ "_CLASS_GENERIC(AttrIter, PangoAttrIterator)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "_CLASS_GENERIC(AttrIter, PangoAttrIterator)\n"
+
+#~ msgid ""
+#~ "For instance, for <classname>Pango::AttrIter</classname>: <_:"
+#~ "programlisting-1/>"
+#~ msgstr ""
+#~ "示例来自<classname>Pango::AttrIter</classname>:<_:programlisting-1/>"
+
+#~ msgid "For example: <_:programlisting-1/>"
+#~ msgstr "例如:<_:programlisting-1/>"
+
#~ msgid "Murray"
#~ msgstr "Murray"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]