wxruby-ruby19 1.9.8-x86-darwin-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/lib/wx.rb +53 -0
  2. data/lib/wx/accessors.rb +52 -0
  3. data/lib/wx/classes/acceleratortable.rb +28 -0
  4. data/lib/wx/classes/animation.rb +18 -0
  5. data/lib/wx/classes/app.rb +45 -0
  6. data/lib/wx/classes/artprovider.rb +31 -0
  7. data/lib/wx/classes/auinotebook.rb +9 -0
  8. data/lib/wx/classes/bitmap.rb +28 -0
  9. data/lib/wx/classes/busycursor.rb +12 -0
  10. data/lib/wx/classes/checklistbox.rb +45 -0
  11. data/lib/wx/classes/choice.rb +4 -0
  12. data/lib/wx/classes/clientdc.rb +13 -0
  13. data/lib/wx/classes/clipboard.rb +16 -0
  14. data/lib/wx/classes/colour.rb +47 -0
  15. data/lib/wx/classes/combobox.rb +4 -0
  16. data/lib/wx/classes/commandevent.rb +7 -0
  17. data/lib/wx/classes/controlwithitems.rb +10 -0
  18. data/lib/wx/classes/dc.rb +57 -0
  19. data/lib/wx/classes/event.rb +5 -0
  20. data/lib/wx/classes/evthandler.rb +964 -0
  21. data/lib/wx/classes/font.rb +118 -0
  22. data/lib/wx/classes/functions.rb +44 -0
  23. data/lib/wx/classes/gauge.rb +12 -0
  24. data/lib/wx/classes/grid.rb +138 -0
  25. data/lib/wx/classes/helpcontroller.rb +5 -0
  26. data/lib/wx/classes/helpcontrollerhelpprovider.rb +23 -0
  27. data/lib/wx/classes/helpprovider.rb +15 -0
  28. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  29. data/lib/wx/classes/htmlwindow.rb +14 -0
  30. data/lib/wx/classes/icon.rb +21 -0
  31. data/lib/wx/classes/iconbundle.rb +3 -0
  32. data/lib/wx/classes/image.rb +31 -0
  33. data/lib/wx/classes/imagelist.rb +3 -0
  34. data/lib/wx/classes/listbox.rb +4 -0
  35. data/lib/wx/classes/listctrl.rb +21 -0
  36. data/lib/wx/classes/locale.rb +28 -0
  37. data/lib/wx/classes/mediactrl.rb +48 -0
  38. data/lib/wx/classes/menu.rb +62 -0
  39. data/lib/wx/classes/menuitem.rb +7 -0
  40. data/lib/wx/classes/notebook.rb +9 -0
  41. data/lib/wx/classes/object.rb +14 -0
  42. data/lib/wx/classes/paintdc.rb +12 -0
  43. data/lib/wx/classes/point.rb +48 -0
  44. data/lib/wx/classes/previewframe.rb +13 -0
  45. data/lib/wx/classes/rect.rb +10 -0
  46. data/lib/wx/classes/simplehelpprovider.rb +38 -0
  47. data/lib/wx/classes/size.rb +49 -0
  48. data/lib/wx/classes/sizer.rb +22 -0
  49. data/lib/wx/classes/sound.rb +23 -0
  50. data/lib/wx/classes/styledtextctrl.rb +92 -0
  51. data/lib/wx/classes/textctrl.rb +14 -0
  52. data/lib/wx/classes/texturlevent.rb +6 -0
  53. data/lib/wx/classes/timer.rb +94 -0
  54. data/lib/wx/classes/toolbar.rb +29 -0
  55. data/lib/wx/classes/toolbartool.rb +4 -0
  56. data/lib/wx/classes/treectrl.rb +44 -0
  57. data/lib/wx/classes/window.rb +82 -0
  58. data/lib/wx/classes/xmlresource.rb +37 -0
  59. data/lib/wx/helpers.rb +30 -0
  60. data/lib/wx/keyword_ctors.rb +203 -0
  61. data/lib/wx/keyword_defs.rb +507 -0
  62. data/lib/wx/version.rb +3 -0
  63. data/lib/wxruby2.bundle +0 -0
  64. metadata +323 -0
