glimmer-cs-gladiator 0.5.2 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,53 +5,47 @@ module Glimmer
5
5
 
6
6
  options :file, :project_dir
7
7
 
8
- attr_reader :text_proxy, :text_widget
8
+ attr_reader :text_proxy
9
9
 
10
- before_body {
11
- @is_code_file = file.scratchpad? || file.path.end_with?('.rb')
12
- @text_widget = @is_code_file ? 'code_text' : 'styled_text'
13
- }
14
-
15
10
  after_body {
16
- @text_widget = @text.swt_widget
17
- @text_proxy = @text
11
+ load_content
18
12
  }
19
13
 
20
14
  body {
21
15
  composite {
16
+ grid_layout(2, false)
22
17
  layout_data :fill, :fill, true, true
23
- grid_layout 2, false
24
18
  @line_numbers_text = styled_text(:multi, :border) {
25
19
  layout_data(:right, :fill, false, true)
20
+ text ' '*4
26
21
  font name: 'Consolas', height: OS.mac? ? 15 : 12
27
22
  background color(:widget_background)
28
- foreground rgb(0, 0, 250)
29
- text bind(self, 'file.line_numbers_content')
30
- top_pixel bind(self, 'file.top_pixel', read_only: true)
23
+ foreground :dark_blue
31
24
  top_margin 5
32
25
  right_margin 5
33
26
  bottom_margin 5
34
27
  left_margin 5
35
28
  editable false
36
29
  on_focus_gained {
37
- @text&.swt_widget.setFocus
30
+ @text_proxy&.swt_widget.setFocus
38
31
  }
39
32
  on_key_pressed {
40
- @text&.swt_widget.setFocus
33
+ @text_proxy&.swt_widget.setFocus
41
34
  }
42
35
  on_mouse_up {
43
- @text&.swt_widget.setFocus
36
+ @text_proxy&.swt_widget.setFocus
44
37
  }
45
38
  }
46
39
 
47
- @text = send(@text_widget) {
40
+ @text_proxy = send(text_widget_keyword) { |the_text|
48
41
  layout_data :fill, :fill, true, true
49
42
  font name: 'Consolas', height: OS.mac? ? 15 : 12
50
43
  foreground rgb(75, 75, 75)
51
- text bind(self, 'file.content')
52
44
  focus true
53
- selection bind(self, 'file.selection')
54
- top_pixel bind(self, 'file.top_pixel')
45
+ top_margin 5
46
+ right_margin 5
47
+ bottom_margin 5
48
+ left_margin 5
55
49
  drop_target(DND::DROP_COPY) {
56
50
  transfer [TextTransfer.getInstance].to_java(Transfer)
57
51
  on_drag_enter { |event|
@@ -65,92 +59,126 @@ module Glimmer
65
59
  }
66
60
  }
67
61
 
68
- on_focus_lost {
69
- file&.write_dirty_content
70
- }
71
- on_verify_key { |key_event|
72
- if (Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'z') || (key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'y')
73
- key_event.doit = !Command.redo(file)
74
- elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'r'
75
- project_dir.selected_child.run
76
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
77
- key_event.doit = !Command.undo(file)
78
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
79
- key_event.widget.selectAll
80
- elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'a'
81
- Command.do(file, :start_of_line)
82
- key_event.doit = false
83
- elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'e'
84
- Command.do(file, :end_of_line)
85
- key_event.doit = false
86
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
87
- Command.do(file, :comment_line!)
88
- key_event.doit = false
89
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'k'
90
- Command.do(file, :kill_line!)
91
- key_event.doit = false
92
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'd'
93
- Command.do(file, :duplicate_line!)
94
- key_event.doit = false
95
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '['
96
- Command.do(file, :outdent!)
97
- key_event.doit = false
98
- elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == ']'
99
- Command.do(file, :indent!)
100
- key_event.doit = false
101
- elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && key_event.keyCode == swt(:cr)
102
- Command.do(file, :prefix_new_line!)
103
- key_event.doit = false
104
- elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:cr)
105
- Command.do(file, :insert_new_line!)
106
- key_event.doit = false
107
- elsif key_event.keyCode == swt(:page_up)
108
- file.page_up
109
- key_event.doit = false
110
- elsif key_event.keyCode == swt(:page_down)
111
- file.page_down
112
- key_event.doit = false
113
- elsif key_event.keyCode == swt(:home)
114
- file.home
115
- key_event.doit = false
116
- elsif key_event.keyCode == swt(:end)
117
- file.end
118
- key_event.doit = false
119
- elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_up)
120
- Command.do(file, :move_up!)
121
- key_event.doit = false
122
- elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_down)
123
- Command.do(file, :move_down!)
124
- key_event.doit = false
125
- end
126
- }
127
- on_verify_text { |verify_event|
128
- # TODO convert these into File commands to support Undo/Redo
129
- case verify_event.text
130
- when "\n"
131
- if file.selection_count.to_i == 0
132
- verify_event.text += file.current_line_indentation
133
- end
134
- when "\t"
135
- if file.selection_count.to_i > 0
136
- Command.do(file, :indent!)
137
- verify_event.doit = false
138
- else
139
- verify_event.text = ' '
140
- end
141
- end
62
+ on_focus_gained {
63
+ load_content
142
64
  }
143
65
  }
144
66
  }
