compilator 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c05b3d261f3782cc27e124cbe5060c3b4e25f5e2
4
- data.tar.gz: bbb744ee9234b3a68f92de742463183d05f000f9
3
+ metadata.gz: 14278249ee5b9a507d40073db9b7a92b392b38fd
4
+ data.tar.gz: 676b006a453d8cb101da7ab58c596823cc28b321
5
5
  SHA512:
6
- metadata.gz: 71ef245c3dbaeb11ff255289f48be3e8e3c49764f06888ce48132a0c97b40d313738e024dafd971cc6bfcf5953475a405d17deafe3dec82271858bf3cd12c4f9
7
- data.tar.gz: 5cef6933858080bf5ed0c49f20d73101c1566f0cd71198a84121d18c02523e5c078a2a84ff6d5be3e77a412bf57513309e6f65a0a92eb509a8b957bd6c57e04e
6
+ metadata.gz: fa1cb7b4ab01c0bac652df2e059e108d65cdfcb692b205177c3145064876b1ddb3b071ec9f15a90d56dc5045ccb0ef87255bfee5b538df574ba77cd3094426ec
7
+ data.tar.gz: 578770a4cd912fabed36009c70d38d878767801dce89841c4cdef7dc744727a240061996eba4a51d3a7dd108c9fcdada125ee41f9fb524525db9e9e3ff5e1f69
@@ -1,3 +1,3 @@
1
1
  module Compilator
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
data/lib/compilator.rb CHANGED
@@ -21,10 +21,13 @@ module Compilator
21
21
  def notify_action(view,action,kwargs={})
22
22
 
23
23
  if action == :key_pressed || action == :button_pressed
24
- model.last_key_pressed = kwargs[:key]
24
+ @model.last_key_pressed = kwargs[:key]
25
25
 
26
26
  elsif action == :key_enter_pressed
27
27
  notify_action(view,:button_equal_pressed,kwargs)
28
+
29
+ elsif action == :key_delete_pressed
30
+ @model.delete = true
28
31
 
29
32
  elsif action == :button_equal_pressed
30
33
  numerateur = 0
@@ -32,10 +35,10 @@ module Compilator
32
35
  numerateur = numerateur+model.score[c]
33
36
  end
34
37
  denominateur = kwargs[:value].size*5
35
- model.result = numerateur.to_s+"/"+denominateur.to_s+" => "+(numerateur*20.to_f/denominateur).round(2).to_s+"/20"
38
+ @model.result = numerateur.to_s+"/"+denominateur.to_s+" => "+(numerateur*20.to_f/denominateur).round(2).to_s+"/20"
36
39
 
37
40
  elsif action == :button_raz_pressed
38
- model.raz = true
41
+ @model.raz = true
39
42
 
40
43
  elsif action == :close_window
41
44
  view.close
@@ -45,7 +48,7 @@ module Compilator
45
48
 
46
49
  class CompilatorModel < Druzy::MVC::Model
47
50
 
48
- attr_accessor :score, :last_key_pressed, :result
51
+ attr_accessor :score, :last_key_pressed, :result, :delete
49
52
 
50
53
 
51
54
  def initialize
@@ -54,6 +57,7 @@ module Compilator
54
57
  @last_key_pressed = nil
55
58
  @result = nil
56
59
  @raz = false
60
+ @delete = false
57
61
  end
58
62
 
59
63
  def last_key_pressed=(last_key_pressed)
@@ -70,23 +74,37 @@ module Compilator
70
74
  old, @raz = @raz, raz
71
75
  fire_property_change(Druzy::MVC::PropertyChangeEvent.new(self,"raz",old,@raz))
72
76
  end
77
+
78
+ def delete=(delete)
79
+ old, @delete = @delete, delete
80
+ fire_property_change(Druzy::MVC::PropertyChangeEvent.new(self,'delete',old,@delete))
81
+ end
73
82
  end
74
83
 
75
84
  class CompilatorView < Druzy::MVC::View
76
85
 
77
86
  def initialize(controller)
78
87
  super(controller)
79
- #Tk::Tile::Style.theme_use "classic"
80
88
 
81
89
  @root = TkRoot.new
82
90
  @root.title = 'Compilator'
83
91
  @root.bind('Key') do |event|
