有可能的增强之处
这个Dial物件到目前为止有670行. 这看起来好像有不少了, 不过我们真正完成的只有一点点, 因为大部份都是标头及模子. 还是有许多可以加强的地方:
如果您试过这个物件, 您会发现滑鼠指标会一闪一闪的. 这是因为整个物件每次都重画一次. 当然了最好的方式是在offscreen pixmap上画完以後, 然後整个复制到萤幕上.
使用者应该可以用up及down按键来增加或减少其值.
如果有个按钮来增加或减少其值, 那是再好不过的了. 虽然可也以用embedded Button widgets来做, 但我们会想要按钮有auto-repeat的功能. 所有要做这一类功能的程式可以在GtkRange物件中发现.
这个Dial物件可再做进一个container物件, 带有一个子物件, 位於按钮与最下面之间. 使用者可以增加一个标签或整个物件来显示目前的值.
20.5 更多一点
关於产生一个新的物件的细部资讯在以上被提供出来. 如果您想要写一个属於自己的物件, 我想最好的范例就是GTK本身了.
问问您自己一些关於您想要写的物件:
它是否是个Container物件?
它是否有自己的视窗?
是否是个现有物件的修改?
找出一个相近的物件, 然後开始动工.
祝好运!
20.6 版权
This section on of the tutorial on writing widgets is Copyright (C) 1997 Owen Taylor
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21. 写GTK软体的一些技巧
这一段只是在收集一些写个好GTK软体的一些办法, 及一般的导引. 现在还没什麽作用, 因为只有短短的几句话 :)
用GNU的autoconf及automake! 它们将会是您未来的朋友 :) 我正在计画在这里写关於两者的一些简介.
22. 贡献
这份文件, 就像在此的许多好软体一样, 是由许多志愿者免费所创作出来的. 如果您觉得GTK很多地方都没有文件, 那麽您可以考虑对这份文件贡献.
如果您决定要贡献一份力量, 请将您的文章寄给我, Ian Main, slow@intergate.bc.ca. 此外, 要知道这整份文件是免费的, 而任何新增过来的文件也会是免费的.
多谢了.
23. 为此贡献的人们
在此我要对以下这些负出贡献的人们致谢.
Bawer Dagdeviren, chamele0n@geocities.com 贡献menus导引.
Raph Levien, raph@acm.org 贡献了GTK的hello world, widget packing,及其源源不绝的智慧. 他并且为这个导引文件贡献一个家.
Peter Mattis, petm@xcf.berkeley.edu 为他最简单的GTK程式.并且完成这个程式的能力 :)
Werner Koch werner.koch@guug.de 他转换原来的文字档成为SGML, 及视窗类别组织图.
Mark Crichton crichton@expert.cc.purdue.edu 贡献了menu factory程式码, 及table packing导引.
Owen Taylor mailto:owt1@cornell.edu 贡献了EventBox widget一段. 他也负责了selections的程式及导引. , 及writing your own GTK widgets的那一段. 献上荣耀给Owen!
Mark VanderBoom mailto:owt1@cornell.edu 他大部份的工作在Notebook上完成, Progress Bar, Dialogs, 及File selection widgets. 多谢Mark! 您的助益很大.
Tim Janik mailto:timj@psynet.net 感谢他在视窗物件上的整理工作. 谢谢Tim :)
对所有给我们建议及帮助我们加强本文件的人.
感谢您们.
24. 版权
这份导引文件版权所有(C) 1997 Ian Main
本程式是免费软体; 您可以在免费软体基金会GNU版权下发行或修改, 不管是这个版本, 下个版本, 或者往後的版本.
这个程式是以希望它是有用的软体的信念下发行, 但不带任何保证; 而且不带任何销路上的暗示保证或是只是故意要练练写程式. 详情请见GNU General Public License.
您应该在这个程式的同时也收到GNU General Public License; 如果没有, 请写信到the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.