glimmer-cs-gladiator 0.4.0 → 0.5.3

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,18 @@ module Glimmer
16
21
  composite {
17
22
  layout_data :fill, :fill, true, true
18
23
  grid_layout 2, false
19
- @line_numbers_text = code_text(:border, :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_pixel bind(file, 'top_pixel', 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
  }
@@ -34,14 +44,14 @@ module Glimmer
34
44
  }
35
45
  }
36
46
 
37
- @text = code_text {
47
+ @text = send(@text_widget) {
38
48
  layout_data :fill, :fill, true, true
39
49
  font name: 'Consolas', height: OS.mac? ? 15 : 12
40
50
  foreground rgb(75, 75, 75)
41
- text bind(file, :content)
51
+ text bind(self, 'file.content')
42
52
  focus true
43
- selection bind(file, :selection)
44
- top_pixel bind(file, :top_pixel)
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,29 +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
71
  on_verify_key { |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')
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)
64
74
  elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'r'
65
- Dir.local_dir.selected_child.write_dirty_content
66
- begin
67
- load Dir.local_dir.selected_child.path
68
- rescue => e
69
- puts e.full_message
70
- end
75
+ project_dir.selected_child.run
71
76
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
72
77
  key_event.doit = !Command.undo(file)
73
78
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
74
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
75
86
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
76
87
  Command.do(file, :comment_line!)
77
88
  key_event.doit = false
@@ -114,7 +125,7 @@ module Glimmer
114
125
  end
115
126
  }
116
127
  on_verify_text { |verify_event|
117
- # TODO convert these into File commands to support Undo/Redo
128
+ # TODO convert these into File commands to support Undo/Redo
118
129
  case verify_event.text
119
130
  when "\n"
120
131
  if file.selection_count.to_i == 0
@@ -132,8 +143,7 @@ module Glimmer
132
143
  }
133
144
  }
134
145
  }
135
-
136
-
146
+
137
147
  def extract_char(event)
138
148
  event.keyCode.chr
139
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.4.0
4
+ version: 0.5.3
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-23 00:00:00.000000000 Z
11
+ date: 2020-11-05 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.4.2
18
+ version: 4.17.8.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.4.2
29
+ version: 4.17.8.3
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 5.0.0.0