Skip to content

Instantly share code, notes, and snippets.

@ayucat
Created September 30, 2008 10:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ayucat/13782 to your computer and use it in GitHub Desktop.
Save ayucat/13782 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
begin
require 'rubygems'
rescue LoadError
end
require 'wx'
# This sample shows a fairly minimal Wx::App using a Frame, with a
# MenuBar and StatusBar but no controls. For the absolute minimum app,
# see nothing.rb
# A Wx::Frame is a self-contained, top-level Window that can contain
# controls, menubars, and statusbars
class MinimalFrame < Wx::Frame
def initialize(title)
# The main application frame has no parent (nil)
super(nil, :title => title, :size => [ 400, 300 ])
# PNG can be used on all platforms, but icon type must be specified
# to work on Windows. Note that OS X doesn't have "Frame" icons.
icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
self.icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_PNG)
menu_bar = Wx::MenuBar.new
# The "file" menu
menu_file = Wx::Menu.new
# Using Wx::ID_EXIT standard id means the menu item will be given
# the right label for the platform and language, and placed in the
# correct platform-specific menu - eg on OS X, in the Application's menu
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
menu_bar.append(menu_file, "&File")
# The "help" menu
menu_help = Wx::Menu.new
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
menu_bar.append(menu_help, "&Help")
# Assign the menubar to this frame
self.menu_bar = menu_bar
# Create a status bar at the bottom of the frame
create_status_bar(2)
self.status_text = "Welcome to wxRuby!"
# Set it up to handle menu events using the relevant methods.
evt_menu Wx::ID_EXIT, :on_quit
evt_menu Wx::ID_ABOUT, :on_about
end
# End the application; it should finish automatically when the last
# window is closed.
def on_quit
close()
end
# show an 'About' dialog - WxRuby's about_box function will show a
# platform-native 'About' dialog, but you could also use an ordinary
# Wx::MessageDialog here.
def on_about
Wx::about_box(:name => self.title,
:version => Wx::WXRUBY_VERSION,
:description => "This is the minimal sample",
:developers => ['The wxRuby Development Team'] )
end
end
# Wx::App is the container class for any wxruby app. To start an
# application, either define a subclass of Wx::App, create an instance,
# and call its main_loop method, OR, simply call the Wx::App.run class
# method, as shown here.
Wx::App.run do
self.app_name = 'Minimal'
frame = MinimalFrame.new("Minimal wxRuby App")
frame.show
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment