wxruby3 1.7.0 → 1.8.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 +27 -2
- data/README.md +15 -15
- data/ext/wxruby3/include/wxRubyApp.h +145 -46
- data/ext/wxruby3/include/wxruby-ComboPopup.h +25 -8
- data/ext/wxruby3/include/wxruby-GCTracking.h +262 -0
- data/ext/wxruby3/include/wxruby-MBConv.h +190 -0
- data/ext/wxruby3/include/wxruby-SharedEventHandler.h +183 -0
- data/ext/wxruby3/include/wxruby-SharedPtr.h +104 -0
- data/ext/wxruby3/include/wxruby-runtime.h +29 -0
- data/ext/wxruby3/swig/custom/rubytracking.swg +8 -22
- data/ext/wxruby3/swig/custom/wx_ruby_shared_ptr.i +434 -0
- data/ext/wxruby3/swig/custom/wx_shared_ptr.i +431 -0
- data/ext/wxruby3/swig/mark_free_impl.i +7 -132
- data/ext/wxruby3/swig/memory_management.i +8 -44
- data/ext/wxruby3/swig/wx.i +46 -73
- data/lib/wx/core/const.rb +0 -1
- data/lib/wx/core/context_help.rb +17 -0
- data/lib/wx/core/cursor.rb +1 -0
- data/lib/wx/core/helpcontrollerhelpprovider.rb +10 -2
- data/lib/wx/core/mbconv.rb +11 -0
- data/lib/wx/core/media_ctrl.rb +31 -0
- data/lib/wx/core/top_level_window.rb +7 -0
- data/lib/wx/core.rb +6 -0
- data/lib/wx/doc/art_provider.rb +17 -0
- data/lib/wx/doc/context_help.rb +42 -0
- data/lib/wx/doc/core.rb +0 -5
- data/lib/wx/doc/functions.rb +10 -0
- data/lib/wx/doc/gen/affine_matrix2d.rb +2 -0
- data/lib/wx/doc/gen/art_provider.rb +12 -0
- data/lib/wx/doc/gen/aui/aui_notebook_event.rb +15 -15
- data/lib/wx/doc/gen/aui/aui_pane_info.rb +8 -8
- data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +5 -5
- data/lib/wx/doc/gen/book_ctrl_base.rb +2 -1
- data/lib/wx/doc/gen/calendar_event.rb +5 -5
- data/lib/wx/doc/gen/choicebook.rb +2 -2
- data/lib/wx/doc/gen/collapsible_pane.rb +1 -1
- data/lib/wx/doc/gen/colour_dialog.rb +1 -1
- data/lib/wx/doc/gen/colour_picker_event.rb +3 -3
- data/lib/wx/doc/gen/context_help_button.rb +0 -53
- data/lib/wx/doc/gen/core.rb +4 -4
- data/lib/wx/doc/gen/credential_entry_dialog.rb +2 -2
- data/lib/wx/doc/gen/date_event.rb +2 -2
- data/lib/wx/doc/gen/dial_up_event.rb +2 -2
- data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +2 -2
- data/lib/wx/doc/gen/event.rb +58 -58
- data/lib/wx/doc/gen/ext_help_controller.rb +62 -16
- data/lib/wx/doc/gen/file_ctrl.rb +4 -4
- data/lib/wx/doc/gen/file_dir_picker_event.rb +2 -2
- data/lib/wx/doc/gen/file_system.rb +1 -1
- data/lib/wx/doc/gen/find_dialog_event.rb +5 -5
- data/lib/wx/doc/gen/font_picker_event.rb +1 -1
- data/lib/wx/doc/gen/grid/grid_ctrl.rb +67 -32
- data/lib/wx/doc/gen/header_ctrl_event.rb +13 -13
- data/lib/wx/doc/gen/help_controller.rb +45 -2
- data/lib/wx/doc/gen/html/html_help_controller.rb +74 -32
- data/lib/wx/doc/gen/html/html_help_window.rb +3 -3
- data/lib/wx/doc/gen/html/html_window.rb +4 -4
- data/lib/wx/doc/gen/hyperlink_ctrl.rb +1 -1
- data/lib/wx/doc/gen/list_ctrl.rb +22 -22
- data/lib/wx/doc/gen/listbook.rb +2 -2
- data/lib/wx/doc/gen/mb_conv.rb +10 -0
- data/lib/wx/doc/gen/media_event.rb +6 -6
- data/lib/wx/doc/gen/notebook.rb +2 -2
- data/lib/wx/doc/gen/pg/pg_validation_info.rb +14 -14
- data/lib/wx/doc/gen/pg/property_grid_interface.rb +2 -2
- data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +19 -9
- data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +2 -2
- data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +3 -3
- data/lib/wx/doc/gen/rbn/ribbon_panel.rb +2 -2
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +2 -2
- data/lib/wx/doc/gen/rt/event_list.rb +17 -0
- data/lib/wx/doc/gen/rt/shared_evt_handler.rb +14 -0
- data/lib/wx/doc/gen/rt/thread_event.rb +71 -0
- data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +19 -19
- data/lib/wx/doc/gen/sash_event.rb +2 -2
- data/lib/wx/doc/gen/sash_layout_window.rb +2 -2
- data/lib/wx/doc/gen/search_ctrl.rb +2 -2
- data/lib/wx/doc/gen/spin_ctrl.rb +2 -2
- data/lib/wx/doc/gen/splitter_window.rb +6 -6
- data/lib/wx/doc/gen/stc/styled_text_event.rb +34 -34
- data/lib/wx/doc/gen/task_bar_icon_event.rb +10 -10
- data/lib/wx/doc/gen/text_ctrl.rb +4 -4
- data/lib/wx/doc/gen/toggle_button.rb +1 -1
- data/lib/wx/doc/gen/toolbook.rb +2 -2
- data/lib/wx/doc/gen/top_level_window.rb +19 -0
- data/lib/wx/doc/gen/tree_ctrl.rb +21 -21
- data/lib/wx/doc/gen/treebook.rb +4 -4
- data/lib/wx/doc/gen/utils.rb +2 -2
- data/lib/wx/doc/gen/web/event_list.rb +95 -0
- data/lib/wx/doc/gen/web/web_view.rb +1136 -0
- data/lib/wx/doc/gen/web/web_view_event.rb +210 -0
- data/lib/wx/doc/gen/web/web_view_handler.rb +318 -0
- data/lib/wx/doc/gen/window.rb +1 -1
- data/lib/wx/doc/gen/wizard_event.rb +7 -7
- data/lib/wx/doc/html/html_help_controller.rb +23 -1
- data/lib/wx/doc/mbconv.rb +108 -0
- data/lib/wx/doc/rt/shared_event_handler.rb +49 -0
- data/lib/wx/doc/rt/thread_event.rb +28 -0
- data/lib/wx/doc/webview.rb +40 -0
- data/lib/wx/helpers.rb +1 -1
- data/lib/wx/html/htmlhelpcontroller.rb +10 -0
- data/lib/wx/keyword_defs.rb +11 -0
- data/lib/wx/rt/events/evt_list.rb +8 -0
- data/lib/wx/rt/require.rb +8 -0
- data/lib/wx/rt/thread_event.rb +14 -0
- data/lib/wx/rt.rb +16 -0
- data/lib/wx/version.rb +1 -1
- data/lib/wx/web/events/evt_list.rb +74 -0
- data/lib/wx/web/require.rb +8 -0
- data/lib/wx/web/webview.rb +106 -0
- data/lib/wx/web.rb +17 -0
- data/lib/wx/wxruby/cmd/setup.rb +15 -0
- data/lib/wx.rb +2 -0
- data/rakelib/configure.rb +24 -0
- data/rakelib/gem.rb +3 -2
- data/rakelib/install.rb +54 -27
- data/rakelib/lib/config/macosx.rb +7 -5
- data/rakelib/lib/config/mingw.rb +66 -5
- data/rakelib/lib/config/pkgman/mingw.rb +1 -1
- data/rakelib/lib/config/unixish.rb +4 -2
- data/rakelib/lib/config.rb +37 -3
- data/rakelib/lib/core/include/client_data.inc +38 -17
- data/rakelib/lib/core/include/funcall.inc +1 -1
- data/rakelib/lib/core/include/swigdirector.inc +3 -3
- data/rakelib/lib/core/include/swigrubyrun.inc +14 -26
- data/rakelib/lib/core/package.rb +0 -2
- data/rakelib/lib/director/app.rb +1 -8
- data/rakelib/lib/director/art_provider.rb +7 -3
- data/rakelib/lib/director/comboctrl.rb +0 -7
- data/rakelib/lib/director/context_help_button.rb +35 -2
- data/rakelib/lib/director/event_handler.rb +32 -28
- data/rakelib/lib/director/fs_file.rb +15 -10
- data/rakelib/lib/director/functions.rb +8 -0
- data/rakelib/lib/director/grid_cell_attr.rb +1 -3
- data/rakelib/lib/director/grid_cell_editor.rb +14 -12
- data/rakelib/lib/director/grid_cell_renderer.rb +11 -8
- data/rakelib/lib/director/grid_ctrl.rb +140 -121
- data/rakelib/lib/director/help_controller.rb +70 -2
- data/rakelib/lib/director/mb_conv.rb +30 -0
- data/rakelib/lib/director/menu.rb +92 -42
- data/rakelib/lib/director/menu_bar.rb +84 -45
- data/rakelib/lib/director/menu_item.rb +2 -2
- data/rakelib/lib/director/persistence_manager.rb +3 -2
- data/rakelib/lib/director/preview_frame.rb +2 -2
- data/rakelib/lib/director/richtext_buffer.rb +5 -2
- data/rakelib/lib/director/shared_evt_handler.rb +30 -0
- data/rakelib/lib/director/sizer.rb +8 -17
- data/rakelib/lib/director/sizer_item.rb +3 -4
- data/rakelib/lib/director/task_bar_icon.rb +7 -7
- data/rakelib/lib/director/thread_event.rb +33 -0
- data/rakelib/lib/director/validator.rb +3 -1
- data/rakelib/lib/director/variant.rb +16 -12
- data/rakelib/lib/director/webview.rb +166 -0
- data/rakelib/lib/director/webview_event.rb +37 -0
- data/rakelib/lib/director/webview_handler.rb +63 -0
- data/rakelib/lib/generate/doc/thread_event.yaml +20 -0
- data/rakelib/lib/generate/doc/web_view.yaml +135 -0
- data/rakelib/lib/generate/doc/web_view_event.yaml +38 -0
- data/rakelib/lib/generate/doc/web_view_handler.yaml +58 -0
- data/rakelib/lib/specs/interfaces.rb +12 -0
- data/rakelib/lib/typemap/common.rb +34 -1
- data/rakelib/lib/typemap/mb_conv.rb +58 -0
- data/rakelib/prepost.rake +23 -31
- data/rakelib/prepost.rb +20 -0
- data/samples/event/threaded.rb +295 -42
- data/samples/event/tn_threaded.png +0 -0
- data/samples/help/doc/back.gif +0 -0
- data/samples/help/doc/contents.gif +0 -0
- data/samples/help/doc/cshelp.txt +9 -0
- data/samples/help/doc/doc.chm +0 -0
- data/samples/help/doc/doc.cnt +8 -0
- data/samples/help/doc/doc.h +7 -0
- data/samples/help/doc/doc.hhc +40 -0
- data/samples/help/doc/doc.hhk +31 -0
- data/samples/help/doc/doc.hhp +33 -0
- data/samples/help/doc/doc.hpj +21 -0
- data/samples/help/doc/doc.htm +27 -0
- data/samples/help/doc/doc1.htm +24 -0
- data/samples/help/doc/doc2.htm +12 -0
- data/samples/help/doc/doc3.htm +12 -0
- data/samples/help/doc/doc4.htm +12 -0
- data/samples/help/doc/doc5.htm +14 -0
- data/samples/help/doc/forward.gif +0 -0
- data/samples/help/doc/up.gif +0 -0
- data/samples/help/doc.chm +0 -0
- data/samples/help/doc.chw +0 -0
- data/samples/help/doc.zip +0 -0
- data/samples/help/help.rb +352 -0
- data/samples/help/tn_help.png +0 -0
- data/samples/webview/handler_advanced.html +55 -0
- data/samples/webview/tn_webview.png +0 -0
- data/samples/webview/webview.rb +1264 -0
- data/tests/assets/handler_advanced.html +55 -0
- data/tests/assets/test.css +1 -0
- data/tests/assets/test.html +9 -0
- data/tests/assets/test.zip +0 -0
- data/tests/lib/text_entry_tests.rb +2 -2
- data/tests/lib/wxapp_runner.rb +40 -0
- data/tests/lib/wxframe_runner.rb +17 -2
- data/tests/test_art.rb +8 -8
- data/tests/test_clipboard.rb +4 -4
- data/tests/test_config.rb +6 -6
- data/tests/test_exceptions.rb +8 -6
- data/tests/test_ext_controls.rb +3 -3
- data/tests/test_file_dialog.rb +5 -5
- data/tests/test_font.rb +7 -7
- data/tests/test_grid_ctrl.rb +133 -0
- data/tests/test_help.rb +88 -0
- data/tests/test_intl.rb +1 -1
- data/tests/test_media_ctrl.rb +14 -6
- data/tests/test_menu.rb +94 -86
- data/tests/test_persistence.rb +1 -1
- data/tests/test_proof_check.rb +5 -5
- data/tests/test_propgrid.rb +1 -1
- data/tests/test_shared_event_handler.rb +141 -0
- data/tests/test_std_controls.rb +5 -5
- data/tests/test_webview.rb +492 -0
- data/tests/test_window.rb +3 -3
- metadata +78 -2
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
<HTML>
|
|
3
|
+
<HEAD><TITLE>Help Demo</TITLE></HEAD>
|
|
4
|
+
|
|
5
|
+
<BODY BGCOLOR=#FFFFFF>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
<A NAME="contents"><H2 ALIGN=CENTER>
|
|
9
|
+
Help Demo</H2><P></A>
|
|
10
|
+
<P>
|
|
11
|
+
|
|
12
|
+
<H3 ALIGN=CENTER>by Julian Smart (adapted for wxRuby3 by Martin Corino)</H3><P>
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<P><HR><P>
|
|
16
|
+
<P><P><H2>Contents</H2><P><P>
|
|
17
|
+
<UL>
|
|
18
|
+
|
|
19
|
+
<LI><A HREF="doc1.htm#intro">Introduction</A>
|
|
20
|
+
|
|
21
|
+
<LI><A HREF="doc5.htm#chapter2">Chapter 2</A>
|
|
22
|
+
</UL>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
</BODY>
|
|
26
|
+
|
|
27
|
+
</HTML>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<head><title>Introduction</title></head>
|
|
3
|
+
|
|
4
|
+
<BODY BGCOLOR=#FFFFFF>
|
|
5
|
+
<A NAME="intro"></A><CENTER>
|
|
6
|
+
<A HREF="doc.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="doc.htm"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <img align=center src="back.gif" BORDER=0 ALT="Previous"> <A HREF="doc2.htm#classes"><img align=center src="forward.gif" BORDER=0 ALT="Next"></A> </CENTER><HR>
|
|
7
|
+
|
|
8
|
+
<H2>Introduction</H2>
|
|
9
|
+
|
|
10
|
+
This is a demo document for the wxRuby3 'help' sample.<P>
|
|
11
|
+
You should process this file with Tex2RTF, for example:<P>
|
|
12
|
+
<TT>tex2rtf -winhelp -twice doc.tex doc.hlp</TT><P>
|
|
13
|
+
and then run:<P>
|
|
14
|
+
<TT>hc doc</TT><P>
|
|
15
|
+
where hc is the help compiler.<P>
|
|
16
|
+
Note that you can also generate HTML and Word RTF with Tex2RTF.<P>
|
|
17
|
+
|
|
18
|
+
<A HREF="doc2.htm#classes"><B>Classes</B></A><BR>
|
|
19
|
+
|
|
20
|
+
<A HREF="doc3.htm#functions"><B>Functions</B></A><BR>
|
|
21
|
+
|
|
22
|
+
<A HREF="doc4.htm#about"><B>About</B></A><BR>
|
|
23
|
+
|
|
24
|
+
</BODY></HTML>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<head><title>Classes</title></head>
|
|
3
|
+
|
|
4
|
+
<BODY BGCOLOR=#FFFFFF>
|
|
5
|
+
<A NAME="classes"></A><CENTER>
|
|
6
|
+
<A HREF="doc.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="doc1.htm#intro"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <A HREF="doc1.htm#intro"><img align=center src="back.gif" BORDER=0 ALT="Previous"></A> <A HREF="doc3.htm#functions"><img align=center src="forward.gif" BORDER=0 ALT="Next"></A> </CENTER><HR>
|
|
7
|
+
|
|
8
|
+
<H2>Classes</H2>
|
|
9
|
+
<P>
|
|
10
|
+
This would say something about classes, but doesn't yet.<P>
|
|
11
|
+
|
|
12
|
+
</BODY></HTML>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<head><title>Functions</title></head>
|
|
3
|
+
|
|
4
|
+
<BODY BGCOLOR=#FFFFFF>
|
|
5
|
+
<A NAME="functions"></A><CENTER>
|
|
6
|
+
<A HREF="doc.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="doc1.htm#intro"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <A HREF="doc2.htm#classes"><img align=center src="back.gif" BORDER=0 ALT="Previous"></A> <A HREF="doc4.htm#about"><img align=center src="forward.gif" BORDER=0 ALT="Next"></A> </CENTER><HR>
|
|
7
|
+
|
|
8
|
+
<H2>Functions</H2>
|
|
9
|
+
<P>
|
|
10
|
+
This would say something about functions, but doesn't yet.<P>
|
|
11
|
+
|
|
12
|
+
</BODY></HTML>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<head><title>About</title></head>
|
|
3
|
+
|
|
4
|
+
<BODY BGCOLOR=#FFFFFF>
|
|
5
|
+
<A NAME="about"></A><CENTER>
|
|
6
|
+
<A HREF="doc.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="doc1.htm#intro"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <A HREF="doc3.htm#functions"><img align=center src="back.gif" BORDER=0 ALT="Previous"></A> <A HREF="doc5.htm#chapter2"><img align=center src="forward.gif" BORDER=0 ALT="Next"></A> </CENTER><HR>
|
|
7
|
+
|
|
8
|
+
<H2>About</H2>
|
|
9
|
+
<P>
|
|
10
|
+
About this HelpDemo: this file is really not much of a demo, but it's a start.<P>
|
|
11
|
+
|
|
12
|
+
</BODY></HTML>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<head><title>Chapter 2</title></head>
|
|
3
|
+
|
|
4
|
+
<BODY BGCOLOR=#FFFFFF>
|
|
5
|
+
<A NAME="chapter2"></A><CENTER>
|
|
6
|
+
<A HREF="doc.htm"><img align=center src="contents.gif" BORDER=0 ALT="Contents"></A> <A HREF="doc.htm"><img align=center src="up.gif" BORDER=0 ALT="Up"></A> <A HREF="doc4.htm#about"><img align=center src="back.gif" BORDER=0 ALT="Previous"></A> <img align=center src="forward.gif" BORDER=0 ALT="Next"> </CENTER><HR>
|
|
7
|
+
|
|
8
|
+
<H2>Chapter 2</H2>
|
|
9
|
+
|
|
10
|
+
Another chapter in this enticing little manual.<P>
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
</BODY></HTML>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
# Adapted for Wx::Ruby3
|
|
6
|
+
###
|
|
7
|
+
|
|
8
|
+
require 'wx'
|
|
9
|
+
|
|
10
|
+
module Help
|
|
11
|
+
|
|
12
|
+
# Define this to false to use the help controller as the help
|
|
13
|
+
# provider, or to true to use the 'simple help provider'
|
|
14
|
+
# (the one implemented with Wx::TipWindow).
|
|
15
|
+
USE_SIMPLE_HELP_PROVIDER = false
|
|
16
|
+
|
|
17
|
+
# define this to true to use external help controller (not used by default)
|
|
18
|
+
USE_EXT_HELP = false
|
|
19
|
+
|
|
20
|
+
# IDs for the controls and the menu commands
|
|
21
|
+
module ID
|
|
22
|
+
include Wx::IDHelper
|
|
23
|
+
# menu items
|
|
24
|
+
HelpDemo_Quit = self.next_id
|
|
25
|
+
HelpDemo_Help_Index = self.next_id
|
|
26
|
+
HelpDemo_Help_Classes = self.next_id
|
|
27
|
+
HelpDemo_Help_Functions = self.next_id
|
|
28
|
+
HelpDemo_Help_Help = self.next_id
|
|
29
|
+
HelpDemo_Help_Search = self.next_id
|
|
30
|
+
HelpDemo_Help_ContextHelp = self.next_id
|
|
31
|
+
HelpDemo_Help_DialogContextHelp = self.next_id
|
|
32
|
+
|
|
33
|
+
HelpDemo_Html_Help_Index = self.next_id
|
|
34
|
+
HelpDemo_Html_Help_Classes = self.next_id
|
|
35
|
+
HelpDemo_Html_Help_Functions = self.next_id
|
|
36
|
+
HelpDemo_Html_Help_Help = self.next_id
|
|
37
|
+
HelpDemo_Html_Help_Search = self.next_id
|
|
38
|
+
|
|
39
|
+
HelpDemo_Advanced_Html_Help_Index = self.next_id
|
|
40
|
+
HelpDemo_Advanced_Html_Help_Classes = self.next_id
|
|
41
|
+
HelpDemo_Advanced_Html_Help_Functions = self.next_id
|
|
42
|
+
HelpDemo_Advanced_Html_Help_Help = self.next_id
|
|
43
|
+
HelpDemo_Advanced_Html_Help_Search = self.next_id
|
|
44
|
+
HelpDemo_Advanced_Html_Help_Modal = self.next_id
|
|
45
|
+
|
|
46
|
+
HelpDemo_MS_Html_Help_Index = self.next_id
|
|
47
|
+
HelpDemo_MS_Html_Help_Classes = self.next_id
|
|
48
|
+
HelpDemo_MS_Html_Help_Functions = self.next_id
|
|
49
|
+
HelpDemo_MS_Html_Help_Help = self.next_id
|
|
50
|
+
HelpDemo_MS_Html_Help_Search = self.next_id
|
|
51
|
+
|
|
52
|
+
HelpDemo_Best_Help_Index = self.next_id
|
|
53
|
+
HelpDemo_Best_Help_Classes = self.next_id
|
|
54
|
+
HelpDemo_Best_Help_Functions = self.next_id
|
|
55
|
+
HelpDemo_Best_Help_Help = self.next_id
|
|
56
|
+
HelpDemo_Best_Help_Search = self.next_id
|
|
57
|
+
|
|
58
|
+
HelpDemo_Help_KDE = self.next_id
|
|
59
|
+
HelpDemo_Help_GNOME = self.next_id
|
|
60
|
+
HelpDemo_Help_Netscape = self.next_id
|
|
61
|
+
# controls start here (the numbers are, of course, arbitrary)
|
|
62
|
+
HelpDemo_Text = self.next_id(HelpDemo_Help_Netscape + 999)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Define a new frame type: this is going to be our main frame
|
|
66
|
+
class MyFrame < Wx::Frame
|
|
67
|
+
# ctor(s)
|
|
68
|
+
def initialize(title, pos, size)
|
|
69
|
+
super(nil, pos: pos, size: size)
|
|
70
|
+
|
|
71
|
+
@help = USE_EXT_HELP ? Wx::ExtHelpController.new : Wx::HelpController.new
|
|
72
|
+
@embeddedHtmlHelp = Wx::HTML::HtmlHelpController.new(Wx::HTML::HF_EMBEDDED|Wx::HTML::HF_DEFAULT_STYLE)
|
|
73
|
+
@advancedHtmlHelp = Wx::HTML::HtmlHelpController.new
|
|
74
|
+
|
|
75
|
+
# set the frame icon
|
|
76
|
+
self.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
|
|
77
|
+
|
|
78
|
+
# create a menu bar
|
|
79
|
+
menuFile = Wx::Menu.new
|
|
80
|
+
|
|
81
|
+
menuFile.append(ID::HelpDemo_Help_Index, "&Help Index...")
|
|
82
|
+
menuFile.append(ID::HelpDemo_Help_Classes, "&Help on Classes...")
|
|
83
|
+
menuFile.append(ID::HelpDemo_Help_Functions, "&Help on Functions...")
|
|
84
|
+
menuFile.append(ID::HelpDemo_Help_ContextHelp, "&Context Help...")
|
|
85
|
+
menuFile.append(ID::HelpDemo_Help_DialogContextHelp, "&Dialog Context Help...\tCtrl-H")
|
|
86
|
+
menuFile.append(ID::HelpDemo_Help_Help, "&About Help Demo...")
|
|
87
|
+
menuFile.append(ID::HelpDemo_Help_Search, "&Search help...")
|
|
88
|
+
menuFile.append_separator
|
|
89
|
+
menuFile.append(ID::HelpDemo_Advanced_Html_Help_Index, "Advanced HTML &Help Index...")
|
|
90
|
+
menuFile.append(ID::HelpDemo_Advanced_Html_Help_Classes, "Advanced HTML &Help on Classes...")
|
|
91
|
+
menuFile.append(ID::HelpDemo_Advanced_Html_Help_Functions, "Advanced HTML &Help on Functions...")
|
|
92
|
+
menuFile.append(ID::HelpDemo_Advanced_Html_Help_Help, "Advanced HTML &About Help Demo...")
|
|
93
|
+
menuFile.append(ID::HelpDemo_Advanced_Html_Help_Search, "Advanced HTML &Search help...")
|
|
94
|
+
menuFile.append(ID::HelpDemo_Advanced_Html_Help_Modal, "Advanced HTML Help &Modal Dialog...")
|
|
95
|
+
|
|
96
|
+
unless Wx::PLATFORM == 'WXMSW' || !Wx.has_feature?(:USE_HTML)
|
|
97
|
+
menuFile.append_separator
|
|
98
|
+
menuFile.append(ID::HelpDemo_Help_KDE, "Use &KDE")
|
|
99
|
+
menuFile.append(ID::HelpDemo_Help_GNOME, "Use &GNOME")
|
|
100
|
+
menuFile.append(ID::HelpDemo_Help_Netscape, "Use &Netscape")
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
menuFile.append_separator
|
|
104
|
+
menuFile.append(ID::HelpDemo_Quit, "E&xit")
|
|
105
|
+
|
|
106
|
+
# now append the freshly created menu to the menu bar...
|
|
107
|
+
menuBar = Wx::MenuBar.new
|
|
108
|
+
menuBar.append(menuFile, "&File")
|
|
109
|
+
|
|
110
|
+
# ... and attach this menu bar to the frame
|
|
111
|
+
set_menu_bar(menuBar)
|
|
112
|
+
|
|
113
|
+
if Wx.has_feature?(:USE_STATUSBAR)
|
|
114
|
+
# create a status bar just for fun (by default with 1 pane only)
|
|
115
|
+
create_status_bar
|
|
116
|
+
set_status_text("Welcome to wxWidgets!")
|
|
117
|
+
end # USE_STATUSBAR
|
|
118
|
+
|
|
119
|
+
# Create embedded HTML Help window
|
|
120
|
+
@embeddedHelpWindow = Wx::HTML::HtmlHelpWindow.new
|
|
121
|
+
# @embeddedHtmlHelp.use_config(config, rootPath) # Can set your own config object here
|
|
122
|
+
@embeddedHtmlHelp.set_help_window(@embeddedHelpWindow)
|
|
123
|
+
|
|
124
|
+
@embeddedHelpWindow.create(self, Wx::ID_ANY, Wx::DEFAULT_POSITION, get_client_size, Wx::TAB_TRAVERSAL|Wx::NO_BORDER, Wx::HTML::HF_DEFAULT_STYLE)
|
|
125
|
+
|
|
126
|
+
@embeddedHtmlHelp.add_book(File.join(__dir__, 'doc.zip'))
|
|
127
|
+
@embeddedHtmlHelp.display("Introduction")
|
|
128
|
+
|
|
129
|
+
evt_menu(ID::HelpDemo_Quit, :on_quit)
|
|
130
|
+
evt_menu(ID::HelpDemo_Help_Index, :on_help)
|
|
131
|
+
evt_menu(ID::HelpDemo_Help_Classes, :on_help)
|
|
132
|
+
evt_menu(ID::HelpDemo_Help_Functions, :on_help)
|
|
133
|
+
evt_menu(ID::HelpDemo_Help_Help, :on_help)
|
|
134
|
+
evt_menu(ID::HelpDemo_Help_Search, :on_help)
|
|
135
|
+
evt_menu(ID::HelpDemo_Help_ContextHelp, :on_show_context_help)
|
|
136
|
+
evt_menu(ID::HelpDemo_Help_DialogContextHelp, :on_show_dialog_context_help)
|
|
137
|
+
|
|
138
|
+
evt_menu(ID::HelpDemo_Advanced_Html_Help_Index, :on_advanced_html_help)
|
|
139
|
+
evt_menu(ID::HelpDemo_Advanced_Html_Help_Classes, :on_advanced_html_help)
|
|
140
|
+
evt_menu(ID::HelpDemo_Advanced_Html_Help_Functions, :on_advanced_html_help)
|
|
141
|
+
evt_menu(ID::HelpDemo_Advanced_Html_Help_Help, :on_advanced_html_help)
|
|
142
|
+
evt_menu(ID::HelpDemo_Advanced_Html_Help_Search, :on_advanced_html_help)
|
|
143
|
+
evt_menu(ID::HelpDemo_Advanced_Html_Help_Modal, :on_modal_html_help)
|
|
144
|
+
|
|
145
|
+
evt_menu(ID::HelpDemo_Help_KDE, :on_help)
|
|
146
|
+
evt_menu(ID::HelpDemo_Help_GNOME, :on_help)
|
|
147
|
+
evt_menu(ID::HelpDemo_Help_Netscape, :on_help)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def get_help_controller
|
|
151
|
+
@help
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def get_advanced_html_help_controller
|
|
155
|
+
@advancedHtmlHelp
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# event handlers
|
|
159
|
+
def on_quit(_event)
|
|
160
|
+
# true is to force the frame to close
|
|
161
|
+
close(true)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def on_help(event)
|
|
165
|
+
show_help(event.get_id, @help)
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def on_advanced_html_help(event)
|
|
169
|
+
show_help(event.get_id, @advancedHtmlHelp)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def on_modal_html_help(_event)
|
|
173
|
+
Wx::HTML.HtmlModalHelp(self, File.join(__dir__, 'doc.zip'), "Introduction")
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def on_show_context_help(_event)
|
|
177
|
+
# This starts context help mode, then the user
|
|
178
|
+
# clicks on a window to send a help message
|
|
179
|
+
Wx.ContextHelp(self)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def on_show_dialog_context_help(_event)
|
|
183
|
+
Help::MyModalDialog(self)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def show_help(commandId, helpController)
|
|
187
|
+
case commandId
|
|
188
|
+
when ID::HelpDemo_Help_Classes,
|
|
189
|
+
ID::HelpDemo_Html_Help_Classes,
|
|
190
|
+
ID::HelpDemo_Advanced_Html_Help_Classes,
|
|
191
|
+
ID::HelpDemo_MS_Html_Help_Classes,
|
|
192
|
+
ID::HelpDemo_Best_Help_Classes
|
|
193
|
+
helpController.display_section(2)
|
|
194
|
+
#helpController.display_section("Classes") # An alternative form for most controllers
|
|
195
|
+
|
|
196
|
+
when ID::HelpDemo_Help_Functions,
|
|
197
|
+
ID::HelpDemo_Html_Help_Functions,
|
|
198
|
+
ID::HelpDemo_Advanced_Html_Help_Functions,
|
|
199
|
+
ID::HelpDemo_MS_Html_Help_Functions
|
|
200
|
+
helpController.display_section(1)
|
|
201
|
+
#helpController.display_section("Functions") # An alternative form for most controllers
|
|
202
|
+
|
|
203
|
+
when ID::HelpDemo_Help_Help,
|
|
204
|
+
ID::HelpDemo_Html_Help_Help,
|
|
205
|
+
ID::HelpDemo_Advanced_Html_Help_Help,
|
|
206
|
+
ID::HelpDemo_MS_Html_Help_Help,
|
|
207
|
+
ID::HelpDemo_Best_Help_Help
|
|
208
|
+
helpController.display_section(3)
|
|
209
|
+
#helpController.display_section("About"); # An alternative form for most controllers
|
|
210
|
+
|
|
211
|
+
when ID::HelpDemo_Help_Search,
|
|
212
|
+
ID::HelpDemo_Html_Help_Search,
|
|
213
|
+
ID::HelpDemo_Advanced_Html_Help_Search,
|
|
214
|
+
ID::HelpDemo_MS_Html_Help_Search,
|
|
215
|
+
ID::HelpDemo_Best_Help_Search
|
|
216
|
+
key = Wx.get_text_from_user("Search for?",
|
|
217
|
+
"Search help for keyword",
|
|
218
|
+
'',
|
|
219
|
+
self)
|
|
220
|
+
helpController.keyword_search(key) unless key.empty?
|
|
221
|
+
|
|
222
|
+
when ID::HelpDemo_Help_Index,
|
|
223
|
+
ID::HelpDemo_Html_Help_Index,
|
|
224
|
+
ID::HelpDemo_Advanced_Html_Help_Index,
|
|
225
|
+
ID::HelpDemo_MS_Html_Help_Index,
|
|
226
|
+
ID::HelpDemo_Best_Help_Index
|
|
227
|
+
helpController.display_contents
|
|
228
|
+
|
|
229
|
+
# These three calls are only used by wxExtHelpController
|
|
230
|
+
|
|
231
|
+
when ID::HelpDemo_Help_KDE
|
|
232
|
+
helpController.set_viewer("kdehelp")
|
|
233
|
+
when ID::HelpDemo_Help_GNOME
|
|
234
|
+
helpController.set_viewer("gnome-help-browser")
|
|
235
|
+
when ID::HelpDemo_Help_Netscape
|
|
236
|
+
helpController.set_viewer("netscape", Wx::HELP_NETSCAPE)
|
|
237
|
+
else
|
|
238
|
+
#
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
# A custom modal dialog
|
|
245
|
+
class MyModalDialog < Wx::Dialog
|
|
246
|
+
def initialize(parent)
|
|
247
|
+
super(parent, Wx::ID_ANY, 'Modal Dialog')
|
|
248
|
+
|
|
249
|
+
# Add the context-sensitive help button on the caption for the platforms
|
|
250
|
+
# which support it (currently MSW only)
|
|
251
|
+
set_extra_style(Wx::DIALOG_EX_CONTEXTHELP)
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
sizerTop = Wx::VBoxSizer.new
|
|
255
|
+
sizerRow = Wx::HBoxSizer.new
|
|
256
|
+
|
|
257
|
+
btnOK = Wx::Button.new(self, Wx::ID_OK, "&OK")
|
|
258
|
+
btnOK.set_help_text("The OK button confirms the dialog choices.")
|
|
259
|
+
|
|
260
|
+
btnCancel = Wx::Button.new(self, Wx::ID_CANCEL, "&Cancel")
|
|
261
|
+
btnCancel.set_help_text("The Cancel button cancels the dialog.")
|
|
262
|
+
|
|
263
|
+
sizerRow.add(btnOK, 0, Wx::ALIGN_CENTER | Wx::ALL, 5)
|
|
264
|
+
sizerRow.add(btnCancel, 0, Wx::ALIGN_CENTER | Wx::ALL, 5)
|
|
265
|
+
|
|
266
|
+
# Add explicit context-sensitive help button for non-MSW
|
|
267
|
+
unless Wx::PLATFORM == 'WXMSW'
|
|
268
|
+
sizerRow.add(Wx::ContextHelpButton.new(self), 0, Wx::ALIGN_CENTER | Wx::ALL, 5)
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
text = Wx::TextCtrl.new(self, value: "A demo text control",
|
|
272
|
+
size: [300, 100],
|
|
273
|
+
style: Wx::TE_MULTILINE)
|
|
274
|
+
text.set_help_text("Type text here if you have got nothing more interesting to do")
|
|
275
|
+
sizerTop.add(text, 0, Wx::EXPAND|Wx::ALL, 5 )
|
|
276
|
+
sizerTop.add(sizerRow, 0, Wx::ALIGN_RIGHT|Wx::ALL, 5 )
|
|
277
|
+
|
|
278
|
+
set_sizer_and_fit(sizerTop)
|
|
279
|
+
|
|
280
|
+
btnOK.set_focus
|
|
281
|
+
btnOK.set_default
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
class App < Wx::App
|
|
286
|
+
def on_init
|
|
287
|
+
# Create a simple help provider to make SetHelpText() do something.
|
|
288
|
+
# Note that this must be set before any SetHelpText() calls are made.
|
|
289
|
+
provider = USE_SIMPLE_HELP_PROVIDER ? Wx::SimpleHelpProvider.new : Wx::HelpControllerHelpProvider.new
|
|
290
|
+
Wx::HelpProvider.set(provider)
|
|
291
|
+
|
|
292
|
+
# Required for advanced HTML help
|
|
293
|
+
if Wx.has_feature?(:USE_STREAMS) && Wx.has_feature?(:USE_ZIPSTREAM) && Wx.has_feature?(:USE_ZLIB)
|
|
294
|
+
Wx::FileSystem.add_handler(Wx::ArchiveFSHandler.new)
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
# Create the main application window
|
|
298
|
+
frame = MyFrame.new("HelpDemo wxWidgets App",
|
|
299
|
+
[50, 50], [600, 400])
|
|
300
|
+
|
|
301
|
+
unless USE_SIMPLE_HELP_PROVIDER
|
|
302
|
+
provider.set_help_controller(frame.get_help_controller)
|
|
303
|
+
end # !USE_SIMPLE_HELP_PROVIDER
|
|
304
|
+
|
|
305
|
+
frame.show(true)
|
|
306
|
+
|
|
307
|
+
# initialize the help system: this means that we'll use doc.hlp file under
|
|
308
|
+
# Windows and that the HTML docs are in the subdirectory doc for platforms
|
|
309
|
+
# using HTML help
|
|
310
|
+
unless frame.get_help_controller.init(File.join(__dir__, 'doc'))
|
|
311
|
+
Wx.log_error("Cannot initialize the help system, aborting.")
|
|
312
|
+
# return false
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
# initialize the advanced HTML help system: this means that the HTML docs are in .htb
|
|
316
|
+
# (zipped) form
|
|
317
|
+
unless frame.get_advanced_html_help_controller.init(File.join(__dir__, 'doc'))
|
|
318
|
+
Wx.log_error("Cannot initialize the advanced HTML help system, aborting.")
|
|
319
|
+
# return false
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
true
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
def on_exit
|
|
326
|
+
Wx::HelpProvider.set(nil)
|
|
327
|
+
0
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
module HelpSample
|
|
335
|
+
|
|
336
|
+
include WxRuby::Sample if defined? WxRuby::Sample
|
|
337
|
+
|
|
338
|
+
def self.describe
|
|
339
|
+
{ file: __FILE__,
|
|
340
|
+
summary: 'wxRuby Help example.',
|
|
341
|
+
description: 'wxRuby example showcasing the use of Wx::HelpController.' }
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
def self.run
|
|
345
|
+
execute(__FILE__)
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
if $0 == __FILE__
|
|
349
|
+
Help::App.run
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<head>
|
|
2
|
+
<title>Advanced Handler Sample</title>
|
|
3
|
+
|
|
4
|
+
<style>
|
|
5
|
+
.mono {
|
|
6
|
+
font-family: monospace;
|
|
7
|
+
}
|
|
8
|
+
</style>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
function sendRequest() {
|
|
12
|
+
let url = document.getElementById("request_url").value;
|
|
13
|
+
let request_content_type = document.getElementById("request_content_type").value;
|
|
14
|
+
let request_data = document.getElementById("request_data").value;
|
|
15
|
+
console.log("clicked");
|
|
16
|
+
|
|
17
|
+
const req = new XMLHttpRequest();
|
|
18
|
+
req.addEventListener("load", (ev) => {
|
|
19
|
+
document.getElementById("response_response").value = req.responseText;
|
|
20
|
+
});
|
|
21
|
+
req.open("POST", url);
|
|
22
|
+
req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
23
|
+
req.send(request_data);
|
|
24
|
+
}
|
|
25
|
+
</script>
|
|
26
|
+
</head>
|
|
27
|
+
|
|
28
|
+
<body>
|
|
29
|
+
<p>
|
|
30
|
+
This sample demonstrates how to use <i>Wx::WebViewHandler::start_request()</i>
|
|
31
|
+
to enable advanced requests from html and javascript in the web view.
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
Request URL<br />
|
|
35
|
+
<input id="request_url" size="40" value=""><br />
|
|
36
|
+
Request content type<br />
|
|
37
|
+
<input id="request_content_type" size="40" value="application/json"><br />
|
|
38
|
+
Request Data<br />
|
|
39
|
+
<textarea class="mono" cols="60" rows="8" id="request_data">{ param1: "wxwidgets", param2: "webview" }</textarea>
|
|
40
|
+
<br />
|
|
41
|
+
<button onclick="sendRequest()">Start request</button><br />
|
|
42
|
+
Response Data<br />
|
|
43
|
+
<textarea class="mono" cols="60" rows="8" id="response_response"></textarea>
|
|
44
|
+
|
|
45
|
+
<script>
|
|
46
|
+
// init request_url
|
|
47
|
+
let postURL;
|
|
48
|
+
if (navigator.userAgent.indexOf("Edg") > 0)
|
|
49
|
+
postURL = "https://wxpost.wxsite//main/test/1";
|
|
50
|
+
else
|
|
51
|
+
postURL = "wxpost://main/test/1";
|
|
52
|
+
|
|
53
|
+
document.getElementById("request_url").value = postURL;
|
|
54
|
+
</script>
|
|
55
|
+
</body>
|
|
Binary file
|