RubyLit - Ruby.del.litoral!
Arrows (changes)

Showing changes from revision #0 to #1: Added | Removed

El control Arrow (Flecha) dibuja la cabeza de una flecha, apuntando a un número de direcciones posibles y con un número de estilos posibles. Puede ser muy útil en un botón en muchas aplicaciones. Al igual que el control Label (Etiqueta), tampoco emite ninguna señal.

Para usar el widget tenemos que hacer una llamada al metodo new de Arrow de la siguiente forma.


flecha = Gtk::Arrow.new(arrow_type, shadow_type)

Los tipos posibles (arrow_type) hay que setearlos usando las siguientes constantes

Gtk::Arrow::LEFT
Gtk::Arrow::RIGHT
Gtk::Arrow::UP
Gtk::Arrow::DOWN

En cuanto a las sombras (shadow_type) los tipos posibles son

Gtk::SHADOW_IN
Gtk::SHADOW_OUT   # valor predeterminado
Gtk::SHADOW_ETCHED_IN
Gtk::SHADOW_ETCHED_OUT

joke: le pago un café|cerveza al primero que encuentre las diferencia entre los tipos de sombra. (yo no encontré ninguna)

El siguiente programita muestra un uso posible (en botones) debe notarse que no se definieron señales para los botones, por lo tanto el programa no hace nada.


require 'gtk2'

class Mi_app < Gtk::VBox
    def initialize()
        super()
        flecha1 = Gtk::Arrow.new(Gtk::Arrow::LEFT, Gtk::SHADOW_ETCHED_IN)
        flecha2 = Gtk::Arrow.new(Gtk::Arrow::RIGHT, Gtk::SHADOW_ETCHED_IN)
        flecha3 = Gtk::Arrow.new(Gtk::Arrow::UP, Gtk::SHADOW_ETCHED_IN)
        flecha4 = Gtk::Arrow.new(Gtk::Arrow::DOWN, Gtk::SHADOW_ETCHED_IN)

        bt1 = Gtk::Button.new()
        bt2 = Gtk::Button.new()
        bt3 = Gtk::Button.new()
        bt4 = Gtk::Button.new()

        bt1.add(flecha1)
        bt2.add(flecha2)
        bt3.add(flecha3)
        bt4.add(flecha4)

        caja = Gtk::HBox.new(false, 25)
        caja.pack_start( bt1, false, false, 3)
        caja.pack_start( bt2, false, false, 3)
        caja.pack_start( bt3, false, false, 3)
        caja.pack_start( bt4, false, false, 3)

        pack_start( caja, false, false, 3)

    end
end

if $0 == __FILE__
    class Viewer < Gtk::Window
        def initialize()
            super()
            set_title("Flechas") 
            set_window_position(Gtk::Window::POS_CENTER)
            signal_connect("delete_event") { |i,a| Gtk::main_quit }
            set_default_size(300, 150)
            add(Mi_app.new)
        end
    end

    Gtk.init()

    view = Viewer.new
    view.show_all

    Gtk.main()
end