wxruby 1.9.3-i386-mswin32 → 1.9.4-i386-mswin32

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.
Files changed (126) hide show
  1. data/LICENSE +53 -53
  2. data/README +299 -299
  3. data/lib/wx/classes/evthandler.rb +9 -0
  4. data/lib/wx/classes/timer.rb +25 -0
  5. data/lib/wx/version.rb +1 -1
  6. data/lib/wx.rb +42 -42
  7. data/lib/wxruby2.exp +0 -0
  8. data/lib/wxruby2.lib +0 -0
  9. data/lib/wxruby2.so +0 -0
  10. data/samples/SAMPLES-LICENSE.TXT +17 -17
  11. data/samples/bigdemo/About.rbw +39 -39
  12. data/samples/bigdemo/ColorPanel.rbw +25 -25
  13. data/samples/bigdemo/GridSimple.rbw +80 -80
  14. data/samples/bigdemo/MDIDemo.rbw +59 -59
  15. data/samples/bigdemo/PopupMenu.rbw +151 -151
  16. data/samples/bigdemo/Sizers.rbw +545 -545
  17. data/samples/bigdemo/bigdemo.rb +826 -826
  18. data/samples/bigdemo/demoTemplate.rbw +37 -37
  19. data/samples/bigdemo/icons/choice.xpm +27 -27
  20. data/samples/bigdemo/icons/combo.xpm +27 -27
  21. data/samples/bigdemo/icons/copy.xpm +25 -25
  22. data/samples/bigdemo/icons/cut.xpm +24 -24
  23. data/samples/bigdemo/icons/gauge.xpm +27 -27
  24. data/samples/bigdemo/icons/help.xpm +25 -25
  25. data/samples/bigdemo/icons/list.xpm +27 -27
  26. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  27. data/samples/bigdemo/icons/new.xpm +24 -24
  28. data/samples/bigdemo/icons/ogl.ico +0 -0
  29. data/samples/bigdemo/icons/ogl.xpm +45 -45
  30. data/samples/bigdemo/icons/open.xpm +26 -26
  31. data/samples/bigdemo/icons/paste.xpm +38 -38
  32. data/samples/bigdemo/icons/preview.xpm +26 -26
  33. data/samples/bigdemo/icons/print.xpm +26 -26
  34. data/samples/bigdemo/icons/radio.xpm +27 -27
  35. data/samples/bigdemo/icons/robert.xpm +415 -415
  36. data/samples/bigdemo/icons/save.xpm +25 -25
  37. data/samples/bigdemo/icons/smiles.xpm +39 -39
  38. data/samples/bigdemo/icons/smiley.xpm +42 -42
  39. data/samples/bigdemo/icons/stattext.xpm +24 -24
  40. data/samples/bigdemo/icons/test2.bmp +0 -0
  41. data/samples/bigdemo/icons/test2.xpm +79 -79
  42. data/samples/bigdemo/icons/text.xpm +27 -27
  43. data/samples/bigdemo/icons/tog1.xpm +38 -38
  44. data/samples/bigdemo/icons/tog2.xpm +38 -38
  45. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  46. data/samples/bigdemo/tips.txt +7 -7
  47. data/samples/bigdemo/utils.rb +11 -11
  48. data/samples/bigdemo/wxButton.rbw +66 -66
  49. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  50. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  51. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  52. data/samples/bigdemo/wxChoice.rbw +49 -49
  53. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  54. data/samples/bigdemo/wxComboBox.rbw +79 -79
  55. data/samples/bigdemo/wxDialog.rbw +92 -92
  56. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  57. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  58. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  59. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  60. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  61. data/samples/bigdemo/wxFrame.rbw +55 -55
  62. data/samples/bigdemo/wxGauge.rbw +73 -73
  63. data/samples/bigdemo/wxGrid.rbw +68 -68
  64. data/samples/bigdemo/wxListBox.rbw +142 -142
  65. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  66. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  67. data/samples/bigdemo/wxMenu.rbw +238 -238
  68. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  69. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  70. data/samples/bigdemo/wxNotebook.rbw +138 -138
  71. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  72. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  73. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  74. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  75. data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
  76. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  77. data/samples/bigdemo/wxSlider.rbw +44 -44
  78. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  79. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  80. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  81. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  82. data/samples/bigdemo/wxStaticText.rbw +57 -57
  83. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  84. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  85. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  86. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  87. data/samples/bigdemo/wxToolBar.rbw +133 -133
  88. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  89. data/samples/calendar/calendar.rb +275 -275
  90. data/samples/caret/caret.rb +286 -286
  91. data/samples/caret/mondrian.xpm +44 -44
  92. data/samples/controls/controls.rb +1140 -1140
  93. data/samples/controls/get_item_sample.rb +87 -87
  94. data/samples/controls/icons/choice.xpm +27 -27
  95. data/samples/controls/icons/combo.xpm +27 -27
  96. data/samples/controls/icons/gauge.xpm +27 -27
  97. data/samples/controls/icons/list.xpm +27 -27
  98. data/samples/controls/icons/radio.xpm +27 -27
  99. data/samples/controls/icons/stattext.xpm +24 -24
  100. data/samples/controls/icons/text.xpm +27 -27
  101. data/samples/controls/mondrian.xpm +44 -44
  102. data/samples/dialogs/dialogs.rb +724 -724
  103. data/samples/dialogs/tips.txt +18 -18
  104. data/samples/drawing/graphics_drawing.rb +22 -18
  105. data/samples/drawing/images.rb +48 -48
  106. data/samples/etc/activation.rb +108 -108
  107. data/samples/etc/choice.rb +72 -72
  108. data/samples/etc/miniframe.rb +84 -84
  109. data/samples/etc/sash.rb +135 -135
  110. data/samples/etc/scrollwin.rb +116 -116
  111. data/samples/etc/system_settings.rb +258 -258
  112. data/samples/etc/threaded.rb +5 -8
  113. data/samples/etc/wizard.rb +79 -79
  114. data/samples/html/html.rb +14 -10
  115. data/samples/listbook/listbook.rb +181 -181
  116. data/samples/listbook/listbook.xrc +370 -370
  117. data/samples/mdi/mdi.rb +87 -87
  118. data/samples/minimal/minimal.rb +85 -85
  119. data/samples/minimal/nothing.rb +21 -21
  120. data/samples/text/textctrl.rb +124 -124
  121. data/samples/text/unicode.rb +238 -238
  122. data/samples/text/utf8.txt +14 -14
  123. data/samples/treectrl/treectrl.rb +1180 -1180
  124. data/samples/xrc/samples.xrc +46 -46
  125. data/samples/xrc/xrc_sample.rb +107 -107
  126. metadata +3 -3
