require 'wx' require 'shutter' def SetupPath(*args) base = File.dirname(File.expand_path(__FILE__)) File.join(base,*args) end class ShutterFrame < Wx::Frame def initialize(*args) super @shutter = Wx::Shutter.new(self) fatBot = Wx::Bitmap.new(SetupPath("icons","FatBot.ico"),Wx::BITMAP_TYPE_ANY) angryGuy = Wx::Bitmap.new(SetupPath("icons","AngryGuyInBunnySuit.ico"),Wx::BITMAP_TYPE_ANY) sawBlade = Wx::Bitmap.new(SetupPath("icons","SawBlade.ico"),Wx::BITMAP_TYPE_ANY) redMacOS = Wx::Bitmap.new(SetupPath("icons","RedMacOS.ico"),Wx::BITMAP_TYPE_ANY) leGoon = Wx::Bitmap.new(SetupPath("icons","LeGoon.ico"),Wx::BITMAP_TYPE_ANY) flippedySwitch = Wx::Bitmap.new(SetupPath("icons","FlippedySwitch.ico"),Wx::BITMAP_TYPE_ANY) net = Wx::Bitmap.new(SetupPath("icons","Net.ico"),Wx::BITMAP_TYPE_ANY) itm1 = @shutter.add_header("Lookout Shortcuts") itm2 = @shutter.add_header("My Shortcuts") itm3 = @shutter.add_header("Other Shortcuts") @shutter.add_item(itm1,"Lookout Today",fatBot) @shutter.add_item(itm1,"Inbox",angryGuy) @shutter.add_item(itm1,"Calendar",sawBlade) @shutter.add_item(itm1,"Contacts",redMacOS) @shutter.add_item(itm1,"Tasks",leGoon) @shutter.add_item(itm1,"Notes",flippedySwitch) @shutter.add_item(itm1,"Deleted Items",net) @shutter.add_item(itm2,"Drafts",fatBot) @shutter.add_item(itm2,"Outbox",angryGuy) @shutter.add_item(itm2,"Sent Items",sawBlade) @shutter.add_item(itm2,"Journal",redMacOS) @shutter.add_item(itm2,"Lookout Update",flippedySwitch) @shutter.add_item(itm3,"My Computer",angryGuy) @shutter.add_item(itm3,"My Documents",net) @shutter.add_item(itm3,"Favorites",leGoon) @label = Wx::StaticText.new(self,-1,"Lookout Today!\n\nIcons courtesy of Gort's Icons:\nhttp://www.forrestwalter.com/icons") lsizer = Wx::BoxSizer.new(Wx::HORIZONTAL) lsizer.add(@shutter,0,Wx::EXPAND) lsizer.add(@label,1,Wx::EXPAND) set_sizer(lsizer) evt_shutter(@shutter.get_id) do |event| puts "evt_shutter received" puts "event.header = #{event.header}" puts "event.item = #{event.item}" end end end class ShutterApp < Wx::App def on_init() f = ShutterFrame.new(nil,-1,"Shutter Test") f.show end end ShutterApp.new().main_loop()