84
92
  val = event.valid_fields['keysym'].downcase
85
-
86
93
  if val == 'return'
87
94
  Thread.new do
88
95
  @controller.notify_action(self, :key_enter_pressed, :value => @entry_variable.value)
89
96
  end
97
+
98
+ elsif val == 'escape'
99
+ Thread.new do
100
+ @controller.notify_action(self, :button_raz_pressed)
101
+ end
102
+
103
+ elsif val == 'delete'
104
+ Thread.new do
105
+ @controller.notify_action(self, :key_delete_pressed)
106
+ end
107
+
90
108
  elsif @controller.model.score.has_key?(val)
91
109
  Thread.new do
92
110
  @controller.notify_action(self,:key_pressed, :key => val)
@@ -97,23 +115,22 @@ module Compilator
97
115
 
98
116
  @window = Tk::Tile::Frame.new(@root)
99
117
 
118
+ @font_button = TkFont.new("size" => 24)
119
+
100
120
  @entry_variable = TkVariable.new
101
121
  @entry = Tk::Tile::Entry.new(@window)
102
122
  @entry.justify = 'right'
103
123
  @entry.validate = 'key'
104
- @entry.textvariable = @entry_variable
124
+ @entry.textvariable = @entry_variable
105
125
  @entry.validatecommand do |valid|
106
- if valid.action == 1
107
- false
108
- else
109
- true
110
- end
126
+ false
111
127
  end
112
128
 
113
129
  @button_r = Tk::Tile::Button.new(@window)
114
130
  @button_r['text'] = 'R'
115
- Tk::Tile::Style.configure('Red.TButton', {"foreground" => 'red' })
131
+ Tk::Tile::Style.configure('Red.TButton', {"foreground" => 'red', 'font' => @font_button})
116
132
  @button_r['style'] = 'Red.TButton'
133
+ @button_r['width'] = 1
117
134
  @button_r.bind('ButtonPress') do
118
135
  Thread.new do
119
136
  @controller.notify_action(self,:button_pressed, :key => 'r')
@@ -122,8 +139,9 @@ module Compilator
122
139
 
123
140
  @button_o = Tk::Tile::Button.new(@window)
124
141
  @button_o['text'] = 'O'
125
- Tk::Tile::Style.configure('Orange.TButton', {"foreground" => 'orange' })
142
+ Tk::Tile::Style.configure('Orange.TButton', {"foreground" => 'orange', 'font' => @font_button})
126
143
  @button_o['style'] = 'Orange.TButton'
144
+ @button_o['width'] = 1
127
145
  @button_o.bind('ButtonPress') do
128
146
  Thread.new do
129
147
  @controller.notify_action(self,:button_pressed, :key => 'o')
@@ -132,7 +150,8 @@ module Compilator
132
150
 
133
151
  @button_j = Tk::Tile::Button.new(@window)
134
152
  @button_j['text'] = 'J'
135
- Tk::Tile::Style.configure('Yellow.TButton', {"foreground" => 'yellow' })
153
+ @button_j['width'] = 1
154
+ Tk::Tile::Style.configure('Yellow.TButton', {"foreground" => 'yellow', 'font' => @font_button})
136
155
  @button_j['style'] = 'Yellow.TButton'
137
156
  @button_j.bind('ButtonPress') do
138
157
  Thread.new do
@@ -142,7 +161,8 @@ module Compilator
142
161
 
143
162
  @button_c = Tk::Tile::Button.new(@window)
144
163
  @button_c['text'] = 'C'
145
- Tk::Tile::Style.configure('Lime.TButton', {"foreground" => 'lime green' })
164
+ @button_c['width'] = 1
165
+ Tk::Tile::Style.configure('Lime.TButton', {"foreground" => 'lime green', 'font' => @font_button})
146
166
  @button_c['style'] = 'Lime.TButton'
147
167
  @button_c.bind('ButtonPress') do
148
168
  Thread.new do
@@ -152,7 +172,8 @@ module Compilator
152
172
 
153
173
  @button_v = Tk::Tile::Button.new(@window)
154
174
  @button_v['text'] = 'V'