@@ -0,0 +1,118 @@
1
+ class Wx::Font
2
+ # String names of the constants provided by C++
3
+ # (enum is originally defined inc include/wx/fontenc.h)
4
+ ENCODING_NAMES = %w[
5
+ DEFAULT
6
+
7
+ ISO-8859-1
8
+ ISO-8859-2
9
+ ISO-8859-3
10
+ ISO-8859-4
11
+ ISO-8859-5
12
+ ISO-8859-6
13
+ ISO-8859-7
14
+ ISO-8859-8
15
+ ISO-8859-9
16
+ ISO-8859-10
17
+ ISO-8859-11
18
+ ISO-8859-12
19
+ ISO-8859-13
20
+ ISO-8859-14
21
+ ISO-8859-15
22
+ ISO-8859-MAX
23
+
24
+ KOI8
25
+ KOI8-U
26
+ ALTERNATIVE
27
+ BULGARIAN
28
+
29
+ CP437
30
+ CP850
31
+ CP852
32
+ CP855
33
+ CP866
34
+
35
+ CP874
36
+ CP932
37
+ CP936
38
+ CP949
39
+ CP950
40
+ CP1250
41
+ CP1251
42
+ CP1252
43
+ CP1253
44
+ CP1254
45
+ CP1255
46
+ CP1256
47
+ CP1257
48
+ CP12-MAX
49
+
50
+ UTF7
51
+ UTF8
52
+ EUC-JP
53
+ UTF16BE
54
+ UTF16LE
55
+ UTF32BE
56
+ UTF32LE
57
+
58
+ MACROMAN
59
+ MACJAPANESE
60
+ MACCHINESETRAD
61
+ MACKOREAN
62
+ MACARABIC
63
+ MACHEBREW
64
+ MACGREEK
65
+ MACCYRILLIC
66
+ MACDEVANAGARI
67
+ MACGURMUKHI
68
+ MACGUJARATI
69
+ MACORIYA
70
+ MACBENGALI
71
+ MACTAMIL
72
+ MACTELUGU
73
+ MACKANNADA
74
+ MACMALAJALAM
75
+ MACSINHALESE
76
+ MACBURMESE
77
+ MACKHMER
78
+ MACTHAI
79
+ MACLAOTIAN
80
+ MACGEORGIAN
81
+ MACARMENIAN
82
+ MACCHINESESIMP
83
+ MACTIBETAN
84
+ MACMONGOLIAN
85
+ MACETHIOPIC
86
+ MACCENTRALEUR
87
+ MACVIATNAMESE
88
+ MACARABICEXT
89
+ MACSYMBOL
90
+ MACDINGBATS
91
+ MACTURKISH
92
+ MACCROATIAN
93
+ MACICELANDIC
94
+ MACROMANIAN
95
+ MACCELTIC
96
+ MACGAELIC
97
+ MACKEYBOARD
98
+ MAX
99
+ ]
100
+
101
+ class << self
102
+ # Returns the name of the platform's default font encoding
103
+ def get_default_encoding_name
104
+ ENCODING_NAMES[ get_default_encoding ]
105
+ end
106
+
107
+ # Sets the default encoding to be +enc+, which may be the string
108
+ # name of an encoding (eg 'UTF8') or an internal WxWidgets flag
109
+ # (eg Wx::FONTENCODING_UTF8).
110
+ def set_default_encoding_name(enc)
111
+ if flag_int = ENCODING_NAMES.index(enc.upcase)
112
+ set_default_encoding(flag_int)
113
+ else
114
+ raise ArgumentError, "Unknown font encoding name '#{enc}'"
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,44 @@
1
+ # Tweaks to the global module functions
2
+
3
+ module Wx
4
+ class << self
5
+ # Allow this to be called with keyword parameters, and avoid
6
+ # segfaults on OS X with bad params
7
+ wx_about_box = self.instance_method(:about_box)
8
+ define_method(:about_box) do | info |
9
+ # If AboutDialogInfo has no version, it segfaults on OS X 10.5
10
+ no_version = ArgumentError.new("Must supply a version for AboutDialog")
11
+ case info
12
+ when Wx::AboutDialogInfo
13
+ unless info.has_version
14
+ Kernel.raise no_version
15
+ end
16
+
17
+ ab_info = info
18
+ when Hash
19
+ ab_info = Wx::AboutDialogInfo.new
20
+ ab_info.name = info[:name] || 'wxRuby application'
21
+ ab_info.version = info[:version] || Kernel.raise(no_version)
22
+
23
+ ab_info.description = info[:description] || ''
24
+ ab_info.copyright = info[:copyright] || ''
25
+ ab_info.licence = info[:licence] || ''
26
+ ab_info.developers = info[:developers] || []
27
+ ab_info.doc_writers = info[:doc_writers] || []
28
+ ab_info.artists = info[:artists] || []
29
+ ab_info.translators = info[:translators] || []
30
+ if info.key?(:website)
31
+ ab_info.set_website(*info[:website])
32
+ end
33
+ if info.key?(:icon)
34
+ ab_info.icon = info[:icon]
35
+ end
36
+
37
+ else
38
+ Kernel.raise ArgumentError,
39
+ "Can't use #{info.inspect} for AboutDialogInfo"
40
+ end
41
+ wx_about_box.bind(self).call(ab_info)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,12 @@
1
+ # Gauge : presents a progress bar
2
+ #
3
+ # On the C++ side, the actual class name of wxGauge under Windows is
4
+ # wxGauge95. So when a Gauge is loaded from XRC, and we try to wrap the
5
+ # object in a ruby class by calling obj->ClassInfo()->ClassName(), it
6
+ # seeks for a ruby class (Wx::Gauge95) that doesn't exist (see
7
+ # swig/shared/get_ruby_object.i).
8
+ #
9
+ # To fix this, make Wx::Gauge95 an alias.
10
+ if Wx::PLATFORM == 'WXMSW'
11
+ Wx::Gauge95 = Wx::Gauge
12
+ end
@@ -0,0 +1,138 @@
1
+ # A data-oriented editable table control.
2
+ class Wx::Grid
3
+ # The following extensions are all to prevent crashes associated with
4
+ # garbage collection of Grid-related classes; they do not extend the
5
+ # public functionality of the class in any way.
6
+ #
7
+ # GridTableBase, and the GridCellRenderers and GridCellEditors pose a
8
+ # problem for ruby's GC, in that Wx makes them owned by the grid once
9
+ # they have been set for a cell or group of cells. However, because
10
+ # they are SWIG directors we cannot allow the ruby object they are
11
+ # originally associated with to be swept by GC, as C++ method calls
12
+ # are routed to ruby method calls.
13
+ #
14
+ # The code below stores Ruby redefines all methods that may
15
+ # potentially set a GridTableBase, Editor or Renderer, and stores a
16
+ # reference to them in an instance variable, so they are not disposed
17
+ # of up when GC sweeps.
18
+
19
+ # These all need to be set up as private methods which default to an
20
+ # array. This can't be done in initialize b/c that may not be called
21
+ # when a Grid is loaded from XRC
22
+ %w| __cell_editors __col_editors __row_editors
23
+ __cell_renderers __col_renderers __row_renderers |.each do | meth |
24
+ define_method(meth) do
25
+ instance_variable_get("@#{meth}") ||
26
+ instance_variable_set("@#{meth}", [])
27
+ end
28
+ private meth
29
+ end
30
+
31
+ # Set a grid table base to provide data
32
+ alias :__set_table :set_table
33
+ def set_table(table, sel_mode = Wx::Grid::GridSelectCells)
34
+ __set_table(table, sel_mode)
35
+ @__grid_table = table
36
+ end
37
+
38
+ # store default editor
39
+ wx_set_default_editor = self.instance_method(:set_default_editor)
40
+ define_method(:set_default_editor) do | editr |
41
+ wx_set_default_editor.bind(self).call(editr)
42
+ @__default_editor = editr
43
+ end
44
+
45
+ # store default renderer
46
+ wx_set_default_renderer = self.instance_method(:set_default_renderer)
47
+ define_method(:set_default_renderer) do | rendr |
48
+ wx_set_default_renderer.bind(self).call(rendr)
49
+ @__default_renderer = rendr
50
+ end
51
+
52
+ # store cell editors
53
+ wx_set_cell_editor = self.instance_method(:set_cell_editor)
54
+ define_method(:set_cell_editor) do | row, col, editr |
55
+ wx_set_cell_editor.bind(self).call(row, col, editr)
56
+ __cell_editors[row] ||= []
57
+ __cell_editors[row][col] = editr
58
+ end
59
+
60
+ # store cell renderer
61
+ wx_set_cell_renderer = self.instance_method(:set_cell_renderer)
62
+ define_method(:set_cell_renderer) do | row, col, rendr |
63
+ wx_set_cell_renderer.bind(self).call(row, col, rendr)
64
+ __cell_renderers[row] ||= []
65
+ __cell_renderers[row][col] = rendr
66
+ end
67
+
68
+ # Store an editor and/or renderer for a whole column
69
+ wx_set_col_attr = self.instance_method(:set_col_attr)
70
+ define_method(:set_col_attr) do | col, attr |
71
+ wx_set_col_attr.bind(self).call(col, attr)
72
+ if attr.has_editor
73
+ __col_editors[col] = attr.get_editor(self, 0, col)
74
+ end
75
+ if attr.has_renderer
76
+ __col_renderers[col] = attr.get_renderer(self, 0, col)
77
+ end
78
+ end
79
+
80
+ # Store an editor and/or renderer for a whole row
81
+ wx_set_row_attr = self.instance_method(:set_row_attr)
82
+ define_method(:set_row_attr) do | row, attr |
83
+ wx_set_row_attr.bind(self).call(row, attr)
84
+ if attr.has_editor
85
+ __row_editors[row] = attr.get_editor(self, row, 0)
86
+ end
87
+ if attr.has_renderer
88
+ __row_renderers[row] = attr.get_renderer(self, row, 0)
89
+ end
90
+ end
91
+
92
+ # This and the following methods do a bit of book-keeping - as rows
93
+ # and columns are deleted and inserted, the position of the columns
94
+ # and rows with stored editors and renderers may move.
95
+ alias :__insert_rows :insert_rows
96
+ def insert_rows(pos = 0, num = 1, update_labels = true)
97
+ __insert_rows(pos, num, update_labels)
98
+ num.times { __row_editors.insert(pos, nil) }
99
+ num.times { __row_renderers.insert(pos, nil) }
100
+ num.times { __cell_editors.insert(pos, []) }
101
+ num.times { __cell_renderers.insert(pos, []) }
102
+ end
103
+
104
+ alias :__insert_cols :insert_cols
105
+ def insert_cols(pos = 0, num = 1, update_labels = true)
106
+ __insert_cols(pos, num, update_labels)
107
+ num.times { __col_editors.insert(pos, nil) }
108
+ num.times { __col_renderers.insert(pos, nil) }
109
+ num.times do
110
+ __cell_editors.map { | col | col.insert(pos, []) if col }
111
+ end
112
+ num.times do
113
+ __cell_renderers.map { | col | col.insert(pos, []) if col }
114
+ end
115
+ end
116
+
117
+ alias :__delete_rows :delete_rows
118
+ def delete_rows(pos = 0, num = 1, update_labels = true)
119
+ __delete_rows(pos, num, update_labels)
120
+ __row_editors.slice!(pos, num)
121
+ __row_renderers.slice!(pos, num)
122
+ __cell_editors.slice!(pos, num)
123
+ __cell_renderers.slice!(pos, num)
124
+ end
125
+
126
+ alias :__delete_cols :delete_cols
127
+ def delete_cols(pos = 0, num = 1, update_labels = true)
128
+ __delete_cols(pos, num, update_labels)
129
+ __col_editors.slice!(pos, num)
130
+ __col_renderers.slice!(pos, num)
131
+ num.times do
132
+ __cell_editors.map { | col | col.slice!(pos, num) if col }
133
+ end
134
+ num.times do
135
+ __cell_renderers.map { | col | col.slice!(pos, num) if col }
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,5 @@
1
+ class Wx::HelpController
2
+ def self.instance(*args)
3
+ @instance ||= new(*args)
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ # Pure-ruby implementation of the corresponding Wx class. Shows a
2
+ # relevant section of help, if available, or a native popup
3
+ require 'wx/classes/simplehelpprovider'
4
+ class Wx::HelpControllerHelpProvider < Wx::SimpleHelpProvider
5
+ def initialize(help_controller)
6
+ super()
7
+ @hc = help_controller
8
+ end
9
+
10
+ # Show help for +win+; if the help text for +win+ is a string with a
11
+ # single integer only, treats that as a section id for help and shows
12
+ # that, otherwise shows a popup (native-style on Windows) of the text.
13
+ def show_help(win)
14
+ help_text = get_help(win)
15
+ return false if help_text.empty?
16
+ if help_text =~ /\A\d+\z/
17
+ @hc.display_context_popup(help_text.to_i)
18
+ else
19
+ @hc.display_text_popup(help_text, Wx::get_mouse_position)
20
+ end
21
+ true
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ # Base class for providing context-sensitive help. The main definition
2
+ # is in SWIG/C++
3
+ class Wx::HelpProvider
4
+ class << self
5
+ # We need to protect the currently set HelpProvider from GC as it is a
6
+ # SWIG Director; it can't be reaped and re-wrapped later. The
7
+ # easiest way is to make the currently set one an instance variable
8
+ # of this class
9
+ alias :__wx_set :set
10
+ define_method(:set) do | help_provider |
11
+ __wx_set(help_provider)
12
+ @__hp__ = help_provider
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ class Wx::HtmlHelpController
2
+ def self.instance(*args)
3
+ @instance ||= new(*args)
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class Wx::HtmlWindow
2
+ # imitate the in-built LoadFile method
3
+ def load_file(file)
4
+ set_page( File.read(file) )
5
+ end
6
+
7
+ # This is called from within wxWidgets whenever a URL is being
8
+ # opened. The method may return true, to signal that the opening
9
+ # should be permitted, false or nil to signal that it should be
10
+ # blocked, or a string URL to which it should be redirected
11
+ def on_opening_url(url)
12
+ true
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ class Wx::Icon
2
+ # Analogous to Image.from_bitmap
3
+ def self.from_bitmap(bmp)
4
+ ico = new
5
+ ico.copy_from_bitmap(bmp)
6
+ ico
7
+ end
8
+
9
+ # Redefine the initialize method so it raises an exception if a
10
+ # non-existent file is given to the constructor; otherwise, wx Widgets
11
+ # just carries on with an empty icon, which may cause faults later
12
+ wx_init = self.instance_method(:initialize)
13
+ define_method(:initialize) do | *args |
14
+ if args[0].kind_of? String
15
+ if not File.exist?( File.expand_path(args[0]) )
16
+ Kernel.raise(ArgumentError, "Icon file does not exist: #{args[0]}")
17
+ end
18
+ end
19
+ wx_init.bind(self).call(*args)
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ class Wx::IconBundle
2
+ alias :<< :add_icon
3
+ end
@@ -0,0 +1,31 @@
1
+ class Wx::Image
2
+ # Load a new image from an IO-like object that supports "read"
3
+ def self.read(an_io, type_or_mime, index = -1)
4
+ img = new
5
+ img.load_stream(an_io, type_or_mime, index)
6
+ img
7
+ end
8
+
9
+ # Create a new image from Wx::Bitmap, preserving mask information
10
+ def self.from_bitmap(bmp)
11
+ bmp.convert_to_image
12
+ end
13
+
14
+ # Redefine the initialize method so it raises an exception if a
15
+ # non-existent file is given to the constructor; otherwise, wx Widgets
16
+ # just carries on with an invalid image, which may cause faults later
17
+ wx_init = self.instance_method(:initialize)
18
+ define_method(:initialize) do | *args |
19
+ if args[0].kind_of? String
20
+ if not File.exist?( File.expand_path(args[0]) )
21
+ Kernel.raise(ArgumentError, "Image file does not exist: #{args[0]}")
22
+ end
23
+ end
24
+ wx_init.bind(self).call(*args)
25
+ end
26
+
27
+ # Convert to bitmap
28
+ def convert_to_bitmap
29
+ Wx::Bitmap.from_image(self)
30
+ end
31
+ end