glimmer-cs-gladiator 0.1.5 → 0.2.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.
@@ -5,10 +5,11 @@ module Glimmer
5
5
 
6
6
  options :file
7
7
 
8
- attr_reader :text_widget
8
+ attr_reader :text_proxy, :text_widget
9
9
 
10
10
  after_body {
11
11
  @text_widget = @text.swt_widget
12
+ @text_proxy = @text
12
13
  }
13
14
 
14
15
  body {
@@ -17,7 +18,7 @@ module Glimmer
17
18
  grid_layout 2, false
18
19
  @line_numbers_text = text(:multi) {
19
20
  layout_data(:right, :fill, false, true)
20
- font name: 'Consolas', height: 15
21
+ font name: 'Consolas', height: OS.mac? ? 15 : 12
21
22
  background color(:widget_background)
22
23
  foreground rgb(75, 75, 75)
23
24
  text bind(file, 'line_numbers_content')
@@ -34,31 +35,55 @@ module Glimmer
34
35
  }
35
36
  @text = text(:multi, :border, :h_scroll, :v_scroll) {
36
37
  layout_data :fill, :fill, true, true
37
- font name: 'Consolas', height: 15
38
+ font name: 'Consolas', height: OS.mac? ? 15 : 12
38
39
  foreground rgb(75, 75, 75)
39
- text bind(file, 'dirty_content')
40
+ text bind(file, :content)
40
41
  focus true
41
- caret_position bind(file, 'caret_position')
42
+ selection bind(file, 'selection')
42
43
  selection_count bind(file, 'selection_count')
43
44
  top_index bind(file, 'top_index')
45
+ drop_target(DND::DROP_COPY) {
46
+ transfer [TextTransfer.getInstance].to_java(Transfer)
47
+ on_drag_enter { |event|
48
+ event.detail = DND::DROP_COPY
49
+ }
50
+ on_drop { |event|
51
+ Gladiator.drag_and_drop = true
52
+ Dir.local_dir.selected_child = nil
53
+ Dir.local_dir.selected_child_path = event.data
54
+ Gladiator.drag = false
55
+ }
56
+ }
57
+
44
58
  on_focus_lost {
45
59
  file&.write_dirty_content
46
60
  }
47
61
  on_key_pressed { |key_event|
48
- if key_event.stateMask == swt(:command) && key_event.character.chr.downcase == '/'
49
- file.comment_line!
50
- elsif key_event.stateMask == swt(:command) && key_event.character.chr.downcase == 'k'
51
- file.kill_line!
52
- elsif key_event.stateMask == swt(:command) && key_event.character.chr.downcase == 'd'
53
- file.duplicate_line!
54
- elsif key_event.stateMask == swt(:command) && key_event.character.chr.downcase == '['
55
- file.outdent!
56
- elsif key_event.stateMask == swt(:command) && key_event.character.chr.downcase == ']'
57
- file.indent!
58
- elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, :command, :shift) && key_event.keyCode == swt(:cr)
59
- file.prefix_new_line!
60
- elsif key_event.stateMask == swt(:command) && key_event.keyCode == swt(:cr)
61
- file.insert_new_line!
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')
63
+ key_event.doit = !Command.redo(file)
64
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
65
+ key_event.doit = !Command.undo(file)
66
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
67
+ Command.do(file, :comment_line!)
68
+ key_event.doit = false
69
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'k'
70
+ Command.do(file, :kill_line!)
71
+ key_event.doit = false
72
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'd'
73
+ Command.do(file, :duplicate_line!)
74
+ key_event.doit = false
75
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '['
76
+ Command.do(file, :outdent!)
77
+ key_event.doit = false
78
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == ']'
79
+ Command.do(file, :indent!)
80
+ key_event.doit = false
81
+ elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && key_event.keyCode == swt(:cr)
82
+ Command.do(file, :prefix_new_line!)
83
+ key_event.doit = false
84
+ elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:cr)
85
+ Command.do(file, :insert_new_line!)
86
+ key_event.doit = false
62
87
  elsif key_event.keyCode == swt(:page_up)
63
88
  file.page_up
64
89
  key_event.doit = false
@@ -71,11 +96,11 @@ module Glimmer
71
96
  elsif key_event.keyCode == swt(:end)
72
97
  file.end
73
98
  key_event.doit = false
74
- elsif key_event.stateMask == swt(:command) && key_event.keyCode == swt(:arrow_up)
75
- file.move_up!
99
+ elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_up)
100
+ Command.do(file, :move_up!)
76
101
  key_event.doit = false
77
- elsif key_event.stateMask == swt(:command) && key_event.keyCode == swt(:arrow_down)
78
- file.move_down!
102
+ elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_down)
103
+ Command.do(file, :move_down!)
79
104
  key_event.doit = false
80
105
  end
81
106
  }
@@ -88,7 +113,7 @@ module Glimmer
88
113
  end
89
114
  when swt(:tab)
90
115
  if file.selection_count.to_i > 0
91
- file.indent!
116
+ Command.do(file, :indent!)
92
117
  verify_event.doit = false
93
118
  else
94
119
  verify_event.text = ' '
@@ -98,6 +123,15 @@ module Glimmer
98
123
  }
99
124
  }
100
125
  }
126
+
127
+
128
+ def extract_char(event)
129
+ event.keyCode.chr
130
+ rescue => e
131
+ nil
132
+ end
133
+
101
134
  end
102
135
  end
103
136
  end
137
+
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-cs-gladiator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.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-05-22 00:00:00.000000000 Z
11
+ date: 2020-07-11 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
+ - !ruby/object:Gem::Version
18
+ version: 0.1.3
19
+ - - "<"
17
20
  - !ruby/object:Gem::Version
18
- version: 0.7.4
19
- name: glimmer
21
+ version: 2.0.0
22
+ name: glimmer-dsl-swt
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: 0.7.4
29
+ version: 0.1.3
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
@@ -94,20 +100,6 @@ dependencies:
94
100
  - - ">="
95
101
  - !ruby/object:Gem::Version
96
102
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: 0.8.1
103
- name: puts_debuggerer
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 0.8.1
111
103
  description: Gladiator (short for Glimmer Editor) is a Glimmer sample project under
112
104
  on-going development. It is not intended to be a full-fledged editor by any means,
113
105
  yet mostly a fun educational exercise in using Glimmer to build a text editor. Gladiator
@@ -124,9 +116,11 @@ extra_rdoc_files:
124
116
  files:
125
117
  - LICENSE.txt
126
118
  - README.md
119
+ - VERSION
127
120
  - bin/gladiator
128
121
  - bin/gladiator_runner.rb
129
122
  - lib/glimmer-cs-gladiator.rb
123
+ - lib/models/glimmer/gladiator/command.rb
130
124
  - lib/models/glimmer/gladiator/dir.rb
131
125
  - lib/models/glimmer/gladiator/file.rb
132
126
  - lib/views/glimmer/gladiator.rb