145
67
  }
146
-
68
+
147
69
  def extract_char(event)
148
70
  event.keyCode.chr
149
71
  rescue => e
150
72
  nil
151
73
  end
152
-
74
+
75
+ def text_widget_keyword
76
+ is_code_file = file.scratchpad? || file.path.end_with?('.rb')
77
+ is_code_file ? 'code_text' : 'styled_text'
78
+ end
79
+
80
+ def text_widget
81
+ @text_proxy.swt_widget
82
+ end
83
+
84
+ def load_content
85
+ if !@initialized && !Gladiator.startup
86
+ load_line_numbers_text_content
87
+ load_text_content
88
+ @initialized = true
89
+ end
90
+ end
91
+
92
+ def load_line_numbers_text_content
93
+ @line_numbers_text.content {
94
+ text bind(self, 'file.line_numbers_content')
95
+ top_pixel bind(self, 'file.top_pixel', read_only: true)
96
+ }
97
+ end
98
+
99
+ def load_text_content
100
+ @text_proxy.content {
101
+ text bind(self, 'file.content')
102
+ selection_count bind(self, 'file.selection_count')
103
+ caret_position bind(self, 'file.caret_position')
104
+ top_pixel bind(self, 'file.top_pixel')
105
+ on_focus_lost {
106
+ file&.write_dirty_content
107
+ }
108
+ on_verify_key { |key_event|
109
+ if (Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'z') || (key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'y')
110
+ key_event.doit = !Command.redo(file)
111
+ elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'r'
112
+ project_dir.selected_child.run
113
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
114
+ key_event.doit = !Command.undo(file)
115
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
116
+ key_event.widget.selectAll
117
+ elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'a'
118
+ Command.do(file, :start_of_line)
119
+ key_event.doit = false
120
+ elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'e'
121
+ Command.do(file, :end_of_line)
122
+ key_event.doit = false
123
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
124
+ Command.do(file, :comment_line!)
125
+ key_event.doit = false
126
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'k'
127
+ Command.do(file, :kill_line!)
128
+ key_event.doit = false
129
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'd'
130
+ Command.do(file, :duplicate_line!)
131
+ key_event.doit = false
132
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '['
133
+ Command.do(file, :outdent!)
134
+ key_event.doit = false
135
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == ']'
136
+ Command.do(file, :indent!)
137
+ key_event.doit = false
138
+ elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && key_event.keyCode == swt(:cr)
139
+ Command.do(file, :prefix_new_line!)
140
+ key_event.doit = false
141
+ elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:cr)
142
+ Command.do(file, :insert_new_line!)
143
+ key_event.doit = false
144
+ elsif key_event.keyCode == swt(:page_up)
145
+ file.page_up
146
+ key_event.doit = false
147
+ elsif key_event.keyCode == swt(:page_down)
148
+ file.page_down
149
+ key_event.doit = false
150
+ elsif key_event.keyCode == swt(:home)
151
+ file.home
152
+ key_event.doit = false
153
+ elsif key_event.keyCode == swt(:end)
154
+ file.end
155
+ key_event.doit = false
156
+ elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_up)
157
+ Command.do(file, :move_up!)
158
+ key_event.doit = false
159
+ elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_down)
160
+ Command.do(file, :move_down!)
161
+ key_event.doit = false
162
+ end
163
+ }
164
+ on_verify_text { |verify_event|
165
+ # TODO convert these into File commands to support Undo/Redo
166
+ case verify_event.text
167
+ when "\n"
168
+ if file.selection_count.to_i == 0
169
+ verify_event.text += file.current_line_indentation
170
+ end
171
+ when "\t"
172
+ Command.do(file, :indent!)
173
+ verify_event.doit = false
174
+ end
175
+ }
176
+ }
177
+ end
178
+
153
179
  end
180
+
154
181
  end
182
+
155
183
  end
156
184
 
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-cs-gladiator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-02 00:00:00.000000000 Z
11
+ date: 2020-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 4.17.8.1
18
+ version: 4.17.10.3
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
21
  version: 5.0.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 4.17.8.1
29
+ version: 4.17.10.3
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 5.0.0.0
@@ -49,7 +49,7 @@ dependencies:
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: 1.3.4
52
+ version: 1.3.5
53
53
  name: clipboard
54
54
  prerelease: false
55
55
  type: :runtime
@@ -57,7 +57,7 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.3.4
60
+ version: 1.3.5
61
61
  - !ruby/object:Gem::Dependency
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements: