drx 0.4.4 → 0.4.5

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.
@@ -72,7 +72,12 @@ static VALUE t_get_super(VALUE self, VALUE obj)
72
72
  if (TYPE(obj) != T_CLASS && TYPE(obj) != T_ICLASS && TYPE(obj) != T_MODULE) {
73
73
  rb_raise(rb_eTypeError, "Only T_CLASS/T_MODULE is expected as the argument (got %d)", TYPE(obj));
74
74
  }
75
+ #ifdef RCLASS_SUPER
76
+ // Ruby 1.8.7 and above have this macro.
75
77
  return RCLASS_SUPER(obj) ? RCLASS_SUPER(obj) : Qnil;
78
+ #else
79
+ return RCLASS(obj)->super ? RCLASS(obj)->super : Qnil;
80
+ #endif
76
81
  }
77
82
 
78
83
  /**
@@ -236,7 +236,7 @@ module Drx
236
236
  # of included modules, or modules included in them). To prevent
237
237
  # clutter we print the arrow to Module only if it comes from
238
238
  # Class (or a module included in it).
239
- return (my_ancestors + [self]).include? _Class
239
+ return (my_ancestors + [self]).include?(_Class)
240
240
  #
241
241
  # A somewhat irrelevant note (I don't have a better place to put it):
242
242
  #
@@ -8,7 +8,25 @@ module TkCore; RUN_EVENTLOOP_ON_MAIN_THREAD = true; end
8
8
  require 'tk'
9
9
  require 'drx/tk/imagemap'
10
10
 
11
- Tk.default_widget_set = :Ttk
11
+ # -------- Start of legacy Tk handling ------------
12
+ #
13
+ # Tweaks for old Ruby/Tk should go here.
14
+ #
15
+ require 'tkextlib/tile' if !defined? Tk::Tile
16
+ if Tk.respond_to? :default_widget_set
17
+ # Replace all legacy widgets by their nifty Tile versions.
18
+ Tk.default_widget_set = :Ttk
19
+ else
20
+ # The non-Tile Panedwindow doesn't support :weight
21
+ class TkPanedwindow
22
+ alias original_add add
23
+ def add(what, opts = {})
24
+ opts.delete :weight
25
+ original_add(what, opts)
26
+ end
27
+ end
28
+ end
29
+ # -------- End of legacy Tk handling ------------
12
30
 
13
31
  module Drx
14
32
  module TkGUI
@@ -40,7 +58,7 @@ module Drx
40
58
  def initialize
41
59
  @navigation_history = []
42
60
  @eval_history = LineHistory.new
43
- @graph_opts = { :size => '100%', :style => 'default' }
61
+ @graph_opts = { :size => '90%', :style => 'default' }
44
62
 
45
63
  @eval_entry = TkEntry.new(toplevel) {
46
64
  font 'Courier'
@@ -91,7 +109,7 @@ module Drx
91
109
  }
92
110
 
93
111
  @graph_size_menu = Tk::Tile::Combobox.new(toplevel) {
94
- set '100%'
112
+ set '90%'
95
113
  values ['100%', '90%', '80%', '60%']
96
114
  state :readonly
97
115
  width 6
@@ -209,8 +227,8 @@ module Drx
209
227
  def system_customizations
210
228
  if Application.first_window?
211
229
  # Try to make the Unixy GUI less ugly.
212
- if Tk.windowingsystem == 'x11' and Ttk.themes.include? 'clam'
213
- Ttk.set_theme 'clam'
230
+ if Tk::Tile.respond_to? :themes and Tk.windowingsystem == 'x11' and Tk::Tile.themes.include? 'clam'
231
+ Tk::Tile.set_theme 'clam'
214
232
  end
215
233
  end
216
234
  end
@@ -387,7 +405,7 @@ module Drx
387
405
  when :rest; '*' + (arg[1] || 'args').to_s
388
406
  when :block; '&' + (arg[1] || 'arg').to_s
389
407
  end
390
- end.join ', '
408
+ end.join(', ')
391
409
  rescue NameError
392
410
  return '---'
393
411
  rescue SyntaxError => e
@@ -433,6 +451,7 @@ module Drx
433
451
  Tempfiles.new do |files|
434
452
  ObjInfo.new(obj).generate_diagram(files, @graph_opts)
435
453
  if (output = Tk.getSaveFile(:parent => toplevel, :defaultextension => '.gif')) != ''
454
+ require 'fileutils'
436
455
  FileUtils.cp(files['gif'], output)
437
456
  end
438
457
  end
@@ -198,8 +198,11 @@ module TkImageMap
198
198
  # If there are few sides, we assume it's a real polygon.
199
199
  return nil
200
200
  end
201
- x_min, x_max = points.map {|p| p[0]}.minmax
202
- y_min, y_max = points.map {|p| p[1]}.minmax
201
+ # Alas, Ruby 1.8.6 doesn't have #minmax
202
+ xs = points.map {|p| p[0]}
203
+ ys = points.map {|p| p[1]}
204
+ x_min, x_max = xs.min, xs.max
205
+ y_min, y_max = ys.min, ys.max
203
206
  # @todo: try to figure out if the points trace a circle?
204
207
  #center_x = x_min + (x_max - x_min) / 2.0
205
208
  #center_y = y_min + (y_max - y_min) / 2.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mooffie
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-04-19 00:00:00 +03:00
12
+ date: 2010-04-21 00:00:00 +03:00
13
13
  default_executable:
14
14
  dependencies: []
15
15