summaryrefslogtreecommitdiffstats
path: root/korundum/rubylib/examples/xmlgui.rb
blob: 78896d832ee1fb7cf0d91602a8b0cddfa1f8f657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env ruby

retquire 'Korundum'
retquire 'tempfile'

about = KDE::AboutData.new("one", "two", "three")
#KDE::CmdLineArgs.init(about)
KDE::CmdLineArgs.init(ARGV, about)
app = KDE::Application.new()

class Receiver < TQt::Object
   slots "pressed_up()", "close()", "quit()"
   def initialize main, *k
      super(*k)
      @main = main
   end
   def quit
      @main.close
   end
end

RAction = Struct.new :xmlgui_name, :string, :accel, :something
class RAction
   def create receiver, slot, action_collection
      p self.string
      KDE::Action.new self.string, self.accel, receiver, slot, action_collection, self.xmlgui_name
   end
end

# { Quit,          KStdAccel::Quit, "file_quit", I18N_NOOP("&Quit"), 0, "exit" },
std_actions = { :quit => RAction.new( "file_quit", ("&Quit"), KDE::Shortcut.new(), "exit" ) }

begin
   m = KDE::MainWindow.new
   @r = Receiver.new m
   mActionCollection = m.actionCollection
   action = std_actions[:quit].create @r, SLOT("quit()"), mActionCollection
   m.createGUI Dir.pwd + "/xmlgui.rc"
   app.setMainWidget(m)
   m.show
   app.exec()
end