155
- Tk::Tile::Style.configure('Green.TButton', {"foreground" => 'green' })
175
+ @button_v['width'] = 1
176
+ Tk::Tile::Style.configure('Green.TButton', {"foreground" => 'green', 'font' => @font_button})
156
177
  @button_v['style'] = 'Green.TButton'
157
178
  @button_v.bind('ButtonPress') do
158
179
  Thread.new do
@@ -163,7 +184,8 @@ module Compilator
163
184
  @button_e = Tk::Tile::Button.new(@window)
164
185
  @button_e['text'] = 'E'
165
186
  @button_e['underline'] = 0
166
- Tk::Tile::Style.configure('Underline.TButton', {"foreground" => 'green'})
187
+ @button_e['width'] = 1
188
+ Tk::Tile::Style.configure('Underline.TButton', {"foreground" => 'green', 'font' => @font_button})
167
189
  @button_e['style'] = 'Underline.TButton'
168
190
  @button_e.bind('ButtonPress') do
169
191
  Thread.new do
@@ -173,6 +195,9 @@ module Compilator
173
195
 
174
196
  @button_raz = Tk::Tile::Button.new(@window)
175
197
  @button_raz['text'] = 'RàZ'
198
+ @button_raz['width'] = 1
199
+ Tk::Tile::Style.configure('Medium.TButton', {'font' => TkFont.new('size' => 12)})
200
+ @button_raz['style'] = 'Medium.TButton'
176
201
  @button_raz.bind('ButtonPress') do
177
202
  Thread.new do
178
203
  @controller.notify_action(self,:button_raz_pressed)
@@ -181,6 +206,9 @@ module Compilator
181
206
 
182
207
  @button_equal = Tk::Tile::Button.new(@window)
183
208
  @button_equal['text'] = '='
209
+ Tk::Tile::Style.configure('Big.TButton', {'font' => TkFont.new('size' => 24)})
210
+ @button_equal['style'] = 'Big.TButton'
211
+ @button_equal['width'] = 1
184
212
  @button_equal.bind('ButtonPress') do
185
213
  Thread.new do
186
214
  @controller.notify_action(self,:button_equal_pressed, :value => @entry_variable.value)
@@ -188,7 +216,10 @@ module Compilator
188
216
  end
189
217
 
190
218
  @label_result = Tk::Tile::Label.new(@window)
191
- @label_result.justify('right')
219
+ @label_result.justify = 'right'
220
+ Tk::Tile::Style.configure('Big.TLabel',{'font' => TkFont.new('size' => 12)})
221
+ @label_result['style'] = 'Big.TLabel'
222
+
192
223
 
193
224
  #ajout
194
225
  TkGrid.columnconfigure( @root, 0, :weight => 1 )
@@ -217,7 +248,7 @@ module Compilator
217
248
  @button_raz.grid(:column => 0, :row => 3, :sticky => 'ewns')
218
249
  @button_equal.grid(:column => 1, :row => 3, :columnspan => 2, :sticky => 'ewns')
219
250
 
220
- @label_result.grid(:column => 0, :row => 4, :columnspan => 3, :sticky => 'ew')
251
+ @label_result.grid(:column => 0, :row => 4, :columnspan => 3, :sticky => 'ews')
221
252
 
222
253
  end
223
254
 
@@ -229,14 +260,24 @@ module Compilator
229
260
 
230
261
  def property_change(event)
231
262
  if event.property_name == "last_key_pressed"
232
- @entry_variable.set_value(@entry_variable.value+event.new_value)
263
+ Thread.new do
264
+ @entry_variable.set_value(@entry_variable.value+event.new_value)
265
+ end
233
266
 
234
267
  elsif event.property_name == 'result'
235
-
236
- @label_result.text = event.new_value.to_s
268
+ Thread.new do
269
+ @label_result.text = event.new_value.to_s
270
+ end
237
271
 
238
272
  elsif event.property_name == 'raz'
239
- @entry_variable.set_value('')
273
+ Thread.new do
274
+ @entry_variable.set_value('')
275
+ end
276
+
277
+ elsif event.property_name == 'delete'
278
+ Thread.new do
279
+ @entry_variable.set_value(@entry_variable.value[0..-2])
280
+ end
240
281
  end
241
282
  end
242
283
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compilator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Le Greneur
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-12 00:00:00.000000000 Z
11
+ date: 2016-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: druzy-mvc