Module: TopinambourActions

Defined in:
lib/actions.rb

Overview

Those are all the actions that can be called via the interface with the label ‘app.my_action’ for a method my_action.

Class Method Summary collapse

Class Method Details

.add_action_to(name, application) ⇒ Object



28
29
30
31
32
33
# File 'lib/actions.rb', line 28

def self.add_action_to(name, application)
  method_name = "generate_#{name}_action".to_sym
  return false unless methods.include?(method_name)
  action = method(method_name).call(application)
  application.add_action(action)
end

.add_actions_to(application) ⇒ Object



94
95
96
97
98
# File 'lib/actions.rb', line 94

def self.add_actions_to(application)
  %w(quit about preferences term_copy term_paste shortcuts reload_css_config).each do |name|
    add_action_to(name, application)
  end
end

.generate_about_action(application) ⇒ Object



35
36
37
38
39
40
# File 'lib/actions.rb', line 35

def self.generate_about_action(application)
  action = generate_action("about") do |_act, _param|
    application.windows[0].display_about
  end
  action
end

.generate_action(name) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/actions.rb', line 20

def self.generate_action(name)
  action = Gio::SimpleAction.new(name)
  action.signal_connect("activate") do |act, param|
    yield(act, param) if block_given?
  end
  action
end

.generate_preferences_action(application) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/actions.rb', line 42

def self.generate_preferences_action(application)
  action = generate_action("preferences") do |_act, _param|
    dialog = TopinambourPreferences.new(application.windows.first)
    dialog.show_all
  end
  action
end

.generate_quit_action(application) ⇒ Object



50
51
52
53
54
55
# File 'lib/actions.rb', line 50

def self.generate_quit_action(application)
  action = generate_action("quit") do |_act, _param|
    application.quit
  end
  action
end

.generate_reload_css_config_action(application) ⇒ Object



87
88
89
90
91
92
# File 'lib/actions.rb', line 87

def self.generate_reload_css_config_action(application)
  action = generate_action("reload_css_config") do |_act, _param|
    application.reload_css_config
  end
  action
end

.generate_shortcuts_action(application) ⇒ Object



80
81
82
83
84
85
# File 'lib/actions.rb', line 80

def self.generate_shortcuts_action(application)
  action = generate_action("shortcuts") do |_act, _param|
    application.windows[0].show_shortcuts
  end
  action
end

.generate_term_copy_action(application) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/actions.rb', line 57

def self.generate_term_copy_action(application)
  action = generate_action("term_copy") do |_act, _param|
    term = application.windows[0].terminal
    event = Gtk.current_event

    _match, regex_type = term.match_check_event(event)
    if term.has_selection? || regex_type == -1
      term.copy_clipboard
    else
      clipboard = Gtk::Clipboard.get_default(Gdk::Display.default)
      clipboard.text = term.last_match unless term.last_match.nil?
    end
  end
  action
end

.generate_term_paste_action(application) ⇒ Object



73
74
75
76
77
78
# File 'lib/actions.rb', line 73

def self.generate_term_paste_action(application)
  action = generate_action("term_paste") do |_act, _param|
    application.windows[0].terminal.paste_clipboard
  end
  action
end