glimmer-cs-gladiator 0.1.5 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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