mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-11 21:20:09 +00:00
Removed mistakenly added generated sgml
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com> * docs/es/: Removed mistakenly added generated sgml * docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex: Remove outdated info files. * docs/gtk_tut* docs/package_tutorial.sh docs/tutorial: Moved tutorial files into subdir * docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into subdir. * docs/man/gtk_button.pod: Remove. (contents will be integrated into gtk-reference button page.) * configure.in docs/Makefile.am docs/tutorial/Makefile.am docs/faq/Makefile.am: Adjust for new organization
This commit is contained in:
parent
e01a43253a
commit
39440b43cd
19
ChangeLog
19
ChangeLog
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Wed Jun 21 12:50:58 2000 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* docs/es/: Removed mistakenly added generated sgml
|
||||||
|
|
||||||
|
* docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex:
|
||||||
|
Remove outdated info files.
|
||||||
|
|
||||||
|
* docs/gtk_tut* docs/package_tutorial.sh docs/tutorial:
|
||||||
|
Moved tutorial files into subdir
|
||||||
|
|
||||||
|
* docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into
|
||||||
|
subdir.
|
||||||
|
|
||||||
|
* docs/man/gtk_button.pod: Remove. (contents will be
|
||||||
|
integrated into gtk-reference button page.)
|
||||||
|
|
||||||
|
* configure.in docs/Makefile.am docs/tutorial/Makefile.am
|
||||||
|
docs/faq/Makefile.am: Adjust for new organization
|
||||||
|
|
||||||
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
2000-06-21 Christopher Blizzard <blizzard@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
* gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs)
|
||||||
|
23
configure.in
23
configure.in
@ -646,6 +646,25 @@ AC_SUBST(GTK_DEBUG_FLAGS)
|
|||||||
AC_SUBST(GTK_XIM_FLAGS)
|
AC_SUBST(GTK_XIM_FLAGS)
|
||||||
AC_SUBST(GTK_LOCALE_FLAGS)
|
AC_SUBST(GTK_LOCALE_FLAGS)
|
||||||
|
|
||||||
|
#
|
||||||
|
# gtk-doc checks
|
||||||
|
#
|
||||||
|
|
||||||
|
dnl Let people disable the gtk-doc stuff.
|
||||||
|
AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
|
||||||
|
|
||||||
|
if test x$enable_gtk_doc = xauto ; then
|
||||||
|
if test x$GTKDOC = xtrue ; then
|
||||||
|
enable_gtk_doc=yes
|
||||||
|
else
|
||||||
|
enable_gtk_doc=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl NOTE: We need to use a separate automake conditional for this
|
||||||
|
dnl to make this work with the tarballs.
|
||||||
|
AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
|
||||||
|
|
||||||
AC_OUTPUT_COMMANDS([
|
AC_OUTPUT_COMMANDS([
|
||||||
|
|
||||||
## Generate `gdk/gdkconfig.h' in two cases
|
## Generate `gdk/gdkconfig.h' in two cases
|
||||||
@ -743,6 +762,10 @@ Makefile
|
|||||||
gtk-config
|
gtk-config
|
||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
docs/Makefile
|
docs/Makefile
|
||||||
|
docs/reference/Makefile
|
||||||
|
docs/reference/gdk-pixbuf/Makefile
|
||||||
|
docs/tutorial/Makefile
|
||||||
|
docs/faq/Makefile
|
||||||
gdk/Makefile
|
gdk/Makefile
|
||||||
gdk/x11/Makefile
|
gdk/x11/Makefile
|
||||||
gdk/win32/Makefile
|
gdk/win32/Makefile
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
*.html
|
*.html
|
||||||
*.info*
|
|
||||||
*.dvi
|
*.dvi
|
||||||
*.ps
|
*.ps
|
||||||
*.pg
|
*.pg
|
||||||
|
191
docs/Makefile.am
191
docs/Makefile.am
@ -1,174 +1,12 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
info_TEXINFOS = gdk.texi gtk.texi
|
SUBDIRS = tutorial faq reference
|
||||||
|
|
||||||
man_MANS = gtk-config.1
|
man_MANS = gtk-config.1
|
||||||
|
|
||||||
TUTORIAL_FR_FILES=html/gtk_tut_fr-1.html \
|
|
||||||
html/gtk_tut_fr-2.html \
|
|
||||||
html/gtk_tut_fr-3.html \
|
|
||||||
html/gtk_tut_fr-4.html \
|
|
||||||
html/gtk_tut_fr-5.html \
|
|
||||||
html/gtk_tut_fr-6.html \
|
|
||||||
html/gtk_tut_fr-7.html \
|
|
||||||
html/gtk_tut_fr-8.html \
|
|
||||||
html/gtk_tut_fr-9.html \
|
|
||||||
html/gtk_tut_fr-10.html \
|
|
||||||
html/gtk_tut_fr-11.html \
|
|
||||||
html/gtk_tut_fr-12.html \
|
|
||||||
html/gtk_tut_fr-13.html \
|
|
||||||
html/gtk_tut_fr-14.html \
|
|
||||||
html/gtk_tut_fr-15.html \
|
|
||||||
html/gtk_tut_fr-16.html \
|
|
||||||
html/gtk_tut_fr-17.html \
|
|
||||||
html/gtk_tut_fr-18.html \
|
|
||||||
html/gtk_tut_fr-19.html \
|
|
||||||
html/gtk_tut_fr-20.html \
|
|
||||||
html/gtk_tut_fr-21.html \
|
|
||||||
html/gtk_tut_fr-22.html \
|
|
||||||
html/gtk_tut_fr-23.html \
|
|
||||||
html/gtk_tut_fr-24.html \
|
|
||||||
html/gtk_tut_fr.html text/gtk_tut_fr.txt
|
|
||||||
|
|
||||||
TUTORIAL_FILES=text/gtk_tut.txt html/gtk_tut.html \
|
|
||||||
html/gtk_tut.html \
|
|
||||||
html/gtk_tut-1.html \
|
|
||||||
html/gtk_tut-2.html \
|
|
||||||
html/gtk_tut-3.html \
|
|
||||||
html/gtk_tut-4.html \
|
|
||||||
html/gtk_tut-5.html \
|
|
||||||
html/gtk_tut-6.html \
|
|
||||||
html/gtk_tut-7.html \
|
|
||||||
html/gtk_tut-8.html \
|
|
||||||
html/gtk_tut-9.html \
|
|
||||||
html/gtk_tut-10.html \
|
|
||||||
html/gtk_tut-11.html \
|
|
||||||
html/gtk_tut-12.html \
|
|
||||||
html/gtk_tut-13.html \
|
|
||||||
html/gtk_tut-14.html \
|
|
||||||
html/gtk_tut-15.html \
|
|
||||||
html/gtk_tut-16.html \
|
|
||||||
html/gtk_tut-17.html \
|
|
||||||
html/gtk_tut-18.html \
|
|
||||||
html/gtk_tut-19.html \
|
|
||||||
html/gtk_tut-20.html \
|
|
||||||
html/gtk_tut-21.html \
|
|
||||||
html/gtk_tut-22.html \
|
|
||||||
html/gtk_tut-23.html \
|
|
||||||
html/gtk_tut-24.html \
|
|
||||||
html/gtk_tut-25.html \
|
|
||||||
html/gtk_tut-26.html \
|
|
||||||
html/gtk_tut-27.html \
|
|
||||||
html/gtk_tut-28.html \
|
|
||||||
html/gtk_tut-29.html \
|
|
||||||
html/gtk_tut-30.html \
|
|
||||||
html/gtk_tut-31.html
|
|
||||||
|
|
||||||
TUTORIAL_IT_FILES= html/gtk_tut_it.html \
|
|
||||||
html/gtk_tut_it-1.html \
|
|
||||||
html/gtk_tut_it-2.html \
|
|
||||||
html/gtk_tut_it-3.html \
|
|
||||||
html/gtk_tut_it-4.html \
|
|
||||||
html/gtk_tut_it-5.html \
|
|
||||||
html/gtk_tut_it-6.html \
|
|
||||||
html/gtk_tut_it-7.html \
|
|
||||||
html/gtk_tut_it-8.html \
|
|
||||||
html/gtk_tut_it-9.html \
|
|
||||||
html/gtk_tut_it-10.html \
|
|
||||||
html/gtk_tut_it-11.html \
|
|
||||||
html/gtk_tut_it-12.html \
|
|
||||||
html/gtk_tut_it-13.html \
|
|
||||||
html/gtk_tut_it-14.html \
|
|
||||||
html/gtk_tut_it-15.html \
|
|
||||||
html/gtk_tut_it-16.html \
|
|
||||||
html/gtk_tut_it-17.html \
|
|
||||||
html/gtk_tut_it-18.html \
|
|
||||||
html/gtk_tut_it-19.html \
|
|
||||||
html/gtk_tut_it-20.html \
|
|
||||||
html/gtk_tut_it-21.html \
|
|
||||||
html/gtk_tut_it-22.html \
|
|
||||||
html/gtk_tut_it-23.html \
|
|
||||||
html/gtk_tut_it-24.html \
|
|
||||||
text/gtk_tut_it.txt
|
|
||||||
|
|
||||||
FAQ_FILES=html/gtkfaq.html \
|
|
||||||
html/gtkfaq-1.html \
|
|
||||||
html/gtkfaq-2.html \
|
|
||||||
html/gtkfaq-3.html \
|
|
||||||
html/gtkfaq-4.html \
|
|
||||||
html/gtkfaq-5.html \
|
|
||||||
html/gtkfaq-6.html \
|
|
||||||
html/gtkfaq-7.html \
|
|
||||||
text/gtkfaq.txt
|
|
||||||
|
|
||||||
html/gtk_tut_table.gif: gdk.html gtk.html
|
|
||||||
|
|
||||||
.PHONY: html htmldir faq tutorial tutorial_it tutorial_fr files
|
|
||||||
|
|
||||||
distdocs: gdk.html gtk.html faq tutorial tutorial_it tutorial_fr
|
|
||||||
|
|
||||||
htmldir:
|
|
||||||
(cd $(srcdir); mkdir -p html; cp gtk_tut*gif html)
|
|
||||||
|
|
||||||
textdir:
|
|
||||||
mkdir -p $(srcdir)/text
|
|
||||||
|
|
||||||
gdk.html gdk_toc.html: gdk.texi
|
|
||||||
(cd $(srcdir); texi2html gdk.texi)
|
|
||||||
|
|
||||||
gtk.html gtk_toc.html: gtk.texi
|
|
||||||
(cd $(srcdir); texi2html gtk.texi)
|
|
||||||
|
|
||||||
html/gdk.html html/gdk_toc.html: htmldir gdk.html gdk_toc.html
|
|
||||||
(cd $(srcdir); cp gdk.html gdk_toc.html html/)
|
|
||||||
|
|
||||||
html/gtk.html html/gtk_toc.html: htmldir gtk.html gtk_toc.html
|
|
||||||
(cd $(srcdir); cp gtk.html gtk_toc.html html/)
|
|
||||||
|
|
||||||
$(FAQ_FILES): faq
|
|
||||||
|
|
||||||
faq: htmldir textdir
|
|
||||||
(cd $(srcdir); sgml2html gtkfaq.sgml; \
|
|
||||||
perl gtkdocs_fix gtkfaq*html; \
|
|
||||||
mv gtkfaq*html html/; \
|
|
||||||
sgml2txt gtkfaq.sgml; \
|
|
||||||
mv gtkfaq.txt text/)
|
|
||||||
|
|
||||||
$(TUTORIAL_FILES): tutorial
|
|
||||||
|
|
||||||
$(TUTORIAL_FR_FILES): tutorial_fr
|
|
||||||
|
|
||||||
$(TUTORIAL_IT_FILES): tutorial_it
|
|
||||||
|
|
||||||
tutorial: htmldir textdir
|
|
||||||
(cd $(srcdir); sgml2html gtk_tut.sgml; \
|
|
||||||
perl gtkdocs_fix gtk_tut*html; \
|
|
||||||
mv gtk_tut*html html/; \
|
|
||||||
sgml2txt gtk_tut.sgml; \
|
|
||||||
mv gtk_tut.txt text/)
|
|
||||||
|
|
||||||
tutorial_it: htmldir textdir
|
|
||||||
(cd $(srcdir); sgml2html --language=it gtk_tut_it.sgml; \
|
|
||||||
perl gtkdocs_fix gtk_tut_it*html; \
|
|
||||||
mv gtk_tut_it*html html/; \
|
|
||||||
sgml2txt --language=it gtk_tut_it.sgml; \
|
|
||||||
mv gtk_tut_it.txt text/)
|
|
||||||
|
|
||||||
tutorial_fr: htmldir textdir
|
|
||||||
(cd $(srcdir); sgml2html --language=fr gtk_tut_fr.sgml; \
|
|
||||||
perl gtkdocs_fix gtk_tut_fr*html; \
|
|
||||||
mv gtk_tut_fr*html html/; \
|
|
||||||
sgml2txt --language=fr gtk_tut_fr.sgml; \
|
|
||||||
mv gtk_tut_fr.txt text/)
|
|
||||||
|
|
||||||
|
|
||||||
files:
|
|
||||||
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
|
|
||||||
echo $$p; \
|
|
||||||
done
|
|
||||||
|
|
||||||
EXTRA_DIST += \
|
EXTRA_DIST += \
|
||||||
Changes-1.2.txt \
|
Changes-1.2.txt \
|
||||||
|
Changes-1.4.txt \
|
||||||
debugging.txt \
|
debugging.txt \
|
||||||
developers.txt \
|
developers.txt \
|
||||||
refcounting.txt \
|
refcounting.txt \
|
||||||
@ -178,28 +16,5 @@ EXTRA_DIST += \
|
|||||||
generation.txt \
|
generation.txt \
|
||||||
gtk-config.txt \
|
gtk-config.txt \
|
||||||
gtk-config.1.in \
|
gtk-config.1.in \
|
||||||
texinfo.tex \
|
gtkdocs_fix
|
||||||
macros.texi \
|
|
||||||
gtkdocs_fix \
|
|
||||||
gtkfaq.sgml \
|
|
||||||
gtk_tut.sgml \
|
|
||||||
gtk_tut_it.sgml \
|
|
||||||
gtk_tut_fr.sgml \
|
|
||||||
gtk_tut_packbox1.gif \
|
|
||||||
gtk_tut_packbox2.gif \
|
|
||||||
gtk_tut_table.gif
|
|
||||||
|
|
||||||
if HAVE_SGML2HTML
|
|
||||||
dist-hook: faq tutorial tutorial_it tutorial_fr
|
|
||||||
mkdir $(distdir)/html
|
|
||||||
cp -p $(srcdir)/html/*.html $(distdir)/html
|
|
||||||
cp -p $(srcdir)/html/*.gif $(distdir)/html
|
|
||||||
mkdir $(distdir)/text
|
|
||||||
cp -p $(srcdir)/text/*.txt $(distdir)/text
|
|
||||||
else
|
|
||||||
dist-hook:
|
|
||||||
echo "***"
|
|
||||||
echo "*** Warning: Tutorial and faq not built"
|
|
||||||
echo "*** DISTRIBUTION IS INCOMPLETE"
|
|
||||||
echo "***"
|
|
||||||
endif
|
|
103
docs/es/gtk.html
103
docs/es/gtk.html
@ -1,103 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-1.html" REL=next>
|
|
||||||
|
|
||||||
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-1.html">Next</A>
|
|
||||||
Previous
|
|
||||||
Contents
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H1>GTK+ FAQ</H1>
|
|
||||||
|
|
||||||
|
|
||||||
<H2>Nathan Froyd, Tony Gale, Shawn T. Amundson.</H2>Seis de Julio de 1998
|
|
||||||
<P><HR NOSHADE>
|
|
||||||
<EM>La intención de este documento es dar respuesta a las preguntas
|
|
||||||
realizadas con más frecuencia por parte de los programadores que utilizan GTK+ o simplemente por personas que desean utilizar GTK+. </EM>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc1">1.</A> <A HREF="gtkfaq-es-1.html">Información General</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.1">1.1 Autores</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.2">1.2 ¿Qué es GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.3">1.3 ¿Qué es el + en GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.4">1.4 ¿La G en GTK+ significa General, Gimp, o GNU?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.5">1.5 ¿Dónde está la documentación para GTK?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.6">1.6 ¿Hay alguna lista de correo (o archivo de lista de correo) para GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.7">1.7 ¿La lista gtk-list no ha tenido tráfico alguno por días,</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.8">1.8 Cómo conseguir ayuda con GTK+</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.9">1.9 Cómo reportar errores en GTK+</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.10">1.10 ¿Qué aplicaciones se han escrito con GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.11">1.11 Estoy buscando una aplicación que escribir en GTK+. ¿Qué tal un cliente IRC?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc2">2.</A> <A HREF="gtkfaq-es-2.html">Cómo encontrar, configurar, instalar y comprobar GTK+</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.1">2.1 ¿Qué necesito para correr GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.2">2.2 ¿Dónde puedo conseguir GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.3">2.3 ¿Cómo configuro/compilo GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.4">2.4 Cuando compilo GTK+ obtengo un error como: <CODE>make: file `Makefile' line 456: Syntax error</CODE></A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.5">2.5 ¡He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con él!</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.6">2.6 Cuando compilo programas con GTK+, obtengo mensajes de error del compilador diciendo que no es capaz de encontrar <CODE>"glibconfig.h"</CODE>.</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.7">2.7 Cuando instalo El GIMP, configure reporta que no puede encontrar GTK.</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc3">3.</A> <A HREF="gtkfaq-es-3.html">Desarrollo de GTK+</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.1">3.1 ¿Qué es esta cosa CVS de la cual todo el mundo habla, y cómo puedo acceder a ella?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.2">3.2 ¿Cómo puedo contribuír a GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.3">3.3 ¿Cómo averiguo si mi parche fue aplicado, y si no, por qué no?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.4">3.4 ¿Cuál es la política sobre la incorporación de nuevos <EM>widgets</EM> en la librería?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.5">3.5 ¿Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc4">4.</A> <A HREF="gtkfaq-es-4.html">Desarrollo con GTK+</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.1">4.1 ¿Cómo empiezo?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.2">4.2 ¿Qué <EM>widgets</EM> existen en GTK?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.3">4.3 ¿GTK+ es seguro ante múltiples hilos?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.4">4.4 ¿Cómo puedo prevenir el redibujar y reacomodar tamaños mientras cambio múltiples <EM>widgets</EM>?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.5">4.5 ¿Cómo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.6">4.6 ¿Cómo puedo averiguar cuál es la selección de un GtkList?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.7">4.7 ¿Acaso es posible desplegar un texto que se recorte para que quepa dentro del lugar que tenga asignado?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.8">4.8 ¿Por qué el contenido de un botón no se mueve al presionar el botón? Aquí les envío un parche para que funcione de esa forma...</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.9">4.9 ¿Cómo puedo definir una línea de separación como en un menú?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.10">4.10 ¿Cómo puedo darle justificación a la derecha a un menú, como Help, cuando utilizo MenuFactory?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.11">4.11 ¿Cómo hago mi ventana modal? / ¿Cómo hago una sóla ventana activa?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.12">4.12 ¿Por qué mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc5">5.</A> <A HREF="gtkfaq-es-5.html">Acerca de gdk</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-5.html#ss5.1">5.1 ¿Qué es gdk?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-5.html#ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc6">6.</A> <A HREF="gtkfaq-es-6.html">Acerca de glib</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-6.html#ss6.1">6.1 ¿Qué es glib?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-6.html#ss6.2">6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc7">7.</A> <A HREF="gtkfaq-es-7.html">Contribuciones al GTK+ FAQ, Mantenedores y Copyright</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-7.html#ss7.1">7.1 Nota del Traductor</A>
|
|
||||||
</UL>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-1.html">Next</A>
|
|
||||||
Previous
|
|
||||||
Contents
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,192 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Información General</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-2.html" REL=next>
|
|
||||||
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc1" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-2.html">Next</A>
|
|
||||||
Previous
|
|
||||||
<A HREF="gtkfaq-es.html#toc1">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s1">1. Información General</A></H2>
|
|
||||||
|
|
||||||
<H2><A NAME="ss1.1">1.1 Autores</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Los autores de GTK+ son:
|
|
||||||
<P>
|
|
||||||
<UL>
|
|
||||||
<LI>Peter Mattis (petm@xcf.berkeley.edu)</LI>
|
|
||||||
<LI>Spencer Kimball (spencer@xcf.berkeley.edu)</LI>
|
|
||||||
<LI>Josh MacDonald (jmacd@xcf.berkeley.edu)</LI>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
GTK+ se ditribuye bajo la licencia de Librería Pública General de GNU
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.2">1.2 ¿Qué es GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>GTK+ es un pequeño y eficiente conjunto de <EM>widgets</EM>, diseñados
|
|
||||||
con un aspecto y sentir general a Motif. Contiene <EM>widgets</EM> comúnes
|
|
||||||
y algúnos <EM>widgets</EM> más complejos como una selección de
|
|
||||||
archivos, y <EM>widgets</EM> de selección de colores.
|
|
||||||
<P>GTK+ proporciona algunas características únicas. (No tengo conocimiento
|
|
||||||
de otra librería de <EM>widge>
|
|
||||||
<HR><H3>Transfer interrupted!</H3>
|
|
||||||
enos).
|
|
||||||
Por ejemplo, un botón no contiene una etiqueta, contiene un <EM>widget</EM>
|
|
||||||
hijo, que en muchas instancias será una etiqueta. Sin embargo, el
|
|
||||||
<EM>widget</EM> hijo también puede ser un <EM>pixmap</EM> (mapa de pixels),
|
|
||||||
imagén o cualquier combinación posible que desee el programador. Toda la
|
|
||||||
librería es así de flexible.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.3">1.3 ¿Qué es el + en GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Peter Mattis informó a la lista de correo gtk:
|
|
||||||
<BLOCKQUOTE>
|
|
||||||
"Escribí originalmente gtk el cual incluía tres librerías,
|
|
||||||
libglib, libgdk y libgtk. Era caracterizado por una jerarquía de
|
|
||||||
<EM>widget</EM> plana. O sea, no podías derivar un nuevo
|
|
||||||
<EM>widget</EM> de uno ya existente. Contenía un mecanismo de
|
|
||||||
<EM>callback</EM> (llamada) más estándar en lugar del mecanismo
|
|
||||||
de señales ahora presente en gtk+. El + fue agregado para distinguir
|
|
||||||
entre la versión original de gtk y la nueva versión. Pueden pensar
|
|
||||||
en ello como una ampliación al gtk original que agrega características
|
|
||||||
orientadas o objetos."
|
|
||||||
</BLOCKQUOTE>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.4">1.4 ¿La G en GTK+ significa General, Gimp, o GNU?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Peter Mattis informó a la lista de correo gtk:
|
|
||||||
<BLOCKQUOTE>
|
|
||||||
"Pienso que la última vez que Spencer y yo hablamos al respecto nos
|
|
||||||
decidimos por GTK = Gimp ToolKit. Pero no estoy seguro. Sin embargo,
|
|
||||||
definitivamente no es GNU."
|
|
||||||
</BLOCKQUOTE>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.5">1.5 ¿Dónde está la documentación para GTK?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
En el directorio doc/ de la distribución de GTK+ encontrarás
|
|
||||||
el material de referencia para GTK y GDK, este FAQ y el tutor de GTK.
|
|
||||||
<P>Adicionalmente, puedes encontrar enlaces a versiones HTML de estos
|
|
||||||
documentos al ir a
|
|
||||||
<A HREF="http://www.gtk.org/">http://www.gtk.org/</A>.
|
|
||||||
<P>El Tutor y el FAQ también se pueden encontrar en
|
|
||||||
<A HREF="http://www.geocities.com/ResearchTriangle/Lab/4299/">http://www.geocities.com/ResearchTriangle/Lab/4299/</A>.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.6">1.6 ¿Hay alguna lista de correo (o archivo de lista de correo) para GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Hay dos listas de correo:
|
|
||||||
<UL>
|
|
||||||
<LI>Una lista de correo para la discusión del desarrollo de aplicaciones
|
|
||||||
basadas en GTK se hospeda en gtk-app-devel-list@redhat.com. Para suscribirse
|
|
||||||
envíe un correo electrónico a
|
|
||||||
<A HREF="mailto:gtk-app-devel-list-request@redhat.com">gtk-app-devel-list-request@redhat.com</A> con <EM>subscribe</EM> en el
|
|
||||||
campo <B>subject</B>.
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>Una lista de correo para la discusión del desarrollo de GTK se hospeda
|
|
||||||
en gtk-list@redhat.com. Para suscribirse envíe un correo electrónico
|
|
||||||
a
|
|
||||||
<A HREF="mailto:gtk-list-request@redhat.com">gtk-list-request@redhat.com</A> con <EM>subscribe</EM>
|
|
||||||
en el campo <B>subject</B>.
|
|
||||||
<P>Un archivo escudriñable de la lista de correo puede ser encontrado en
|
|
||||||
<A HREF="http://archive.redhat.com/gtk-list">http://archive.redhat.com/gtk-list</A></LI>
|
|
||||||
</UL>
|
|
||||||
<H2><A NAME="ss1.7">1.7 ¿La lista gtk-list no ha tenido tráfico alguno por días,</A>
|
|
||||||
está muerta?</H2>
|
|
||||||
|
|
||||||
<P>No, todos están ocupados codificando.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.8">1.8 Cómo conseguir ayuda con GTK+</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Primero, asegúrate que tu pregunta no esté respondida en la
|
|
||||||
documentación, este FAQ o el tutor. ¿Hecho? ¿Estás seguro de que
|
|
||||||
lo has hecho, verdad? En ese caso, el mejor lugar para hacer preguntas es
|
|
||||||
la lista de correo de GTK+.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.9">1.9 Cómo reportar errores en GTK+</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Los reportes de errores se deben enviar a la lista de correo de GTK+.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.10">1.10 ¿Qué aplicaciones se han escrito con GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Algunas aplicaciones que utilizan GTK+ son:
|
|
||||||
<UL>
|
|
||||||
<LI>GIMP (
|
|
||||||
<A HREF="http://www.XCF.Berkeley.EDU/~gimp/">http://www.XCF.Berkeley.EDU/~gimp/</A> ),
|
|
||||||
un programa de manipulación de imágenes</LI>
|
|
||||||
<LI>Gsumi (
|
|
||||||
<A HREF="http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html">http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html</A>),
|
|
||||||
un divertido programa para rayar en blanco y negro con soporte para
|
|
||||||
XInput.</LI>
|
|
||||||
<LI>GUBI (
|
|
||||||
<A HREF="http://www.SoftHome.net/pub/users/timj/gubi/index.htm">http://www.SoftHome.net/pub/users/timj/gubi/index.htm</A>),
|
|
||||||
un constructor de interface de usuario</LI>
|
|
||||||
<LI>Gzilla (
|
|
||||||
<A HREF="http://www.levien.com/gzilla/">http://www.levien.com/gzilla/</A>),
|
|
||||||
un navegador del web</LI>
|
|
||||||
<LI>SANE (
|
|
||||||
<A HREF="http://www.azstarnet.com/~axplinux/sane/">http://www.azstarnet.com/~axplinux/sane/</A> ),
|
|
||||||
una interface universal para <EM>scanner</EM></LI>
|
|
||||||
<LI>XQF (
|
|
||||||
<A HREF="http://www.botik.ru/~roma/quake/">http://www.botik.ru/~roma/quake/</A>),
|
|
||||||
un lanzador y navegador de servidores de QuakeWorld/Quake2</LI>
|
|
||||||
<LI>ElectricEyes (
|
|
||||||
<A HREF="http://www.labs.redhat.com/ee.shtml">http://www.labs.redhat.com/ee.shtml</A>),
|
|
||||||
un visor de imágenes que se dirige a ser un reemplazo libre de xv</LI>
|
|
||||||
<LI>GPK - the General Proxy Kit (
|
|
||||||
<A HREF="http://www.humanfactor.com/gpk/">http://www.humanfactor.com/gpk/</A>),
|
|
||||||
una librería agregable que permite accesso seguro a GTK+
|
|
||||||
ante múltiples hilos</LI>
|
|
||||||
<LI>GCK - the General Convenience Kit (
|
|
||||||
<A HREF="http://www.ii.uib.no/~tomb/gck.html">http://www.ii.uib.no/~tomb/gck.html</A>),
|
|
||||||
funciones misceláneas cuya intención es facilitar el manejo de
|
|
||||||
colores, construcción de IU (interfaces de usuario), operaciones
|
|
||||||
vectoriales, y funciones matemáticas</LI>
|
|
||||||
<LI>GDK Imlib (
|
|
||||||
<A HREF="http://www.labs.redhat.com/imlib/">http://www.labs.redhat.com/imlib/</A>),
|
|
||||||
una librería de manipulación y carga rápida de imágenes para
|
|
||||||
GDK </LI>
|
|
||||||
</UL>
|
|
||||||
<P>Adicionalmente a lo de arriba, el proyecto GNOME
|
|
||||||
(
|
|
||||||
<A HREF="http://www.gnome.org">http://www.gnome.org</A>)
|
|
||||||
utiliza GTK+ para construír un escritorio libre para Linux. Muchos más
|
|
||||||
programas pueden ser encontrados ahí.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss1.11">1.11 Estoy buscando una aplicación que escribir en GTK+. ¿Qué tal un cliente IRC?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
<P>Pregunte en gtk-list para sugerencias. Actualmente hay por lo menos cuatro
|
|
||||||
clientes IRC endesarrollo.
|
|
||||||
<P>
|
|
||||||
<UL>
|
|
||||||
<LI>girc. (Incluído con GNOME)</LI>
|
|
||||||
<LI>Bezerk (
|
|
||||||
<A HREF="http://www.gtk.org/~trog/">http://www.gtk.org/~trog/</A>)</LI>
|
|
||||||
<LI>gsirc. (¿Localización?)</LI>
|
|
||||||
<LI>Gnirc. (
|
|
||||||
<A HREF="http://www.imaginet.fr/~dramboz/gnirc">http://www.imaginet.fr/~dramboz/gnirc</A>)</LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<P>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-2.html">Next</A>
|
|
||||||
Previous
|
|
||||||
<A HREF="gtkfaq-es.html#toc1">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,195 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Cómo encontrar, configurar, instalar y comprobar GTK+</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-3.html" REL=next>
|
|
||||||
<LINK HREF="gtkfaq-es-1.html" REL=previous>
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc2" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-3.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-1.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc2">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s2">2. Cómo encontrar, configurar, instalar y comprobar GTK+</A></H2>
|
|
||||||
|
|
||||||
<H2><A NAME="ss2.1">2.1 ¿Qué necesito para correr GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Para compilar GTK+, todo lo que necesita es un compilador de C (gcc) y
|
|
||||||
el Sistema X Windows y librerías asociadas en su sistema.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss2.2">2.2 ¿Dónde puedo conseguir GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>El sitio canónico es:
|
|
||||||
<PRE>
|
|
||||||
ftp://ftp.gtk.org/pub/gtk
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
Por supuesto, cualquier espejo de ftp.gtk.org debe tener las últimas
|
|
||||||
versiones también.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss2.3">2.3 ¿Cómo configuro/compilo GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Por lo general, todo lo que necesita es emititir los comandos:
|
|
||||||
<PRE>
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
en el directorio gtk+-version/.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss2.4">2.4 Cuando compilo GTK+ obtengo un error como: <CODE>make: file `Makefile' line 456: Syntax error</CODE></A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Asegúrese de que utiliza GNU make (verifique con <CODE>make -v</CODE>). Hay
|
|
||||||
varias versiones extrañas y maravillosas de make por ahí, y no todas
|
|
||||||
manejan los <EM>Makefiles</EM> generados automáticamente.
|
|
||||||
<P>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss2.5">2.5 ¡He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con él!</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Este problema se encuentra comúnmente cuando las librerías GTK+ no pueden
|
|
||||||
ser localizadas o tienen la versión incorrecta. Generalmente, el compilador
|
|
||||||
se quejará de un 'unresolved symbol' (símbolo no resuelto). Hay dos cosas
|
|
||||||
que necesita verificar:
|
|
||||||
<P>
|
|
||||||
<UL>
|
|
||||||
<LI>Asegúrese de que las librerías pueden ser encontradas. Usted desea editar
|
|
||||||
/etc/ld.so.conf para incluír los directorios que contienen las librerías
|
|
||||||
GTK, de manera que luzca como:
|
|
||||||
<PRE>
|
|
||||||
/usr/X11R6/lib
|
|
||||||
/usr/local/lib
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
Luego necesita correr /sbin/ldconfig como root. Puede encontrar que directorio
|
|
||||||
utiliza GTK al ejecutar
|
|
||||||
<PRE>
|
|
||||||
gtk-config --libs
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
|
|
||||||
Si su sitema no utiliza ld.so para encontrar librerías (como Solaris),
|
|
||||||
entonces tendrá que utilizar la variable de ambiente LD_LIBRARY_PATH
|
|
||||||
(o compilar el camino en su programa, lo cual no voy a cubrir aquí). Así
|
|
||||||
que, con un shell tipo Bourne usted puede hacer (si sus librerías GTK
|
|
||||||
están en /usr/local/lib):
|
|
||||||
<PRE>
|
|
||||||
export LD_LIBRARY_PATH=/usr/local/lib
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
y en un csh, usted puede hacer:
|
|
||||||
<PRE>
|
|
||||||
setenv LD_LIBRARY_PATH /usr/local/lib
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
</LI>
|
|
||||||
<LI>Asegúrese de que el enlazador está ha encontrado el conjunto correcto de
|
|
||||||
librerías. Si tiene una distribución de Linux que instala GTK+ (ej.
|
|
||||||
RedHat 5.0) entonces esta versión anterior puede ser utilizada. Ahora
|
|
||||||
(asumiendo que tiene un sistema RedHat), emita el comando
|
|
||||||
<PRE>
|
|
||||||
rpm -e gtk gtk-devel
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
También puede querer remover los paquetes que dependen de gtk (rpm le
|
|
||||||
dirá cuáles son). Si no tiene un sistema Linux RedHat, verifique
|
|
||||||
para estar seguro que ni
|
|
||||||
<PRE>
|
|
||||||
/usr/lib
|
|
||||||
</PRE>
|
|
||||||
ni
|
|
||||||
<PRE>
|
|
||||||
/usr/local/lib
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
contengan alguna de las librerías libgtk, libgdk, libglib, or libgck.
|
|
||||||
Si existen, elimínelas (y cualquier archivo <EM>include</EM>, como
|
|
||||||
/usr/include/gtk y /usr/include/gdk) y reinstale gtk+.</LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss2.6">2.6 Cuando compilo programas con GTK+, obtengo mensajes de error del compilador diciendo que no es capaz de encontrar <CODE>"glibconfig.h"</CODE>.</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>El archivo de encabezado "glibconfig.h" se movió al directorio
|
|
||||||
$exec_prefix/lib/glib/include/. $exec_prefix es el directorio que fue
|
|
||||||
especificado al dar la bandera --exec-prefix a ./configure cuando se
|
|
||||||
compiló GTK+. Va por omisión a $prefix, (especificado con --prefix),
|
|
||||||
que en su lugar va por omisión a /usr/local/.
|
|
||||||
<P>Ésto se hizo asi porque "glibconfig.h" incluye información
|
|
||||||
dependiente de la arquitectura, y el resto de los archivos <EM>include</EM>
|
|
||||||
se colocan en $prefix/include, el cual puede ser compartido entre distintas
|
|
||||||
arquitecturas.
|
|
||||||
<P>GTK+ incluye un guión para el intérprete de comandos,
|
|
||||||
<CODE>gtk-config</CODE>, el cual hace fácil
|
|
||||||
encontrar los caminos correctos de inclusión. El tutor de GTK+ incluye
|
|
||||||
un ejemplo de como utilizar <CODE>gtk-config</CODE> para una compilación simple
|
|
||||||
desde la línea de comandos. Para información sobre configuraciones más
|
|
||||||
complicadas, vea el archivo docs/gtk-config.txt en la distribución de GTK+.
|
|
||||||
<P>Si está intentando compilar un programa viejo, puede bordear el problema
|
|
||||||
al configurarlo con una línea de comando como:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
CPPFLAGS="-I/usr/local/include/glib/include" ./configure
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>para intérpretes de comandos compatibles con Bourne como bash, o para
|
|
||||||
variantes csh:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
setenv CPPFLAGS "-I/usr/local/include/glib/include"
|
|
||||||
./configure
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>(Sustituya el valor apropiado de $exec_prefix para /usr/local.)
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss2.7">2.7 Cuando instalo El GIMP, configure reporta que no puede encontrar GTK.</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Hay varias razones comúnes para esto:
|
|
||||||
<UL>
|
|
||||||
<LI>Usted tiene una versión vieja de GTK instalada en algún lugar.
|
|
||||||
RedHat 5.0, por ejemplo, instala una copia anterior de GTK que no funcinará
|
|
||||||
con las últimas veriones de GIMP. Debe eliminar esta copia vieja, pero
|
|
||||||
observe que en el caso de RedHat 5.0 esto dañará las aplicaciones
|
|
||||||
<CODE>control-panel</CODE>.
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI><CODE>gtk-config</CODE> (u otro componente de GTK) no se encuentra en el camino
|
|
||||||
(<EM>path</EM>),
|
|
||||||
o hay una versión vieja en su sistema. Teclee:
|
|
||||||
<PRE>
|
|
||||||
gtk-config --version
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
para verificar ambos casos. Ésto debe devolver un valor de por lo menos
|
|
||||||
0.99.8 para que las cosas funcionen correctamente con GIMP 0.99.23. Si
|
|
||||||
devuelve un valor distinto a lo que usted espera, entonces tiene una versión
|
|
||||||
vieja de GTK en su sistema.
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>El guión ./configure no puede encontrar las librerías GTK. Como
|
|
||||||
./configure compila varios programas de prueba, necesita poder encontrar las
|
|
||||||
librerías GTK. Revise la pregunta anterior para obtener más ayuda al
|
|
||||||
respecto.</LI>
|
|
||||||
</UL>
|
|
||||||
<P>Si nada de lo anterior ayuda, entonces revise config.log, el cual es
|
|
||||||
generado por ./configure cuando corre. Al final estará la última
|
|
||||||
acción tomada antes de fallar. Si es una sección de código fuente,
|
|
||||||
copie el código fuente a un archivo y compilelo con la línea
|
|
||||||
jústamente arriba de él en config.log. Si la compilación tiene
|
|
||||||
éxito, intente ejecutarlo.
|
|
||||||
<P>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-3.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-1.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc2">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,198 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Desarrollo de GTK+</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-4.html" REL=next>
|
|
||||||
<LINK HREF="gtkfaq-es-2.html" REL=previous>
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc3" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-4.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-2.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc3">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s3">3. Desarrollo de GTK+</A></H2>
|
|
||||||
|
|
||||||
<H2><A NAME="ss3.1">3.1 ¿Qué es esta cosa CVS de la cual todo el mundo habla, y cómo puedo acceder a ella?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>CVS es el Concurrent Version System (Sistema de Versión Concurrente) y es
|
|
||||||
un medio muy popular de control de versión para proyectos de software.
|
|
||||||
Está diseñado para permitir que múltiples autores puedan operar de
|
|
||||||
manera simultánea en el mismo árbol fuente. Este árbol fuente es
|
|
||||||
mantenido centralizadamente, pero cada desarrollador tiene una réplica local
|
|
||||||
de este repositorio en el cual hacen sus cambios.
|
|
||||||
<P>Los desarrolladores de GTK+ utilizan un repositorio CVS para almacenar la
|
|
||||||
copia maestra de la actual versión en desarrollo de GTK+. Como tal,
|
|
||||||
la gente que desea contribuír con parches a GTK+ deben generarlos para la
|
|
||||||
versión del CVS. La gente normal debe utilizar los paquetes liberados.
|
|
||||||
<P>El conjunto de herramientas CVS está disponible como paquetes RPM en los
|
|
||||||
sitios usuales de RedHat. La última versión está disponible en
|
|
||||||
<A HREF="http://download.cyclic.com/pub/"><http://download.cyclic.com/pub/></A><P>Cualquiera puede bajar la última versión CVS de GTK+ utilizando
|
|
||||||
acceso anónimo con los siguientes pasos:
|
|
||||||
<UL>
|
|
||||||
<LI> En un descendiente del intérprete de comandos bourne (ej. bash)
|
|
||||||
teclee:
|
|
||||||
<PRE>
|
|
||||||
export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/debian/home/gnomecvs'
|
|
||||||
</PRE>
|
|
||||||
</LI>
|
|
||||||
<LI>Luego, la primera vez que el árbol fuente se retira, se necesita
|
|
||||||
un <EM>login</EM> cvs.
|
|
||||||
<PRE>
|
|
||||||
cvs login
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
Ésto hará que se le solicite una clave de acceso. No hay clave de
|
|
||||||
acceso para cvs.gimp.org, así que solo ingrese un retorno de carro.</LI>
|
|
||||||
<LI>Para conseguir el árbol y colocarlo en un subdirectorio de su
|
|
||||||
directorio de trabajo actual, emita el comando:
|
|
||||||
<PRE>
|
|
||||||
cvs -z3 get gtk+
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
|
|
||||||
Observe que con el árbol GTK+ 1.1, glib se ha movido a un módulo CVS
|
|
||||||
separado, de manera que si no tiene glib instalado necesitará conseguirlo
|
|
||||||
igualmente:
|
|
||||||
<PRE>
|
|
||||||
cvs -z3 get glib
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
</LI>
|
|
||||||
</UL>
|
|
||||||
<H2><A NAME="ss3.2">3.2 ¿Cómo puedo contribuír a GTK+?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Es simple. Si algo no funciona en un programa como usted piensa que debería,
|
|
||||||
revise la documentación para asegurarse de que no ha pasado algo por alto.
|
|
||||||
Si es un verdadero error o característica perdida, rastréelo en el
|
|
||||||
fuente de GTK+, cámbielo, y entonces genere un parche en la forma de un
|
|
||||||
'diff de contexto'. Esto puede hacerse utilizando un comando como
|
|
||||||
<CODE>diff -ru <oldfile> <newfile></CODE>. Entonces envíe el archivo
|
|
||||||
de parche a:
|
|
||||||
<PRE>
|
|
||||||
ftp://ftp.gtk.org/incoming
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
junto a un archivo README. ¡Asegúrese de seguir las convenciones de
|
|
||||||
asignación de nombres o su parche será borrado! Los archivos deben ser
|
|
||||||
de esta forma:
|
|
||||||
<PRE>
|
|
||||||
gtk-<username>-<date yymmdd-n>.patch.gz
|
|
||||||
gtk-<username>-<date yymmdd-n>.patch.README
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
La "n" en la fecha indica un número único (empezando de 0)
|
|
||||||
de parches que subió ese día. Debe ser 0, a menos que envíe más de
|
|
||||||
un parche en el mismo día.
|
|
||||||
<P>Example:
|
|
||||||
<PRE>
|
|
||||||
gtk-gale-982701-0.patch.gz
|
|
||||||
gtk-gale-982701-0.patch.README
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
Una vez que usted envía <EM>lo que sea</EM>, envíe el README a
|
|
||||||
ftp-admin@gtk.org
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss3.3">3.3 ¿Cómo averiguo si mi parche fue aplicado, y si no, por qué no?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Los parches enviados se mandarán a
|
|
||||||
<CODE>ftp://ftp.gtk.org/pub/gtk/patches</CODE>
|
|
||||||
donde uno del equipo de desarrollo de GTK+ los recogerá. Si son aplicados,
|
|
||||||
serán movidos a <CODE>/pub/gtk/patches/old</CODE>.
|
|
||||||
<P>Los parches que no son aplicados, por cualquier razón, se mandarán a
|
|
||||||
<CODE>/pub/gtk/patches/unapplied</CODE> o <CODE>/pub/gtk/patches/outdated</CODE>.
|
|
||||||
En este punto puede preguntar en la lista de correo <CODE>gtk-list</CODE> el porqué
|
|
||||||
su parche no fué aplicado. Hay muchas razones posibles por las cuales un
|
|
||||||
parche no se aplica, pasando desde que no se puede aplicar limpiamente, hasta
|
|
||||||
que no es correcto. No se rinda si no logró que su parche se aplicase a la
|
|
||||||
primera.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss3.4">3.4 ¿Cuál es la política sobre la incorporación de nuevos <EM>widgets</EM> en la librería?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Esto corresponde a los autores, de manera que tendrá que preguntarles
|
|
||||||
al terminar su <EM>widget</EM>. Como una guía general, los <EM>widgets</EM>
|
|
||||||
que por lo general son útiles, funcionan, y no son una desgracia al conjunto
|
|
||||||
de <EM>widgets</EM> serán incluídos con mucho gusto.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss3.5">3.5 ¿Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Sí. Existe
|
|
||||||
<UL>
|
|
||||||
<LI>una envoltura de C++ para GTK+ llamada gtk--. Puede encontrar el su
|
|
||||||
página hogar en:
|
|
||||||
<A HREF="http://www.cs.tut.fi/~p150650/gtk/gtk--.html">http://www.cs.tut.fi/~p150650/gtk/gtk--.html</A>.
|
|
||||||
El sitio FTP es
|
|
||||||
<A HREF="ftp://ftp.gtk.org/pub/gtk/gtk--">ftp://ftp.gtk.org/pub/gtk/gtk--</A>.
|
|
||||||
<P>
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>Hay dos ataduras para Objective-C en desarrollo:
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI>El paquete elegido por el
|
|
||||||
<A HREF="http://www.gnome.org/">proyecto GNOME</A> es obgtk. Objgtk se basa en la clase Object y es
|
|
||||||
mantenido por
|
|
||||||
<A HREF="mailto:sopwith@cuc.edu">Elliot Lee</A>.
|
|
||||||
Aparentemente, objgtk se está aceptando como el atamiento `estándar'
|
|
||||||
de Objective-C para GTK+.
|
|
||||||
</LI>
|
|
||||||
<LI> Si usted está más inclinado al
|
|
||||||
<A HREF="http://www.gnustep.org/">proyecto GNUstep</A>,
|
|
||||||
puede que quiera revisar GTKKit por
|
|
||||||
<A HREF="mailto:helge@mdlink.de">Helge Heß</A>.
|
|
||||||
La intención es crear un atamiento GTK+ utilizando FoundationKit.
|
|
||||||
GTKKit incluye linduras como escribir un archivo con una plantilla tipo
|
|
||||||
XML para construír una interface GTK+.
|
|
||||||
</LI>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>Atamientos Perl
|
|
||||||
<A HREF="ftp://ftp.gtk.org/pub/gtk/perl">ftp://ftp.gtk.org/pub/gtk/perl</A>
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>Atamientos Guile. La página hogar se encuentra en
|
|
||||||
<A HREF="http://www.ping.de/sites/zagadka/guile-gtk">http://www.ping.de/sites/zagadka/guile-gtk</A>.
|
|
||||||
Por cierto, Guile es la implantación del Proyecto GNU de Scheme R4RS (el
|
|
||||||
estándar). Si le gusta Scheme, querrá darle un vistazo a éste.
|
|
||||||
<P>
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>David Monniaux informa:
|
|
||||||
<BLOCKQUOTE>
|
|
||||||
He empezado un sistema de atamiento gtk-O'Caml. Las bases del sistema,
|
|
||||||
incluyendo <EM>callbacks</EM>, funcionan bien.
|
|
||||||
|
|
||||||
El desarrollo actual se encuentra en
|
|
||||||
<A HREF="http://www.ens-lyon.fr/~dmonniau/arcs">http://www.ens-lyon.fr/~dmonniau/arcs</A></BLOCKQUOTE>
|
|
||||||
|
|
||||||
</LI>
|
|
||||||
<LI>Se han hecho varios atamientos para python:
|
|
||||||
<P>
|
|
||||||
<UL>
|
|
||||||
<LI>pygtk se encuentra en
|
|
||||||
<A HREF="http://www.daa.com.au/~james/pygtk">http://www.daa.com.au/~james/pygtk</A> y
|
|
||||||
<A HREF="ftp://ftp.gtk.org/pub/gtk/python">ftp://ftp.gtk.org/pub/gtk/python</A></LI>
|
|
||||||
<LI>python-gtk se encuentra en
|
|
||||||
<A HREF="http://www.ucalgary.ca/~nascheme/python-gtk">http://www.ucalgary.ca/~nascheme/python-gtk</A></LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
</LI>
|
|
||||||
<LI>Hay un <EM>widget</EM> disponible para GTK+. Agárrelo en
|
|
||||||
<A HREF="http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html">http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html</A>
|
|
||||||
</LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-4.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-2.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc3">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,435 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Desarrollo con GTK+</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-5.html" REL=next>
|
|
||||||
<LINK HREF="gtkfaq-es-3.html" REL=previous>
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc4" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-5.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-3.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc4">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s4">4. Desarrollo con GTK+</A></H2>
|
|
||||||
|
|
||||||
<H2><A NAME="ss4.1">4.1 ¿Cómo empiezo?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Después de que ha instalado GTK+, hay un par de cosas que pueden
|
|
||||||
facilitarle el desarrollo de aplicaciones con él. Está el Tutor de
|
|
||||||
GTK+
|
|
||||||
<A HREF="http://www.gtk.org/tutorial/"><http://www.gtk.org/tutorial/></A>, el cual está en desarrollo
|
|
||||||
activo. Este tutorial le introducirá en la escritura de aplicaciones
|
|
||||||
utilizando C.
|
|
||||||
<P>El Tutor no contiene (todavía) información sobre todos los
|
|
||||||
<EM>widgets</EM> que existen en GTK+. Para código de ejemplo sobre la
|
|
||||||
utilización básica de todos los <EM>widgets</EM> de GTK+, debe ver
|
|
||||||
el archivo gtk/testgtk.c (y archivos fuentes asociados) en la distribución
|
|
||||||
GTK+. Ver estos ejemplos le dará una buena base sobre lo que pueden hacer
|
|
||||||
los <EM>widgets</EM>.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.2">4.2 ¿Qué <EM>widgets</EM> existen en GTK?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>El Tutor de GTK+ lista los siguientes <EM>widgets</EM>:
|
|
||||||
<PRE>
|
|
||||||
GtkObject
|
|
||||||
+GtkData
|
|
||||||
| +GtkAdjustment
|
|
||||||
| `GtkTooltips
|
|
||||||
`GtkWidget
|
|
||||||
+GtkContainer
|
|
||||||
| +GtkBin
|
|
||||||
| | +GtkAlignment
|
|
||||||
| | +GtkEventBox
|
|
||||||
| | +GtkFrame
|
|
||||||
| | | `GtkAspectFrame
|
|
||||||
| | +GtkHandleBox
|
|
||||||
| | +GtkItem
|
|
||||||
| | | +GtkListItem
|
|
||||||
| | | +GtkMenuItem
|
|
||||||
| | | | `GtkCheckMenuItem
|
|
||||||
| | | | `GtkRadioMenuItem
|
|
||||||
| | | `GtkTreeItem
|
|
||||||
| | +GtkViewport
|
|
||||||
| | `GtkWindow
|
|
||||||
| | +GtkColorSelectionDialog
|
|
||||||
| | +GtkDialog
|
|
||||||
| | | `GtkInputDialog
|
|
||||||
| | `GtkFileSelection
|
|
||||||
| +GtkBox
|
|
||||||
| | +GtkButtonBox
|
|
||||||
| | | +GtkHButtonBox
|
|
||||||
| | | `GtkVButtonBox
|
|
||||||
| | +GtkHBox
|
|
||||||
| | | +GtkCombo
|
|
||||||
| | | `GtkStatusbar
|
|
||||||
| | `GtkVBox
|
|
||||||
| | +GtkColorSelection
|
|
||||||
| | `GtkGammaCurve
|
|
||||||
| +GtkButton
|
|
||||||
| | +GtkOptionMenu
|
|
||||||
| | `GtkToggleButton
|
|
||||||
| | `GtkCheckButton
|
|
||||||
| | `GtkRadioButton
|
|
||||||
| +GtkCList
|
|
||||||
| `GtkCTree
|
|
||||||
| +GtkFixed
|
|
||||||
| +GtkList
|
|
||||||
| +GtkMenuShell
|
|
||||||
| | +GtkMenuBar
|
|
||||||
| | `GtkMenu
|
|
||||||
| +GtkNotebook
|
|
||||||
| +GtkPaned
|
|
||||||
| | +GtkHPaned
|
|
||||||
| | `GtkVPaned
|
|
||||||
| +GtkScrolledWindow
|
|
||||||
| +GtkTable
|
|
||||||
| +GtkToolbar
|
|
||||||
| `GtkTree
|
|
||||||
+GtkDrawingArea
|
|
||||||
| `GtkCurve
|
|
||||||
+GtkEditable
|
|
||||||
| +GtkEntry
|
|
||||||
| | `GtkSpinButton
|
|
||||||
| `GtkText
|
|
||||||
+GtkMisc
|
|
||||||
| +GtkArrow
|
|
||||||
| +GtkImage
|
|
||||||
| +GtkLabel
|
|
||||||
| | `GtkTipsQuery
|
|
||||||
| `GtkPixmap
|
|
||||||
+GtkPreview
|
|
||||||
+GtkProgressBar
|
|
||||||
+GtkRange
|
|
||||||
| +GtkScale
|
|
||||||
| | +GtkHScale
|
|
||||||
| | `GtkVScale
|
|
||||||
| `GtkScrollbar
|
|
||||||
| +GtkHScrollbar
|
|
||||||
| `GtkVScrollbar
|
|
||||||
+GtkRuler
|
|
||||||
| +GtkHRuler
|
|
||||||
| `GtkVRuler
|
|
||||||
`GtkSeparator
|
|
||||||
+GtkHSeparator
|
|
||||||
`GtkVSeparator
|
|
||||||
</PRE>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.3">4.3 ¿GTK+ es seguro ante múltiples hilos?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Aunque GTK+, como la mayoría de los juegos de herramientas para X,
|
|
||||||
no es seguro ante múltiples hilos, esto no prohibe el desarrollo de
|
|
||||||
aplicaciones con múltiples hilos con GTK+.
|
|
||||||
<P>Rob Browning (rlb@cs.utexas.edu) describe técnicas de hilamiento
|
|
||||||
que pueden utilizarse con GTK+ (levemente modificado):
|
|
||||||
<P>Básicamente existen dos enfoques principales, el primero es sencillo,
|
|
||||||
y el segundo complicado. En el primero, simplemente hay que asegurarse
|
|
||||||
de que todas las interacciones de GTK+ (o X) se manejan por un, y solo un,
|
|
||||||
hilo. Cualquier otro hilo que desee dibujar algo tiene que notificarlo de
|
|
||||||
alguna manera al hilo "GTK+", y dejarlo que maneje el trabajo real.
|
|
||||||
<P>El segundo enfoque le permite llamar funciones de GTK+ (o X) desde cualquier
|
|
||||||
hilo, pero requiere sincronización cuidadosa. La idea básica es crear
|
|
||||||
una exclusión mutua de protección para X, de manera que nadie haga
|
|
||||||
llamadas X sin primero adquirir esta exclusión mutua.
|
|
||||||
<P>Observe que se trata de un pequeño esfuerzo, pero que le permitirá ser
|
|
||||||
potencialmente más eficiente que un GTK+ completamente seguro ante
|
|
||||||
múltiples hilos. Usted decide la granularidad del bloqueo de hilos.
|
|
||||||
También debe asegurarse que el hilo que llama a gtk_main mantiene la
|
|
||||||
cerradura cuando llama a gtk_main.
|
|
||||||
<P>Lo siguiente por lo que hay que preocuparse ya que se tenía agarrada
|
|
||||||
la exclusión mutua global cuando se entró a gtk_main, es que todos
|
|
||||||
los <EM>callbacks</EM> también la tendrán. Esto significa que el
|
|
||||||
<EM>callback</EM> debe soltarla si va a llamar a cualquier otro código
|
|
||||||
que pueda readquirirla. De otra manera obtendrá un bloqueo mortal.
|
|
||||||
También hay que tener agarrada la exclusión mutua cuando finalmente
|
|
||||||
regresa del <EM>callback</EM>.
|
|
||||||
<P>Para permitir a otros hilos, además del que llama a gtk_main, tener
|
|
||||||
acceso a la exclusión mutua, necesitamos registrar una función de
|
|
||||||
trabajo con GTK que nos permita liberar la exclusión mutua
|
|
||||||
periódicamente.
|
|
||||||
<P>¿Por qué GTK+ no puede ser seguro ante múltiples hilos de
|
|
||||||
manera nativa?
|
|
||||||
<P>Complejidad, sobrecarga, y mano de obra. La proporción de programas
|
|
||||||
con hilos es todavía razonablemente pequeña, y conseguir seguridad
|
|
||||||
ante hilos es muy difícil y le quita tiempo valioso al trabajo
|
|
||||||
principal de obtener una buena librería gráfica terminada. Sería
|
|
||||||
muy agradable que GTK+ fuera seguro ante hilos "al sacarlo de la caja",
|
|
||||||
pero no es práctico ahora mismo, y haría a GTK+ sustancialmente menos
|
|
||||||
eficiente si no se maneja cuidadosamente.
|
|
||||||
<P>De cualquier manera, no es una prioridad esencial ya que existen remedios
|
|
||||||
relativamente buenos.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.4">4.4 ¿Cómo puedo prevenir el redibujar y reacomodar tamaños mientras cambio múltiples <EM>widgets</EM>?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
Utilize gtk_container_disable_resize y gtk_container_enable_resize alrededor
|
|
||||||
del código donde quiere cambiar varias cosas. Esto resultará en mayor
|
|
||||||
velocidad ya que prevendrá tener que darle el tamaño otra vez a la
|
|
||||||
jerarquía de <EM>widget</EM> por completo.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.5">4.5 ¿Cómo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Tim Janik escribió a la lista gtk-list (ligeramente modificado):
|
|
||||||
<P>Defina un manejador de señal:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
gint
|
|
||||||
signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data)
|
|
||||||
{
|
|
||||||
if (GTK_IS_LIST_ITEM(widget) &&
|
|
||||||
(event->type==GDK_2BUTTON_PRESS ||
|
|
||||||
event->type==GDK_3BUTTON_PRESS) ) {
|
|
||||||
printf("I feel %s clicked on button %d\",
|
|
||||||
event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
|
|
||||||
event->button);
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>Y conecte el manejador a su objeto:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
{
|
|
||||||
/* lista, asuntos de inicializacion de articulos de lista */
|
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT(list_item),
|
|
||||||
"button_press_event",
|
|
||||||
GTK_SIGNAL_FUNC(signal_handler_event),
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
/* y/o */
|
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT(list_item),
|
|
||||||
"button_release_event",
|
|
||||||
GTK_SIGNAL_FUNC(signal_handler_event),
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
/* algo mas */
|
|
||||||
}
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>y, Owen Taylor escribió:
|
|
||||||
<P>Observe que se recibirá la pulsación del botón de antemano, y
|
|
||||||
si está haciendo esto para un botón, también obtendrá una señal
|
|
||||||
de "tecleado" para el botón. (Esto es cierto para cualquier juego de
|
|
||||||
herramientas, ya que las computadoras no son buenas para leer la mente de
|
|
||||||
cada quien.)
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.6">4.6 ¿Cómo puedo averiguar cuál es la selección de un GtkList?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
<P>Consiga la selección con algo como esto:
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
GList *sel;
|
|
||||||
sel = GTK_LIST(list)->selection;
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>Así es como GList está definido (sacado de glist.h):
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
typedef struct _GList GList;
|
|
||||||
|
|
||||||
struct _GList
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
GList *next;
|
|
||||||
GList *prev;
|
|
||||||
};
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>Una estructura GList es simplemente una estructura para listas doblemente
|
|
||||||
enlazadas. Existen varias funciones g_list_*() para modificar una lista
|
|
||||||
enlazada en glib.h. Sin embargo, la selección GTK_LIST(MyGtkList)->selection
|
|
||||||
es mantenida por las funciones gtk_list_*() y no deben ser modificadas.
|
|
||||||
<P>El selection_mode del GtkList determina las facilidades de selección de un
|
|
||||||
GtkList y por lo tanto los contenidos de GTK_LIST(AnyGtkList)->selection:
|
|
||||||
<P>
|
|
||||||
<PRE>
|
|
||||||
selection_mode GTK_LIST()->selection contents
|
|
||||||
------------------------------------------------------
|
|
||||||
|
|
||||||
GTK_SELECTION_SINGLE) la selección es NULL
|
|
||||||
o contiene un puntero GList*
|
|
||||||
para un artículo seleccionado individualmente
|
|
||||||
|
|
||||||
GTK_SELECTION_BROWSE) la selección es NULL si la lista
|
|
||||||
no contiene widgets, de otra manera
|
|
||||||
contiene un puntero GList*
|
|
||||||
para una estructura GList.
|
|
||||||
GTK_SELECTION_MULTIPLE) la selección es NULL si no se seleccionan
|
|
||||||
listitems para un apuntador GList*
|
|
||||||
para el primer artículo seleccionado. Eso en
|
|
||||||
su lugar apunta a una estructura GList para el
|
|
||||||
segundo artículo seleccionado y continúa
|
|
||||||
|
|
||||||
GTK_SELECTION_EXTENDED) la selección es NULL.
|
|
||||||
</PRE>
|
|
||||||
<P>El campo data de la estructura GList GTK_LIST(MyGtkList)->selection apunta
|
|
||||||
al primer GtkListItem que es seleccionado. De manera que si quiere determinar
|
|
||||||
cuales listitems están seleccionados debe hacer esto:
|
|
||||||
<P>Durante la in>
|
|
||||||
<HR><H3>Transfer interrupted!</H3>
|
|
||||||
>
|
|
||||||
{
|
|
||||||
gchar *list_items[]={
|
|
||||||
"Item0",
|
|
||||||
"Item1",
|
|
||||||
"foo",
|
|
||||||
"last Item",
|
|
||||||
};
|
|
||||||
guint nlist_items=sizeof(list_items)/sizeof(list_items[0]);
|
|
||||||
GtkWidget *list_item;
|
|
||||||
guint i;
|
|
||||||
|
|
||||||
list=gtk_list_new();
|
|
||||||
gtk_list_set_selection_mode(GTK_LIST(list), GTK_SELECTION_MULTIPLE);
|
|
||||||
gtk_container_add(GTK_CONTAINER(AnyGtkContainer), list);
|
|
||||||
gtk_widget_show (list);
|
|
||||||
|
|
||||||
for (i = 0; i < nlist_items; i++)
|
|
||||||
{
|
|
||||||
list_item=gtk_list_item_new_with_label(list_items[i]);
|
|
||||||
gtk_object_set_user_data(GTK_OBJECT(list_item), (gpointer)i);
|
|
||||||
gtk_container_add(GTK_CONTAINER(list), list_item);
|
|
||||||
gtk_widget_show(list_item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>Para tener conocimiento de la inicialización:
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
{
|
|
||||||
GList *items;
|
|
||||||
|
|
||||||
items=GTK_LIST(list)->selection;
|
|
||||||
|
|
||||||
printf("Selected Items: ");
|
|
||||||
while (items) {
|
|
||||||
if (GTK_IS_LIST_ITEM(items->data))
|
|
||||||
printf("%d ", (guint)
|
|
||||||
gtk_object_get_user_data(items->data));
|
|
||||||
items=items->next;
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<H2><A NAME="ss4.7">4.7 ¿Acaso es posible desplegar un texto que se recorte para que quepa dentro del lugar que tenga asignado?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>El comportamiento de GTK+ (sin recorte) es una consecuencia de sus intentos
|
|
||||||
para conservar recursos de X. Los <EM>widgets</EM> etiqueta (entre otros) no
|
|
||||||
tienen su propia ventana X - simplemente dibujan su contenido en la ventana
|
|
||||||
de su padre. Aunque sería posible hacer que ocurran recortes al establecer
|
|
||||||
la máscara de recorte antes de dibujar el texto, esto podría causar una
|
|
||||||
penalización substancial en el rendimiento.
|
|
||||||
<P>Es posible que, a largo plazo, la mejor solución a tales problemas sea
|
|
||||||
simplemente cambiar gtk para que le de ventanas X a las etiquetas. Un remedio
|
|
||||||
a corto plazo es poner el <EM>widget</EM> de etiqueta dentro de otro
|
|
||||||
<EM>widget</EM> que sí obtiene su propia ventana - un candidato posible puede ser el <EM>widget</EM> <EM>viewport</EM>.
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
viewport = gtk_viewport (NULL, NULL);
|
|
||||||
gtk_widget_set_usize (viewport, 50, 25);
|
|
||||||
gtk_viewport_set_shadow_type (GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);
|
|
||||||
gtk_widget_show(viewport);
|
|
||||||
|
|
||||||
label = gtk_label ("a really long label that won't fit");
|
|
||||||
gtk_container_add (GTK_CONTAINER(viewport), label);
|
|
||||||
gtk_widget_show (label);
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>Si estuviera haciendo esto para un montón de <EM>widgets</EM>, querrá
|
|
||||||
copiar gtkviewport.c y arrancar la funcionalidad de sombra y ajuste (tal vez
|
|
||||||
quiera llamarlo GtkClipper).
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.8">4.8 ¿Por qué el contenido de un botón no se mueve al presionar el botón? Aquí les envío un parche para que funcione de esa forma...</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>De: Peter Mattis
|
|
||||||
<P>La razón por la cuál los botones no mueven a su hijo abajo y a la derecha
|
|
||||||
cuando son presionados es porque no me parece que eso es lo que ocurre
|
|
||||||
visualmente. Mi visión de los botonos es que los miras de manera recta.
|
|
||||||
O sea, la interface de usuario tiende sobre un plano y tú estás sobre
|
|
||||||
él observándolo de manera recta. Cuando un botón es presionado se
|
|
||||||
mueve directamente lejos de tí. Para ser absolutamente correcto supongo
|
|
||||||
que el hijo debería encojerse un poquito. Pero no veo por qué el hijo
|
|
||||||
debería moverse abajo y a la izquierda. Recurda, el hijo se supone que
|
|
||||||
está pegado a la superficie del botón. No es bueno que luzca como si
|
|
||||||
el hijo se resbala sobre la superficie del botón.
|
|
||||||
<P>En una nota más práctica, ya implanté esto una vez y determiné
|
|
||||||
que no se veía bien y lo quité.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.9">4.9 ¿Cómo puedo definir una línea de separación como en un menú?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Revise el
|
|
||||||
<A HREF="http://www.gtk.org/tutorial/">Tutor</A> para información sobre como crear menús.
|
|
||||||
<P>Sin embargo, para crear una línea de separación en un menú,
|
|
||||||
simplemente inserte un artículo de menú vacío:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
menuitem = gtk_menu_item_new();
|
|
||||||
gtk_menu_append(GTK_MENU(menu), menuitem);
|
|
||||||
gtk_widget_show(menuitem);
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.10">4.10 ¿Cómo puedo darle justificación a la derecha a un menú, como Help, cuando utilizo MenuFactory?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Utilice algo como lo que sigue:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
menu_path = gtk_menu_factory_find (factory, "<MyApp>/Help");
|
|
||||||
gtk_menu_item_right_justify(menu_path->widget);
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<H2><A NAME="ss4.11">4.11 ¿Cómo hago mi ventana modal? / ¿Cómo hago una sóla ventana activa?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Después de haber creado su ventana, haga gtk_grab_add(my_window). Y
|
|
||||||
después de cerrar la ventana haga gtk_grab_remove(my_window).
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss4.12">4.12 ¿Por qué mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>
|
|
||||||
<P>Probablemente usted está haciendo todos los cambios dentro de una función
|
|
||||||
sin devolver el control a gtk_main. La mayoría de las actualizaciones de
|
|
||||||
dibujo se colocan simplemente en una cola, la cual es procesada dentro de
|
|
||||||
gtk_main. Puede forzar que se procese la cola de dibujado utilizando algo como:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
while (gtk_events_pending())
|
|
||||||
gtk_main_iteration();
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>dentro de la función que cambia el <EM>widget</EM>.
|
|
||||||
<P>Lo que el fragmento anterior hace es correr todos los eventos pendientes y
|
|
||||||
funciones ociosas de alta prioridad, luego regresa de inmediato (el dibujado
|
|
||||||
se realiza en una función ociosa de alta prioridad).
|
|
||||||
<P>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-5.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-3.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc4">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,92 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Acerca de gdk</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-6.html" REL=next>
|
|
||||||
<LINK HREF="gtkfaq-es-4.html" REL=previous>
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc5" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-6.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-4.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc5">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s5">5. Acerca de gdk</A></H2>
|
|
||||||
|
|
||||||
<H2><A NAME="ss5.1">5.1 ¿Qué es gdk?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>gdk es básicamente una envoltura alrededor de las llamadas a funciones
|
|
||||||
Xlib. Si estás familiarizado con Xlib, muchas de las funciones en gdk
|
|
||||||
requerirán poco o ningún tiempo para acostumbrarse.
|
|
||||||
Todas las funciones están escritas para proporcionar una manera fácil de
|
|
||||||
acceder a las funciones Xlib en una manera un poco más intuitiva.
|
|
||||||
Adicionalmente, ya que gdk utiliza glib (vea abajo), será más portable
|
|
||||||
y seguro de utilizar en
|
|
||||||
múltiples plataformas.
|
|
||||||
<P>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Una de las cosas agradables de GDK es que está basado sobre Xlib; esto
|
|
||||||
también es un problema, especialmente en el área de administración
|
|
||||||
de colores. Si usted quiere utilizar color en su programa (dibujando un
|
|
||||||
rectángulo o algo por el estilo, su código debe lucir algo así:
|
|
||||||
<P>
|
|
||||||
<BLOCKQUOTE><CODE>
|
|
||||||
<PRE>
|
|
||||||
{
|
|
||||||
GdkColor *color;
|
|
||||||
int width, height;
|
|
||||||
GtkWidget *widget;
|
|
||||||
GdkGC *gc;
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
/* primero, cree un GC (contexto grafico) en el cual dibujar */
|
|
||||||
gc = gdk_gc_new(widget->window);
|
|
||||||
|
|
||||||
/* encuentre las dimensiones correctas para el rectangulo */
|
|
||||||
gdk_window_get_size(widget->window, &width, &height);
|
|
||||||
|
|
||||||
/* el color que queremos utilizar */
|
|
||||||
color = (GdkColor *)malloc(sizeof(GdkColor));
|
|
||||||
|
|
||||||
/* rojo, verde y azul son valores pasados, indicando el trio RGB
|
|
||||||
* del color que queremos dibujar. Note que los valores de los componentes
|
|
||||||
* RGB dentro de GdkColor son tomados de 0 a 65535, no de 0 a 255.
|
|
||||||
*/
|
|
||||||
color->red = red * (65535/255);
|
|
||||||
color->green = green * (65535/255);
|
|
||||||
color->blue = blue * (65535/255);
|
|
||||||
|
|
||||||
/* el valor de pixel indica el indice en el mapa de colores del color.
|
|
||||||
* simplemente es una combinacion de los valores RGB colocados anteriormente
|
|
||||||
*/
|
|
||||||
color->pixel = (gulong)(red*65536 + green*256 + blue);
|
|
||||||
|
|
||||||
/* Sin embargo, el valor de pixel es solo valido en dispositivos de 24-bit
|
|
||||||
* (color verdadero). Por lo tanto, esta llamada es requerida para que GDK
|
|
||||||
* y X puedan darnos el color mas cercano disponible en el mapa de colores
|
|
||||||
*/
|
|
||||||
gdk_color_alloc(gtk_widget_get_colormap(widget), color);
|
|
||||||
|
|
||||||
/* colocar la parte delantera a nuestro color */
|
|
||||||
gdk_gc_set_foreground(gc, color);
|
|
||||||
|
|
||||||
/* dibujar el rectangulo*/
|
|
||||||
gdk_draw_rectangle(widget->window, gc, 1, 0, 0, width, height);
|
|
||||||
|
|
||||||
...
|
|
||||||
}
|
|
||||||
</PRE>
|
|
||||||
</CODE></BLOCKQUOTE>
|
|
||||||
<P>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-6.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-4.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc5">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,64 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Acerca de glib</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-7.html" REL=next>
|
|
||||||
<LINK HREF="gtkfaq-es-5.html" REL=previous>
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc6" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-7.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-5.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc6">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s6">6. Acerca de glib</A></H2>
|
|
||||||
|
|
||||||
<H2><A NAME="ss6.1">6.1 ¿Qué es glib?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>glib es una librería de funciones y definiciones útiles disponibles
|
|
||||||
para ser utilizadas cuando se crean aplicaciones GDK y GTK. Proporciona
|
|
||||||
reemplazos para algunas funciones estándar de libc, como malloc, las
|
|
||||||
cuales tienen errores en algunos sistemas.
|
|
||||||
<P>También proporciona rutinas para manejar:
|
|
||||||
<UL>
|
|
||||||
<LI>Listas Doblemente Enlazadas</LI>
|
|
||||||
<LI>Listas con Enlace Sencillo</LI>
|
|
||||||
<LI>Cronómetros</LI>
|
|
||||||
<LI>Manipulación de cadenas</LI>
|
|
||||||
<LI>Un Analizador Léxico</LI>
|
|
||||||
<LI>Funciones de Error</LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss6.2">6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Gracias a Tim Janik que escribió a gtk-list: (ligeramente modificado)
|
|
||||||
<BLOCKQUOTE>
|
|
||||||
Con respecto a g_malloc(), g_free() y hermanos, estas funciones son más
|
|
||||||
seguras que sus equivalentes en libc. Por ejemplo, g_free() solo regresa si
|
|
||||||
se llama con NULL. También, si se define USE_DMALLOC, la definición para
|
|
||||||
estas funciones cambia (en glib.h) para utilizar MALLOC(), FREE() etc... Si
|
|
||||||
MEM_PROFILE o MEM_CHECK se definen, hay incluso pequeñas estadísticas
|
|
||||||
realizadas las cuales cuentan los tamaños de los bloques (mostrado por
|
|
||||||
g_mem_profile() / g_mem_check()).
|
|
||||||
<P>Considerando el hecho de que glib provee una interface para salvar espacio en
|
|
||||||
pedazos de memoria si se tiene varios bloques que son siempre del mismo
|
|
||||||
tamaño y para marcarlos ALLOC_ONLY si es necesario, es sencillo crear
|
|
||||||
una pequeña envoltura para salvar (revisable para errores) alrededor del
|
|
||||||
malloc/free normal asimismo - igual que gdk cubre Xlib. ;)
|
|
||||||
<P>Utilizar g_error() y g_warning() dentro de aplicaciones como GIMP las cuales
|
|
||||||
utilizan gtk por completo incluso da la oportunidad de hacer saltar una ventana
|
|
||||||
que muestre los mensajes dentro de una ventana gtk con tu propio handler
|
|
||||||
(utilizando g_set_error_handler()) con el mismo estilo que gtk_print()
|
|
||||||
(dentro de gtkmain.c).
|
|
||||||
</BLOCKQUOTE>
|
|
||||||
<P>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-7.html">Next</A>
|
|
||||||
<A HREF="gtkfaq-es-5.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc6">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,80 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ: Contribuciones al GTK+ FAQ, Mantenedores y Copyright</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-6.html" REL=previous>
|
|
||||||
<LINK HREF="gtkfaq-es.html#toc7" REL=contents>
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
Next
|
|
||||||
<A HREF="gtkfaq-es-6.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc7">Contents</A>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H2><A NAME="s7">7. Contribuciones al GTK+ FAQ, Mantenedores y Copyright</A></H2>
|
|
||||||
|
|
||||||
<P>Si desea hacer una contribución al FAQ, envíe a alguno de nosotros
|
|
||||||
un mensaje por correo electrónico con el texto exacto que cree que
|
|
||||||
debería ser incluído (pregunta y respuesta). ¡Con su ayuda, este
|
|
||||||
documento puede crecer y llegar a ser más útil!
|
|
||||||
<P>Este documento es mantenido por Nathan Froyd
|
|
||||||
<A HREF="mailto:maestrox@geocities.com"><maestrox@geocities.com></A>
|
|
||||||
y Tony Gale
|
|
||||||
<A HREF="mailto:gale@gimp.org"><gale@gimp.org></A>.
|
|
||||||
Este FAQ fue creado por Shawn T. Amundson
|
|
||||||
<A HREF="mailto:amundson@gimp.org"><amundson@gimp.org></A> quien continúa dando soporte.
|
|
||||||
<P>El GTK+ FAQ está registrado Copyright (C) 1997, 1998 por Shawn T. Amundson,
|
|
||||||
Nathan Froyd y tony Gale.
|
|
||||||
<P>Se otorga permiso para hacer y distribuír copias textuales de este manual
|
|
||||||
siempre y cuando la información de copyright y este permiso se preserven en
|
|
||||||
todas las copias.
|
|
||||||
<P>Se otorga permiso para copiar y distribuir versiones modificados de este
|
|
||||||
documento bajo las condiciones para copiado textual, siempre y cuando esta
|
|
||||||
noticia de copyright se incluya exáctamente como en el original, y
|
|
||||||
que el trabajo resultante en su totalidad sea distribuído bajo los
|
|
||||||
términos de una noticia de permiso idéntica a esta.
|
|
||||||
<P>Se otorga permiso para copiar y distribuír traducciones de este documento
|
|
||||||
a otro lenguaje, bajo las condiciones anteriores de versiones modificadas.
|
|
||||||
<P>Si tiene intenciones de incorporar este documento en un trabajo publicado,
|
|
||||||
por favor contacte a uno de los mantenedores, y nos aseguraremos de que
|
|
||||||
obtenga la información más actual posible.
|
|
||||||
<P>No hay garantía de que este documento logre su propósito. Este documento
|
|
||||||
se proporciona simplemente como un recurso libre. Como tal, los autores y
|
|
||||||
mantenedores de la información proporcionada en él no pueden dar
|
|
||||||
garantía alguna de que la información es precisa.
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="ss7.1">7.1 Nota del Traductor</A>
|
|
||||||
</H2>
|
|
||||||
|
|
||||||
<P>Esta traducción fue realizada por
|
|
||||||
<A HREF="http://www.talisman.com.pa">Ramsés Morales</A>.
|
|
||||||
He intentado hacer
|
|
||||||
la mejor adaptación posible de los términos técnicos, si tiene
|
|
||||||
alguna sugerencia o mejora a estos términos y mi español, o alguna
|
|
||||||
duda por causa de mi traducción, no dude en comunicármelo a
|
|
||||||
<A HREF="mailto:ramses@computer.org"><ramses@computer.org></A><P>Gracias a
|
|
||||||
<A HREF="mailto: e98cuenc@criens.u-psud.fr">Joaquín Cuenca</A> por todas sus sugerencias para mejorar la
|
|
||||||
traducción, fueron de gran ayuda.
|
|
||||||
<P>--------------------------------------
|
|
||||||
<P>The GTK+ FAQ is Copyright (C) 1997,1998 by Shawn T. Amundson, Nathan Froyd and Tony Gale.
|
|
||||||
<P>Permission is granted to make and distribute verbatim copies of this manual provided the
|
|
||||||
copyright notice and this permission notice are preserved on all copies.
|
|
||||||
<P>Permission is granted to copy and distribute modified versions of this document under the conditions
|
|
||||||
for verbatim copying, provided that this copyright notice is included exactly as in the original,
|
|
||||||
and that the entire resulting derived work is distributed under the terms of a permission
|
|
||||||
notice identical to this one.
|
|
||||||
<P>Permission is granted to copy and distribute translations of this document into another language,
|
|
||||||
under the above conditions for modified versions.
|
|
||||||
<P>If you are intending to incorporate this document into a published work, please contact one of
|
|
||||||
the maintainers, and we will make an effort to ensure that you have the most up to date
|
|
||||||
information available.
|
|
||||||
<P>There is no guarentee that this document lives up to its intended
|
|
||||||
purpose. This is simply provided as a free resource. As such,
|
|
||||||
the authors and maintainers of the information provided within can
|
|
||||||
not make any guarentee that the information is even accurate.
|
|
||||||
<HR NOSHADE>
|
|
||||||
Next
|
|
||||||
<A HREF="gtkfaq-es-6.html">Previous</A>
|
|
||||||
<A HREF="gtkfaq-es.html#toc7">Contents</A>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
@ -1,103 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
|
|
||||||
<TITLE>GTK+ FAQ</TITLE>
|
|
||||||
<LINK HREF="gtkfaq-es-1.html" REL=next>
|
|
||||||
|
|
||||||
|
|
||||||
</HEAD>
|
|
||||||
<BODY BGCOLOR="#FFFFFF">
|
|
||||||
<A HREF="gtkfaq-es-1.html">Next</A>
|
|
||||||
Previous
|
|
||||||
Contents
|
|
||||||
<HR NOSHADE>
|
|
||||||
<H1>GTK+ FAQ</H1>
|
|
||||||
|
|
||||||
|
|
||||||
<H2>Nathan Froyd, Tony Gale, Shawn T. Amundson.</H2>Seis de Julio de 1998
|
|
||||||
<P><HR NOSHADE>
|
|
||||||
<EM>La intención de este documento es dar respuesta a las preguntas
|
|
||||||
realizadas con más frecuencia por parte de los programadores que utilizan GTK+ o simplemente por personas que desean utilizar GTK+. </EM>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc1">1.</A> <A HREF="gtkfaq-es-1.html">Información General</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.1">1.1 Autores</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.2">1.2 ¿Qué es GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.3">1.3 ¿Qué es el + en GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.4">1.4 ¿La G en GTK+ significa General, Gimp, o GNU?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.5">1.5 ¿Dónde está la documentación para GTK?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.6">1.6 ¿Hay alguna lista de correo (o archivo de lista de correo) para GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.7">1.7 ¿La lista gtk-list no ha tenido tráfico alguno por días,</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.8">1.8 Cómo conseguir ayuda con GTK+</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.9">1.9 Cómo reportar errores en GTK+</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.10">1.10 ¿Qué aplicaciones se han escrito con GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-1.html#ss1.11">1.11 Estoy buscando una aplicación que escribir en GTK+. ¿Qué tal un cliente IRC?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc2">2.</A> <A HREF="gtkfaq-es-2.html">Cómo encontrar, configurar, instalar y comprobar GTK+</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.1">2.1 ¿Qué necesito para correr GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.2">2.2 ¿Dónde puedo conseguir GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.3">2.3 ¿Cómo configuro/compilo GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.4">2.4 Cuando compilo GTK+ obtengo un error como: <CODE>make: file `Makefile' line 456: Syntax error</CODE></A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.5">2.5 ¡He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con él!</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.6">2.6 Cuando compilo programas con GTK+, obtengo mensajes de error del compilador diciendo que no es capaz de encontrar <CODE>"glibconfig.h"</CODE>.</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-2.html#ss2.7">2.7 Cuando instalo El GIMP, configure reporta que no puede encontrar GTK.</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc3">3.</A> <A HREF="gtkfaq-es-3.html">Desarrollo de GTK+</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.1">3.1 ¿Qué es esta cosa CVS de la cual todo el mundo habla, y cómo puedo acceder a ella?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.2">3.2 ¿Cómo puedo contribuír a GTK+?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.3">3.3 ¿Cómo averiguo si mi parche fue aplicado, y si no, por qué no?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.4">3.4 ¿Cuál es la política sobre la incorporación de nuevos <EM>widgets</EM> en la librería?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-3.html#ss3.5">3.5 ¿Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc4">4.</A> <A HREF="gtkfaq-es-4.html">Desarrollo con GTK+</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.1">4.1 ¿Cómo empiezo?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.2">4.2 ¿Qué <EM>widgets</EM> existen en GTK?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.3">4.3 ¿GTK+ es seguro ante múltiples hilos?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.4">4.4 ¿Cómo puedo prevenir el redibujar y reacomodar tamaños mientras cambio múltiples <EM>widgets</EM>?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.5">4.5 ¿Cómo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.6">4.6 ¿Cómo puedo averiguar cuál es la selección de un GtkList?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.7">4.7 ¿Acaso es posible desplegar un texto que se recorte para que quepa dentro del lugar que tenga asignado?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.8">4.8 ¿Por qué el contenido de un botón no se mueve al presionar el botón? Aquí les envío un parche para que funcione de esa forma...</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.9">4.9 ¿Cómo puedo definir una línea de separación como en un menú?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.10">4.10 ¿Cómo puedo darle justificación a la derecha a un menú, como Help, cuando utilizo MenuFactory?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.11">4.11 ¿Cómo hago mi ventana modal? / ¿Cómo hago una sóla ventana activa?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-4.html#ss4.12">4.12 ¿Por qué mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc5">5.</A> <A HREF="gtkfaq-es-5.html">Acerca de gdk</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-5.html#ss5.1">5.1 ¿Qué es gdk?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-5.html#ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc6">6.</A> <A HREF="gtkfaq-es-6.html">Acerca de glib</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-6.html#ss6.1">6.1 ¿Qué es glib?</A>
|
|
||||||
<LI><A HREF="gtkfaq-es-6.html#ss6.2">6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?</A>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
<H2><A NAME="toc7">7.</A> <A HREF="gtkfaq-es-7.html">Contribuciones al GTK+ FAQ, Mantenedores y Copyright</A></H2>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="gtkfaq-es-7.html#ss7.1">7.1 Nota del Traductor</A>
|
|
||||||
</UL>
|
|
||||||
<HR NOSHADE>
|
|
||||||
<A HREF="gtkfaq-es-1.html">Next</A>
|
|
||||||
Previous
|
|
||||||
Contents
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
19
docs/faq/.cvsignore
Normal file
19
docs/faq/.cvsignore
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
*.html
|
||||||
|
*.dvi
|
||||||
|
*.ps
|
||||||
|
*.pg
|
||||||
|
*.ky
|
||||||
|
*.cp
|
||||||
|
*.fn
|
||||||
|
*.tp
|
||||||
|
*.vr
|
||||||
|
*.log
|
||||||
|
*.aux
|
||||||
|
*.toc
|
||||||
|
*.cps
|
||||||
|
*.fns
|
||||||
|
*.vrs
|
||||||
|
html
|
||||||
|
text
|
42
docs/faq/Makefile.am
Normal file
42
docs/faq/Makefile.am
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
.PHONY: htmldir textdir faq
|
||||||
|
|
||||||
|
FAQ_FILES=html/gtkfaq.html \
|
||||||
|
html/gtkfaq-1.html \
|
||||||
|
html/gtkfaq-2.html \
|
||||||
|
html/gtkfaq-3.html \
|
||||||
|
html/gtkfaq-4.html \
|
||||||
|
html/gtkfaq-5.html \
|
||||||
|
html/gtkfaq-6.html \
|
||||||
|
html/gtkfaq-7.html \
|
||||||
|
text/gtkfaq.txt
|
||||||
|
|
||||||
|
$(FAQ_FILES): faq
|
||||||
|
|
||||||
|
htmldir:
|
||||||
|
mkdir -p $(srcdir)/html
|
||||||
|
|
||||||
|
textdir:
|
||||||
|
mkdir -p $(srcdir)/text
|
||||||
|
|
||||||
|
faq: htmldir textdir
|
||||||
|
(cd $(srcdir); sgml2html gtkfaq.sgml; \
|
||||||
|
perl $(top_srcdir)/docs/gtkdocs_fix gtkfaq*html; \
|
||||||
|
mv gtkfaq*html html/; \
|
||||||
|
sgml2txt gtkfaq.sgml; \
|
||||||
|
mv gtkfaq.txt text/)
|
||||||
|
|
||||||
|
EXTRA_DIST += gtkfaq.sgml
|
||||||
|
|
||||||
|
if HAVE_SGML2HTML
|
||||||
|
dist-hook: faq
|
||||||
|
mkdir $(distdir)/html
|
||||||
|
cp -p $(srcdir)/html/*.html $(distdir)/html
|
||||||
|
mkdir $(distdir)/text
|
||||||
|
cp -p $(srcdir)/text/*.txt $(distdir)/text
|
||||||
|
else
|
||||||
|
dist-hook:
|
||||||
|
echo "***"
|
||||||
|
echo "*** Warning: FAQ not built"
|
||||||
|
echo "*** DISTRIBUTION IS INCOMPLETE"
|
||||||
|
echo "***"
|
||||||
|
endif
|
198
docs/gdk.sgml
198
docs/gdk.sgml
@ -1,198 +0,0 @@
|
|||||||
<!doctype linuxdoc system>
|
|
||||||
|
|
||||||
<article>
|
|
||||||
|
|
||||||
<!-- Title information -->
|
|
||||||
|
|
||||||
<title>The GTK+ Drawing Kit Programming Manual
|
|
||||||
<author>Shawn T. Amundson, Peter Mattis
|
|
||||||
<date>July 26, 1998
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
This document aims at teaching user how to effectively program in
|
|
||||||
GDK, the GTK+ Drawing Kit, and to serve as a reference guide to
|
|
||||||
more experienced GTK+ programmers. It is a work in progress.
|
|
||||||
|
|
||||||
<!-- Table of contents -->
|
|
||||||
<toc>
|
|
||||||
|
|
||||||
<!-- Begin the document -->
|
|
||||||
|
|
||||||
<!-- ***************************************************************** -->
|
|
||||||
<sect>Introduction
|
|
||||||
|
|
||||||
<p>
|
|
||||||
GDK is designed as a wrapper library that lies on top of Xlib. It
|
|
||||||
performs many common and desired operations for a programmer instead
|
|
||||||
of the programmer having to explicitly ask for such functionality from
|
|
||||||
Xlib directly. For example, GDK provides a common interface to both
|
|
||||||
regular and shared memory XImage types. By doing so, an application
|
|
||||||
can nearly transparently use the fastest image type available. GDK
|
|
||||||
also provides routines for determining the best available color depth
|
|
||||||
and the best available visual which is not always the default visual
|
|
||||||
for a screen.
|
|
||||||
|
|
||||||
GDK is distributed and developed with GTK+, and is licensed under the
|
|
||||||
GNU Library General Public Licence (LGPL).
|
|
||||||
|
|
||||||
<sect>Getting Started
|
|
||||||
|
|
||||||
<sect1>Initialization
|
|
||||||
<p>
|
|
||||||
Initialization of GDK is easy. Simply call gdk_init() passing
|
|
||||||
in the argc and argv parameters.
|
|
||||||
|
|
||||||
<tscreen><verb>
|
|
||||||
int main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
/* Initialize GDK. */
|
|
||||||
gdk_init (&argc, &argv);
|
|
||||||
|
|
||||||
/* Cleanup of GDK is done automatically when the program exits. */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
</verb></tscreen>
|
|
||||||
|
|
||||||
Generally, GDK initialization is done by gtk_init() in GTK+. This means
|
|
||||||
that when using GTK+, you do not need to directly call gdk_init().
|
|
||||||
|
|
||||||
<sect1>An Example using GDK with GTK+
|
|
||||||
<p>
|
|
||||||
This example demonstrates drawing a line using the foreground
|
|
||||||
color of the GtkDrawArea widget it is drawn inside. The example
|
|
||||||
will end when you click inside the window, which is filled by the
|
|
||||||
GtkDrawingArea widget.
|
|
||||||
|
|
||||||
The line is drawn during the expose event so that when the window
|
|
||||||
drawing is done whenever it is needed.
|
|
||||||
|
|
||||||
<tscreen><verb>
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
/* The expose callback does the drawing of the line */
|
|
||||||
int
|
|
||||||
expose_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
|
||||||
{
|
|
||||||
GdkGC *gc;
|
|
||||||
|
|
||||||
printf("expose...\n");
|
|
||||||
|
|
||||||
|
|
||||||
/* The GC is the Graphics Context. Here it is borrowed from the widget */
|
|
||||||
gc = widget->style->fg_gc[GTK_STATE_NORMAL];
|
|
||||||
|
|
||||||
gdk_draw_line (widget->window, /* GDK Window of GtkDrawingArea widget */
|
|
||||||
gc, /* Graphics Context */
|
|
||||||
0, /* x1, left */
|
|
||||||
0, /* y1, top */
|
|
||||||
200, /* x2, right */
|
|
||||||
200); /* y2, bottom */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This quits GTK+ */
|
|
||||||
void destroy (GtkWidget *widget, gpointer data)
|
|
||||||
{
|
|
||||||
gtk_main_quit ();
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
GtkWidget *window;
|
|
||||||
GtkWidget *darea;
|
|
||||||
int events;
|
|
||||||
|
|
||||||
/* This initializes both GTK+ and GDK */
|
|
||||||
gtk_init (&argc, &argv);
|
|
||||||
|
|
||||||
/* Create a window */
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (window), "destroy",
|
|
||||||
GTK_SIGNAL_FUNC (destroy), NULL);
|
|
||||||
|
|
||||||
/* Create a drawing area widget. This widget actually is just a
|
|
||||||
simple widget which provides us an GDK window to draw on and
|
|
||||||
takes care of all the toolkit integration, like providing the
|
|
||||||
ability to add it to the window with gtk_contianer_add() */
|
|
||||||
darea = gtk_drawing_area_new ();
|
|
||||||
gtk_container_add (GTK_CONTAINER (window), darea);
|
|
||||||
|
|
||||||
/* Set the width and height (arguments are in that order) */
|
|
||||||
gtk_drawing_area_size (GTK_DRAWING_AREA (darea), 200, 200);
|
|
||||||
|
|
||||||
/* Drawing in the expose event is important to keep the
|
|
||||||
draw line always on the GDK window */
|
|
||||||
gtk_signal_connect (GTK_OBJECT (darea), "expose_event",
|
|
||||||
GTK_SIGNAL_FUNC (expose_callback), NULL);
|
|
||||||
|
|
||||||
/* We get the events, then add in button press. If we did not
|
|
||||||
do this, we would not be notified of button press events in
|
|
||||||
the GtkDrawingArea widget */
|
|
||||||
events = gtk_widget_get_events (darea);
|
|
||||||
gtk_widget_set_events (darea, events | GDK_BUTTON_PRESS_MASK);
|
|
||||||
|
|
||||||
/* If we click on the darea, the application will exit */
|
|
||||||
gtk_signal_connect_object (GTK_OBJECT (darea), "button_press_event",
|
|
||||||
GTK_SIGNAL_FUNC (gtk_widget_destroy),
|
|
||||||
GTK_OBJECT (window));
|
|
||||||
|
|
||||||
gtk_widget_show (darea);
|
|
||||||
gtk_widget_show (window);
|
|
||||||
|
|
||||||
/* The GTK+ main idle loop */
|
|
||||||
gtk_main();
|
|
||||||
|
|
||||||
/* Cleanup of GDK is done automatically when the program exits. */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
</verb></tscreen>
|
|
||||||
|
|
||||||
<sect>The Graphics Context
|
|
||||||
<p>
|
|
||||||
The Graphics Context, or GC, defines how things should be drawn,
|
|
||||||
including color, font, fill, tile, stipple, clipping mask, line
|
|
||||||
width, line style, and join style.
|
|
||||||
|
|
||||||
<sect1>Color
|
|
||||||
<p>
|
|
||||||
Changing color is done by changing the forground or background color
|
|
||||||
of the GC.
|
|
||||||
|
|
||||||
<sect>Drawing Commands
|
|
||||||
<sect>Event Handling
|
|
||||||
<sect>Understanding and Using Visuals
|
|
||||||
<sect>Creating and Using New Windows
|
|
||||||
<sect>Pixmaps
|
|
||||||
<sect>Images
|
|
||||||
<sect>Fonts
|
|
||||||
<sect>
|
|
||||||
|
|
||||||
<sect>About this Document
|
|
||||||
<sect1>History
|
|
||||||
<P>
|
|
||||||
This document was originially written by Peter Mattis and entitled
|
|
||||||
"The General Drawing Kit". It was meant as a reference guide.
|
|
||||||
|
|
||||||
This version of the document has been renamed and is meant as a general
|
|
||||||
programming guide.
|
|
||||||
|
|
||||||
<sect1>Copying
|
|
||||||
<p>
|
|
||||||
Copyright (c) 1996 Peter Mattis
|
|
||||||
<p>
|
|
||||||
Copyright (c) 1998 Shawn T. Amundson
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
|
||||||
manual provided the copyright notice and this permission notice are
|
|
||||||
preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this manual
|
|
||||||
into another language, under the above conditions for modified versions,
|
|
||||||
except that this permission notice may be stated in a translation
|
|
||||||
approved by Peter Mattis.
|
|
||||||
|
|
||||||
</article>
|
|
334
docs/gdk.texi
334
docs/gdk.texi
@ -1,334 +0,0 @@
|
|||||||
\input texinfo @c -*-texinfo-*-
|
|
||||||
@c %**start of header
|
|
||||||
@setfilename gdk.info
|
|
||||||
@settitle GDK
|
|
||||||
@setchapternewpage odd
|
|
||||||
@c %**end of header
|
|
||||||
|
|
||||||
@set edition 1.0
|
|
||||||
@set update-date 16 May 1996
|
|
||||||
@set update-month May 1996
|
|
||||||
|
|
||||||
@ifinfo
|
|
||||||
This file documents GDK, the General Drawing Kit
|
|
||||||
|
|
||||||
Copyright (C) 1996 Peter Mattis
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
|
||||||
manual provided the copyright notice and this permission notice are
|
|
||||||
preserved on all copies
|
|
||||||
|
|
||||||
@ignore
|
|
||||||
Permission is granted to process this file throught TeX and print the
|
|
||||||
results, provided the printed document carries copying permission notice
|
|
||||||
identical to this one except for the removal of this paragraph (this
|
|
||||||
paragraph not being relevant to the printed manual).
|
|
||||||
|
|
||||||
@end ignore
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this manual
|
|
||||||
into another language, under the above conditions for modified versions,
|
|
||||||
except that this permission notice may be stated in a translation
|
|
||||||
approved by Peter Mattis.
|
|
||||||
@end ifinfo
|
|
||||||
|
|
||||||
@titlepage
|
|
||||||
@title The General Drawing Kit
|
|
||||||
@subtitle Version 1.0
|
|
||||||
@subtitle @value{update-month}
|
|
||||||
@author by Peter Mattis
|
|
||||||
|
|
||||||
@page
|
|
||||||
@vskip 0pt plus 1filll
|
|
||||||
Copyright @copyright{} 1996 Peter Mattis
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
|
||||||
manual provided the copyright notice and this permission notice are
|
|
||||||
preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this manual
|
|
||||||
into another language, under the above conditions for modified versions,
|
|
||||||
except that this permission notice may be stated in a translation
|
|
||||||
approved by Peter Mattis.
|
|
||||||
@end titlepage
|
|
||||||
|
|
||||||
@dircategory User Interface Toolkit
|
|
||||||
@direntry
|
|
||||||
* GDK: (gdk). The General Drawing Kit
|
|
||||||
@end direntry
|
|
||||||
|
|
||||||
@node Top, Copying, (dir), (dir)
|
|
||||||
@top The General Drawing Kit
|
|
||||||
@ifinfo
|
|
||||||
This is edition @value{edition} of the GDK documentation,
|
|
||||||
@w{@value{update-date}}.
|
|
||||||
@end ifinfo
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* Copying:: Your rights.
|
|
||||||
* Overview:: What is GDK?
|
|
||||||
* Initialization:: Initialization and exit.
|
|
||||||
* Events:: Event handling.
|
|
||||||
* Visuals:: Understanding and using visuals.
|
|
||||||
* Windows:: Creating and using windows.
|
|
||||||
* Graphics Contexts:: Creating and modifying GCs.
|
|
||||||
* Pixmaps:: Creating pixmaps.
|
|
||||||
* Images:: Creating images.
|
|
||||||
* Color:: Specifying color.
|
|
||||||
* Fonts:: Creating fonts.
|
|
||||||
* Drawing:: Drawing commands.
|
|
||||||
* XInput Support:: Using extended devices.
|
|
||||||
* Miscellany:: Other stuff.
|
|
||||||
* Examples:: Using GDK.
|
|
||||||
* Function Index:: Index of functions
|
|
||||||
* Concept Index:: Index of concepts
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node Copying, Overview, Top, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Copying
|
|
||||||
|
|
||||||
GDK is @dfn{free}; this means that everyone is free to use it and free
|
|
||||||
to redestribute it on a free basis. GDK is not in the public domain; it
|
|
||||||
is copyrighted and there are restrictions on its distribution, but these
|
|
||||||
restrictions are designed to permit everything that a good cooperating
|
|
||||||
citizen would want to do. What is not allowed is to try to prevent
|
|
||||||
others from further sharing any version of GDK that they might get from
|
|
||||||
you.
|
|
||||||
|
|
||||||
Specifically, we want to make sure that you have the right to give away
|
|
||||||
copies of GDK, that you receive source code or else can get it if you
|
|
||||||
want it, that you can change GDK or use pieces of it in new free
|
|
||||||
programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To make sure that everyone has such rights, we have to forbid you to
|
|
||||||
deprive anyone else of these rights. For example, if you distribute
|
|
||||||
copies of GDK, you must give the recipients all the rights that you
|
|
||||||
have. You must make sure that they, too, receive or can get the source
|
|
||||||
code. And you must tell them their rights.
|
|
||||||
|
|
||||||
Also, for my own protection, we must make certain that everyone finds
|
|
||||||
out that there is no warranty for GDK. If GDK is modified by someone
|
|
||||||
else and passed on, we want their recipients to know that what they have
|
|
||||||
is not what we distributed, so that any problems introduced by others
|
|
||||||
will no reflect on our reputation.
|
|
||||||
|
|
||||||
The precise conditions of the licenses for GDK are found in the General
|
|
||||||
Public Licenses that accompanies it.
|
|
||||||
|
|
||||||
|
|
||||||
@node Overview, Initialization, Copying, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter What is GDK?
|
|
||||||
@cindex Overview
|
|
||||||
|
|
||||||
GDK is designed as a wrapper library that lies on top of Xlib. It
|
|
||||||
performs many common and desired operations for a programmer instead
|
|
||||||
of the programmer having to explicitly ask for such functionality from
|
|
||||||
Xlib directly. For example, GDK provides a common interface to both
|
|
||||||
regular and shared memory XImage types. By doing so, an application
|
|
||||||
can nearly transparently use the fastest image type available. GDK
|
|
||||||
also provides routines for determining the best available color depth
|
|
||||||
and the best available visual which is not always the default visual
|
|
||||||
for a screen.
|
|
||||||
|
|
||||||
@node Initialization, Events, Overview, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Initialization and exit
|
|
||||||
@cindex Initialization
|
|
||||||
@cindex Exit
|
|
||||||
|
|
||||||
Initializing GDK is easy. Simply call @code{gdk_init} passing in the
|
|
||||||
@var{argc} and @var{argv} parameters. Exit is similarly easy. Just
|
|
||||||
call @code{gdk_exit}.
|
|
||||||
|
|
||||||
@deftypefun void gdk_init (int *@var{argc}, char ***@var{argv})
|
|
||||||
Initializes the GDK library. The arguments @var{argc} and @var{argv}
|
|
||||||
are scanned and any arguments that GDK recognizes are handled and
|
|
||||||
removed. The @var{argc} and @var{argv} parameters are the values
|
|
||||||
passed to @code{main} upon program invocation.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun void gdk_exit (int @var{errorcode})
|
|
||||||
Exit GDK and perform any necessary cleanup. @code{gdk_exit} will call
|
|
||||||
the systems @code{exit} function passing @var{errorcode} as the
|
|
||||||
parameter.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@example
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
@{
|
|
||||||
/* Initialize GDK. */
|
|
||||||
gdk_init (&argc, &argv);
|
|
||||||
|
|
||||||
/* Exit from GDK...this call will never return. */
|
|
||||||
gdk_exit (0);
|
|
||||||
|
|
||||||
/* Keep compiler from issuing a warning */
|
|
||||||
return 0;
|
|
||||||
@}
|
|
||||||
@end example
|
|
||||||
|
|
||||||
|
|
||||||
@node Events, Visuals, Initialization, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Event handling
|
|
||||||
@cindex Events
|
|
||||||
|
|
||||||
Events are the means by which GDK lets the programmer know of user
|
|
||||||
interaction. An event is normally a button or key press or some other
|
|
||||||
indirect user action, such as a the mouse cursor entering or leaving a
|
|
||||||
window.
|
|
||||||
|
|
||||||
There exist only a few functions for getting events and event
|
|
||||||
information. These are @code{gdk_events_pending},
|
|
||||||
@code{gdk_event_get}, @code{gdk_events_record} and
|
|
||||||
@code{gdk_events_playback}. The latter two functions are useful for
|
|
||||||
automatic testing of a software package and should normally not be
|
|
||||||
needed in a program.
|
|
||||||
|
|
||||||
@deftypefun gint gdk_events_pending (void)
|
|
||||||
Returns the number of events pending on the event queue.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun gint gdk_event_get (GdkEvent *@var{event})
|
|
||||||
Return the next available event in the @var{event}
|
|
||||||
structure. @code{gdk_event_get} will return @code{TRUE} on success and
|
|
||||||
@code{FALSE} on failure. Success and failure is determined by whether
|
|
||||||
an event arrived before the timeout period expired.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun void gdk_events_record (char *@var{filename})
|
|
||||||
Turn on recording of events. User events and certain system events will
|
|
||||||
be saved in the file named by the variable @var{filename}. This stream
|
|
||||||
of events can later be played back and ``should'' produce the same
|
|
||||||
results as when the original events were handled. However, the
|
|
||||||
programmer does need to be careful in that the state of the program must
|
|
||||||
be the same when @code{gdk_events_record} is called and when
|
|
||||||
@code{gdk_events_playback} is called. For this reason,
|
|
||||||
@code{gdk_events_record} is normally not called directly, but is instead
|
|
||||||
invoked indirectly by specifying the ``-record'' command line option.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun void gdk_events_playback (char *@var{filename})
|
|
||||||
Start playback of events from a file. (See the above description of
|
|
||||||
@code{gdk_events_record}). Normally this function is not called directly
|
|
||||||
but is invoked by the ``-playback'' command line option.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun void gdk_events_stop (void)
|
|
||||||
Stop recording and playback of events.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@example
|
|
||||||
void
|
|
||||||
handle_event ()
|
|
||||||
@{
|
|
||||||
GdkEvent event;
|
|
||||||
|
|
||||||
if (gdk_event_get (&event))
|
|
||||||
@{
|
|
||||||
switch (event.type)
|
|
||||||
@{
|
|
||||||
@dots{}
|
|
||||||
@}
|
|
||||||
@}
|
|
||||||
@}
|
|
||||||
@end example
|
|
||||||
|
|
||||||
|
|
||||||
@node Visuals, Windows, Events, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Understanding and using visuals
|
|
||||||
@cindex Visuals
|
|
||||||
|
|
||||||
@node Windows, Graphics Contexts, Visuals, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Creating and using windows
|
|
||||||
@cindex Windows
|
|
||||||
|
|
||||||
@node Graphics Contexts, Pixmaps, Windows, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Creating and modifying GCs
|
|
||||||
@cindex Graphics Contexts
|
|
||||||
@cindex GC
|
|
||||||
|
|
||||||
@node Pixmaps, Images, Graphics Contexts, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Creating pixmaps
|
|
||||||
@cindex Pixmaps
|
|
||||||
|
|
||||||
@node Images, Color, Pixmaps, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Creating images
|
|
||||||
@cindex Images
|
|
||||||
|
|
||||||
@node Color, Fonts, Images, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Specifying color
|
|
||||||
@cindex Color
|
|
||||||
|
|
||||||
@node Fonts, Drawing, Color, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Creating Fonts
|
|
||||||
@cindex Fonts
|
|
||||||
|
|
||||||
@node Drawing, XInput Support, Fonts, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Drawing Commands
|
|
||||||
@cindex Drawing
|
|
||||||
|
|
||||||
@node XInput Support, Miscellany, Drawing, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Using extended devices
|
|
||||||
@cindex Overview
|
|
||||||
@cindex Using extended device capabilities
|
|
||||||
@cindex Controlling extended devices
|
|
||||||
|
|
||||||
@node Miscellany, Examples, XInput Support, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Other stuff
|
|
||||||
@cindex Timers
|
|
||||||
@cindex Debugging
|
|
||||||
@cindex Miscellaneous
|
|
||||||
|
|
||||||
|
|
||||||
@node Examples, Function Index, Miscellany, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@chapter Using GDK
|
|
||||||
@cindex Examples
|
|
||||||
|
|
||||||
|
|
||||||
@node Function Index, Concept Index, Examples, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@unnumbered Variable Index
|
|
||||||
|
|
||||||
@printindex fn
|
|
||||||
|
|
||||||
@node Concept Index, , Function Index, Top
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
@unnumbered Concept Index
|
|
||||||
|
|
||||||
@printindex cp
|
|
||||||
|
|
||||||
@summarycontents
|
|
||||||
@contents
|
|
||||||
@bye
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
5648
docs/gtk.texi
5648
docs/gtk.texi
File diff suppressed because it is too large
Load Diff
18447
docs/gtk_tut.sgml
18447
docs/gtk_tut.sgml
File diff suppressed because it is too large
Load Diff
17638
docs/gtk_tut_12.es.sgml
17638
docs/gtk_tut_12.es.sgml
File diff suppressed because it is too large
Load Diff
8600
docs/gtk_tut_fr.sgml
8600
docs/gtk_tut_fr.sgml
File diff suppressed because it is too large
Load Diff
10090
docs/gtk_tut_it.sgml
10090
docs/gtk_tut_it.sgml
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 5.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.4 KiB |
2982
docs/gtkfaq.sgml
2982
docs/gtkfaq.sgml
File diff suppressed because it is too large
Load Diff
@ -1,18 +0,0 @@
|
|||||||
@macro gtkstdmacros {p, q}
|
|
||||||
|
|
||||||
@deftypefun Gtk\p\* GTK_\q\ (gpointer @var{obj})
|
|
||||||
Cast a generic pointer to @code{Gtk\p\*}. @xref{Standard Macros}, for
|
|
||||||
more info.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun Gtk\p\Class* GTK_\q\_CLASS (gpointer @var{class})
|
|
||||||
Cast a generic pointer to @code{Gtk\p\Class*}. @xref{Standard Macros},
|
|
||||||
for more info.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun gint GTK_IS_\q\ (gpointer @var{obj})
|
|
||||||
Determine if a generic pointer refers to a @code{Gtk\p\}
|
|
||||||
object. @xref{Standard Macros}, for more info.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@end macro
|
|
@ -1,242 +0,0 @@
|
|||||||
|
|
||||||
=head1 NAME
|
|
||||||
|
|
||||||
gtk_button - GTK+ push button widget
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
|
||||||
|
|
||||||
#include <gtk/gtkbutton.h>
|
|
||||||
|
|
||||||
GtkType gtk_button_get_type (void);
|
|
||||||
GtkWidget* gtk_button_new (void);
|
|
||||||
GtkWidget* gtk_button_new_with_label (const gchar *label);
|
|
||||||
void gtk_button_pressed (GtkButton *button);
|
|
||||||
void gtk_button_released (GtkButton *button);
|
|
||||||
void gtk_button_clicked (GtkButton *button);
|
|
||||||
void gtk_button_enter (GtkButton *button);
|
|
||||||
void gtk_button_leave (GtkButton *button);
|
|
||||||
void gtk_button_set_relief (GtkButton *button,
|
|
||||||
GtkReliefStyle style);
|
|
||||||
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
|
||||||
|
|
||||||
This widget is a standard push button widget. Push button widgets
|
|
||||||
are generally used for allowing the user to click on them to initiate
|
|
||||||
a command.
|
|
||||||
|
|
||||||
This widget is a container widget which contains one child.
|
|
||||||
|
|
||||||
=head1 OBJECT HIERARCHY
|
|
||||||
|
|
||||||
gtk_object
|
|
||||||
gtk_widget
|
|
||||||
gtk_container
|
|
||||||
gtk_button
|
|
||||||
|
|
||||||
=head1 SIGNAL PROTOTYPES
|
|
||||||
|
|
||||||
"clicked" void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
"pressed" void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
"released" void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
"enter" void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
"leave" void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
|
|
||||||
=head1 USAGE
|
|
||||||
|
|
||||||
=head2 Creation
|
|
||||||
|
|
||||||
The most common way to create a button is with a label in it, which
|
|
||||||
contains text for the user to read. The child of the button will then
|
|
||||||
be a L<gtk_label(3)> widget with the text you passwd in. You can
|
|
||||||
do this in one command:
|
|
||||||
|
|
||||||
GtkWidget *button;
|
|
||||||
button = gtk_button_new_with_label ("This is a button");
|
|
||||||
|
|
||||||
To create a gtk_button widget which does not already have a child,
|
|
||||||
use gtk_button_new():
|
|
||||||
|
|
||||||
GtkWidget *button;
|
|
||||||
button = gtk_button_new ();
|
|
||||||
|
|
||||||
After you have created a button you can then add a widget to the
|
|
||||||
button (such as a label or pixmap) using gtk_container_add(). See
|
|
||||||
L<gtk_container(3)> for more information on adding widgets to
|
|
||||||
containers.
|
|
||||||
|
|
||||||
=head2 Creating a pixmap in a button in a window
|
|
||||||
|
|
||||||
After we have an empty gtk_button, such as above, and we have a gtk_pixmap,
|
|
||||||
we can simply add the gtk_pixmap to the gtk_button with gtk_container_add().
|
|
||||||
|
|
||||||
The following code will open the file "gimp.xpm" and place it in a
|
|
||||||
button.
|
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
GtkWidget *window;
|
|
||||||
GtkWidget *button;
|
|
||||||
GtkWidget *pixmap;
|
|
||||||
GtkStyle *style;
|
|
||||||
GdkPixmap *gdkpixmap;
|
|
||||||
GdkBitmap *mask;
|
|
||||||
char *filename = "gimp.xpm";
|
|
||||||
|
|
||||||
gtk_init (&argc, &argv);
|
|
||||||
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
||||||
|
|
||||||
button = gtk_button_new ();
|
|
||||||
gtk_container_add (GTK_CONTAINER (window), button);
|
|
||||||
|
|
||||||
/* The button is realized now, which creates button->window
|
|
||||||
used below to create the pixmap. */
|
|
||||||
gtk_widget_realize (button);
|
|
||||||
|
|
||||||
style = gtk_widget_get_style (button);
|
|
||||||
gdkpixmap = gdk_pixmap_create_from_xpm (button->window, &mask,
|
|
||||||
&style->bg[GTK_STATE_NORMAL],
|
|
||||||
filename);
|
|
||||||
pixmap = gtk_pixmap_new (gdkpixmap, mask);
|
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER (button), pixmap);
|
|
||||||
|
|
||||||
gtk_widget_show (pixmap);
|
|
||||||
gtk_widget_show (button);
|
|
||||||
gtk_widget_show (window);
|
|
||||||
|
|
||||||
gtk_main ();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
=head2 Different reliefs
|
|
||||||
|
|
||||||
Reliefs affect how the shadowing of the button is drawn. The different
|
|
||||||
types of relief styles are:
|
|
||||||
|
|
||||||
GTK_RELIEF_NORMAL
|
|
||||||
GTK_RELIEF_HALF
|
|
||||||
GTK_RELIEF_NONE
|
|
||||||
|
|
||||||
When set to a normal relief, the widget looks and acts like a normal
|
|
||||||
button. When half or none relief is used, shadowing is only drawn when the
|
|
||||||
mouse cursor is over the widget.
|
|
||||||
|
|
||||||
To set the relief, use gtk_button_set_relief(), like:
|
|
||||||
|
|
||||||
gtk_button_set_relief (button, GTK_RELIEF_HALF);
|
|
||||||
|
|
||||||
To get the current relief of a button, use gtk_button_get_relief():
|
|
||||||
|
|
||||||
GtkReliefStyle relief;
|
|
||||||
relief = gtk_button_get_relief (GTK_BUTTON (button));
|
|
||||||
|
|
||||||
=head2 Executing a command when the button is pressed
|
|
||||||
|
|
||||||
To execute a function when a button is pressed, use
|
|
||||||
gtk_signal_connect() to connect to the "clicked" signal.
|
|
||||||
|
|
||||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
|
||||||
GTK_SIGNAL_FUNC (user_function),
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
user_function is a user defined function, like the following:
|
|
||||||
|
|
||||||
void user_function (GtkWidget *button, gpointer data)
|
|
||||||
{
|
|
||||||
printf("clicked\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
=head1 FUNCTIONS
|
|
||||||
|
|
||||||
GtkType gtk_button_get_type (void);
|
|
||||||
|
|
||||||
This function returns the GtkType which is assigned to the
|
|
||||||
object class for gtk_button.
|
|
||||||
|
|
||||||
GtkWidget* gtk_button_new (void);
|
|
||||||
|
|
||||||
This functions returns a new button widget which can then be
|
|
||||||
used as a container for another widget.
|
|
||||||
|
|
||||||
GtkWidget* gtk_button_new_with_label (const gchar *label);
|
|
||||||
|
|
||||||
This function returns a new button widget with a label widget
|
|
||||||
as a child. The label widget will have the text passed into
|
|
||||||
the commant.
|
|
||||||
|
|
||||||
void gtk_button_pressed (GtkButton *button);
|
|
||||||
|
|
||||||
This function sends a "pressed" signal to the button.
|
|
||||||
|
|
||||||
void gtk_button_released (GtkButton *button);
|
|
||||||
|
|
||||||
This function sends a "released" signal to the button.
|
|
||||||
|
|
||||||
void gtk_button_clicked (GtkButton *button);
|
|
||||||
|
|
||||||
This function sends a "clicked" signal to the button.
|
|
||||||
|
|
||||||
void gtk_button_enter (GtkButton *button);
|
|
||||||
|
|
||||||
This function sends a "enter" signal to the button.
|
|
||||||
|
|
||||||
void gtk_button_leave (GtkButton *button);
|
|
||||||
|
|
||||||
This function sends a "leave" signal to the button.
|
|
||||||
|
|
||||||
void gtk_button_set_relief (GtkButton *button, GtkReliefStyle style);
|
|
||||||
|
|
||||||
This function is sets the GtkReliefStyle of the button. The
|
|
||||||
relief style is one of: GTK_RELIEF_NORMAL, GTK_RELIEF_HALF,
|
|
||||||
or GTK_RELIEF_NONE. The relief determines when the shadow of
|
|
||||||
the button is drawn.
|
|
||||||
|
|
||||||
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
|
|
||||||
|
|
||||||
This function returns the current relief of the button.
|
|
||||||
|
|
||||||
=head1 SIGNALS
|
|
||||||
|
|
||||||
"clicked"
|
|
||||||
|
|
||||||
void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
|
|
||||||
Gets emitted when the button is clicked. A click is
|
|
||||||
a press and release of the button when the cursor is
|
|
||||||
inside the button on release.
|
|
||||||
|
|
||||||
"pressed"
|
|
||||||
|
|
||||||
void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
|
|
||||||
Gets emitted when the left mouse button is pressed.
|
|
||||||
|
|
||||||
"released"
|
|
||||||
|
|
||||||
void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
|
|
||||||
Gets emitted when the left mouse button is released and
|
|
||||||
the widget was previously pressed.
|
|
||||||
|
|
||||||
"enter"
|
|
||||||
|
|
||||||
void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
|
|
||||||
Emitted when the mouse cursor enters the button.
|
|
||||||
|
|
||||||
"leave"
|
|
||||||
|
|
||||||
void user_function (GtkWidget *widget, gpointer data);
|
|
||||||
|
|
||||||
Emitted when the mouse cursor leaves the button.
|
|
||||||
|
|
||||||
=head1 AUTHORS
|
|
||||||
|
|
||||||
The author of this man page is Shawn T. Amundson E<lt>amundson@gtk.orgE<gt>.
|
|
||||||
For the authors of GTK+, see the AUTHORS file in the GTK+ distribution.
|
|
||||||
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# package_tutorial.sh - Package up the tutorial into various formats
|
|
||||||
# Copyright (C) Tony Gale 1999
|
|
||||||
# Contact: gale@gtk.org
|
|
||||||
#
|
|
||||||
# NOTE: This script requires the following to be installed:
|
|
||||||
# o SGML Tools
|
|
||||||
# o Latex
|
|
||||||
# o DVI tools
|
|
||||||
|
|
||||||
TARGET=`pwd`/gtk_tut.sgml
|
|
||||||
GIFS="`pwd`/*.gif"
|
|
||||||
EXAMPLES=`pwd`/../examples
|
|
||||||
|
|
||||||
PATH=`pwd`:$PATH
|
|
||||||
|
|
||||||
DATE=`date '+%y%m%d'`
|
|
||||||
|
|
||||||
# Check top level directory
|
|
||||||
if [ ! -d gtk_tutorial ]; then
|
|
||||||
if [ -e gtk_tutorial ]; then
|
|
||||||
echo "ERROR: gtk_tutorial is not a directory"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
mkdir gtk_tutorial.$DATE
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd gtk_tutorial.$DATE
|
|
||||||
|
|
||||||
# SGML Format
|
|
||||||
echo -n "Copy SGML and GIF's.... "
|
|
||||||
if [ ! -d sgml ]; then
|
|
||||||
if [ -e sgml ]; then
|
|
||||||
echo "ERROR: html is not a directory"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
mkdir sgml
|
|
||||||
fi
|
|
||||||
|
|
||||||
(cd sgml ; cp $TARGET . ; cp $GIFS .)
|
|
||||||
echo "done"
|
|
||||||
|
|
||||||
# HTML Format
|
|
||||||
echo -n "Formatting into HTML.... "
|
|
||||||
if [ ! -d html ]; then
|
|
||||||
if [ -e html ]; then
|
|
||||||
echo "ERROR: html is not a directory"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
mkdir html
|
|
||||||
fi
|
|
||||||
|
|
||||||
(cd html ; sgml2html $TARGET ; cp $GIFS .)
|
|
||||||
echo "done"
|
|
||||||
|
|
||||||
# Text Format
|
|
||||||
echo -n "Formatting into Text.... "
|
|
||||||
if [ ! -d txt ]; then
|
|
||||||
if [ -e txt ]; then
|
|
||||||
echo "ERROR: txt is not a directory"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
mkdir txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
(cd txt ; sgml2txt -f $TARGET 2>&1 > /dev/null )
|
|
||||||
echo "done"
|
|
||||||
|
|
||||||
# PS and DVI Format
|
|
||||||
echo -n "Formatting into PS and DVI.... "
|
|
||||||
if [ ! -d ps ]; then
|
|
||||||
if [ -e ps ]; then
|
|
||||||
echo "ERROR: ps is not a directory"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
mkdir ps
|
|
||||||
fi
|
|
||||||
|
|
||||||
(cd ps ; sgml2latex --output=ps $TARGET > /dev/null)
|
|
||||||
(cd ps ; sgml2latex $TARGET > /dev/null)
|
|
||||||
echo "done"
|
|
||||||
|
|
||||||
# Copy examples
|
|
||||||
echo -n "Copying examples"
|
|
||||||
cp -R $EXAMPLES .
|
|
||||||
(cd examples ; make clean ; rm -rf CVS */CVS)
|
|
||||||
echo "done"
|
|
||||||
|
|
||||||
# Package it all up
|
|
||||||
echo -n "Creating packages.... "
|
|
||||||
cd ..
|
|
||||||
tar cvfz gtk_tutorial.$DATE.tar.gz gtk_tutorial.$DATE
|
|
||||||
echo "done"
|
|
||||||
|
|
||||||
rm -rf gtk_tutorial.$DATE
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo Package gtk_tutorial.$DATE.tar.gz created.
|
|
||||||
echo
|
|
2
docs/reference/.cvsignore
Normal file
2
docs/reference/.cvsignore
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
3
docs/reference/Makefile.am
Normal file
3
docs/reference/Makefile.am
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
SUBDIRS = gdk-pixbuf
|
19
docs/tutorial/.cvsignore
Normal file
19
docs/tutorial/.cvsignore
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
*.html
|
||||||
|
*.dvi
|
||||||
|
*.ps
|
||||||
|
*.pg
|
||||||
|
*.ky
|
||||||
|
*.cp
|
||||||
|
*.fn
|
||||||
|
*.tp
|
||||||
|
*.vr
|
||||||
|
*.log
|
||||||
|
*.aux
|
||||||
|
*.toc
|
||||||
|
*.cps
|
||||||
|
*.fns
|
||||||
|
*.vrs
|
||||||
|
html
|
||||||
|
text
|
145
docs/tutorial/Makefile.am
Normal file
145
docs/tutorial/Makefile.am
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
TUTORIAL_FR_FILES=html/gtk_tut_fr-1.html \
|
||||||
|
html/gtk_tut_fr-2.html \
|
||||||
|
html/gtk_tut_fr-3.html \
|
||||||
|
html/gtk_tut_fr-4.html \
|
||||||
|
html/gtk_tut_fr-5.html \
|
||||||
|
html/gtk_tut_fr-6.html \
|
||||||
|
html/gtk_tut_fr-7.html \
|
||||||
|
html/gtk_tut_fr-8.html \
|
||||||
|
html/gtk_tut_fr-9.html \
|
||||||
|
html/gtk_tut_fr-10.html \
|
||||||
|
html/gtk_tut_fr-11.html \
|
||||||
|
html/gtk_tut_fr-12.html \
|
||||||
|
html/gtk_tut_fr-13.html \
|
||||||
|
html/gtk_tut_fr-14.html \
|
||||||
|
html/gtk_tut_fr-15.html \
|
||||||
|
html/gtk_tut_fr-16.html \
|
||||||
|
html/gtk_tut_fr-17.html \
|
||||||
|
html/gtk_tut_fr-18.html \
|
||||||
|
html/gtk_tut_fr-19.html \
|
||||||
|
html/gtk_tut_fr-20.html \
|
||||||
|
html/gtk_tut_fr-21.html \
|
||||||
|
html/gtk_tut_fr-22.html \
|
||||||
|
html/gtk_tut_fr-23.html \
|
||||||
|
html/gtk_tut_fr-24.html \
|
||||||
|
html/gtk_tut_fr.html text/gtk_tut_fr.txt
|
||||||
|
|
||||||
|
TUTORIAL_FILES=text/gtk_tut.txt html/gtk_tut.html \
|
||||||
|
html/gtk_tut.html \
|
||||||
|
html/gtk_tut-1.html \
|
||||||
|
html/gtk_tut-2.html \
|
||||||
|
html/gtk_tut-3.html \
|
||||||
|
html/gtk_tut-4.html \
|
||||||
|
html/gtk_tut-5.html \
|
||||||
|
html/gtk_tut-6.html \
|
||||||
|
html/gtk_tut-7.html \
|
||||||
|
html/gtk_tut-8.html \
|
||||||
|
html/gtk_tut-9.html \
|
||||||
|
html/gtk_tut-10.html \
|
||||||
|
html/gtk_tut-11.html \
|
||||||
|
html/gtk_tut-12.html \
|
||||||
|
html/gtk_tut-13.html \
|
||||||
|
html/gtk_tut-14.html \
|
||||||
|
html/gtk_tut-15.html \
|
||||||
|
html/gtk_tut-16.html \
|
||||||
|
html/gtk_tut-17.html \
|
||||||
|
html/gtk_tut-18.html \
|
||||||
|
html/gtk_tut-19.html \
|
||||||
|
html/gtk_tut-20.html \
|
||||||
|
html/gtk_tut-21.html \
|
||||||
|
html/gtk_tut-22.html \
|
||||||
|
html/gtk_tut-23.html \
|
||||||
|
html/gtk_tut-24.html \
|
||||||
|
html/gtk_tut-25.html \
|
||||||
|
html/gtk_tut-26.html \
|
||||||
|
html/gtk_tut-27.html \
|
||||||
|
html/gtk_tut-28.html \
|
||||||
|
html/gtk_tut-29.html \
|
||||||
|
html/gtk_tut-30.html \
|
||||||
|
html/gtk_tut-31.html
|
||||||
|
|
||||||
|
TUTORIAL_IT_FILES= html/gtk_tut_it.html \
|
||||||
|
html/gtk_tut_it-1.html \
|
||||||
|
html/gtk_tut_it-2.html \
|
||||||
|
html/gtk_tut_it-3.html \
|
||||||
|
html/gtk_tut_it-4.html \
|
||||||
|
html/gtk_tut_it-5.html \
|
||||||
|
html/gtk_tut_it-6.html \
|
||||||
|
html/gtk_tut_it-7.html \
|
||||||
|
html/gtk_tut_it-8.html \
|
||||||
|
html/gtk_tut_it-9.html \
|
||||||
|
html/gtk_tut_it-10.html \
|
||||||
|
html/gtk_tut_it-11.html \
|
||||||
|
html/gtk_tut_it-12.html \
|
||||||
|
html/gtk_tut_it-13.html \
|
||||||
|
html/gtk_tut_it-14.html \
|
||||||
|
html/gtk_tut_it-15.html \
|
||||||
|
html/gtk_tut_it-16.html \
|
||||||
|
html/gtk_tut_it-17.html \
|
||||||
|
html/gtk_tut_it-18.html \
|
||||||
|
html/gtk_tut_it-19.html \
|
||||||
|
html/gtk_tut_it-20.html \
|
||||||
|
html/gtk_tut_it-21.html \
|
||||||
|
html/gtk_tut_it-22.html \
|
||||||
|
html/gtk_tut_it-23.html \
|
||||||
|
html/gtk_tut_it-24.html \
|
||||||
|
text/gtk_tut_it.txt
|
||||||
|
|
||||||
|
.PHONY: htmldir textdir tutorial tutorial_it tutorial_fr
|
||||||
|
|
||||||
|
htmldir:
|
||||||
|
(cd $(srcdir); mkdir -p html; cp gtk_tut*gif html)
|
||||||
|
|
||||||
|
textdir:
|
||||||
|
mkdir -p $(srcdir)/text
|
||||||
|
|
||||||
|
$(TUTORIAL_FILES): tutorial
|
||||||
|
|
||||||
|
$(TUTORIAL_FR_FILES): tutorial_fr
|
||||||
|
|
||||||
|
$(TUTORIAL_IT_FILES): tutorial_it
|
||||||
|
|
||||||
|
tutorial: htmldir textdir
|
||||||
|
(cd $(srcdir); sgml2html gtk_tut.sgml; \
|
||||||
|
perl gtkdocs_fix gtk_tut*html; \
|
||||||
|
mv gtk_tut*html html/; \
|
||||||
|
sgml2txt gtk_tut.sgml; \
|
||||||
|
mv gtk_tut.txt text/)
|
||||||
|
|
||||||
|
tutorial_it: htmldir textdir
|
||||||
|
(cd $(srcdir); sgml2html --language=it gtk_tut_it.sgml; \
|
||||||
|
perl gtkdocs_fix gtk_tut_it*html; \
|
||||||
|
mv gtk_tut_it*html html/; \
|
||||||
|
sgml2txt --language=it gtk_tut_it.sgml; \
|
||||||
|
mv gtk_tut_it.txt text/)
|
||||||
|
|
||||||
|
tutorial_fr: htmldir textdir
|
||||||
|
(cd $(srcdir); sgml2html --language=fr gtk_tut_fr.sgml; \
|
||||||
|
perl gtkdocs_fix gtk_tut_fr*html; \
|
||||||
|
mv gtk_tut_fr*html html/; \
|
||||||
|
sgml2txt --language=fr gtk_tut_fr.sgml; \
|
||||||
|
mv gtk_tut_fr.txt text/)
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
gtk_tut.sgml \
|
||||||
|
gtk_tut_it.sgml \
|
||||||
|
gtk_tut_fr.sgml \
|
||||||
|
gtk_tut_packbox1.gif \
|
||||||
|
gtk_tut_packbox2.gif \
|
||||||
|
gtk_tut_table.gif
|
||||||
|
|
||||||
|
if HAVE_SGML2HTML
|
||||||
|
dist-hook: tutorial tutorial_it tutorial_fr
|
||||||
|
mkdir $(distdir)/html
|
||||||
|
cp -p $(srcdir)/html/*.html $(distdir)/html
|
||||||
|
cp -p $(srcdir)/html/*.gif $(distdir)/html
|
||||||
|
mkdir $(distdir)/text
|
||||||
|
cp -p $(srcdir)/text/*.txt $(distdir)/text
|
||||||
|
else
|
||||||
|
dist-hook:
|
||||||
|
echo "***"
|
||||||
|
echo "*** Warning: Tutorial not built"
|
||||||
|
echo "*** DISTRIBUTION IS INCOMPLETE"
|
||||||
|
echo "***"
|
||||||
|
endif
|
Loading…
Reference in New Issue
Block a user