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:
Owen Taylor
2000-06-21 18:18:00 +00:00
committed by Owen Taylor
parent e01a43253a
commit 39440b43cd
39 changed files with 389 additions and 65947 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -1,7 +1,6 @@
Makefile Makefile
Makefile.in Makefile.in
*.html *.html
*.info*
*.dvi *.dvi
*.ps *.ps
*.pg *.pg

View File

@ -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

View File

@ -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<63>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<EFBFBD>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 <20>Qu<51> es GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.3">1.3 <20>Qu<51> es el + en GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.4">1.4 <20>La G en GTK+ significa General, Gimp, o GNU?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.5">1.5 <20>D<EFBFBD>nde est<73> la documentaci<63>n para GTK?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.6">1.6 <20>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 <20>La lista gtk-list no ha tenido tr<74>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 <20>Qu<51> aplicaciones se han escrito con GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.11">1.11 Estoy buscando una aplicaci<63>n que escribir en GTK+. <20>Qu<51> tal un cliente IRC?</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="gtkfaq-es-2.html">C<EFBFBD>mo encontrar, configurar, instalar y comprobar GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-2.html#ss2.1">2.1 <20>Qu<51> necesito para correr GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.2">2.2 <20>D<EFBFBD>nde puedo conseguir GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.3">2.3 <20>C<EFBFBD>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 <20>He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con <20>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 <20>Qu<51> 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 <20>C<EFBFBD>mo puedo contribu<62>r a GTK+?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.3">3.3 <20>C<EFBFBD>mo averiguo si mi parche fue aplicado, y si no, por qu<71> no?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.4">3.4 <20>Cu<43>l es la pol<6F>tica sobre la incorporaci<63>n de nuevos <EM>widgets</EM> en la librer<65>a?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.5">3.5 <20>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 <20>C<EFBFBD>mo empiezo?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.2">4.2 <20>Qu<51> <EM>widgets</EM> existen en GTK?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.3">4.3 <20>GTK+ es seguro ante m<>ltiples hilos?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.4">4.4 <20>C<EFBFBD>mo puedo prevenir el redibujar y reacomodar tama<6D>os mientras cambio m<>ltiples <EM>widgets</EM>?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.5">4.5 <20>C<EFBFBD>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 <20>C<EFBFBD>mo puedo averiguar cu<63>l es la selecci<63>n de un GtkList?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.7">4.7 <20>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 <20>Por qu<71> el contenido de un bot<6F>n no se mueve al presionar el bot<6F>n? Aqu<71> les env<6E>o un parche para que funcione de esa forma...</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.9">4.9 <20>C<EFBFBD>mo puedo definir una l<>nea de separaci<63>n como en un men<65>?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.10">4.10 <20>C<EFBFBD>mo puedo darle justificaci<63>n a la derecha a un men<65>, como Help, cuando utilizo MenuFactory?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.11">4.11 <20>C<EFBFBD>mo hago mi ventana modal? / <20>C<EFBFBD>mo hago una s<>la ventana activa?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.12">4.12 <20>Por qu<71> 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 <20>Qu<51> es gdk?</A>
<LI><A HREF="gtkfaq-es-5.html#ss5.2">5.2 <20>C<EFBFBD>mo utilizo la asignaci<63>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 <20>Qu<51> es glib?</A>
<LI><A HREF="gtkfaq-es-6.html#ss6.2">6.2 <20>Por qu<71> utilizar g_print, g_malloc, g_strdup y funciones compa<70>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>

View File

