11.07.2015 Views

Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

66 Capítulo 3. Antece<strong>de</strong>ntes, Estado <strong>de</strong> la CuestiónGTK WIDGET( w i d g e t )GTK OBJECT ( o b j e c t )GTK SIGNAL FUNC ( f u n c t i o n )GTK CONTAINER( c o n t a i n e r )GTK WINDOW( window )GTK BOX( box )Todos los widgets <strong>de</strong>rivan <strong>de</strong> la clase base GtkObject. Esto significa que siempre se pue<strong>de</strong>usar un widget como argumento <strong>de</strong> una función, que acepte un objeto, realizando la conversión<strong>de</strong> tipo GTK OBJECT().3.3.3 Funciones y retrollamadasLas señales son necesarias en la programación <strong>de</strong> aplicaciones con interfaz gráfica <strong>de</strong>usuario, <strong>de</strong>bido a que el programa <strong>de</strong>ber ser capaz <strong>de</strong> respon<strong>de</strong>r a las acciones que el usuariorealice. Si se mueve el ratón, se presiona un botón <strong>de</strong> la misma, se escribe un texto o se cierrauna ventana, pue<strong>de</strong> enviarse una señal a una función <strong>de</strong> retrollamada <strong>de</strong> la aplicación. Dichaseñal pue<strong>de</strong> ser una <strong>de</strong> las que la aplicación necesite gestionar.GTK es un toolkit (conjunto <strong>de</strong> herramientas) gestionadas mediante eventos. Esto quiere<strong>de</strong>cir que un programa GTK queda “dormido” en gtk main() hasta que se recibe un evento,momento en el cual el control es transferido a la función encargada <strong>de</strong> tratarlo.En una aplicación GTK+, se están generando señales continuamente, pero la mayoría <strong>de</strong>ellas son ignoradas. Por ejemplo, si se toma como ejemplo un botón, la aplicación tiene unaserie <strong>de</strong> señales específicas <strong>de</strong>l botón para cuando el usuario pulsa el botón <strong>de</strong>l ratón, lo libera,hace clic con el ratón, lo mueve sobre el botón o cuando el ratón abandona el botón. Otroswidgets son similares al widget <strong>de</strong>l botón, y comparten que sólo una minoría <strong>de</strong> las señalesson útiles para el <strong>de</strong>sarrollado <strong>de</strong> aplicaciones, siendo la mayoría <strong>de</strong> las señales ignoradas.Cuando es necesario tratar una señal, hay que asignar una retrollamada y asociarla con unwidget. Los widgets pue<strong>de</strong>n registrar retrollamadas y una misma retrollamada pue<strong>de</strong> registrarseante múltiples widgets.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!