Skip to content

Instantly share code, notes, and snippets.

@thiagojedi
Created June 3, 2012 22:56
Show Gist options
  • Save thiagojedi/2865321 to your computer and use it in GitHub Desktop.
Save thiagojedi/2865321 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'ffi-gtk3'
class Aplicacao
def initialize
@app = Gtk::Application.new 'ruby.jedi', 0
@janela = []
GObject.signal_connect(@app, "activate", nil) do
@janela.each{ |e| e.present }
end
GObject.signal_connect(@app, "startup", nil) do
constroi_ui
end
end
def constroi_ui
cria_menu
@janela.push Gtk::ApplicationWindow.new @app
@janela.each { |e| e.show }
end
def cria_menu
quit_action = Gio::SimpleAction.new "quit", nil
GObject.signal_connect(quit_action, "activate", nil) { @app.quit }
@app.add_action quit_action
new_window_action = Gio::SimpleAction.new "nova", nil
GObject.signal_connect(new_window_action, "activate", nil) do
@janela.push Gtk::ApplicationWindow.new @app
@janela.last.show
end
@app.add_action new_window_action
menu = Gio::Menu.new
edit = Gio::Menu.new
secao = Gio::MenuItem.new_section "Editar", edit
edit.append "Nova janela", "app.nova"
menu.append_submenu "Editar", edit
sair = Gio::MenuItem.new "Sair daqui", "app.quit"
menu.append_item sair
@app.set_app_menu(menu)
end
def run
@app.run nil
end
end
aplicacao = Aplicacao.new
aplicacao.run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment