glimmer-cs-gladiator 0.2.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-cs-gladiator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.5.0
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-07-30 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: 0.4.1
18
+ version: 4.17.7.1
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
- version: 2.0.0
21
+ version: 5.0.0.0
22
22
  name: glimmer-dsl-swt
23
- type: :runtime
24
23
  prerelease: false
24
+ type: :runtime
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.4.1
29
+ version: 4.17.7.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 2.0.0
32
+ version: 5.0.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
@@ -37,8 +37,8 @@ dependencies:
37
37
  - !ruby/object:Gem::Version
38
38
  version: 1.1.1
39
39
  name: filewatcher
40
- type: :runtime
41
40
  prerelease: false
41
+ type: :runtime
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
@@ -51,8 +51,8 @@ dependencies:
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.3.4
53
53
  name: clipboard
54
- type: :runtime
55
54
  prerelease: false
55
+ type: :runtime
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
@@ -65,8 +65,8 @@ dependencies:
65
65
  - !ruby/object:Gem::Version
66
66
  version: 3.5.0
67
67
  name: rspec
68
- type: :development
69
68
  prerelease: false
69
+ type: :development
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
@@ -79,8 +79,8 @@ dependencies:
79
79
  - !ruby/object:Gem::Version
80
80
  version: 2.3.9
81
81
  name: jeweler
82
- type: :development
83
82
  prerelease: false
83
+ type: :development
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - '='
@@ -93,8 +93,8 @@ dependencies:
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  name: simplecov
96
- type: :development
97
96
  prerelease: false
97
+ type: :development
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
- rubygems_version: 3.0.6
147
+ rubygems_version: 3.1.4
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Gladiator (Glimmer Editor) - Glimmer Custom Shell