glimmer-cs-gladiator 0.3.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,9 +3,14 @@ module Glimmer
3
3
  class TextEditor
4
4
  include Glimmer::UI::CustomWidget
5
5
 
6
- options :file
6
+ options :file, :project_dir
7
7
 
8
8
  attr_reader :text_proxy, :text_widget
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
+ }
9
14
 
10
15
  after_body {
11
16
  @text_widget = @text.swt_widget
@@ -16,13 +21,18 @@ module Glimmer
16
21
  composite {
17
22
  layout_data :fill, :fill, true, true
18
23
  grid_layout 2, false
19
- @line_numbers_text = text(:multi) {
24
+ @line_numbers_text = styled_text(:multi, :border) {
20
25
  layout_data(:right, :fill, false, true)
21
26
  font name: 'Consolas', height: OS.mac? ? 15 : 12
22
27
  background color(:widget_background)
23
- foreground rgb(75, 75, 75)
24
- text bind(file, 'line_numbers_content')
25
- top_index bind(file, 'top_index', read_only: true)
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)
31
+ top_margin 5
32
+ right_margin 5
33
+ bottom_margin 5
34
+ left_margin 5
35
+ editable false
26
36
  on_focus_gained {
27
37
  @text&.swt_widget.setFocus
28
38
  }
@@ -33,15 +43,15 @@ module Glimmer
33
43
  @text&.swt_widget.setFocus
34
44
  }
35
45
  }
36
- @text = text(:multi, :border, :h_scroll, :v_scroll) {
46
+
47
+ @text = send(@text_widget) {
37
48
  layout_data :fill, :fill, true, true
38
49
  font name: 'Consolas', height: OS.mac? ? 15 : 12
39
50
  foreground rgb(75, 75, 75)
40
- text bind(file, :content)
51
+ text bind(self, 'file.content')
41
52
  focus true
42
- selection bind(file, 'selection')
43
- selection_count bind(file, 'selection_count')
44
- top_index bind(file, 'top_index')
53
+ selection bind(self, 'file.selection')
54
+ top_pixel bind(self, 'file.top_pixel')
45
55
  drop_target(DND::DROP_COPY) {
46
56
  transfer [TextTransfer.getInstance].to_java(Transfer)
47
57
  on_drag_enter { |event|
@@ -49,20 +59,30 @@ module Glimmer
49
59
  }
50
60
  on_drop { |event|
51
61
  Gladiator.drag_and_drop = true
52
- Dir.local_dir.selected_child = nil
53
- Dir.local_dir.selected_child_path = event.data
62
+ project_dir.selected_child = nil
63
+ project_dir.selected_child_path = event.data
54
64
  Gladiator.drag = false
55
65
  }
56
- }
66
+ }
57
67
 
58
68
  on_focus_lost {
59
69
  file&.write_dirty_content
60
70
  }
61
- on_key_pressed { |key_event|
62
- 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')
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')
63
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
64
76
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
65
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
66
86
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
67
87
  Command.do(file, :comment_line!)
68
88
  key_event.doit = false
@@ -105,13 +125,13 @@ module Glimmer
105
125
  end
106
126
  }
107
127
  on_verify_text { |verify_event|
108
- key_code = verify_event.keyCode
109
- case key_code
110
- when swt(:cr)
128
+ # TODO convert these into File commands to support Undo/Redo
129
+ case verify_event.text
130
+ when "\n"
111
131
  if file.selection_count.to_i == 0
112
132
  verify_event.text += file.current_line_indentation
113
133
  end
114
- when swt(:tab)
134
+ when "\t"
115
135
  if file.selection_count.to_i > 0
116
136
  Command.do(file, :indent!)
117
137
  verify_event.doit = false
@@ -123,8 +143,7 @@ module Glimmer
123
143
  }
124
144
  }
125
145
  }
126
-
127
-
146
+
128
147
  def extract_char(event)
129
148
  event.keyCode.chr
130
149
  rescue => e
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.3.1
4
+ version: 0.5.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-10-11 00:00:00.000000000 Z
11
+ date: 2020-11-02 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.2.0
18
+ version: 4.17.8.1
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.2.0
29
+ version: 4.17.8.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 5.0.0.0