@ -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<63>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<63>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<65>a P<>blica General de GNU
<P>
<H2><A NAME="ss1.2">1.2 <20>Qu<51> es GTK+?</A>
</H2>
<P>GTK+ es un peque<75>o y eficiente conjunto de <EM>widgets</EM>, dise<73>ados
con un aspecto y sentir general a Motif. Contiene <EM>widgets</EM> com<6F>nes
y alg<6C>nos <EM>widgets</EM> m<>s complejos como una selecci<63>n de
archivos, y <EM>widgets</EM> de selecci<63>n de colores.
<P>GTK+ proporciona algunas caracter<65>sticas <20>nicas. (No tengo conocimiento
de otra librer<65>a de <EM>widge>
<HR><H3>Transfer interrupted!</H3>
enos).
Por ejemplo, un bot<6F>n no contiene una etiqueta, contiene un <EM>widget</EM>
hijo, que en muchas instancias ser<65> una etiqueta. Sin embargo, el
<EM>widget</EM> hijo tambi<62>n puede ser un <EM>pixmap</EM> (mapa de pixels),
imag<EFBFBD>n o cualquier combinaci<63>n posible que desee el programador. Toda la
librer<EFBFBD>a es as<61> de flexible.
<P>
<H2><A NAME="ss1.3">1.3 <20>Qu<51> es el + en GTK+?</A>
</H2>
<P>Peter Mattis inform<72> a la lista de correo gtk:
<BLOCKQUOTE>
"Escrib<69> originalmente gtk el cual inclu<6C>a tres librer<65>as,
libglib, libgdk y libgtk. Era caracterizado por una jerarqu<71>a de
<EM>widget</EM> plana. O sea, no pod<6F>as derivar un nuevo
<EM>widget</EM> de uno ya existente. Conten<65>a un mecanismo de
<EM>callback</EM> (llamada) m<>s est<73>ndar en lugar del mecanismo
de se<73>ales ahora presente en gtk+. El + fue agregado para distinguir
entre la versi<73>n original de gtk y la nueva versi<73>n. Pueden pensar
en ello como una ampliaci<63>n al gtk original que agrega caracter<65>sticas
orientadas o objetos."
</BLOCKQUOTE>
<P>
<H2><A NAME="ss1.4">1.4 <20>La G en GTK+ significa General, Gimp, o GNU?</A>
</H2>
<P>Peter Mattis inform<72> a la lista de correo gtk:
<BLOCKQUOTE>
"Pienso que la <20>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 <20>D<EFBFBD>nde est<73> la documentaci<63>n para GTK?</A>
</H2>
<P>
En el directorio doc/ de la distribuci<63>n de GTK+ encontrar<61>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<62>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 <20>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<73>n del desarrollo de aplicaciones
basadas en GTK se hospeda en gtk-app-devel-list@redhat.com. Para suscribirse
env<EFBFBD>e un correo electr<74>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<73>n del desarrollo de GTK se hospeda
en gtk-list@redhat.com. Para suscribirse env<6E>e un correo electr<74>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<72>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 <20>La lista gtk-list no ha tenido tr<74>fico alguno por d<>as,</A>
est<EFBFBD> muerta?</H2>
<P>No, todos est<73>n ocupados codificando.
<P>
<H2><A NAME="ss1.8">1.8 C<>mo conseguir ayuda con GTK+</A>
</H2>
<P>Primero, aseg<65>rate que tu pregunta no est<73> respondida en la
documentaci<EFBFBD>n, este FAQ o el tutor. <20>Hecho? <20>Est<73>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 <20>Qu<51> 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<63>n de im<69>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<69>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<65>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<65>neas cuya intenci<63>n es facilitar el manejo de
colores, construcci<63>n de IU (interfaces de usuario), operaciones
vectoriales, y funciones matem<65>ticas</LI>
<LI>GDK Imlib (
<A HREF="http://www.labs.redhat.com/imlib/">http://www.labs.redhat.com/imlib/</A>),
una librer<65>a de manipulaci<63>n y carga r<>pida de im<69>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<72>r un escritorio libre para Linux. Muchos m<>s
programas pueden ser encontrados ah<61>.
<P>
<H2><A NAME="ss1.11">1.11 Estoy buscando una aplicaci<63>n que escribir en GTK+. <20>Qu<51> 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<6C>do con GNOME)</LI>
<LI>Bezerk (
<A HREF="http://www.gtk.org/~trog/">http://www.gtk.org/~trog/</A>)</LI>
<LI>gsirc. (<28>Localizaci<63>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>

View File

@ -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 <20>Qu<51> 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<65>as asociadas en su sistema.
<P>
<H2><A NAME="ss2.2">2.2 <20>D<EFBFBD>nde puedo conseguir GTK+?</A>
</H2>
<P>El sitio can<61>nico es:
<PRE>
ftp://ftp.gtk.org/pub/gtk
</PRE>
Por supuesto, cualquier espejo de ftp.gtk.org debe tener las <20>ltimas
versiones tambi<62>n.
<P>
<H2><A NAME="ss2.3">2.3 <20>C<EFBFBD>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<EFBFBD>rese de que utiliza GNU make (verifique con <CODE>make -v</CODE>). Hay
varias versiones extra<72>as y maravillosas de make por ah<61>, y no todas
manejan los <EM>Makefiles</EM> generados autom<6F>ticamente.
<P>
<P>
<H2><A NAME="ss2.5">2.5 <20>He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con <20>l!</A>
</H2>
<P>Este problema se encuentra com<6F>nmente cuando las librer<65>as GTK+ no pueden
ser localizadas o tienen la versi<73>n incorrecta. Generalmente, el compilador
se quejar<61> de un 'unresolved symbol' (s<>mbolo no resuelto). Hay dos cosas
que necesita verificar:
<P>
<UL>
<LI>Aseg<EFBFBD>rese de que las librer<65>as pueden ser encontradas. Usted desea editar
/etc/ld.so.conf para inclu<6C>r los directorios que contienen las librer<65>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<65>as (como Solaris),
entonces tendr<64> que utilizar la variable de ambiente LD_LIBRARY_PATH
(o compilar el camino en su programa, lo cual no voy a cubrir aqu<71>). As<41>
que, con un shell tipo Bourne usted puede hacer (si sus librer<65>as GTK
est<EFBFBD>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<EFBFBD>rese de que el enlazador est<73> ha encontrado el conjunto correcto de
librer<EFBFBD>as. Si tiene una distribuci<63>n de Linux que instala GTK+ (ej.
RedHat 5.0) entonces esta versi<73>n anterior puede ser utilizada. Ahora
(asumiendo que tiene un sistema RedHat), emita el comando
<PRE>
rpm -e gtk gtk-devel
</PRE>
Tambi<EFBFBD>n puede querer remover los paquetes que dependen de gtk (rpm le
dir<EFBFBD> cu<63>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<65>as libgtk, libgdk, libglib, or libgck.
Si existen, elim<69>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<76> 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<EFBFBD> GTK+. Va por omisi<73>n a $prefix, (especificado con --prefix),
que en su lugar va por omisi<73>n a /usr/local/.
<P><EFBFBD>sto se hizo asi porque "glibconfig.h" incluye informaci<63>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<75>n para el int<6E>rprete de comandos,
<CODE>gtk-config</CODE>, el cual hace f<>cil
encontrar los caminos correctos de inclusi<73>n. El tutor de GTK+ incluye
un ejemplo de como utilizar <CODE>gtk-config</CODE> para una compilaci<63>n simple
desde la l<>nea de comandos. Para informaci<63>n sobre configuraciones m<>s
complicadas, vea el archivo docs/gtk-config.txt en la distribuci<63>n de GTK+.
<P>Si est<73> 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<6E>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<6F>nes para esto:
<UL>
<LI>Usted tiene una versi<73>n vieja de GTK instalada en alg<6C>n lugar.
RedHat 5.0, por ejemplo, instala una copia anterior de GTK que no funcinar<61>
con las <20>ltimas veriones de GIMP. Debe eliminar esta copia vieja, pero
observe que en el caso de RedHat 5.0 esto da<64>ar<61> 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<73>n vieja en su sistema. Teclee:
<PRE>
gtk-config --version
</PRE>
para verificar ambos casos. <20>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<73>n
vieja de GTK en su sistema.
<P>
</LI>
<LI>El gui<75>n ./configure no puede encontrar las librer<65>as GTK. Como
./configure compila varios programas de prueba, necesita poder encontrar las
librer<EFBFBD>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<61> la <20>ltima
acci<EFBFBD>n tomada antes de fallar. Si es una secci<63>n de c<>digo fuente,
copie el c<>digo fuente a un archivo y compilelo con la l<>nea
j<EFBFBD>stamente arriba de <20>l en config.log. Si la compilaci<63>n tiene
<EFBFBD>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>

View File

@ -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 <20>Qu<51> 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<73>n Concurrente) y es
un medio muy popular de control de versi<73>n para proyectos de software.
Est<EFBFBD> dise<73>ado para permitir que m<>ltiples autores puedan operar de
manera simult<6C>nea en el mismo <20>rbol fuente. Este <20>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<73>n en desarrollo de GTK+. Como tal,
la gente que desea contribu<62>r con parches a GTK+ deben generarlos para la
versi<EFBFBD>n del CVS. La gente normal debe utilizar los paquetes liberados.
<P>El conjunto de herramientas CVS est<73> disponible como paquetes RPM en los
sitios usuales de RedHat. La <20>ltima versi<73>n est<73> disponible en
<A HREF="http://download.cyclic.com/pub/">&lt;http://download.cyclic.com/pub/&gt;</A><P>Cualquiera puede bajar la <20>ltima versi<73>n CVS de GTK+ utilizando
acceso an<61>nimo con los siguientes pasos:
<UL>
<LI> En un descendiente del int<6E>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 <20>rbol fuente se retira, se necesita
un <EM>login</EM> cvs.
<PRE>
cvs login
</PRE>
<EFBFBD>sto har<61> que se le solicite una clave de acceso. No hay clave de
acceso para cvs.gimp.org, as<61> que solo ingrese un retorno de carro.</LI>
<LI>Para conseguir el <20>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 <20>rbol GTK+ 1.1, glib se ha movido a un m<>dulo CVS
separado, de manera que si no tiene glib instalado necesitar<61> conseguirlo
igualmente:
<PRE>
cvs -z3 get glib
</PRE>
</LI>
</UL>
<H2><A NAME="ss3.2">3.2 <20>C<EFBFBD>mo puedo contribu<62>r a GTK+?</A>
</H2>
<P>Es simple. Si algo no funciona en un programa como usted piensa que deber<65>a,
revise la documentaci<63>n para asegurarse de que no ha pasado algo por alto.
Si es un verdadero error o caracter<65>stica perdida, rastr<74>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 &lt;oldfile&gt; &lt;newfile&gt;</CODE>. Entonces env<6E>e el archivo
de parche a:
<PRE>
ftp://ftp.gtk.org/incoming
</PRE>
junto a un archivo README. <20>Aseg<65>rese de seguir las convenciones de
asignaci<EFBFBD>n de nombres o su parche ser<65> borrado! Los archivos deben ser
de esta forma:
<PRE>
gtk-&lt;username>-&lt;date yymmdd-n>.patch.gz
gtk-&lt;username>-&lt;date yymmdd-n>.patch.README
</PRE>
La "n" en la fecha indica un n<>mero <20>nico (empezando de 0)
de parches que subi<62> ese d<>a. Debe ser 0, a menos que env<6E>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<6E>a <EM>lo que sea</EM>, env<6E>e el README a
ftp-admin@gtk.org
<P>
<H2><A NAME="ss3.3">3.3 <20>C<EFBFBD>mo averiguo si mi parche fue aplicado, y si no, por qu<71> no?</A>
</H2>
<P>Los parches enviados se mandar<61>n a
<CODE>ftp://ftp.gtk.org/pub/gtk/patches</CODE>
donde uno del equipo de desarrollo de GTK+ los recoger<65>. Si son aplicados,
ser<EFBFBD>n movidos a <CODE>/pub/gtk/patches/old</CODE>.
<P>Los parches que no son aplicados, por cualquier raz<61>n, se mandar<61>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<71>
su parche no fu<66> 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<67> que su parche se aplicase a la
primera.
<P>
<H2><A NAME="ss3.4">3.4 <20>Cu<43>l es la pol<6F>tica sobre la incorporaci<63>n de nuevos <EM>widgets</EM> en la librer<65>a?</A>
</H2>
<P>Esto corresponde a los autores, de manera que tendr<64> que preguntarles
al terminar su <EM>widget</EM>. Como una gu<67>a general, los <EM>widgets</EM>
que por lo general son <20>tiles, funcionan, y no son una desgracia al conjunto
de <EM>widgets</EM> ser<65>n inclu<6C>dos con mucho gusto.
<P>
<H2><A NAME="ss3.5">3.5 <20>Hay alguien trabajando en atamientos para otros lenguajes distintos a C?</A>
</H2>
<P>S<EFBFBD>. Existe
<UL>
<LI>una envoltura de C++ para GTK+ llamada gtk--. Puede encontrar el su
p<EFBFBD>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<73> aceptando como el atamiento `est<73>ndar'
de Objective-C para GTK+.
</LI>
<LI> Si usted est<73> 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&szlig;</A>.
La intenci<63>n es crear un atamiento GTK+ utilizando FoundationKit.
GTKKit incluye linduras como escribir un archivo con una plantilla tipo
XML para constru<72>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<63>n del Proyecto GNU de Scheme R4RS (el
est<EFBFBD>ndar). Si le gusta Scheme, querr<72> darle un vistazo a <20>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<41>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>

View File

@ -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 <20>C<EFBFBD>mo empiezo?</A>
</H2>
<P>Despu<EFBFBD>s de que ha instalado GTK+, hay un par de cosas que pueden
facilitarle el desarrollo de aplicaciones con <20>l. Est<73> el Tutor de
GTK+
<A HREF="http://www.gtk.org/tutorial/">&lt;http://www.gtk.org/tutorial/&gt;</A>, el cual est<73> en desarrollo
activo. Este tutorial le introducir<69> en la escritura de aplicaciones
utilizando C.
<P>El Tutor no contiene (todav<61>a) informaci<63>n sobre todos los
<EM>widgets</EM> que existen en GTK+. Para c<>digo de ejemplo sobre la
utilizaci<EFBFBD>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<63>n
GTK+. Ver estos ejemplos le dar<61> una buena base sobre lo que pueden hacer
los <EM>widgets</EM>.
<P>
<H2><A NAME="ss4.2">4.2 <20>Qu<51> <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 <20>GTK+ es seguro ante m<>ltiples hilos?</A>
</H2>
<P>Aunque GTK+, como la mayor<6F>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<EFBFBD>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<63>n cuidadosa. La idea b<>sica es crear
una exclusi<73>n mutua de protecci<63>n para X, de manera que nadie haga
llamadas X sin primero adquirir esta exclusi<73>n mutua.
<P>Observe que se trata de un peque<75>o esfuerzo, pero que le permitir<69> ser
potencialmente m<>s eficiente que un GTK+ completamente seguro ante
m<EFBFBD>ltiples hilos. Usted decide la granularidad del bloqueo de hilos.
Tambi<EFBFBD>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<65>a agarrada
la exclusi<73>n mutua global cuando se entr<74> a gtk_main, es que todos
los <EM>callbacks</EM> tambi<62>n la tendr<64>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<64> un bloqueo mortal.
Tambi<EFBFBD>n hay que tener agarrada la exclusi<73>n mutua cuando finalmente
regresa del <EM>callback</EM>.
<P>Para permitir a otros hilos, adem<65>s del que llama a gtk_main, tener
acceso a la exclusi<73>n mutua, necesitamos registrar una funci<63>n de
trabajo con GTK que nos permita liberar la exclusi<73>n mutua
peri<EFBFBD>dicamente.
<P><EFBFBD>Por qu<71> GTK+ no puede ser seguro ante m<>ltiples hilos de
manera nativa?
<P>Complejidad, sobrecarga, y mano de obra. La proporci<63>n de programas
con hilos es todav<61>a razonablemente peque<75>a, y conseguir seguridad
ante hilos es muy dif<69>cil y le quita tiempo valioso al trabajo
principal de obtener una buena librer<65>a gr<67>fica terminada. Ser<65>a
muy agradable que GTK+ fuera seguro ante hilos "al sacarlo de la caja",
pero no es pr<70>ctico ahora mismo, y har<61>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 <20>C<EFBFBD>mo puedo prevenir el redibujar y reacomodar tama<6D>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<61> en mayor
velocidad ya que prevendr<64> tener que darle el tama<6D>o otra vez a la
jerarqu<EFBFBD>a de <EM>widget</EM> por completo.
<P>
<H2><A NAME="ss4.5">4.5 <20>C<EFBFBD>mo atrapo un evento de doble tecleo (en un <EM>widget</EM> de lista, por ejemplo)?</A>
</H2>
<P>Tim Janik escribi<62> a la lista gtk-list (ligeramente modificado):
<P>Defina un manejador de se<73>al:
<P>
<BLOCKQUOTE><CODE>
<PRE>
gint
signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data)
{
if (GTK_IS_LIST_ITEM(widget) &amp;&amp;
(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<62>:
<P>Observe que se recibir<69> la pulsaci<63>n del bot<6F>n de antemano, y
si est<73> haciendo esto para un bot<6F>n, tambi<62>n obtendr<64> una se<73>al
de "tecleado" para el bot<6F>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 <20>C<EFBFBD>mo puedo averiguar cu<63>l es la selecci<63>n de un GtkList?</A>
</H2>
<P>
<P>Consiga la selecci<63>n con algo como esto:
<BLOCKQUOTE><CODE>
<PRE>
GList *sel;
sel = GTK_LIST(list)->selection;
</PRE>
</CODE></BLOCKQUOTE>
<P>As<EFBFBD> es como GList est<73> 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<63>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<63>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<63>n es NULL
o contiene un puntero GList*
para un art<72>culo seleccionado individualmente
GTK_SELECTION_BROWSE) la selecci<63>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<63>n es NULL si no se seleccionan
listitems para un apuntador GList*
para el primer art<72>culo seleccionado. Eso en
su lugar apunta a una estructura GList para el
segundo art<72>culo seleccionado y contin<69>a
GTK_SELECTION_EXTENDED) la selecci<63>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<73>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 &lt; 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<63>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 <20>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<65>a posible hacer que ocurran recortes al establecer
la m<>scara de recorte antes de dibujar el texto, esto podr<64>a causar una
penalizaci<EFBFBD>n substancial en el rendimiento.
<P>Es posible que, a largo plazo, la mejor soluci<63>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<6E>n de <EM>widgets</EM>, querr<72>
copiar gtkviewport.c y arrancar la funcionalidad de sombra y ajuste (tal vez
quiera llamarlo GtkClipper).
<P>
<H2><A NAME="ss4.8">4.8 <20>Por qu<71> el contenido de un bot<6F>n no se mueve al presionar el bot<6F>n? Aqu<71> les env<6E>o un parche para que funcione de esa forma...</A>
</H2>
<P>De: Peter Mattis
<P>La raz<61>n por la cu<63>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<73>n de los botonos es que los miras de manera recta.
O sea, la interface de usuario tiende sobre un plano y t<> est<73>s sobre
<EFBFBD>l observ<72>ndolo de manera recta. Cuando un bot<6F>n es presionado se
mueve directamente lejos de t<>. Para ser absolutamente correcto supongo
que el hijo deber<65>a encojerse un poquito. Pero no veo por qu<71> el hijo
deber<EFBFBD>a moverse abajo y a la izquierda. Recurda, el hijo se supone que
est<EFBFBD> pegado a la superficie del bot<6F>n. No es bueno que luzca como si
el hijo se resbala sobre la superficie del bot<6F>n.
<P>En una nota m<>s pr<70>ctica, ya implant<6E> esto una vez y determin<69>
que no se ve<76>a bien y lo quit<69>.
<P>
<H2><A NAME="ss4.9">4.9 <20>C<EFBFBD>mo puedo definir una l<>nea de separaci<63>n como en un men<65>?</A>
</H2>
<P>Revise el
<A HREF="http://www.gtk.org/tutorial/">Tutor</A> para informaci<63>n sobre como crear men<65>s.
<P>Sin embargo, para crear una l<>nea de separaci<63>n en un men<65>,
simplemente inserte un art<72>culo de men<65> vac<61>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 <20>C<EFBFBD>mo puedo darle justificaci<63>n a la derecha a un men<65>, 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, "&lt;MyApp>/Help");
gtk_menu_item_right_justify(menu_path->widget);
</PRE>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss4.11">4.11 <20>C<EFBFBD>mo hago mi ventana modal? / <20>C<EFBFBD>mo hago una s<>la ventana activa?</A>
</H2>
<P>Despu<EFBFBD>s de haber creado su ventana, haga gtk_grab_add(my_window). Y
despu<EFBFBD>s de cerrar la ventana haga gtk_grab_remove(my_window).
<P>
<H2><A NAME="ss4.12">4.12 <20>Por qu<71> mi <EM>widget</EM> (ej. progressbar) no se actualiza?</A>
</H2>
<P>
<P>Probablemente usted est<73> haciendo todos los cambios dentro de una funci<63>n
sin devolver el control a gtk_main. La mayor<6F>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<63>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<63>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>

View File

@ -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 <20>Qu<51> es gdk?</A>
</H2>
<P>gdk es b<>sicamente una envoltura alrededor de las llamadas a funciones
Xlib. Si est<73>s familiarizado con Xlib, muchas de las funciones en gdk
requerir<EFBFBD>n poco o ning<6E>n tiempo para acostumbrarse.
Todas las funciones est<73>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<65> m<>s portable
y seguro de utilizar en
m<EFBFBD>ltiples plataformas.
<P>
<P>
<H2><A NAME="ss5.2">5.2 <20>C<EFBFBD>mo utilizo la asignaci<63>n de colores?</A>
</H2>
<P>Una de las cosas agradables de GDK es que est<73> basado sobre Xlib; esto
tambi<EFBFBD>n es un problema, especialmente en el <20>rea de administraci<63>n
de colores. Si usted quiere utilizar color en su programa (dibujando un
rect<EFBFBD>ngulo o algo por el estilo, su c<>digo debe lucir algo as<61>:
<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, &amp;width, &amp;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>

View File

@ -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 <20>Qu<51> es glib?</A>
</H2>
<P>glib es una librer<65>a de funciones y definiciones <20>tiles disponibles
para ser utilizadas cuando se crean aplicaciones GDK y GTK. Proporciona
reemplazos para algunas funciones est<73>ndar de libc, como malloc, las
cuales tienen errores en algunos sistemas.
<P>Tambi<EFBFBD>n proporciona rutinas para manejar:
<UL>
<LI>Listas Doblemente Enlazadas</LI>
<LI>Listas con Enlace Sencillo</LI>
<LI>Cron<EFBFBD>metros</LI>
<LI>Manipulaci<EFBFBD>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 <20>Por qu<71> utilizar g_print, g_malloc, g_strdup y funciones compa<70>eras de glib?</A>
</H2>
<P>Gracias a Tim Janik que escribi<62> 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<62>n, si se define USE_DMALLOC, la definici<63>n para
estas funciones cambia (en glib.h) para utilizar MALLOC(), FREE() etc... Si
MEM_PROFILE o MEM_CHECK se definen, hay incluso peque<75>as estad<61>sticas
realizadas las cuales cuentan los tama<6D>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<EFBFBD>o y para marcarlos ALLOC_ONLY si es necesario, es sencillo crear
una peque<75>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>

View File

@ -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<63>n al FAQ, env<6E>e a alguno de nosotros
un mensaje por correo electr<74>nico con el texto exacto que cree que
deber<EFBFBD>a ser inclu<6C>do (pregunta y respuesta). <20>Con su ayuda, este
documento puede crecer y llegar a ser m<>s <20>til!
<P>Este documento es mantenido por Nathan Froyd
<A HREF="mailto:maestrox@geocities.com">&lt;maestrox@geocities.com&gt;</A>
y Tony Gale
<A HREF="mailto:gale@gimp.org">&lt;gale@gimp.org&gt;</A>.
Este FAQ fue creado por Shawn T. Amundson
<A HREF="mailto:amundson@gimp.org">&lt;amundson@gimp.org&gt;</A> quien contin<69>a dando soporte.
<P>El GTK+ FAQ est<73> registrado Copyright (C) 1997, 1998 por Shawn T. Amundson,
Nathan Froyd y tony Gale.
<P>Se otorga permiso para hacer y distribu<62>r copias textuales de este manual
siempre y cuando la informaci<63>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<65>ctamente como en el original, y
que el trabajo resultante en su totalidad sea distribu<62>do bajo los
t<EFBFBD>rminos de una noticia de permiso id<69>ntica a esta.
<P>Se otorga permiso para copiar y distribu<62>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<63>n m<>s actual posible.
<P>No hay garant<6E>a de que este documento logre su prop<6F>sito. Este documento
se proporciona simplemente como un recurso libre. Como tal, los autores y
mantenedores de la informaci<63>n proporcionada en <20>l no pueden dar
garant<EFBFBD>a alguna de que la informaci<63>n es precisa.
<P>
<H2><A NAME="ss7.1">7.1 Nota del Traductor</A>
</H2>
<P>Esta traducci<63>n fue realizada por
<A HREF="http://www.talisman.com.pa">Rams<EFBFBD>s Morales</A>.
He intentado hacer
la mejor adaptaci<63>n posible de los t<>rminos t<>cnicos, si tiene
alguna sugerencia o mejora a estos t<>rminos y mi espa<70>ol, o alguna
duda por causa de mi traducci<63>n, no dude en comunic<69>rmelo a
<A HREF="mailto:ramses@computer.org">&lt;ramses@computer.org&gt;</A><P>Gracias a
<A HREF="mailto: e98cuenc@criens.u-psud.fr">Joaqu<EFBFBD>n Cuenca</A> por todas sus sugerencias para mejorar la
traducci<EFBFBD>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>

View File

@ -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<63>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<EFBFBD>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 <20>Qu<51> es GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.3">1.3 <20>Qu<51> es el + en GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.4">1.4 <20>La G en GTK+ significa General, Gimp, o GNU?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.5">1.5 <20>D<EFBFBD>nde est<73> la documentaci<63>n para GTK?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.6">1.6 <20>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 <20>La lista gtk-list no ha tenido tr<74>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 <20>Qu<51> aplicaciones se han escrito con GTK+?</A>
<LI><A HREF="gtkfaq-es-1.html#ss1.11">1.11 Estoy buscando una aplicaci<63>n que escribir en GTK+. <20>Qu<51> tal un cliente IRC?</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="gtkfaq-es-2.html">C<EFBFBD>mo encontrar, configurar, instalar y comprobar GTK+</A></H2>
<UL>
<LI><A HREF="gtkfaq-es-2.html#ss2.1">2.1 <20>Qu<51> necesito para correr GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.2">2.2 <20>D<EFBFBD>nde puedo conseguir GTK+?</A>
<LI><A HREF="gtkfaq-es-2.html#ss2.3">2.3 <20>C<EFBFBD>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 <20>He compilado e instalado GTK+, pero no puedo lograr que los programas se enlacen con <20>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 <20>Qu<51> 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 <20>C<EFBFBD>mo puedo contribu<62>r a GTK+?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.3">3.3 <20>C<EFBFBD>mo averiguo si mi parche fue aplicado, y si no, por qu<71> no?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.4">3.4 <20>Cu<43>l es la pol<6F>tica sobre la incorporaci<63>n de nuevos <EM>widgets</EM> en la librer<65>a?</A>
<LI><A HREF="gtkfaq-es-3.html#ss3.5">3.5 <20>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 <20>C<EFBFBD>mo empiezo?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.2">4.2 <20>Qu<51> <EM>widgets</EM> existen en GTK?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.3">4.3 <20>GTK+ es seguro ante m<>ltiples hilos?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.4">4.4 <20>C<EFBFBD>mo puedo prevenir el redibujar y reacomodar tama<6D>os mientras cambio m<>ltiples <EM>widgets</EM>?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.5">4.5 <20>C<EFBFBD>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 <20>C<EFBFBD>mo puedo averiguar cu<63>l es la selecci<63>n de un GtkList?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.7">4.7 <20>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 <20>Por qu<71> el contenido de un bot<6F>n no se mueve al presionar el bot<6F>n? Aqu<71> les env<6E>o un parche para que funcione de esa forma...</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.9">4.9 <20>C<EFBFBD>mo puedo definir una l<>nea de separaci<63>n como en un men<65>?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.10">4.10 <20>C<EFBFBD>mo puedo darle justificaci<63>n a la derecha a un men<65>, como Help, cuando utilizo MenuFactory?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.11">4.11 <20>C<EFBFBD>mo hago mi ventana modal? / <20>C<EFBFBD>mo hago una s<>la ventana activa?</A>
<LI><A HREF="gtkfaq-es-4.html#ss4.12">4.12 <20>Por qu<71> 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 <20>Qu<51> es gdk?</A>
<LI><A HREF="gtkfaq-es-5.html#ss5.2">5.2 <20>C<EFBFBD>mo utilizo la asignaci<63>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 <20>Qu<51> es glib?</A>
<LI><A HREF="gtkfaq-es-6.html#ss6.2">6.2 <20>Por qu<71> utilizar g_print, g_malloc, g_strdup y funciones compa<70>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
View 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
View 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

View File

@ -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 (&amp;argc, &amp;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 (&amp;argc, &amp;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>

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@ -0,0 +1,3 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = gdk-pixbuf

19
docs/tutorial/.cvsignore Normal file
View 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
View 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