glimmer-cs-gladiator 0.3.0 → 0.5.1

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,17 @@ 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)
28
+ foreground rgb(0, 0, 250)
24
29
  text bind(file, 'line_numbers_content')
25
- top_index bind(file, 'top_index', read_only: true)
30
+ top_pixel bind(file, 'top_pixel', read_only: true)
31
+ top_margin 5
32
+ right_margin 5
33
+ bottom_margin 5
34
+ left_margin 5
26
35
  on_focus_gained {
27
36
  @text&.swt_widget.setFocus
28
37
  }
@@ -33,15 +42,15 @@ module Glimmer
33
42
  @text&.swt_widget.setFocus
34
43
  }
35
44
  }
36
- @text = text(:multi, :border, :h_scroll, :v_scroll) {
45
+
46
+ @text = send(@text_widget) {
37
47
  layout_data :fill, :fill, true, true
38
48
  font name: 'Consolas', height: OS.mac? ? 15 : 12
39
49
  foreground rgb(75, 75, 75)
40
50
  text bind(file, :content)
41
51
  focus true
42
- selection bind(file, 'selection')
43
- selection_count bind(file, 'selection_count')
44
- top_index bind(file, 'top_index')
52
+ selection bind(file, :selection)
53
+ top_pixel bind(file, 'top_pixel')
45
54
  drop_target(DND::DROP_COPY) {
46
55
  transfer [TextTransfer.getInstance].to_java(Transfer)
47
56
  on_drag_enter { |event|
@@ -49,20 +58,30 @@ module Glimmer
49
58
  }
50
59
  on_drop { |event|
51
60
  Gladiator.drag_and_drop = true
52
- Dir.local_dir.selected_child = nil
53
- Dir.local_dir.selected_child_path = event.data
61
+ project_dir.selected_child = nil
62
+ project_dir.selected_child_path = event.data
54
63
  Gladiator.drag = false
55
64
  }
56
- }
65
+ }
57
66
 
58
67
  on_focus_lost {
59
68
  file&.write_dirty_content
60
69
  }
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')
70
+ on_verify_key { |key_event|
71
+ 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
72
  key_event.doit = !Command.redo(file)
73
+ elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'r'
74
+ project_dir.selected_child.run
64
75
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
65
76
  key_event.doit = !Command.undo(file)
77
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
78
+ key_event.widget.selectAll
79
+ elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'a'
80
+ Command.do(file, :start_of_line)
81
+ key_event.doit = false
82
+ elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'e'
83
+ Command.do(file, :end_of_line)
84
+ key_event.doit = false
66
85
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
67
86
  Command.do(file, :comment_line!)
68
87
  key_event.doit = false
@@ -105,13 +124,13 @@ module Glimmer
105
124
  end
106
125
  }
107
126
  on_verify_text { |verify_event|
108
- key_code = verify_event.keyCode
109
- case key_code
110
- when swt(:cr)
127
+ # TODO convert these into File commands to support Undo/Redo
128
+ case verify_event.text
129
+ when "\n"
111
130
  if file.selection_count.to_i == 0
112
131
  verify_event.text += file.current_line_indentation
113
132
  end
114
- when swt(:tab)
133
+ when "\t"
115
134
  if file.selection_count.to_i > 0
116
135
  Command.do(file, :indent!)
117
136
  verify_event.doit = false
@@ -123,8 +142,7 @@ module Glimmer
123
142
  }
124
143
  }
125
144
  }
126
-
127
-
145
+
128
146
  def extract_char(event)
129
147
  event.keyCode.chr
130
148
  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.0
4
+ version: 0.5.1
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-09-27 00:00:00.000000000 Z
11
+ date: 2020-11-01 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