Class: Redcar::ApplicationSWT
- Inherits:
-
Object
show all
- Includes:
- Controller
- Defined in:
- plugins/application_swt/lib/application_swt.rb,
plugins/application_swt/lib/application_swt/tab.rb,
plugins/application_swt/lib/application_swt/icon.rb,
plugins/application_swt/lib/application_swt/menu.rb,
plugins/application_swt/lib/application_swt/window.rb,
plugins/application_swt/lib/application_swt/toolbar.rb,
plugins/application_swt/lib/application_swt/speedbar.rb,
plugins/application_swt/lib/application_swt/notebook.rb,
plugins/application_swt/lib/application_swt/gradient.rb,
plugins/application_swt/lib/application_swt/treebook.rb,
plugins/application_swt/lib/application_swt/html_tab.rb,
plugins/application_swt/lib/application_swt/clipboard.rb,
plugins/application_swt/lib/application_swt/dialog_adapter.rb,
plugins/application_swt/lib/application_swt/bring_to_front.rb,
plugins/application_swt/lib/application_swt/listener_helpers.rb,
plugins/application_swt/lib/application_swt/speedbar/combo_item.rb,
plugins/application_swt/lib/application_swt/speedbar/label_item.rb,
plugins/application_swt/lib/application_swt/speedbar/toggle_item.rb,
plugins/application_swt/lib/application_swt/dialogs/input_dialog.rb,
plugins/application_swt/lib/application_swt/speedbar/slider_item.rb,
plugins/application_swt/lib/application_swt/speedbar/button_item.rb,
plugins/application_swt/lib/application_swt/notebook/tab_transfer.rb,
plugins/application_swt/lib/application_swt/speedbar/text_box_item.rb,
plugins/application_swt/lib/application_swt/dialogs/modeless_dialog.rb,
plugins/application_swt/lib/application_swt/menu/binding_translator.rb,
plugins/application_swt/lib/application_swt/dialogs/no_buttons_dialog.rb,
plugins/application_swt/lib/application_swt/toolbar/binding_translator.rb,
plugins/application_swt/lib/application_swt/dialogs/modeless_html_dialog.rb,
plugins/application_swt/lib/application_swt/dialogs/text_and_file_dialog.rb,
plugins/application_swt/lib/application_swt/notebook/tab_drag_and_drop_listener.rb,
plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb,
plugins/application_swt/lib/application_swt/dialogs/modeless_list_dialog_controller.rb
Defined Under Namespace
Modules: Dialogs, Icon, ListenerHelpers
Classes: Clipboard, CocoaUIListener, DialogAdapter, FakeWindow, FilterListDialogController, Gradient, HtmlTab, Menu, ModelessDialog, ModelessHtmlDialog, ModelessListDialogController, Notebook, ShellListener, Speedbar, Tab, ToolBar, Treebook, Window
Constant Summary
- DEFAULT_TREE_FONT_SIZES =
{
:osx => 12,
:windows => 10,
:linux => 12
}
Instance Attribute Summary (collapse)
Attributes included from Controller
#model
Class Method Summary
(collapse)
Instance Method Summary
(collapse)
Methods included from Controller
included
Constructor Details
A new instance of ApplicationSWT
136
137
138
139
140
141
142
|
# File 'plugins/application_swt/lib/application_swt.rb', line 136
def initialize(model)
@model = model
add_listeners
add_swt_listeners
create_clipboard
create_fake_window
end
|
Instance Attribute Details
- (Object) fake_shell
Returns the value of attribute fake_shell
36
37
38
|
# File 'plugins/application_swt/lib/application_swt.rb', line 36
def fake_shell
@fake_shell
end
|
Class Method Details
+ (Object) add_debug_key_filters
87
88
89
90
91
92
93
94
|
# File 'plugins/application_swt/lib/application_swt.rb', line 87
def self.add_debug_key_filters
display.add_filter(Swt::SWT::KeyDown) do |a|
puts "type: #{a.type}, keyCode: #{a.keyCode}, character: #{a.character}, statemask: #{a.stateMask}"
end
display.add_filter(Swt::SWT::KeyUp) do |a|
puts "type: #{a.type}, keyCode: #{a.keyCode}, character: #{a.character}, statemask: #{a.stateMask}"
end
end
|
38
39
40
|
# File 'plugins/application_swt/lib/application_swt.rb', line 38
def self.display
@display ||= Swt.display
end
|
96
97
98
|
# File 'plugins/application_swt/lib/application_swt.rb', line 96
def self.gui
Redcar.gui
end
|
+ (Object) register_dialog(shell, dialog)
128
129
130
|
# File 'plugins/application_swt/lib/application_swt.rb', line 128
def self.register_dialog(shell, dialog)
shell_dialogs[shell] = dialog
end
|
+ (Object) register_shell(shell)
ALL new shells must be registered here, otherwise Redcar will get confused
about when it has lost the application focus.
120
121
122
|
# File 'plugins/application_swt/lib/application_swt.rb', line 120
def self.register_shell(shell)
shell.add_shell_listener(ShellListener.new)
end
|
+ (Object) selected_tab_background
54
55
56
|
# File 'plugins/application_swt/lib/application_swt.rb', line 54
def self.selected_tab_background
Gradient.new(Redcar::ApplicationSWT.storage['selected_tab_background'])
end
|
+ (Object) shell_dialogs
124
125
126
|
# File 'plugins/application_swt/lib/application_swt.rb', line 124
def self.shell_dialogs
@shell_dialogs ||= {}
end
|
+ (Object) start_with_app
42
43
44
45
46
47
48
49
50
51
52
|
# File 'plugins/application_swt/lib/application_swt.rb', line 42
def self.start_with_app
if Redcar.gui
Redcar.gui.register_controllers(
Redcar::Tab => ApplicationSWT::Tab,
Redcar::HtmlTab => ApplicationSWT::HtmlTab,
Redcar::FilterListDialog => ApplicationSWT::FilterListDialogController,
Redcar::ModelessListDialog => ApplicationSWT::ModelessListDialogController
)
Redcar.gui.register_dialog_adapter(ApplicationSWT::DialogAdapter.new)
end
end
|
76
77
78
79
80
81
82
83
84
85
|
# File 'plugins/application_swt/lib/application_swt.rb', line 76
def self.storage
@storage ||= begin
storage = Plugin::Storage.new('application_swt')
storage.set_default('selected_tab_background', {0 => "#FEFEFE", 100 => "#EEEEEE"})
storage.set_default('unselected_tab_background', {0 => "#E5E5E5", 100 => "#D0D0D0"})
storage.set_default('tree_background', "#FFFFFF")
storage.set_default('tree_font_size', DEFAULT_TREE_FONT_SIZES[Redcar.platform])
storage
end
end
|
+ (Object) tree_background
62
63
64
|
# File 'plugins/application_swt/lib/application_swt.rb', line 62
def self.tree_background
Gradient.new(Redcar::ApplicationSWT.storage['tree_background'])
end
|
+ (Object) tree_font_size
66
67
68
|
# File 'plugins/application_swt/lib/application_swt.rb', line 66
def self.tree_font_size
Redcar::ApplicationSWT.storage['tree_font_size']
end
|
+ (Object) unregister_dialog(dialog)
132
133
134
|
# File 'plugins/application_swt/lib/application_swt.rb', line 132
def self.unregister_dialog(dialog)
shell_dialogs.delete(shell_dialogs.invert[dialog])
end
|
+ (Object) unselected_tab_background
58
59
60
|
# File 'plugins/application_swt/lib/application_swt.rb', line 58
def self.unselected_tab_background
Gradient.new(Redcar::ApplicationSWT.storage['unselected_tab_background'])
end
|
Instance Method Details
- (Object) add_listeners
178
179
180
181
|
# File 'plugins/application_swt/lib/application_swt.rb', line 178
def add_listeners
@model.add_listener(:new_window, &method(:new_window))
@model.add_listener(:refresh_menu, &method(:refresh_menu))
end
|
- (Object) add_swt_listeners
205
206
207
208
209
210
211
212
213
214
215
|
# File 'plugins/application_swt/lib/application_swt.rb', line 205
def add_swt_listeners
if Redcar.platform == :osx
enhancer = com.redcareditor.application_swt.CocoaUIEnhancer.new("Redcar")
enhancer.(
ApplicationSWT.display,
CocoaUIListener.new(:quit),
CocoaUIListener.new(:about),
CocoaUIListener.new(:prefs)
)
end
end
|
- (Object) create_clipboard
217
218
219
|
# File 'plugins/application_swt/lib/application_swt.rb', line 217
def create_clipboard
ApplicationSWT::Clipboard.new(@model.clipboard)
end
|
- (Object) create_fake_window
148
149
150
151
152
153
|
# File 'plugins/application_swt/lib/application_swt.rb', line 148
def create_fake_window
@fake_shell = Swt::Widgets::Shell.new(ApplicationSWT.display, Swt::SWT::NO_TRIM)
@fake_shell.open
@fake_shell.set_size(0, 0)
@fake_shell.set_visible(false) unless Redcar.platform == :osx
end
|
225
226
227
|
# File 'plugins/application_swt/lib/application_swt.rb', line 225
def
Menu.new(self, @model.)
end
|
- (Object) new_window(win)
221
222
223
|
# File 'plugins/application_swt/lib/application_swt.rb', line 221
def new_window(win)
win.controller = ApplicationSWT::Window.new(win)
end
|
163
164
165
166
167
168
169
170
|
# File 'plugins/application_swt/lib/application_swt.rb', line 163
def
if Redcar.platform == :osx and @fake_shell
= @fake_shell.
= ApplicationSWT::Menu.new(FakeWindow.new(@fake_shell), Redcar.app.main_menu, Redcar.app.main_keymap, Swt::SWT::BAR)
fake_shell. = .
.dispose if
end
end
|
172
173
174
175
176
|
# File 'plugins/application_swt/lib/application_swt.rb', line 172
def refresh_toolbar
end
|