wxruby3 0.9.7 → 1.0.0
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.
- checksums.yaml +4 -4
- data/INSTALL.md +183 -42
- data/README.md +40 -48
- data/ext/mkrf_conf_ext.rb +72 -0
- data/lib/wx/core/app.rb +16 -0
- data/lib/wx/core/colour.rb +36 -28
- data/lib/wx/core/const.rb +19 -0
- data/lib/wx/core/enum.rb +17 -1
- data/lib/wx/core/geometry.rb +121 -0
- data/lib/wx/core/graphics_pen_info.rb +18 -0
- data/lib/wx/core/image.rb +49 -0
- data/lib/wx/core/menu_bar.rb +11 -0
- data/lib/wx/core/paintdc.rb +9 -3
- data/lib/wx/core/secret_store.rb +38 -0
- data/lib/wx/doc/app.rb +97 -41
- data/lib/wx/doc/bitmap.rb +4 -0
- data/lib/wx/doc/client_dc.rb +2 -2
- data/lib/wx/doc/clipboard.rb +1 -1
- data/lib/wx/doc/colour.rb +12 -0
- data/lib/wx/doc/const.rb +16 -0
- data/lib/wx/doc/cursor.rb +4 -0
- data/lib/wx/doc/dc_overlay.rb +34 -0
- data/lib/wx/doc/enum.rb +7 -1
- data/lib/wx/doc/event_blocker.rb +1 -1
- data/lib/wx/doc/evthandler.rb +25 -3
- data/lib/wx/doc/functions.rb +3 -6
- data/lib/wx/doc/gc_dc.rb +13 -4
- data/lib/wx/doc/geometry.rb +136 -0
- data/lib/wx/doc/graphics_context.rb +25 -7
- data/lib/wx/doc/icon.rb +4 -0
- data/lib/wx/doc/image.rb +56 -0
- data/lib/wx/doc/list_ctrl.rb +6 -6
- data/lib/wx/doc/memory_dc.rb +2 -11
- data/lib/wx/doc/mirror_dc.rb +1 -1
- data/lib/wx/doc/pen.rb +26 -0
- data/lib/wx/doc/persistence_manager.rb +1 -1
- data/lib/wx/doc/persistent_object.rb +1 -1
- data/lib/wx/doc/pg/property_grid_interface.rb +3 -3
- data/lib/wx/doc/prt/printer_dc.rb +2 -2
- data/lib/wx/doc/region_iterator.rb +1 -1
- data/lib/wx/doc/scaled_dc.rb +1 -1
- data/lib/wx/doc/screen_dc.rb +1 -1
- data/lib/wx/doc/secret_store.rb +55 -0
- data/lib/wx/doc/svg_file_dc.rb +1 -1
- data/lib/wx/doc/textctrl.rb +1 -1
- data/lib/wx/doc/tree_ctrl.rb +2 -2
- data/lib/wx/doc/validator.rb +6 -6
- data/lib/wx/doc/variant.rb +2 -2
- data/lib/wx/doc/window.rb +5 -4
- data/lib/wx/grid/keyword_defs.rb +1 -1
- data/lib/wx/html/keyword_defs.rb +3 -3
- data/lib/wx/keyword_defs.rb +76 -71
- data/lib/wx/pg/keyword_defs.rb +2 -2
- data/lib/wx/pg/pg_property.rb +12 -0
- data/lib/wx/rbn/keyword_defs.rb +1 -1
- data/lib/wx/rtc/keyword_defs.rb +1 -1
- data/lib/wx/stc/keyword_defs.rb +1 -1
- data/lib/wx/version.rb +1 -1
- data/lib/wx/wxruby/base.rb +3 -5
- data/lib/wx/wxruby/cmd/check.rb +182 -0
- data/lib/wx/wxruby/cmd/sampler.rb +1 -1
- data/lib/wx/wxruby/cmd/setup.rb +9 -3
- data/lib/wx/wxruby/cmd/test.rb +1 -1
- data/rakelib/configure.rb +67 -52
- data/rakelib/gem.rake +97 -66
- data/rakelib/gem.rb +294 -41
- data/rakelib/install.rb +3 -3
- data/rakelib/lib/config/{cygwin.rb → freebsd.rb} +1 -1
- data/rakelib/lib/config/linux.rb +4 -2
- data/rakelib/lib/config/macosx.rb +42 -11
- data/rakelib/lib/config/mingw.rb +2 -2
- data/rakelib/lib/config/pkgman/{base.rb → linux.rb} +36 -61
- data/rakelib/lib/config/pkgman/macosx.rb +17 -78
- data/rakelib/lib/config/unixish.rb +17 -8
- data/rakelib/lib/config/{netbsd.rb → unknown.rb} +3 -2
- data/rakelib/lib/config.rb +74 -33
- data/rakelib/lib/core/include/enum.inc +31 -1
- data/rakelib/lib/director/affine_matrix.rb +51 -0
- data/rakelib/lib/director/app.rb +29 -13
- data/rakelib/lib/director/art_provider.rb +4 -0
- data/rakelib/lib/director/aui_manager.rb +1 -1
- data/rakelib/lib/director/cursor.rb +6 -2
- data/rakelib/lib/director/dc.rb +1 -6
- data/rakelib/lib/director/derived_dc.rb +88 -31
- data/rakelib/lib/director/geometry.rb +142 -0
- data/rakelib/lib/director/graphics_context.rb +3 -2
- data/rakelib/lib/director/graphics_object.rb +18 -25
- data/rakelib/lib/director/grid_ctrl.rb +2 -2
- data/rakelib/lib/director/image.rb +59 -0
- data/rakelib/lib/director/menu.rb +2 -3
- data/rakelib/lib/director/menu_bar.rb +0 -3
- data/rakelib/lib/director/pen.rb +1 -1
- data/rakelib/lib/director/richtext_composite_object.rb +2 -4
- data/rakelib/lib/director/richtext_ctrl.rb +1 -1
- data/rakelib/lib/director/secret_store.rb +117 -0
- data/rakelib/lib/director/system_settings.rb +1 -1
- data/rakelib/lib/director/tree_event.rb +2 -2
- data/rakelib/lib/director/window.rb +4 -3
- data/rakelib/lib/extractor/function.rb +1 -1
- data/rakelib/lib/generate/doc/animation_ctrl.yaml +10 -0
- data/rakelib/lib/generate/doc/banner_window.yaml +35 -0
- data/rakelib/lib/generate/doc/graphics_context.yaml +12 -0
- data/rakelib/lib/generate/doc/graphics_object.yaml +12 -0
- data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
- data/rakelib/lib/generate/doc/header_ctrl.yaml +91 -0
- data/rakelib/lib/generate/doc/icon.yaml +10 -0
- data/rakelib/lib/generate/doc/info_bar.yaml +27 -0
- data/rakelib/lib/generate/doc/log.yaml +1 -1
- data/rakelib/lib/generate/doc/media_ctrl.yaml +27 -0
- data/rakelib/lib/generate/doc/persistent_window.yaml +22 -0
- data/rakelib/lib/generate/doc/pg_editor.yaml +1 -1
- data/rakelib/lib/generate/doc/pg_property.yaml +4 -4
- data/rakelib/lib/generate/doc/rearrange_list.yaml +14 -0
- data/rakelib/lib/generate/doc/ribbon_panel.yaml +15 -0
- data/rakelib/lib/generate/doc/rich_text_formatting_dialog.yaml +26 -0
- data/rakelib/lib/generate/doc/secret_store.yaml +55 -0
- data/rakelib/lib/generate/doc/text_ctrl.yaml +1 -1
- data/rakelib/lib/generate/doc/wizard.yaml +27 -0
- data/rakelib/lib/generate/doc.rb +5 -5
- data/rakelib/lib/generate/interface.rb +1 -1
- data/rakelib/lib/specs/interfaces.rb +4 -0
- data/rakelib/lib/swig_runner.rb +24 -3
- data/rakelib/lib/typemap/common.rb +10 -0
- data/rakelib/lib/typemap/points_list.rb +8 -2
- data/rakelib/lib/typemap/richtext.rb +17 -0
- data/rakelib/prepost.rake +8 -1
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +4 -0
- data/rakelib/yard/templates/default/fulldoc/html/setup.rb +3 -3
- data/samples/dialogs/wizard.rb +20 -19
- data/samples/drawing/art/drawing/image.bmp +0 -0
- data/samples/drawing/art/drawing/mask.bmp +0 -0
- data/samples/drawing/art/drawing/pat35.bmp +0 -0
- data/samples/drawing/art/drawing/pat36.bmp +0 -0
- data/samples/drawing/art/drawing/pat4.bmp +0 -0
- data/samples/drawing/art/drawing/smile.xpm +42 -0
- data/samples/drawing/drawing.rb +2276 -0
- data/samples/drawing/tn_drawing.png +0 -0
- data/samples/html/html.rb +1 -1
- data/samples/propgrid/propgrid.rb +1 -1
- data/samples/propgrid/propgrid_minimal.rb +1 -1
- data/samples/propgrid/sample_props.rb +1 -1
- data/samples/sampler/editor.rb +13 -11
- data/samples/sampler/sample.rb +2 -0
- data/samples/sampler.rb +14 -10
- data/samples/text/richtext.rb +53 -0
- data/samples/text/scintilla.rb +1 -1
- data/samples/text/unicode.rb +4 -4
- data/tests/lib/wxapp_runner.rb +1 -1
- data/tests/test_config.rb +7 -4
- data/tests/test_ext_controls.rb +12 -5
- data/tests/test_secret_store.rb +83 -0
- data/tests/test_std_controls.rb +12 -12
- metadata +66 -47
- data/lib/wx/doc/extra/00_starting.md +0 -154
- data/lib/wx/doc/extra/01_packages.md +0 -180
- data/lib/wx/doc/extra/02_lifecycles.md +0 -166
- data/lib/wx/doc/extra/03_dialogs.md +0 -57
- data/lib/wx/doc/extra/04_enums.md +0 -143
- data/lib/wx/doc/extra/05_event-handling.md +0 -191
- data/lib/wx/doc/extra/06_geometry.md +0 -62
- data/lib/wx/doc/extra/07_colour_and_font.md +0 -52
- data/lib/wx/doc/extra/08_extensions.md +0 -144
- data/lib/wx/doc/extra/09_exceptions.md +0 -54
- data/lib/wx/doc/extra/10_art.md +0 -111
- data/lib/wx/doc/extra/11_drawing_and_dc.md +0 -62
- data/lib/wx/doc/extra/12_client_data.md +0 -89
- data/lib/wx/doc/extra/13_validators.md +0 -139
- data/lib/wx/doc/extra/14_config.md +0 -101
- data/lib/wx/doc/extra/15_persistence.md +0 -148
- data/rakefile +0 -14
- data/rakelib/lib/config/pkgman/arch.rb +0 -53
- data/rakelib/lib/config/pkgman/debian.rb +0 -66
- data/rakelib/lib/config/pkgman/rhel.rb +0 -54
- data/rakelib/lib/config/pkgman/suse.rb +0 -54
- data/samples/sampler/back.xpm +0 -21
- data/samples/sampler/copy.xpm +0 -44
- data/samples/sampler/cut.xpm +0 -46
- data/samples/sampler/filesave.xpm +0 -42
- data/samples/sampler/find.xpm +0 -62
- data/samples/sampler/findrepl.xpm +0 -63
- data/samples/sampler/forward.xpm +0 -21
- data/samples/sampler/paste.xpm +0 -46
- data/samples/sampler/redo.xpm +0 -58
- data/samples/sampler/undo.xpm +0 -58
|
Binary file
|
data/samples/html/html.rb
CHANGED
|
@@ -106,7 +106,7 @@ module Html
|
|
|
106
106
|
@html_win.set_related_frame(self, 'HTML : %s')
|
|
107
107
|
@html_win.set_related_status_bar(1)
|
|
108
108
|
|
|
109
|
-
@html_win.load_file('
|
|
109
|
+
@html_win.load_file(File.join(__dir__, 'test.htm'))
|
|
110
110
|
|
|
111
111
|
text = Wx::TextCtrl.new(panel, Wx::ID_ANY, "",
|
|
112
112
|
Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
|
@@ -609,7 +609,7 @@ module PropGrid
|
|
|
609
609
|
|
|
610
610
|
menuHelp.append(ID::ABOUT, '&About', 'Show about dialog')
|
|
611
611
|
if Wx::PLATFORM == 'WXOSX'
|
|
612
|
-
Wx.
|
|
612
|
+
Wx::App.mac_about_menu_itemid = ID::ABOUT
|
|
613
613
|
end
|
|
614
614
|
|
|
615
615
|
menuTools1.append(ID::APPENDPROP, 'Append New Property')
|
|
@@ -88,7 +88,7 @@ end unless defined? PropGridMinimal
|
|
|
88
88
|
|
|
89
89
|
if (!defined? WxRuby::Sample) || (WxRuby::Sample.loading_sample && WxRuby::Sample.loading_sample != __FILE__)
|
|
90
90
|
|
|
91
|
-
module
|
|
91
|
+
module PropGridMinimalSample
|
|
92
92
|
|
|
93
93
|
include WxRuby::Sample if defined? WxRuby::Sample
|
|
94
94
|
|
|
@@ -373,7 +373,7 @@ class WxArrayDoubleProperty < Wx::PG::EditorDialogProperty
|
|
|
373
373
|
end
|
|
374
374
|
|
|
375
375
|
def value_to_string(value, argFlags=0)
|
|
376
|
-
if (
|
|
376
|
+
if argFlags.allbits?(Wx::PG::PG_FULL_VALUE)
|
|
377
377
|
generate_value_as_string(-1,false)
|
|
378
378
|
elsif value.object == self.value.object
|
|
379
379
|
@display # Display cached string only if value truly matches m_value
|
data/samples/sampler/editor.rb
CHANGED
|
@@ -271,7 +271,9 @@ module WxRuby
|
|
|
271
271
|
|
|
272
272
|
menuFile = Wx::Menu.new
|
|
273
273
|
menuFile.append(ID::SAVE, "&Save\tCtrl-S", 'Save the sample to a local folder')
|
|
274
|
-
|
|
274
|
+
runItem = Wx::MenuItem.new(menuFile, ID::RUN, "&Run\tCtrl-G", 'Run the (changed) sample')
|
|
275
|
+
runItem.set_bitmap(bitmap(:play))
|
|
276
|
+
menuFile.append(runItem)
|
|
275
277
|
menuFile.append_separator
|
|
276
278
|
menuFile.append(ID::QUIT, "&Close\tCtrl-Q", "Close the sample editor")
|
|
277
279
|
|
|
@@ -315,20 +317,20 @@ module WxRuby
|
|
|
315
317
|
panel_szr = Wx::VBoxSizer.new
|
|
316
318
|
@tbar = Wx::ToolBar.new(panel, style: Wx::TB_HORIZONTAL | Wx::NO_BORDER | Wx::TB_FLAT)
|
|
317
319
|
@tbar.tool_bitmap_size = [ 16, 16 ]
|
|
318
|
-
@tbar.add_tool(ID::SAVE, 'Save',
|
|
320
|
+
@tbar.add_tool(ID::SAVE, 'Save', Wx::ArtProvider.get_bitmap(Wx::ART_FILE_SAVE, Wx::ART_TOOLBAR, [16,16]), 'Save the sample to a local folder')
|
|
319
321
|
@tbar.add_tool(ID::RUN, 'Run', bitmap(:play), 'Run the (changed) sample')
|
|
320
322
|
@tbar.add_separator
|
|
321
|
-
@tbar.add_tool(ID::UNDO, 'Undo',
|
|
322
|
-
@tbar.add_tool(ID::REDO, 'Redo',
|
|
323
|
+
@tbar.add_tool(ID::UNDO, 'Undo', Wx::ArtProvider.get_bitmap(Wx::ART_UNDO, Wx::ART_TOOLBAR, [16,16]), 'Undo change')
|
|
324
|
+
@tbar.add_tool(ID::REDO, 'Redo', Wx::ArtProvider.get_bitmap(Wx::ART_REDO, Wx::ART_TOOLBAR, [16,16]), 'Redo change')
|
|
323
325
|
@tbar.add_separator
|
|
324
|
-
@tbar.add_tool(ID::COPY, 'Copy',
|
|
325
|
-
@tbar.add_tool(ID::CUT, 'Cut',
|
|
326
|
-
@tbar.add_tool(ID::PASTE, 'Paste',
|
|
326
|
+
@tbar.add_tool(ID::COPY, 'Copy', Wx::ArtProvider.get_bitmap(Wx::ART_COPY, Wx::ART_TOOLBAR, [16,16]), 'Copy selection')
|
|
327
|
+
@tbar.add_tool(ID::CUT, 'Cut', Wx::ArtProvider.get_bitmap(Wx::ART_CUT, Wx::ART_TOOLBAR, [16,16]), 'Cut selection')
|
|
328
|
+
@tbar.add_tool(ID::PASTE, 'Paste', Wx::ArtProvider.get_bitmap(Wx::ART_PASTE, Wx::ART_TOOLBAR, [16,16]), 'Paste selection')
|
|
327
329
|
@tbar.add_separator
|
|
328
|
-
@tbar.add_tool(ID::FIND, 'Find',
|
|
329
|
-
@tbar.add_tool(ID::FIND_NEXT, 'FindNext',
|
|
330
|
-
@tbar.add_tool(ID::FIND_PREV, 'FindPrev',
|
|
331
|
-
@tbar.add_tool(ID::REPLACE, 'Replace',
|
|
330
|
+
@tbar.add_tool(ID::FIND, 'Find', Wx::ArtProvider.get_bitmap(Wx::ART_FIND, Wx::ART_TOOLBAR, [16,16]), 'Show Find Dialog')
|
|
331
|
+
@tbar.add_tool(ID::FIND_NEXT, 'FindNext', Wx::ArtProvider.get_bitmap(Wx::ART_GO_FORWARD, Wx::ART_TOOLBAR, [16,16]), 'Find next occurrence of the search phrase')
|
|
332
|
+
@tbar.add_tool(ID::FIND_PREV, 'FindPrev', Wx::ArtProvider.get_bitmap(Wx::ART_GO_BACK, Wx::ART_TOOLBAR, [16,16]), 'Find previous occurrence of the search phrase')
|
|
333
|
+
@tbar.add_tool(ID::REPLACE, 'Replace', Wx::ArtProvider.get_bitmap(Wx::ART_FIND_AND_REPLACE, Wx::ART_TOOLBAR, [16,16]), 'Show Replace Dialog')
|
|
332
334
|
@tbar.realize
|
|
333
335
|
panel_szr.add(@tbar)
|
|
334
336
|
|
data/samples/sampler/sample.rb
CHANGED
data/samples/sampler.rb
CHANGED
|
@@ -168,13 +168,15 @@ module WxRuby
|
|
|
168
168
|
@sample_editor = nil
|
|
169
169
|
|
|
170
170
|
menu_bar = Wx::MenuBar.new
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
171
|
+
unless Wx::PLATFORM == 'WXOSX'
|
|
172
|
+
# The "file" menu
|
|
173
|
+
menu_file = Wx::Menu.new
|
|
174
|
+
# Don't add a File menu with only Exit item on OSX as on OSX
|
|
175
|
+
# the Exit item there will be hidden and a standard one added to
|
|
176
|
+
# the Apple Application menu leaving an empty File menu
|
|
177
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit wxRuby Sampler")
|
|
178
|
+
menu_bar.append(menu_file, "&File")
|
|
179
|
+
end
|
|
178
180
|
|
|
179
181
|
# The "help" menu
|
|
180
182
|
menu_help = Wx::Menu.new
|
|
@@ -357,9 +359,11 @@ module WxRuby
|
|
|
357
359
|
destroy
|
|
358
360
|
end
|
|
359
361
|
|
|
360
|
-
def on_iconize(
|
|
361
|
-
hide
|
|
362
|
-
|
|
362
|
+
def on_iconize(evt)
|
|
363
|
+
# hide is required to hide the application icon from the taskbar on Windows and Linux GTK
|
|
364
|
+
# but brings no benefits and causes problems on MacOSX so don't hide there
|
|
365
|
+
hide if evt.iconized? && Wx::PLATFORM != 'WXOSX'
|
|
366
|
+
evt.skip
|
|
363
367
|
end
|
|
364
368
|
|
|
365
369
|
# End the application; it should finish automatically when the last
|
data/samples/text/richtext.rb
CHANGED
|
@@ -734,6 +734,27 @@ module RichTextExt
|
|
|
734
734
|
evt_menu(Wx::ID_SAVE, :on_save)
|
|
735
735
|
evt_menu(Wx::ID_SAVEAS, :on_save_as)
|
|
736
736
|
|
|
737
|
+
##
|
|
738
|
+
# In wxRuby we cannot use the ProcessEvent override 'hack' that is used in the C++ sample
|
|
739
|
+
# so we solve this properly here.
|
|
740
|
+
|
|
741
|
+
evt_menu(Wx::ID_CUT, :on_cut)
|
|
742
|
+
evt_menu(Wx::ID_COPY, :on_copy)
|
|
743
|
+
evt_menu(Wx::ID_PASTE, :on_paste)
|
|
744
|
+
|
|
745
|
+
evt_update_ui(Wx::ID_CUT, :on_update_cut)
|
|
746
|
+
evt_update_ui(Wx::ID_COPY, :on_update_copy)
|
|
747
|
+
evt_update_ui(Wx::ID_PASTE, :on_update_paste)
|
|
748
|
+
|
|
749
|
+
evt_menu(Wx::ID_UNDO, :on_undo)
|
|
750
|
+
evt_menu(Wx::ID_REDO, :on_redo)
|
|
751
|
+
|
|
752
|
+
evt_update_ui(Wx::ID_UNDO, :on_update_undo)
|
|
753
|
+
evt_update_ui(Wx::ID_REDO, :on_update_redo)
|
|
754
|
+
|
|
755
|
+
# End
|
|
756
|
+
##
|
|
757
|
+
|
|
737
758
|
evt_menu(ID::FORMAT_BOLD, :on_bold)
|
|
738
759
|
evt_menu(ID::FORMAT_ITALIC, :on_italic)
|
|
739
760
|
evt_menu(ID::FORMAT_UNDERLINE, :on_underline)
|
|
@@ -886,6 +907,38 @@ module RichTextExt
|
|
|
886
907
|
end
|
|
887
908
|
end
|
|
888
909
|
|
|
910
|
+
def on_cut(_event)
|
|
911
|
+
@richTextCtrl.cut
|
|
912
|
+
end
|
|
913
|
+
def on_update_cut(event)
|
|
914
|
+
event.enable(@richTextCtrl.can_cut?)
|
|
915
|
+
end
|
|
916
|
+
def on_copy(_event)
|
|
917
|
+
@richTextCtrl.copy
|
|
918
|
+
end
|
|
919
|
+
def on_update_copy(event)
|
|
920
|
+
event.enable(@richTextCtrl.can_copy?)
|
|
921
|
+
end
|
|
922
|
+
def on_paste(_event)
|
|
923
|
+
@richTextCtrl.paste
|
|
924
|
+
end
|
|
925
|
+
def on_update_paste(event)
|
|
926
|
+
event.enable(@richTextCtrl.can_paste?)
|
|
927
|
+
end
|
|
928
|
+
|
|
929
|
+
def on_undo(_event)
|
|
930
|
+
@richTextCtrl.undo
|
|
931
|
+
end
|
|
932
|
+
def on_update_undo(event)
|
|
933
|
+
event.enable(@richTextCtrl.can_undo?)
|
|
934
|
+
end
|
|
935
|
+
def on_redo(_event)
|
|
936
|
+
@richTextCtrl.redo_
|
|
937
|
+
end
|
|
938
|
+
def on_update_redo(event)
|
|
939
|
+
event.enable(@richTextCtrl.can_redo?)
|
|
940
|
+
end
|
|
941
|
+
|
|
889
942
|
def on_bold(_event)
|
|
890
943
|
@richTextCtrl.apply_bold_to_selection
|
|
891
944
|
end
|
data/samples/text/scintilla.rb
CHANGED
|
@@ -176,7 +176,7 @@ module STCSample
|
|
|
176
176
|
end
|
|
177
177
|
|
|
178
178
|
def self.activate
|
|
179
|
-
frame = Scintilla::MyFrame.new("wxRuby Scintilla App",
|
|
179
|
+
frame = Scintilla::MyFrame.new("wxRuby Scintilla App", [50, 50], [450, 340])
|
|
180
180
|
frame.show(true)
|
|
181
181
|
frame
|
|
182
182
|
end
|
data/samples/text/unicode.rb
CHANGED
|
@@ -28,7 +28,7 @@ module Unicode
|
|
|
28
28
|
" << File.read( $utf8_file )
|
|
29
29
|
|
|
30
30
|
def initialize(parent, text = DEFAULT_TEXT)
|
|
31
|
-
super(parent,
|
|
31
|
+
super(parent, Wx::ID_ANY, text,
|
|
32
32
|
Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::TE_MULTILINE)
|
|
33
33
|
end
|
|
34
34
|
|
|
@@ -76,7 +76,7 @@ module Unicode
|
|
|
76
76
|
sizer.add(text, 0, Wx::ALL, 5)
|
|
77
77
|
|
|
78
78
|
sys_enc = Wx::Locale.get_system_encoding_name
|
|
79
|
-
text = Wx::StaticText.new(panel,
|
|
79
|
+
text = Wx::StaticText.new(panel, Wx::ID_ANY, "System default encoding: #{sys_enc}")
|
|
80
80
|
sizer.add(text, 0, Wx::ALL, 5)
|
|
81
81
|
|
|
82
82
|
# The text input and display
|
|
@@ -84,9 +84,9 @@ module Unicode
|
|
|
84
84
|
sizer.add(@textctrl, 3, Wx::GROW|Wx::ALL, 2)
|
|
85
85
|
|
|
86
86
|
# The button to show what's selected
|
|
87
|
-
button = Wx::Button.new(panel,
|
|
87
|
+
button = Wx::Button.new(panel, label: 'Describe text selection')
|
|
88
88
|
sizer.add(button, 0, Wx::ALL, 2 )
|
|
89
|
-
evt_button(button
|
|
89
|
+
evt_button(button, :on_click)
|
|
90
90
|
|
|
91
91
|
@log = LogTextCtrl.new(panel)
|
|
92
92
|
sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
|
data/tests/lib/wxapp_runner.rb
CHANGED
data/tests/test_config.rb
CHANGED
|
@@ -203,13 +203,16 @@ class TestConfig < Test::Unit::TestCase
|
|
|
203
203
|
def run_env_var_tests(cfg)
|
|
204
204
|
# by default expansion is on
|
|
205
205
|
|
|
206
|
+
# Cirrus CI Linux builds run in privileged container without proper user env
|
|
207
|
+
has_user = Wx::PLATFORM == 'WXMSW' || ENV['USER']
|
|
208
|
+
|
|
206
209
|
# add a number of entries for env var in new group 'Environment'
|
|
207
210
|
cfg['/Environment/HOME'] = '$HOME'
|
|
208
|
-
cfg['Environment'].USER = Wx::PLATFORM == 'WXMSW' ? '%USERNAME%' : '${USER}'
|
|
211
|
+
cfg['Environment'].USER = Wx::PLATFORM == 'WXMSW' ? '%USERNAME%' : '${USER}' if has_user
|
|
209
212
|
cfg['/Environment/PATH'] = '$(PATH)'
|
|
210
213
|
|
|
211
214
|
assert_equal(ENV['HOME'], cfg.Environment['HOME'])
|
|
212
|
-
assert_equal(ENV[Wx::PLATFORM == 'WXMSW' ? 'USERNAME' : 'USER'], cfg['/Environment/USER'])
|
|
215
|
+
assert_equal(ENV[Wx::PLATFORM == 'WXMSW' ? 'USERNAME' : 'USER'], cfg['/Environment/USER']) if has_user
|
|
213
216
|
assert_equal(ENV['PATH'], cfg.Environment.PATH)
|
|
214
217
|
|
|
215
218
|
# test escaping
|
|
@@ -225,9 +228,9 @@ class TestConfig < Test::Unit::TestCase
|
|
|
225
228
|
|
|
226
229
|
assert_equal('${NonExistingLongNonsenseVariable}', cfg.Environment['NONSENSE'])
|
|
227
230
|
|
|
228
|
-
cfg['/Environment/MULTIPLE'] = "$HOME / #{Wx::PLATFORM == 'WXMSW' ? '%USERNAME%' : '${USER}'}"
|
|
231
|
+
cfg['/Environment/MULTIPLE'] = "$HOME / #{Wx::PLATFORM == 'WXMSW' ? '%USERNAME%' : '${USER}'}" if has_user
|
|
229
232
|
|
|
230
|
-
assert_equal("#{ENV['HOME']} / #{Wx::PLATFORM == 'WXMSW' ? ENV['USERNAME'] : ENV['USER']}", cfg.Environment['MULTIPLE'])
|
|
233
|
+
assert_equal("#{ENV['HOME']} / #{Wx::PLATFORM == 'WXMSW' ? ENV['USERNAME'] : ENV['USER']}", cfg.Environment['MULTIPLE']) if has_user
|
|
231
234
|
|
|
232
235
|
# disable env var expansion
|
|
233
236
|
cfg.expand_env_vars = false
|
data/tests/test_ext_controls.rb
CHANGED
|
@@ -157,7 +157,10 @@ class CommandLinkButtonTests < WxRuby::Test::GUITests
|
|
|
157
157
|
sim.mouse_click
|
|
158
158
|
end
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
# intermittent failures in OSX CI builds
|
|
161
|
+
unless Wx::PLATFORM == 'WXOSX' && is_ci_build?
|
|
162
|
+
assert_equal(1, count)
|
|
163
|
+
end
|
|
161
164
|
end
|
|
162
165
|
|
|
163
166
|
def test_disabled
|
|
@@ -210,8 +213,10 @@ class SpinCtrlTests < WxRuby::Test::GUITests
|
|
|
210
213
|
sim.key_down(Wx::KeyCode::K_UP)
|
|
211
214
|
sim.key_up(Wx::KeyCode::K_UP)
|
|
212
215
|
end
|
|
213
|
-
|
|
214
|
-
|
|
216
|
+
unless Wx::PLATFORM == 'WXOSX' && is_ci_build?
|
|
217
|
+
assert_equal(1, count)
|
|
218
|
+
assert_equal(1, spin.value)
|
|
219
|
+
end
|
|
215
220
|
end
|
|
216
221
|
|
|
217
222
|
end
|
|
@@ -252,8 +257,10 @@ class SpinCtrlDoubleTests < WxRuby::Test::GUITests
|
|
|
252
257
|
sim.key_down(Wx::KeyCode::K_UP)
|
|
253
258
|
sim.key_up(Wx::KeyCode::K_UP)
|
|
254
259
|
end
|
|
255
|
-
|
|
256
|
-
|
|
260
|
+
unless Wx::PLATFORM == 'WXOSX' && is_ci_build?
|
|
261
|
+
assert_equal(1, count)
|
|
262
|
+
assert_equal(1.0, spin.value)
|
|
263
|
+
end
|
|
257
264
|
end
|
|
258
265
|
|
|
259
266
|
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
require_relative './lib/wxapp_runner'
|
|
6
|
+
|
|
7
|
+
require 'digest'
|
|
8
|
+
|
|
9
|
+
class TestSecretStore < Test::Unit::TestCase
|
|
10
|
+
|
|
11
|
+
unless is_ci_build?
|
|
12
|
+
|
|
13
|
+
def test_store
|
|
14
|
+
if Wx.has_feature?(:USE_SECRETSTORE)
|
|
15
|
+
state, err = Wx::SecretStore.get_default.ok?
|
|
16
|
+
if state
|
|
17
|
+
puts "SecretStore OK"
|
|
18
|
+
|
|
19
|
+
if Wx::WXWIDGETS_VERSION > '3.2.4'
|
|
20
|
+
password = Digest::SHA256.digest('My Secret Password!')
|
|
21
|
+
else
|
|
22
|
+
password = Digest::SHA256.hexdigest('My Secret Password!') # binary secrets does not work
|
|
23
|
+
end
|
|
24
|
+
secret_val = Wx::SecretValue.new(password)
|
|
25
|
+
assert_true(Wx::SecretStore.get_default.save('My/Service', 'a_user', secret_val))
|
|
26
|
+
|
|
27
|
+
secret_val2 = Wx::SecretValue.new
|
|
28
|
+
rc, user = Wx::SecretStore.get_default.load('My/Service', secret_val2)
|
|
29
|
+
assert_true(rc)
|
|
30
|
+
assert_equal('a_user', user)
|
|
31
|
+
assert_equal(secret_val, secret_val2)
|
|
32
|
+
assert_equal(password, secret_val2.get_data)
|
|
33
|
+
|
|
34
|
+
password = 'My Secret Password!'
|
|
35
|
+
secret_val = Wx::SecretValue.new(password)
|
|
36
|
+
assert_true(Wx::SecretStore.get_default.save('My/Service', 'a_user', secret_val))
|
|
37
|
+
|
|
38
|
+
secret_val2 = Wx::SecretValue.new
|
|
39
|
+
rc, user = Wx::SecretStore.get_default.load('My/Service', secret_val2)
|
|
40
|
+
assert_true(rc)
|
|
41
|
+
assert_equal('a_user', user)
|
|
42
|
+
assert_equal(secret_val, secret_val2)
|
|
43
|
+
assert_equal(password, secret_val2.get_as_string)
|
|
44
|
+
|
|
45
|
+
password = 'My Secret Password!'.encode('UTF-16')
|
|
46
|
+
secret_val = Wx::SecretValue.new(password)
|
|
47
|
+
assert_true(Wx::SecretStore.get_default.save('My/Service', 'a_user', secret_val))
|
|
48
|
+
|
|
49
|
+
secret_val2 = Wx::SecretValue.new
|
|
50
|
+
rc, user = Wx::SecretStore.get_default.load('My/Service', secret_val2)
|
|
51
|
+
assert_true(rc)
|
|
52
|
+
assert_equal('a_user', user)
|
|
53
|
+
assert_equal(secret_val, secret_val2)
|
|
54
|
+
assert_equal(password, secret_val2.get_as_string)
|
|
55
|
+
assert_not_equal('My Secret Password!'.encode('UTF-16'), secret_val2.get_as_string)
|
|
56
|
+
assert_equal('My Secret Password!'.encode('UTF-16'), secret_val2.get_as_string.encode('UTF-16'))
|
|
57
|
+
|
|
58
|
+
password = 'My Secret Password!'.encode('UTF-32')
|
|
59
|
+
secret_val = Wx::SecretValue.new(password)
|
|
60
|
+
assert_true(Wx::SecretStore.get_default.save('My/Service', 'a_user', secret_val))
|
|
61
|
+
|
|
62
|
+
secret_val2 = Wx::SecretValue.new
|
|
63
|
+
rc, user = Wx::SecretStore.get_default.load('My/Service', secret_val2)
|
|
64
|
+
assert_true(rc)
|
|
65
|
+
assert_equal('a_user', user)
|
|
66
|
+
assert_equal(secret_val, secret_val2)
|
|
67
|
+
assert_equal(password, secret_val2.get_as_string)
|
|
68
|
+
assert_not_equal('My Secret Password!'.encode('UTF-32'), secret_val2.get_as_string)
|
|
69
|
+
assert_equal('My Secret Password!'.encode('UTF-32'), secret_val2.get_as_string.encode('UTF-32'))
|
|
70
|
+
|
|
71
|
+
assert_true(Wx::SecretStore.get_default.delete('My/Service'))
|
|
72
|
+
|
|
73
|
+
else
|
|
74
|
+
puts "Default SecretStore not usable : #{err}"
|
|
75
|
+
end
|
|
76
|
+
else
|
|
77
|
+
puts 'Wx::SecretStore not available'
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
data/tests/test_std_controls.rb
CHANGED
|
@@ -32,9 +32,9 @@ class ButtonTests < WxRuby::Test::GUITests
|
|
|
32
32
|
sim.mouse_click
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
# This test
|
|
36
|
-
# in local builds
|
|
37
|
-
unless Wx::PLATFORM
|
|
35
|
+
# This test occasionally fails in MSW/OSX CI builds but rarely
|
|
36
|
+
# in local builds
|
|
37
|
+
unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
|
|
38
38
|
assert_equal(1, count)
|
|
39
39
|
end
|
|
40
40
|
end
|
|
@@ -151,9 +151,9 @@ class TextCtrlTests < WxRuby::Test::GUITests
|
|
|
151
151
|
|
|
152
152
|
sim.text('Hello')
|
|
153
153
|
|
|
154
|
-
# This test
|
|
155
|
-
# in local builds
|
|
156
|
-
unless Wx::PLATFORM
|
|
154
|
+
# This test occasionally fails in MSW/OSX CI builds but rarely
|
|
155
|
+
# in local builds
|
|
156
|
+
unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
|
|
157
157
|
assert_equal('Hello', text_entry.get_value)
|
|
158
158
|
assert_equal(5, c_upd.count)
|
|
159
159
|
end
|
|
@@ -161,9 +161,9 @@ class TextCtrlTests < WxRuby::Test::GUITests
|
|
|
161
161
|
text_entry.set_max_length(10)
|
|
162
162
|
sim.text('World')
|
|
163
163
|
|
|
164
|
-
# This test
|
|
165
|
-
# in local builds
|
|
166
|
-
unless Wx::PLATFORM
|
|
164
|
+
# This test occasionally fails in MSW/OSX CI builds but rarely
|
|
165
|
+
# in local builds
|
|
166
|
+
unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
|
|
167
167
|
assert_equal('HelloWorld', text_entry.get_value)
|
|
168
168
|
assert_equal(10, c_upd.count)
|
|
169
169
|
assert_equal(0, c_maxlen.count)
|
|
@@ -171,9 +171,9 @@ class TextCtrlTests < WxRuby::Test::GUITests
|
|
|
171
171
|
|
|
172
172
|
sim.text('!')
|
|
173
173
|
|
|
174
|
-
# This test
|
|
175
|
-
# in local builds
|
|
176
|
-
unless Wx::PLATFORM
|
|
174
|
+
# This test occasionally fails in MSW/OSX CI builds but rarely
|
|
175
|
+
# in local builds
|
|
176
|
+
unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
|
|
177
177
|
assert_equal('HelloWorld', text_entry.get_value)
|
|
178
178
|
assert_equal(10, c_upd.count)
|
|
179
179
|
assert_equal(1, c_maxlen.count)
|