@@ -1,38 +1,38 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- $wildcard = "Ruby Source (*.rb)|*.rb|RubyW Source (*.rbw)|*.rbw|SPAM files (*.spam)|*.spam|Egg file (*.egg)|*.egg|All Files (*.*)|*.*"
15
-
16
- module Demo
17
- def Demo.run(frame, nb, log)
18
- log.write_text("CWD: " + Dir.getwd())
19
- dlg = Wx::FileDialog.new(frame, "Save file as...", Dir.getwd(), "", $wildcard, Wx::SAVE)
20
- dlg.set_filter_index(2)
21
- if dlg.show_modal() == Wx::ID_OK
22
- path = dlg.get_path()
23
- log.write_text("You selected " + path)
24
- log.write_text("CWD: " + Dir.getwd())
25
- dlg.destroy()
26
- end
27
- end
28
-
29
- def Demo.overview
30
- return "Welcome to the wxRuby FileDialog_Save demo!"
31
- end
32
- end
33
-
34
- if __FILE__ == $0
35
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
36
- load run_solo_lib
37
- run File.basename($0)
38
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ $wildcard = "Ruby Source (*.rb)|*.rb|RubyW Source (*.rbw)|*.rbw|SPAM files (*.spam)|*.spam|Egg file (*.egg)|*.egg|All Files (*.*)|*.*"
15
+
16
+ module Demo
17
+ def Demo.run(frame, nb, log)
18
+ log.write_text("CWD: " + Dir.getwd())
19
+ dlg = Wx::FileDialog.new(frame, "Save file as...", Dir.getwd(), "", $wildcard, Wx::SAVE)
20
+ dlg.set_filter_index(2)
21
+ if dlg.show_modal() == Wx::ID_OK
22
+ path = dlg.get_path()
23
+ log.write_text("You selected " + path)
24
+ log.write_text("CWD: " + Dir.getwd())
25
+ dlg.destroy()
26
+ end
27
+ end
28
+
29
+ def Demo.overview
30
+ return "Welcome to the wxRuby FileDialog_Save demo!"
31
+ end
32
+ end
33
+
34
+ if __FILE__ == $0
35
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
36
+ load run_solo_lib
37
+ run File.basename($0)
38
+ end
@@ -1,85 +1,85 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- class TestPanel < Wx::Panel
15
- def initialize(parent, log)
16
- super(parent, -1)
17
- @log = log
18
-
19
- b = Wx::Button.new(self, -1, "Show Find Dialog", Wx::Point.new(25, 50))
20
- evt_button(b.get_id()) {|event| on_show_find(event)}
21
-
22
- b = Wx::Button.new(self, -1, "Show Find && Replace Dialog", Wx::Point.new(25, 90))
23
- evt_button(b.get_id()) {|event| on_show_find_replace(event)}
24
-
25
- evt_find(-1) {|event| on_find(event)}
26
- evt_find_next(-1) {|event| on_find(event)}
27
- evt_find_replace(-1) {|event| on_find(event)}
28
- evt_find_replace_all(-1) {|event| on_find(event)}
29
- evt_find_close(-1) {|event| on_find_close(event)}
30
- end
31
-
32
- def on_show_find(evt)
33
- data = Wx::FindReplaceData.new()
34
- dlg = Wx::FindReplaceDialog.new(self, data, "Find")
35
- #dlg.data = data # save a reference to it
36
- dlg.show(true)
37
- end
38
-
39
- def on_show_find_replace(evt)
40
- data = Wx::FindReplaceData.new()
41
- dlg = Wx::FindReplaceDialog.new(self, data, "Find & Replace", Wx::FR_REPLACEDIALOG)
42
- #dlg.data = data # save a reference to it
43
- dlg.show(true)
44
- end
45
-
46
- def on_find(evt)
47
- map = {Wx::EVT_COMMAND_FIND => "FIND", Wx::EVT_COMMAND_FIND_NEXT => "FIND_NEXT", Wx::EVT_COMMAND_FIND_REPLACE => "REPLACE",
48
- Wx::EVT_COMMAND_FIND_REPLACE_ALL => "REPLACE_ALL"}
49
- map.default = "**Unknown Event Type**"
50
- et = evt.get_event_type()
51
- evtType = map[et]
52
-
53
- if et == Wx::EVT_COMMAND_FIND_REPLACE or et == Wx::EVT_COMMAND_FIND_REPLACE_ALL
54
- replaceTxt = "Replace text: " + evt.get_replace_string()
55
- else
56
- replaceTxt = ""
57
- end
58
-
59
- @log.write_text(evtType.to_s + " -- Find text: " + evt.get_find_string() + " " + replaceTxt + " Flags: " + evt.get_flags.to_s)
60
-
61
- end
62
-
63
- def on_find_close(evt)
64
- @log.write_text("Wx::FindReplaceDialog closing...")
65
- evt.get_dialog().destroy()
66
- end
67
-
68
- end
69
-
70
- module Demo
71
- def Demo.run(frame, nb, log)
72
- win = TestPanel.new(nb, log)
73
- return win
74
- end
75
-
76
- def Demo.overview
77
- return "A generic find and replace dialog"
78
- end
79
- end
80
-
81
- if __FILE__ == $0
82
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
83
- load run_solo_lib
84
- run File.basename($0)
85
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ class TestPanel < Wx::Panel
15
+ def initialize(parent, log)
16
+ super(parent, -1)
17
+ @log = log
18
+
19
+ b = Wx::Button.new(self, -1, "Show Find Dialog", Wx::Point.new(25, 50))
20
+ evt_button(b.get_id()) {|event| on_show_find(event)}
21
+
22
+ b = Wx::Button.new(self, -1, "Show Find && Replace Dialog", Wx::Point.new(25, 90))
23
+ evt_button(b.get_id()) {|event| on_show_find_replace(event)}
24
+
25
+ evt_find(-1) {|event| on_find(event)}
26
+ evt_find_next(-1) {|event| on_find(event)}
27
+ evt_find_replace(-1) {|event| on_find(event)}
28
+ evt_find_replace_all(-1) {|event| on_find(event)}
29
+ evt_find_close(-1) {|event| on_find_close(event)}
30
+ end
31
+
32
+ def on_show_find(evt)
33
+ data = Wx::FindReplaceData.new()
34
+ dlg = Wx::FindReplaceDialog.new(self, data, "Find")
35
+ #dlg.data = data # save a reference to it
36
+ dlg.show(true)
37
+ end
38
+
39
+ def on_show_find_replace(evt)
40
+ data = Wx::FindReplaceData.new()
41
+ dlg = Wx::FindReplaceDialog.new(self, data, "Find & Replace", Wx::FR_REPLACEDIALOG)
42
+ #dlg.data = data # save a reference to it
43
+ dlg.show(true)
44
+ end
45
+
46
+ def on_find(evt)
47
+ map = {Wx::EVT_COMMAND_FIND => "FIND", Wx::EVT_COMMAND_FIND_NEXT => "FIND_NEXT", Wx::EVT_COMMAND_FIND_REPLACE => "REPLACE",
48
+ Wx::EVT_COMMAND_FIND_REPLACE_ALL => "REPLACE_ALL"}
49
+ map.default = "**Unknown Event Type**"
50
+ et = evt.get_event_type()
51
+ evtType = map[et]
52
+
53
+ if et == Wx::EVT_COMMAND_FIND_REPLACE or et == Wx::EVT_COMMAND_FIND_REPLACE_ALL
54
+ replaceTxt = "Replace text: " + evt.get_replace_string()
55
+ else
56
+ replaceTxt = ""
57
+ end
58
+
59
+ @log.write_text(evtType.to_s + " -- Find text: " + evt.get_find_string() + " " + replaceTxt + " Flags: " + evt.get_flags.to_s)
60
+
61
+ end
62
+
63
+ def on_find_close(evt)
64
+ @log.write_text("Wx::FindReplaceDialog closing...")
65
+ evt.get_dialog().destroy()
66
+ end
67
+
68
+ end
69
+
70
+ module Demo
71
+ def Demo.run(frame, nb, log)
72
+ win = TestPanel.new(nb, log)
73
+ return win
74
+ end
75
+
76
+ def Demo.overview
77
+ return "A generic find and replace dialog"
78
+ end
79
+ end
80
+
81
+ if __FILE__ == $0
82
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
83
+ load run_solo_lib
84
+ run File.basename($0)
85
+ end
@@ -1,176 +1,176 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- class FontTestPanel < Wx::Panel
15
- def initialize(parent, log)
16
- super(parent, -1)
17
- @log = log
18
- btn = Wx::Button.new(self, -1, "Select Font")
19
- evt_button(btn.get_id()) {|event| on_select_font(event)}
20
-
21
- @sampleText = Wx::TextCtrl.new(self, -1, "Sample Text")
22
- @curFont = @sampleText.get_font()
23
- @curClr = Wx::BLACK
24
-
25
- fgs = Wx::FlexGridSizer.new(2,2, 5, 5)
26
- fgs.add_growable_col(1)
27
- fgs.add_growable_row(0)
28
-
29
- fgs.add(btn, 0, Wx::ALIGN_CENTRE_VERTICAL)
30
- fgs.add(@sampleText, 10, Wx::ADJUST_MINSIZE | Wx::GROW)
31
-
32
- fgs.add(15, 15)
33
- fgs.add(15, 15) # an empty row
34
-
35
- fgs.add(Wx::StaticText.new(self, -1, "PointSize: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
36
- @ps = Wx::StaticText.new(self, -1, "")
37
- font = @ps.get_font()
38
- font.set_weight(Wx::BOLD)
39
- @ps.set_font(font)
40
- fgs.add(@ps, 0, Wx::ALIGN_CENTRE_VERTICAL)
41
-
42
- fgs.add(Wx::StaticText.new(self, -1, "Family: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
43
- @family = Wx::StaticText.new(self, -1, "")
44
- @family.set_font(font)
45
- fgs.add(@family, 0, Wx::ALIGN_CENTRE_VERTICAL)
46
-
47
- fgs.add(Wx::StaticText.new(self, -1, "Style: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
48
- @style = Wx::StaticText.new(self, -1, "")
49
- @style.set_font(font)
50
- fgs.add(@style, 0, Wx::ALIGN_CENTRE_VERTICAL)
51
-
52
- fgs.add(Wx::StaticText.new(self, -1, "Weight: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
53
- @weight = Wx::StaticText.new(self, -1, "")
54
- @weight.set_font(font)
55
- fgs.add(@weight, 0, Wx::ALIGN_CENTRE_VERTICAL)
56
-
57
- fgs.add(Wx::StaticText.new(self, -1, "Face: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
58
- @face = Wx::StaticText.new(self, -1, "")
59
- @face.set_font(font)
60
- fgs.add(@face, 0, Wx::ALIGN_CENTRE_VERTICAL)
61
-
62
- fgs.add(15, 15)
63
- fgs.add(15, 15) # an empty row
64
-
65
- fgs.add(Wx::StaticText.new(self, -1, "Wx::NativeFontInfo: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
66
- @nfi = Wx::StaticText.new(self, -1, "")
67
- @nfi.set_font(font)
68
- fgs.add(@nfi, 0, Wx::ALIGN_CENTRE_VERTICAL)
69
-
70
- # give it some border space
71
-
72
- sizer = Wx::BoxSizer.new(Wx::VERTICAL)
73
- sizer.add(fgs, 0, Wx::GROW | Wx::ADJUST_MINSIZE | Wx::ALL, 25)
74
-
75
- set_sizer(sizer)
76
- sizer.fit(self)
77
- @sizer = fgs
78
- update_ui()
79
- end
80
-
81
- def update_ui()
82
- @sampleText.set_font(@curFont)
83
- # layout() is called so that if the user changes the size of the Font, the text control will be properly displayed
84
- # to show the whole font - just comment out this line, to see the font size change without corresponding changes
85
- # to the text control :-)
86
- # As a postscript, it is interesting to note that if I call layout() at the end of this method, it causes all of the
87
- # labels to appear BLANK, showing nothing. Through trial and error, I moved it here, and found that it resized the
88
- # text control properly and set the text of the labels too - I don't know why that is though?
89
- @sizer.layout()
90
- @ps.set_label(@curFont.get_point_size().to_s)
91
- @family.set_label(map_font_value_to_name(@curFont.get_family()) )
92
- @style.set_label(map_font_value_to_name(@curFont.get_style()))
93
- @weight.set_label(map_font_value_to_name(@curFont.get_weight()))
94
- @face.set_label(@curFont.get_face_name())
95
- @nfi.set_label(@curFont.get_native_font_info_desc().to_s)
96
-
97
-
98
- end
99
-
100
- def on_select_font(evt)
101
- data = Wx::FontData.new()
102
- #data.enable_effects(true)
103
- data.set_colour(@curClr) #set colour
104
- data.set_initial_font(@curFont)
105
-
106
- dlg = Wx::FontDialog.new(self, data)
107
- if dlg.show_modal() == Wx::ID_OK
108
- data = dlg.get_font_data()
109
- font = data.get_chosen_font()
110
- colour = data.get_colour()
111
- @log.write_text("You selected: " + font.get_face_name() + ", " + font.get_point_size().to_s + " points, color (" +
112
- get_rgb_string(colour))
113
- @curFont = font
114
- @curClr = colour
115
- update_ui()
116
- end
117
- dlg.destroy()
118
- end
119
-
120
- def map_font_value_to_name(constant)
121
- case constant
122
- when Wx::DEFAULT
123
- return "Wx::DEFAULT"
124
- when Wx::DECORATIVE
125
- return "Wx::DECORATIVE"
126
- when Wx::ROMAN
127
- return "Wx::ROMAN"
128
- when Wx::SCRIPT
129
- return "Wx::SCRIPT"
130
- when Wx::SWISS
131
- return "Wx::SWISS"
132
- when Wx::MODERN
133
- return "Wx::MODERN"
134
- when Wx::TELETYPE
135
- return "Wx::TELETYPE"
136
- when Wx::NORMAL
137
- return "Wx::NORMAL"
138
- when Wx::SLANT
139
- return "Wx::SLANT"
140
- when Wx::ITALIC
141
- return "Wx::ITALIC"
142
- when Wx::LIGHT
143
- return "Wx::LIGHT"
144
- when Wx::BOLD
145
- return "Wx::BOLD"
146
- else
147
- return "Unknown"
148
- end
149
- end
150
-
151
- def get_rgb_string(color)
152
- red = color.red().to_s()
153
- green = color.green().to_s()
154
- blue = color.blue().to_s()
155
- return "(%s, %s, %s)" % [red, green, blue]
156
- end
157
- end
158
-
159
- module Demo
160
- def Demo.run(frame, nb, log)
161
- win = FontTestPanel.new(nb, log)
162
- return win
163
-
164
- end
165
-
166
- def Demo.overview
167
- return "This class allows you to use the system font chooser dialog."
168
- end
169
- end
170
-
171
-
172
- if __FILE__ == $0
173
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
174
- load run_solo_lib
175
- run File.basename($0)
176
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ class FontTestPanel < Wx::Panel
15
+ def initialize(parent, log)
16
+ super(parent, -1)
17
+ @log = log
18
+ btn = Wx::Button.new(self, -1, "Select Font")
19
+ evt_button(btn.get_id()) {|event| on_select_font(event)}
20
+
21
+ @sampleText = Wx::TextCtrl.new(self, -1, "Sample Text")
22
+ @curFont = @sampleText.get_font()
23
+ @curClr = Wx::BLACK
24
+
25
+ fgs = Wx::FlexGridSizer.new(2,2, 5, 5)
26
+ fgs.add_growable_col(1)
27
+ fgs.add_growable_row(0)
28
+
29
+ fgs.add(btn, 0, Wx::ALIGN_CENTRE_VERTICAL)
30
+ fgs.add(@sampleText, 10, Wx::ADJUST_MINSIZE | Wx::GROW)
31
+
32
+ fgs.add(15, 15)
33
+ fgs.add(15, 15) # an empty row
34
+
35
+ fgs.add(Wx::StaticText.new(self, -1, "PointSize: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
36
+ @ps = Wx::StaticText.new(self, -1, "")
37
+ font = @ps.get_font()
38
+ font.set_weight(Wx::BOLD)
39
+ @ps.set_font(font)
40
+ fgs.add(@ps, 0, Wx::ALIGN_CENTRE_VERTICAL)
41
+
42
+ fgs.add(Wx::StaticText.new(self, -1, "Family: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
43
+ @family = Wx::StaticText.new(self, -1, "")
44
+ @family.set_font(font)
45
+ fgs.add(@family, 0, Wx::ALIGN_CENTRE_VERTICAL)
46
+
47
+ fgs.add(Wx::StaticText.new(self, -1, "Style: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
48
+ @style = Wx::StaticText.new(self, -1, "")
49
+ @style.set_font(font)
50
+ fgs.add(@style, 0, Wx::ALIGN_CENTRE_VERTICAL)
51
+
52
+ fgs.add(Wx::StaticText.new(self, -1, "Weight: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
53
+ @weight = Wx::StaticText.new(self, -1, "")
54
+ @weight.set_font(font)
55
+ fgs.add(@weight, 0, Wx::ALIGN_CENTRE_VERTICAL)
56
+
57
+ fgs.add(Wx::StaticText.new(self, -1, "Face: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
58
+ @face = Wx::StaticText.new(self, -1, "")
59
+ @face.set_font(font)
60
+ fgs.add(@face, 0, Wx::ALIGN_CENTRE_VERTICAL)
61
+
62
+ fgs.add(15, 15)
63
+ fgs.add(15, 15) # an empty row
64
+
65
+ fgs.add(Wx::StaticText.new(self, -1, "Wx::NativeFontInfo: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
66
+ @nfi = Wx::StaticText.new(self, -1, "")
67
+ @nfi.set_font(font)
68
+ fgs.add(@nfi, 0, Wx::ALIGN_CENTRE_VERTICAL)
69
+
70
+ # give it some border space
71
+
72
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
73
+ sizer.add(fgs, 0, Wx::GROW | Wx::ADJUST_MINSIZE | Wx::ALL, 25)
74
+
75
+ set_sizer(sizer)
76
+ sizer.fit(self)
77
+ @sizer = fgs
78
+ update_ui()
79
+ end
80
+
81
+ def update_ui()
82
+ @sampleText.set_font(@curFont)
83
+ # layout() is called so that if the user changes the size of the Font, the text control will be properly displayed
84
+ # to show the whole font - just comment out this line, to see the font size change without corresponding changes
85
+ # to the text control :-)
86
+ # As a postscript, it is interesting to note that if I call layout() at the end of this method, it causes all of the
87
+ # labels to appear BLANK, showing nothing. Through trial and error, I moved it here, and found that it resized the
88
+ # text control properly and set the text of the labels too - I don't know why that is though?
89
+ @sizer.layout()
90
+ @ps.set_label(@curFont.get_point_size().to_s)
91
+ @family.set_label(map_font_value_to_name(@curFont.get_family()) )
92
+ @style.set_label(map_font_value_to_name(@curFont.get_style()))
93
+ @weight.set_label(map_font_value_to_name(@curFont.get_weight()))
94
+ @face.set_label(@curFont.get_face_name())
95
+ @nfi.set_label(@curFont.get_native_font_info_desc().to_s)
96
+
97
+
98
+ end
99
+
100
+ def on_select_font(evt)
101
+ data = Wx::FontData.new()
102
+ #data.enable_effects(true)
103
+ data.set_colour(@curClr) #set colour
104
+ data.set_initial_font(@curFont)
105
+
106
+ dlg = Wx::FontDialog.new(self, data)
107
+ if dlg.show_modal() == Wx::ID_OK
108
+ data = dlg.get_font_data()
109
+ font = data.get_chosen_font()
110
+ colour = data.get_colour()
111
+ @log.write_text("You selected: " + font.get_face_name() + ", " + font.get_point_size().to_s + " points, color (" +
112
+ get_rgb_string(colour))
113
+ @curFont = font
114
+ @curClr = colour
115
+ update_ui()
116
+ end
117
+ dlg.destroy()
118
+ end
119
+
120
+ def map_font_value_to_name(constant)
121
+ case constant
122
+ when Wx::DEFAULT
123
+ return "Wx::DEFAULT"
124
+ when Wx::DECORATIVE
125
+ return "Wx::DECORATIVE"
126
+ when Wx::ROMAN
127
+ return "Wx::ROMAN"
128
+ when Wx::SCRIPT
129
+ return "Wx::SCRIPT"
130
+ when Wx::SWISS
131
+ return "Wx::SWISS"
132
+ when Wx::MODERN
133
+ return "Wx::MODERN"
134
+ when Wx::TELETYPE
135
+ return "Wx::TELETYPE"
136
+ when Wx::NORMAL
137
+ return "Wx::NORMAL"
138
+ when Wx::SLANT
139
+ return "Wx::SLANT"
140
+ when Wx::ITALIC
141
+ return "Wx::ITALIC"
142
+ when Wx::LIGHT
143
+ return "Wx::LIGHT"
144
+ when Wx::BOLD
145
+ return "Wx::BOLD"
146
+ else
147
+ return "Unknown"
148
+ end
149
+ end
150
+
151
+ def get_rgb_string(color)
152
+ red = color.red().to_s()
153
+ green = color.green().to_s()
154
+ blue = color.blue().to_s()
155
+ return "(%s, %s, %s)" % [red, green, blue]
156
+ end
157
+ end
158
+
159
+ module Demo
160
+ def Demo.run(frame, nb, log)
161
+ win = FontTestPanel.new(nb, log)
162
+ return win
163
+
164
+ end
165
+
166
+ def Demo.overview
167
+ return "This class allows you to use the system font chooser dialog."
168
+ end
169
+ end
170
+
171
+
172
+ if __FILE__ == $0
173
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
174
+ load run_solo_lib
175
+ run File.basename($0)
176
+ end