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

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