├── mff ├── Classes.bas ├── mff.bas ├── fbsound │ ├── fbsound.bas │ ├── plug-cdtor.bi │ ├── csid.bi │ ├── plug-ds.bi │ ├── plug.bi │ └── plug-static.bi ├── gir_headers │ ├── Gir │ │ ├── _GirToBac-0.0 │ │ ├── xfixes-4.0.bi │ │ ├── win32-1.0.bi │ │ ├── JSCore-3.0.bi │ │ ├── fontconfig-2.0.bi │ │ ├── JavaScriptCore-3.0.bi │ │ ├── freetype2-2.0.bi │ │ ├── xft-2.0.bi │ │ ├── libxml2-2.0.bi │ │ ├── DBus-1.0.bi │ │ ├── xrandr-1.3.bi │ │ ├── GL-1.0.bi │ │ ├── ReadMe.md │ │ ├── xlib-2.0.bi │ │ ├── DBusGLib-1.0.bi │ │ ├── _GdkMacros-2.0.bi │ │ └── GModule-2.0.bi │ ├── .gitattributes │ └── .gitignore ├── Integer.bi ├── Integer.bas ├── Android │ ├── mffEditText.java │ └── mffActivity.java ├── Sys.bi ├── Classes.bi ├── SystemInformation.bi ├── Manifest.xml ├── DarkMode │ └── DarkMode.bi ├── GUI.bi ├── Registry.bi ├── NativeFontControl.bi ├── UserControl.bi ├── CDropSource │ └── CDropSource.bi ├── WebView │ └── WebKitWebView.bi ├── Clipboard.bi ├── HTTP.bi └── ToolTips.bi ├── .gitattributes ├── .gitignore ├── examples ├── WebBrowser │ ├── mongoose │ │ ├── certs │ │ │ ├── ca.srl │ │ │ ├── ca.key │ │ │ ├── client.key │ │ │ ├── server.key │ │ │ ├── client.csr │ │ │ ├── server.csr │ │ │ ├── ca.crt │ │ │ ├── client.crt │ │ │ ├── server.crt │ │ │ └── generate.sh │ │ ├── client.bas │ │ ├── webui-login │ │ │ └── web_root │ │ │ │ ├── user.png │ │ │ │ └── index.html │ │ ├── websocket-client.bas │ │ ├── web_root │ │ │ ├── rpc-over-websocket.js │ │ │ └── index.html │ │ ├── websocket-server.bas │ │ └── udp-sntp-time-sync.bas │ ├── WebView2Loader.dll │ ├── WebView2Loader.dll.lib │ ├── Release │ │ ├── win-x64 │ │ │ └── WebView2Loader.dll │ │ ├── win-x86 │ │ │ └── WebView2Loader.dll │ │ └── win-arm64 │ │ │ └── WebView2Loader.dll │ └── Curl │ │ ├── Curl for Windows(64-bit).url │ │ ├── Curl for Windows(32-bit).url │ │ └── Curl for Windows(Arm64).url ├── Resources │ ├── Dog.gif │ ├── Lisu.ttf │ ├── Wheel.png │ ├── coin.wav │ ├── horse.avi │ ├── horse.gif │ ├── sound.wav │ ├── weird.wav │ ├── Circle.gif │ ├── country.mp3 │ ├── mini1111.xm │ ├── spring.wav │ ├── target.flac │ ├── target.ogg │ ├── background.png │ ├── welcome2.gif │ ├── Circle_Arrow.gif │ ├── Circle_Ball.gif │ ├── Circle_Blue.gif │ ├── Circle_Gray.gif │ ├── Circle_Green.gif │ ├── Piece_Nature.png │ ├── VisualFBEditor.ico │ └── LICENSE.md ├── GridData │ ├── Data │ │ └── Test.db │ └── frmGridDataTest.vfp ├── Hello │ ├── VisualFBEditor.ico │ └── Manifest.xml ├── Forms │ ├── MDIForm │ │ ├── Resources │ │ │ ├── Cut.png │ │ │ ├── New.png │ │ │ ├── About.png │ │ │ ├── Exit.png │ │ │ ├── File.png │ │ │ ├── Open.png │ │ │ ├── Paste.png │ │ │ ├── Save.png │ │ │ └── SaveAll.png │ │ ├── VisualFBEditor.ico │ │ ├── MDIForm.vfp │ │ └── Manifest.xml │ ├── SDIForm │ │ ├── Resources │ │ │ ├── Cut.png │ │ │ ├── New.png │ │ │ ├── About.png │ │ │ ├── Exit.png │ │ │ ├── File.png │ │ │ ├── Open.png │ │ │ ├── Paste.png │ │ │ ├── Save.png │ │ │ └── SaveAll.png │ │ ├── VisualFBEditor.ico │ │ ├── SDIForm.vfp │ │ └── Manifest.xml │ ├── Form4.frm │ └── Manifest.xml ├── Print │ └── Languages │ │ ├── english.lng │ │ ├── Chinese (Simplified).lng │ │ └── english.html ├── Animate │ ├── Media │ │ ├── PlayList.txt │ │ ├── fbsound │ │ │ ├── Languages │ │ │ │ ├── english.lng │ │ │ │ ├── Chinese (Simplified).lng │ │ │ │ └── english.html │ │ │ ├── oop_test01.bas │ │ │ ├── oop_test02.bas │ │ │ ├── oop_test04.bas │ │ │ ├── oop_test03.bas │ │ │ ├── fbs_load_xm.bas │ │ │ ├── fbs_load_it.bas │ │ │ ├── fbs_play_mp3_stream.bas │ │ │ ├── fbs_load_s3m.bas │ │ │ ├── fbs_load_mod.bas │ │ │ ├── fbs_init_44_22_khz.bas │ │ │ ├── fbs_load_and_reloading_mp3stream.bas │ │ │ ├── fbs_get_soundposition.bas │ │ │ ├── fbs_load_and_destroy_wav.bas │ │ │ ├── fbs_load_oggfile.bas │ │ │ ├── fbs_set_loadcallback_mp3.bas │ │ │ ├── fbs_pause_rewind_sound.bas │ │ │ ├── fbs_load_and_play_wav.bas │ │ │ ├── tests-common.bi │ │ │ ├── fbs_set_loadcallback_mod.bas │ │ │ ├── fbs_set_loadcallback_ogg.bas │ │ │ ├── fbs_set_get_pointers.bas │ │ │ ├── fbs_set_masterfilter.bas │ │ │ ├── fbs_get_length.bas │ │ │ ├── fbs_stream_sid_preview.bas │ │ │ ├── fbs_create_wave.bas │ │ │ ├── fbs_play_sid_stream.bas │ │ │ └── fbs_set_soundspeed.bas │ │ ├── Languages │ │ │ ├── Chinese (Simplified).lng │ │ │ └── english.html │ │ └── Manifest.xml │ └── Languages │ │ ├── Chinese (Simplified).lng │ │ └── english.html ├── Canvas │ ├── Chinese (Simplified).lng │ ├── english.html │ └── Manifest.xml ├── SoundPlayer │ ├── fbsound │ │ ├── oop_test01.bas │ │ ├── oop_test01_Static.bas │ │ ├── oop_test04.bas │ │ ├── oop_test03.bas │ │ ├── oop_test02.bas │ │ ├── fbs_load_it.bas │ │ ├── fbs_load_xm.bas │ │ ├── fbs_play_mp3_stream.bas │ │ ├── fbs_load_s3m.bas │ │ ├── fbs_load_mod.bas │ │ ├── fbs_init_44_22_khz.bas │ │ ├── fbs_load_and_reloading_mp3stream.bas │ │ ├── buildlib-32 - -static .bat │ │ ├── buildlib-32.bat │ │ ├── fbs_get_soundposition.bas │ │ ├── buildlib-64 - -static .bat │ │ ├── buildlib-64.bat │ │ ├── fbs_load_and_destroy_wav.bas │ │ ├── fbs_load_oggfile.bas │ │ ├── fbs_set_loadcallback_mp3.bas │ │ ├── fbs_pause_rewind_sound.bas │ │ ├── tests-common.bi │ │ ├── fbs_load_and_play_wav.bas │ │ ├── fbs_set_loadcallback_mod.bas │ │ ├── fbs_set_loadcallback_ogg.bas │ │ ├── fbs_set_get_pointers.bas │ │ ├── fbs_set_masterfilter.bas │ │ ├── fbs_get_length.bas │ │ ├── fbs_stream_sid_preview.bas │ │ ├── fbs_create_wave.bas │ │ ├── fbs_play_sid_stream.bas │ │ └── fbs_set_soundspeed.bas │ └── SoundPlayer Example.bas ├── Hello.bas ├── Grid │ └── Languages │ │ ├── english.lng │ │ └── Chinese (Simplified).lng ├── ListView │ └── ListView Example.bas ├── mff │ └── Manifest.xml ├── NotifyIcon │ └── Manifest.xml └── PageScroller │ └── Manifest.xml ├── resources ├── Form.png ├── Grid.png ├── Chart.png ├── Header.png ├── HotKey.png ├── Label.png ├── Panel.png ├── ReBar.png ├── UpDown.png ├── Animate.png ├── CheckBox.png ├── GridData.png ├── GroupBox.png ├── IPAddress.png ├── ImageBox.png ├── ImageList.png ├── LinkLabel.png ├── ListView.png ├── MainMenu.png ├── Picture.png ├── Printer.png ├── Splitter.png ├── StatusBar.png ├── TabPage.png ├── TextBox.png ├── ToolBar.png ├── ToolTips.png ├── TrackBar.png ├── TreeView.png ├── ColorDialog.png ├── ComboBoxEx.png ├── ContextMenu.png ├── FontDialog.png ├── HScrollBar.png ├── HTTPServer.png ├── ListControl.png ├── MaskedEdit.png ├── NotifyIcon.png ├── PrintDialog.png ├── ProgressBar.png ├── RadioButton.png ├── RichTextBox.png ├── TabControl.png ├── ToolPalette.png ├── UserControl.png ├── VScrollBar.png ├── VerticalBox.png ├── WebBrowser.png ├── CheckedListBox.png ├── ComboBoxEdit.png ├── CommandButton.png ├── DateTimePicker.png ├── HTTPConnection.png ├── HorizontalBox.png ├── MonthCalendar.png ├── NumericUpDown.png ├── OpenFileDialog.png ├── PageScroller.png ├── PrintDocument.png ├── SaveFileDialog.png ├── ScrollControl.png ├── TimerComponent.png ├── OpenFileControl.png ├── PageSetupDialog.png ├── FolderBrowserDialog.png ├── PrintPreviewControl.png └── PrintPreviewDialog.png ├── lib ├── win-x64 │ ├── libmad.a │ ├── libCHttp.a │ ├── libcjson.a │ ├── libcurl.a │ ├── libdumb.a │ ├── libfbscpu.a │ ├── libfbsdsp.a │ ├── libraylib.a │ ├── libvorbis.a │ ├── libwebp.a │ ├── cairo-x64.dll │ ├── libcurl.dll.a │ ├── libmbedtls.a │ ├── libmbedx509.a │ ├── libmongoose.a │ ├── libsqlite3.a │ ├── libwebpmux.a │ ├── WebView2Guid.lib │ ├── libcjson_utils.a │ ├── libcurl-x64.dll │ ├── libmbedcrypto.a │ ├── libvorbisenc.a │ ├── libvorbisfile.a │ ├── libwebpdecoder.a │ ├── libwebpdemux.a │ ├── WebView2Loader.dll.lib │ └── WebView2LoaderStatic.lib ├── win-x86 │ ├── libmad.a │ ├── libCHttp.a │ ├── libcjson.a │ ├── libcurl.a │ ├── libcurl.dll │ ├── libdumb.a │ ├── libfbscpu.a │ ├── libfbsdsp.a │ ├── libraylib.a │ ├── libvorbis.a │ ├── cairo-x86.dll │ ├── libcurl.dll.a │ ├── libmbedtls.a │ ├── libmbedx509.a │ ├── libmongoose.a │ ├── libsqlite3.a │ ├── WebView2Guid.lib │ ├── libcjson_utils.a │ ├── libdispHelper.a │ ├── libmbedcrypto.a │ ├── libqrcodegen.a │ ├── libvorbisenc.a │ ├── libvorbisfile.a │ ├── WebView2Loader.dll.lib │ └── WebView2LoaderStatic.lib └── win-arm64 │ ├── WebView2Loader.dll.lib │ └── WebView2LoaderStatic.lib ├── help ├── MyFbFramework.chm └── MyFbFramework.chw ├── .github ├── workflows │ ├── windows.yml │ ├── linux.yml │ ├── windows.bat │ ├── linux.sh │ └── main.yml └── FUNDING.yml ├── README.md ├── Settings.ini ├── COPYING.modifiedLGPL.txt └── .vscode ├── launch.json └── tasks.json /mff/Classes.bas: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.rc -crlf 2 | -------------------------------------------------------------------------------- /mff/mff.bas: -------------------------------------------------------------------------------- 1 | #include once "mff.bi" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *_gtk* 2 | *.o 3 | MyFbFramework.wiki 4 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/ca.srl: -------------------------------------------------------------------------------- 1 | 96EAA481EB95FF36 2 | -------------------------------------------------------------------------------- /resources/Form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Form.png -------------------------------------------------------------------------------- /resources/Grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Grid.png -------------------------------------------------------------------------------- /lib/win-x64/libmad.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libmad.a -------------------------------------------------------------------------------- /lib/win-x86/libmad.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libmad.a -------------------------------------------------------------------------------- /resources/Chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Chart.png -------------------------------------------------------------------------------- /resources/Header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Header.png -------------------------------------------------------------------------------- /resources/HotKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/HotKey.png -------------------------------------------------------------------------------- /resources/Label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Label.png -------------------------------------------------------------------------------- /resources/Panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Panel.png -------------------------------------------------------------------------------- /resources/ReBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ReBar.png -------------------------------------------------------------------------------- /resources/UpDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/UpDown.png -------------------------------------------------------------------------------- /help/MyFbFramework.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/help/MyFbFramework.chm -------------------------------------------------------------------------------- /help/MyFbFramework.chw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/help/MyFbFramework.chw -------------------------------------------------------------------------------- /lib/win-x64/libCHttp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libCHttp.a -------------------------------------------------------------------------------- /lib/win-x64/libcjson.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libcjson.a -------------------------------------------------------------------------------- /lib/win-x64/libcurl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libcurl.a -------------------------------------------------------------------------------- /lib/win-x64/libdumb.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libdumb.a -------------------------------------------------------------------------------- /lib/win-x64/libfbscpu.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libfbscpu.a -------------------------------------------------------------------------------- /lib/win-x64/libfbsdsp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libfbsdsp.a -------------------------------------------------------------------------------- /lib/win-x64/libraylib.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libraylib.a -------------------------------------------------------------------------------- /lib/win-x64/libvorbis.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libvorbis.a -------------------------------------------------------------------------------- /lib/win-x64/libwebp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libwebp.a -------------------------------------------------------------------------------- /lib/win-x86/libCHttp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libCHttp.a -------------------------------------------------------------------------------- /lib/win-x86/libcjson.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libcjson.a -------------------------------------------------------------------------------- /lib/win-x86/libcurl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libcurl.a -------------------------------------------------------------------------------- /lib/win-x86/libcurl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libcurl.dll -------------------------------------------------------------------------------- /lib/win-x86/libdumb.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libdumb.a -------------------------------------------------------------------------------- /lib/win-x86/libfbscpu.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libfbscpu.a -------------------------------------------------------------------------------- /lib/win-x86/libfbsdsp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libfbsdsp.a -------------------------------------------------------------------------------- /lib/win-x86/libraylib.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libraylib.a -------------------------------------------------------------------------------- /lib/win-x86/libvorbis.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libvorbis.a -------------------------------------------------------------------------------- /mff/fbsound/fbsound.bas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/mff/fbsound/fbsound.bas -------------------------------------------------------------------------------- /resources/Animate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Animate.png -------------------------------------------------------------------------------- /resources/CheckBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/CheckBox.png -------------------------------------------------------------------------------- /resources/GridData.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/GridData.png -------------------------------------------------------------------------------- /resources/GroupBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/GroupBox.png -------------------------------------------------------------------------------- /resources/IPAddress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/IPAddress.png -------------------------------------------------------------------------------- /resources/ImageBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ImageBox.png -------------------------------------------------------------------------------- /resources/ImageList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ImageList.png -------------------------------------------------------------------------------- /resources/LinkLabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/LinkLabel.png -------------------------------------------------------------------------------- /resources/ListView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ListView.png -------------------------------------------------------------------------------- /resources/MainMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/MainMenu.png -------------------------------------------------------------------------------- /resources/Picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Picture.png -------------------------------------------------------------------------------- /resources/Printer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Printer.png -------------------------------------------------------------------------------- /resources/Splitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/Splitter.png -------------------------------------------------------------------------------- /resources/StatusBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/StatusBar.png -------------------------------------------------------------------------------- /resources/TabPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/TabPage.png -------------------------------------------------------------------------------- /resources/TextBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/TextBox.png -------------------------------------------------------------------------------- /resources/ToolBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ToolBar.png -------------------------------------------------------------------------------- /resources/ToolTips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ToolTips.png -------------------------------------------------------------------------------- /resources/TrackBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/TrackBar.png -------------------------------------------------------------------------------- /resources/TreeView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/TreeView.png -------------------------------------------------------------------------------- /lib/win-x64/cairo-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/cairo-x64.dll -------------------------------------------------------------------------------- /lib/win-x64/libcurl.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libcurl.dll.a -------------------------------------------------------------------------------- /lib/win-x64/libmbedtls.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libmbedtls.a -------------------------------------------------------------------------------- /lib/win-x64/libmbedx509.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libmbedx509.a -------------------------------------------------------------------------------- /lib/win-x64/libmongoose.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libmongoose.a -------------------------------------------------------------------------------- /lib/win-x64/libsqlite3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libsqlite3.a -------------------------------------------------------------------------------- /lib/win-x64/libwebpmux.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libwebpmux.a -------------------------------------------------------------------------------- /lib/win-x86/cairo-x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/cairo-x86.dll -------------------------------------------------------------------------------- /lib/win-x86/libcurl.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libcurl.dll.a -------------------------------------------------------------------------------- /lib/win-x86/libmbedtls.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libmbedtls.a -------------------------------------------------------------------------------- /lib/win-x86/libmbedx509.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libmbedx509.a -------------------------------------------------------------------------------- /lib/win-x86/libmongoose.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libmongoose.a -------------------------------------------------------------------------------- /lib/win-x86/libsqlite3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libsqlite3.a -------------------------------------------------------------------------------- /resources/ColorDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ColorDialog.png -------------------------------------------------------------------------------- /resources/ComboBoxEx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ComboBoxEx.png -------------------------------------------------------------------------------- /resources/ContextMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ContextMenu.png -------------------------------------------------------------------------------- /resources/FontDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/FontDialog.png -------------------------------------------------------------------------------- /resources/HScrollBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/HScrollBar.png -------------------------------------------------------------------------------- /resources/HTTPServer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/HTTPServer.png -------------------------------------------------------------------------------- /resources/ListControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ListControl.png -------------------------------------------------------------------------------- /resources/MaskedEdit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/MaskedEdit.png -------------------------------------------------------------------------------- /resources/NotifyIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/NotifyIcon.png -------------------------------------------------------------------------------- /resources/PrintDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/PrintDialog.png -------------------------------------------------------------------------------- /resources/ProgressBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ProgressBar.png -------------------------------------------------------------------------------- /resources/RadioButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/RadioButton.png -------------------------------------------------------------------------------- /resources/RichTextBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/RichTextBox.png -------------------------------------------------------------------------------- /resources/TabControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/TabControl.png -------------------------------------------------------------------------------- /resources/ToolPalette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ToolPalette.png -------------------------------------------------------------------------------- /resources/UserControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/UserControl.png -------------------------------------------------------------------------------- /resources/VScrollBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/VScrollBar.png -------------------------------------------------------------------------------- /resources/VerticalBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/VerticalBox.png -------------------------------------------------------------------------------- /resources/WebBrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/WebBrowser.png -------------------------------------------------------------------------------- /examples/Resources/Dog.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Dog.gif -------------------------------------------------------------------------------- /examples/Resources/Lisu.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Lisu.ttf -------------------------------------------------------------------------------- /examples/Resources/Wheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Wheel.png -------------------------------------------------------------------------------- /examples/Resources/coin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/coin.wav -------------------------------------------------------------------------------- /examples/Resources/horse.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/horse.avi -------------------------------------------------------------------------------- /examples/Resources/horse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/horse.gif -------------------------------------------------------------------------------- /examples/Resources/sound.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/sound.wav -------------------------------------------------------------------------------- /examples/Resources/weird.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/weird.wav -------------------------------------------------------------------------------- /lib/win-x64/WebView2Guid.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/WebView2Guid.lib -------------------------------------------------------------------------------- /lib/win-x64/libcjson_utils.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libcjson_utils.a -------------------------------------------------------------------------------- /lib/win-x64/libcurl-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libcurl-x64.dll -------------------------------------------------------------------------------- /lib/win-x64/libmbedcrypto.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libmbedcrypto.a -------------------------------------------------------------------------------- /lib/win-x64/libvorbisenc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libvorbisenc.a -------------------------------------------------------------------------------- /lib/win-x64/libvorbisfile.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libvorbisfile.a -------------------------------------------------------------------------------- /lib/win-x64/libwebpdecoder.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libwebpdecoder.a -------------------------------------------------------------------------------- /lib/win-x64/libwebpdemux.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/libwebpdemux.a -------------------------------------------------------------------------------- /lib/win-x86/WebView2Guid.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/WebView2Guid.lib -------------------------------------------------------------------------------- /lib/win-x86/libcjson_utils.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libcjson_utils.a -------------------------------------------------------------------------------- /lib/win-x86/libdispHelper.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libdispHelper.a -------------------------------------------------------------------------------- /lib/win-x86/libmbedcrypto.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libmbedcrypto.a -------------------------------------------------------------------------------- /lib/win-x86/libqrcodegen.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libqrcodegen.a -------------------------------------------------------------------------------- /lib/win-x86/libvorbisenc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libvorbisenc.a -------------------------------------------------------------------------------- /lib/win-x86/libvorbisfile.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/libvorbisfile.a -------------------------------------------------------------------------------- /resources/CheckedListBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/CheckedListBox.png -------------------------------------------------------------------------------- /resources/ComboBoxEdit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ComboBoxEdit.png -------------------------------------------------------------------------------- /resources/CommandButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/CommandButton.png -------------------------------------------------------------------------------- /resources/DateTimePicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/DateTimePicker.png -------------------------------------------------------------------------------- /resources/HTTPConnection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/HTTPConnection.png -------------------------------------------------------------------------------- /resources/HorizontalBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/HorizontalBox.png -------------------------------------------------------------------------------- /resources/MonthCalendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/MonthCalendar.png -------------------------------------------------------------------------------- /resources/NumericUpDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/NumericUpDown.png -------------------------------------------------------------------------------- /resources/OpenFileDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/OpenFileDialog.png -------------------------------------------------------------------------------- /resources/PageScroller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/PageScroller.png -------------------------------------------------------------------------------- /resources/PrintDocument.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/PrintDocument.png -------------------------------------------------------------------------------- /resources/SaveFileDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/SaveFileDialog.png -------------------------------------------------------------------------------- /resources/ScrollControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/ScrollControl.png -------------------------------------------------------------------------------- /resources/TimerComponent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/TimerComponent.png -------------------------------------------------------------------------------- /examples/GridData/Data/Test.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/GridData/Data/Test.db -------------------------------------------------------------------------------- /examples/Resources/Circle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Circle.gif -------------------------------------------------------------------------------- /examples/Resources/country.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/country.mp3 -------------------------------------------------------------------------------- /examples/Resources/mini1111.xm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/mini1111.xm -------------------------------------------------------------------------------- /examples/Resources/spring.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/spring.wav -------------------------------------------------------------------------------- /examples/Resources/target.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/target.flac -------------------------------------------------------------------------------- /examples/Resources/target.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/target.ogg -------------------------------------------------------------------------------- /resources/OpenFileControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/OpenFileControl.png -------------------------------------------------------------------------------- /resources/PageSetupDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/PageSetupDialog.png -------------------------------------------------------------------------------- /examples/Hello/VisualFBEditor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Hello/VisualFBEditor.ico -------------------------------------------------------------------------------- /examples/Resources/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/background.png -------------------------------------------------------------------------------- /examples/Resources/welcome2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/welcome2.gif -------------------------------------------------------------------------------- /mff/gir_headers/Gir/_GirToBac-0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/mff/gir_headers/Gir/_GirToBac-0.0 -------------------------------------------------------------------------------- /resources/FolderBrowserDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/FolderBrowserDialog.png -------------------------------------------------------------------------------- /resources/PrintPreviewControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/PrintPreviewControl.png -------------------------------------------------------------------------------- /resources/PrintPreviewDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/resources/PrintPreviewDialog.png -------------------------------------------------------------------------------- /examples/Resources/Circle_Arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Circle_Arrow.gif -------------------------------------------------------------------------------- /examples/Resources/Circle_Ball.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Circle_Ball.gif -------------------------------------------------------------------------------- /examples/Resources/Circle_Blue.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Circle_Blue.gif -------------------------------------------------------------------------------- /examples/Resources/Circle_Gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Circle_Gray.gif -------------------------------------------------------------------------------- /examples/Resources/Circle_Green.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Circle_Green.gif -------------------------------------------------------------------------------- /examples/Resources/Piece_Nature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/Piece_Nature.png -------------------------------------------------------------------------------- /lib/win-x64/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /lib/win-x86/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /mff/gir_headers/.gitattributes: -------------------------------------------------------------------------------- 1 | *.bas linguist-language=FreeBasic 2 | *.bi linguist-language=FreeBasic 3 | *.md linguist-documentation 4 | -------------------------------------------------------------------------------- /examples/Resources/VisualFBEditor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Resources/VisualFBEditor.ico -------------------------------------------------------------------------------- /examples/WebBrowser/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/WebView2Loader.dll -------------------------------------------------------------------------------- /lib/win-arm64/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-arm64/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /lib/win-arm64/WebView2LoaderStatic.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-arm64/WebView2LoaderStatic.lib -------------------------------------------------------------------------------- /lib/win-x64/WebView2LoaderStatic.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x64/WebView2LoaderStatic.lib -------------------------------------------------------------------------------- /lib/win-x86/WebView2LoaderStatic.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/lib/win-x86/WebView2LoaderStatic.lib -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/Cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/Cut.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/New.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/New.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/Cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/Cut.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/New.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/New.png -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/client.bas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/mongoose/client.bas -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/About.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/About.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/Exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/Exit.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/File.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/File.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/Open.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/Paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/Paste.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/Save.png -------------------------------------------------------------------------------- /examples/Forms/MDIForm/VisualFBEditor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/VisualFBEditor.ico -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/About.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/About.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/Exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/Exit.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/File.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/File.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/Open.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/Paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/Paste.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/Save.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/VisualFBEditor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/VisualFBEditor.ico -------------------------------------------------------------------------------- /examples/WebBrowser/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Resources/SaveAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/MDIForm/Resources/SaveAll.png -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Resources/SaveAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/Forms/SDIForm/Resources/SaveAll.png -------------------------------------------------------------------------------- /examples/WebBrowser/Release/win-x64/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/Release/win-x64/WebView2Loader.dll -------------------------------------------------------------------------------- /examples/WebBrowser/Release/win-x86/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/Release/win-x86/WebView2Loader.dll -------------------------------------------------------------------------------- /examples/Print/Languages/english.lng: -------------------------------------------------------------------------------- 1 | english 2 | [General] 3 | Fit to Window = 4 | Landscape = 5 | Portrait = 6 | Print = 7 | Print Preview = 8 | Show Print Preview Dialog = 9 | -------------------------------------------------------------------------------- /examples/WebBrowser/Release/win-arm64/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/Release/win-arm64/WebView2Loader.dll -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/webui-login/web_root/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XusinboyBekchanov/MyFbFramework/HEAD/examples/WebBrowser/mongoose/webui-login/web_root/user.png -------------------------------------------------------------------------------- /mff/Integer.bi: -------------------------------------------------------------------------------- 1 | Declare Function iGet(Value As Any Ptr) As Integer 2 | Declare Function _Abs(Value As Boolean) As Integer 3 | 4 | #ifndef __USE_MAKE__ 5 | #include once "Integer.bas" 6 | #endif 7 | -------------------------------------------------------------------------------- /examples/WebBrowser/Curl/Curl for Windows(64-bit).url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://curl.se/windows/latest.cgi?p=win64-mingw.zip 6 | -------------------------------------------------------------------------------- /examples/WebBrowser/Curl/Curl for Windows(32-bit).url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://curl.se/windows/latest.cgi?p=win32-mingw.zip 6 | HotKey=0 7 | -------------------------------------------------------------------------------- /examples/WebBrowser/Curl/Curl for Windows(Arm64).url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://curl.se/windows/latest.cgi?p=win64a-mingw.zip 6 | HotKey=0 7 | -------------------------------------------------------------------------------- /examples/Print/Languages/Chinese (Simplified).lng: -------------------------------------------------------------------------------- 1 | chinese 2 | [General] 3 | Fit to Window = 适应窗口 4 | Landscape = 横向 5 | Portrait = 纵向 6 | Print = 打印 7 | Print Preview = 打印预览 8 | Show Print Preview Dialog = 显示打印预览对话框 -------------------------------------------------------------------------------- /examples/Animate/Media/PlayList.txt: -------------------------------------------------------------------------------- 1 | ..\Resources\Circle_Gray.gif 2 | ..\Resources\Circle_Arrow.gif 3 | ..\Resources\Circle_Green.gif 4 | ..\Resources\Circle_Ball.gif 5 | ..\Resources\horse.gif 6 | ..\Resources\welcome2.gif 7 | 8 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/webui-login/web_root/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/ca.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIJqrhcIKC5dk0omuRJRnzCXdfxevxnabQEnOWlL6P6x1oAoGCCqGSM49 3 | AwEHoUQDQgAErj/vOk/6zlpxqRFYZX8WGfqYzGwpg2fr3Zz9K46MbncETEUAr+bJ 4 | UZQyuy8bnu+tbHb6sVq9DGukxRkzYHqbEQ== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIGzf9AgYx3RfhzMGwv5EWgzoQh/EDfFpieFgfpTisWbAoAoGCCqGSM49 3 | AwEHoUQDQgAElzVqc606GSUFQXSCQniMOI+N5Fd/KHoQyoWJ2jyQ05KqCqxLUk71 4 | 1hWOwcZ41IUpElgRJXKv4Oqoj06riQr1yw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAVdo8UAScxG7jiuNY2UZESNX/KPH8qJ0u0gOMMsAzYWoAoGCCqGSM49 3 | AwEHoUQDQgAEqN6BIhvgbk7ecmUcn8Da9Avkj/uDNERtqWJG9r/or26X4u9jR5Jl 4 | 4hf5Gx17YJkq5/z3k6ogPDPpoAYWIw1/sw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /examples/Canvas/Chinese (Simplified).lng: -------------------------------------------------------------------------------- 1 | chinese 2 | [General] 3 | Start Draw=开始绘画 4 | Cls=清屏 5 | Drawing with GDI+=使用GDI+绘制 6 | Transparent=透明 7 | CenterImage=背景居住 8 | Background=背景 9 | DoubleBuffered=使用双缓存 10 | Play = 开始 11 | Pause = 暂停 12 | change the FPS = 改变FPS 13 | Language: = 语言: -------------------------------------------------------------------------------- /mff/Integer.bas: -------------------------------------------------------------------------------- 1 | #include once "Integer.bi" 2 | 3 | Private Function iGet(Value As Any Ptr) As Integer 4 | If Value = 0 Then Return 0 Else Return *Cast(Integer Ptr, Value) 5 | End Function 6 | 7 | Private Function _Abs(Value As Boolean) As Integer 8 | Return Abs(CInt(Value)) 9 | End Function 10 | -------------------------------------------------------------------------------- /.github/workflows/windows.yml: -------------------------------------------------------------------------------- 1 | name: windows 2 | 3 | on: 4 | [push, pull_request] 5 | 6 | jobs: 7 | build: 8 | runs-on: windows-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | 12 | - name: Build 13 | working-directory: .github/workflows 14 | run: ./windows.bat 15 | -------------------------------------------------------------------------------- /mff/gir_headers/.gitignore: -------------------------------------------------------------------------------- 1 | $ cat .gitignore 2 | 3 | # Can ignore specific files 4 | Makefile 5 | info.txt 6 | cmake_install.cmake 7 | install_manifest.txt 8 | 9 | 10 | # Can also ignore all directories and files in a directory. 11 | 12 | input*/**/* 13 | gir-1.0*/**/* 14 | CMakeFiles/**/* 15 | _CPack*/**/* 16 | 17 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/Languages/english.lng: -------------------------------------------------------------------------------- 1 | english 2 | [General] 3 | Can not load file. = 4 | Channels = 5 | Channels Changed = 6 | File: = 7 | Normal playing = 8 | Play = 9 | play time: = 10 | seconds = 11 | Stop = 12 | Volume = 13 | Volume Changed = 14 | wait on end of playback ... = 15 | Waiting... = 16 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/client.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIHKMHMCAQAwETEPMA0GA1UEAwwGY2xpZW50MFkwEwYHKoZIzj0CAQYIKoZIzj0D 3 | AQcDQgAElzVqc606GSUFQXSCQniMOI+N5Fd/KHoQyoWJ2jyQ05KqCqxLUk711hWO 4 | wcZ41IUpElgRJXKv4Oqoj06riQr1y6AAMAoGCCqGSM49BAMCA0cAMEQCIH0SLqrh 5 | 1ieUh01dSUMJLVRDkrSsZu+Z/ZiYPaHNd1I0AiBKNu9sLEc4vtxwZJJvdwer3pbq 6 | Uw7jMwjwyuhZd2+eJA== 7 | -----END CERTIFICATE REQUEST----- 8 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/server.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIHMMHMCAQAwETEPMA0GA1UEAwwGc2VydmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0D 3 | AQcDQgAEqN6BIhvgbk7ecmUcn8Da9Avkj/uDNERtqWJG9r/or26X4u9jR5Jl4hf5 4 | Gx17YJkq5/z3k6ogPDPpoAYWIw1/s6AAMAoGCCqGSM49BAMCA0kAMEYCIQCOydOU 5 | +7sELXySq1CB66e2fVTpRUO/vET0SjcRc6jLigIhAMPTkWiALWIOvyVHA3dMQctr 6 | 72yTgPuMgEHTe7keZ32E 7 | -----END CERTIFICATE REQUEST----- 8 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/Languages/Chinese (Simplified).lng: -------------------------------------------------------------------------------- 1 | chinese 2 | [General] 3 | Can not load file. = 无法加载文件。 4 | Channels = 声道 5 | Channels Changed = 声道已更改 6 | File: = 文件: 7 | Normal playing = 正常播放 8 | Play = 播放 9 | play time: = 播放时间: 10 | seconds = 秒 11 | Stop = 停止 12 | Volume = 音量 13 | Volume Changed = 音量已更改 14 | wait on end of playback ... = 等待播放结束... 15 | Waiting... = 等待...... -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/oop_test01.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' Sound.Play([nLoops]) 8 | ' Samples.Length 9 | 10 | var Device = SoundDevice() 11 | var Samples = SampleBuffer("../data/jimi.mod") 12 | var Sound = SoundBuffer(Samples) 13 | Sound.Play 14 | print "play time: " & Samples.Length & " seconds" 15 | print "press any key ..." 16 | sleep 17 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/oop_test02.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' Sound.Volume 8 | 9 | var Device = SoundDevice() 10 | var Samples = SampleBuffer("../data/jimi.mod") 11 | var Sound = SoundBuffer(Samples) 12 | Sound.Volume = 0.8 13 | Sound.Play 14 | 15 | print "play time: " & Samples.Length & " seconds" 16 | print "press any key ..." 17 | sleep 18 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/oop_test01.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' Sound.Play([nLoops]) 8 | ' Samples.Length 9 | 10 | var Device = SoundDevice() 11 | var Samples = SampleBuffer("../data/jimi.mod") 12 | var Sound = SoundBuffer(Samples) 13 | Sound.Play 14 | print "play time: " & Samples.Length & " seconds" 15 | print "press any key ..." 16 | sleep 17 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/xfixes-4.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/xfixes-4.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _XserverRegion XserverRegion 8 | EXTERN "C" 9 | ' P_X 10 | 11 | ' P_3 12 | 13 | ' P_4 14 | 15 | END EXTERN 16 | 17 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBFTCBvAIJAMNTFtpfcq8NMAoGCCqGSM49BAMCMBMxETAPBgNVBAMMCE1vbmdv 3 | b3NlMB4XDTI0MDUwNzE0MzczNloXDTM0MDUwNTE0MzczNlowEzERMA8GA1UEAwwI 4 | TW9uZ29vc2UwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASuP+86T/rOWnGpEVhl 5 | fxYZ+pjMbCmDZ+vdnP0rjoxudwRMRQCv5slRlDK7Lxue761sdvqxWr0Ma6TFGTNg 6 | epsRMAoGCCqGSM49BAMCA0gAMEUCIQCwb2CxuAKm51s81S6BIoy1IcandXSohnqs 7 | us64BAA7QgIgGGtUrpkgFSS0oPBlCUG6YPHFVw42vTfpTC0ySwAS0M4= 8 | -----END CERTIFICATE----- 9 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/win32-1.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/win32-1.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS guint HWND 8 | TYPE AS gulong HICON 9 | TYPE AS gulong HGDIOBJ 10 | EXTERN "C" 11 | ' P_X 12 | 13 | ' P_3 14 | 15 | ' P_4 16 | 17 | END EXTERN 18 | 19 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/JSCore-3.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file ../../gir_headers/input/JSCore-3.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _JSGlobalContextRef JSGlobalContextRef 8 | TYPE AS _JSValueRef JSValueRef 9 | EXTERN "C" 10 | ' P_X 11 | 12 | ' P_3 13 | 14 | ' P_4 15 | 16 | END EXTERN 17 | 18 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/fontconfig-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/fontconfig-2.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _FcPattern FcPattern 8 | TYPE AS _FcCharSet FcCharSet 9 | EXTERN "C" 10 | ' P_X 11 | 12 | ' P_3 13 | 14 | ' P_4 15 | 16 | DECLARE SUB FcInit() 17 | END EXTERN 18 | 19 | -------------------------------------------------------------------------------- /examples/SoundPlayer/SoundPlayer Example.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | '#define FBSOUND_USE_DYNAMIC 3 | #define FBSOUND_USE_STATIC 4 | #include once "mff/SoundPlayer.bi" 5 | Dim As WString * 260 FileName 6 | FileName= "../Resources/" & "country.mp3" 7 | Var Sound2 = SoundPlayer(FileName) 8 | Sound2.Play 9 | Print "play time: " & Sound.Length & " seconds" 10 | Sleep(1000) 11 | Dim as SoundPlayer SoundPlayer1 12 | SoundPlayer1.LoadFile(FileName) 13 | SoundPlayer1.Play 14 | Print "press any key ..." 15 | Sleep(8000) 16 | End 17 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/JavaScriptCore-3.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file ../../gir_headers/input/JavaScriptCore-3.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _JSGlobalContextRef JSGlobalContextRef 8 | TYPE AS _JSValueRef JSValueRef 9 | EXTERN "C" 10 | ' P_X 11 | 12 | ' P_3 13 | 14 | ' P_4 15 | 16 | END EXTERN 17 | 18 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/oop_test04.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' device.volume 8 | 9 | var Device = SoundDevice() 10 | var Samples = SampleBuffer("../data/fox.mp3") 11 | var Sound = SoundBuffer(Samples) 12 | Sound.Play 13 | 14 | print "wait on end of playback or press any key ..." 15 | var w=0.0 16 | while inkey()="" andalso Sound.PlayPosition()<1.0 17 | Device.Volume = 0.6+sin(w)*0.4 : w+=0.01 18 | sleep 10,1 19 | wend 20 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/oop_test01_Static.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | '#define FBSOUND_USE_DYNAMIC 3 | #define FBSOUND_USE_STATIC 4 | #include once "mff/SoundPlayer.bi" 5 | Dim As WString * 260 FileName 6 | FileName= "../../Resources/" & "country.mp3" 7 | Var Sound = SoundPlayer(FileName) 8 | 'Var Device = SoundDevice() 9 | 'Var Samples = SampleBuffer(FileName) 10 | 'Var Sound = SoundPlayer(Samples) 11 | Sound.Play 12 | Print "play time: " & Sound.Length & " seconds" 13 | Print "press any key ..." 14 | Sleep(8000) 15 | End 16 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBMjCB2aADAgECAgkAluqkgeuV/zYwCgYIKoZIzj0EAwIwEzERMA8GA1UEAwwI 3 | TW9uZ29vc2UwHhcNMjQwNTA3MTQzNzM2WhcNMzQwNTA1MTQzNzM2WjARMQ8wDQYD 4 | VQQDDAZjbGllbnQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASXNWpzrToZJQVB 5 | dIJCeIw4j43kV38oehDKhYnaPJDTkqoKrEtSTvXWFY7BxnjUhSkSWBElcq/g6qiP 6 | TquJCvXLoxgwFjAUBgNVHREEDTALgglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAw 7 | RQIhAOsbCgeobKm0sOmQKzH9+KYmoxL/8AXMAzWozd2bEtivAiACyLVppRHjgA/e 8 | rP1mRkL0RAUxPw6s/gK7TFcPXUqzGQ== 9 | -----END CERTIFICATE----- 10 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBMTCB2aADAgECAgkAluqkgeuV/zUwCgYIKoZIzj0EAwIwEzERMA8GA1UEAwwI 3 | TW9uZ29vc2UwHhcNMjQwNTA3MTQzNzM2WhcNMzQwNTA1MTQzNzM2WjARMQ8wDQYD 4 | VQQDDAZzZXJ2ZXIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASo3oEiG+BuTt5y 5 | ZRyfwNr0C+SP+4M0RG2pYkb2v+ivbpfi72NHkmXiF/kbHXtgmSrn/PeTqiA8M+mg 6 | BhYjDX+zoxgwFjAUBgNVHREEDTALgglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDRwAw 7 | RAIgTXW9MITQSwzqbNTxUUdt9DcB+8pPUTbWZpiXcA26GMYCIBiYw+DSFMLHmkHF 8 | +5U3NXW3gVCLN9ntD5DAx8LTG8sB 9 | -----END CERTIFICATE----- 10 | -------------------------------------------------------------------------------- /.github/workflows/linux.yml: -------------------------------------------------------------------------------- 1 | name: linux 2 | 3 | on: 4 | [push, pull_request] 5 | 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | 12 | - name: Install gtk3-dev 13 | run: sudo apt-get update && sudo apt-get install libgtk-3-dev 14 | 15 | - name: Grant permission 16 | working-directory: .github/workflows 17 | run: sudo chmod +x linux.sh 18 | 19 | - name: Build 20 | working-directory: .github/workflows 21 | run: sudo bash linux.sh 22 | -------------------------------------------------------------------------------- /examples/Hello.bas: -------------------------------------------------------------------------------- 1 | #ifdef __FB_WIN32__ 2 | '#Compile -exx -s gui "Example.rc" 3 | #else 4 | '#Compile -exx 5 | #endif 6 | #include "mff/Form.bi" 7 | #include "mff/CommandButton.bi" 8 | 9 | Using My.Sys.Forms 10 | 11 | Dim Shared frm As Form, cmd As CommandButton 12 | 13 | Sub cmd_Click(ByRef Designer As My.Sys.Object, ByRef Sender As Control) 14 | MsgBox "Hello" 15 | End Sub 16 | 17 | cmd.Text = "Click me!" 18 | cmd.SetBounds 100, 100, 150, 30 19 | cmd.OnClick = @cmd_Click 20 | frm.Add @cmd 21 | 22 | frm.CenterToScreen 23 | frm.Show 24 | 25 | App.Run 26 | -------------------------------------------------------------------------------- /examples/Grid/Languages/english.lng: -------------------------------------------------------------------------------- 1 | english 2 | [General] 3 | AllowEdit = 4 | Array = 5 | Col = 6 | Col 1 is the row index = 7 | Column = 8 | DarkMode = 9 | Dele one Col = 10 | Dele one Row = 11 | Double Click or press space start edit, Enter Confirm input! = 12 | Elasped time: = 13 | Grid = 14 | Grid1 = 15 | Insert Col after = 16 | Insert Col before = 17 | Insert Row After = 18 | Insert Row before = 19 | Large Data = 20 | Load From File = 21 | OwnerData = 22 | Row = 23 | Save To File = 24 | s. Total Rows/Cols: = 25 | User = 26 | Using DataArrayPtr(,) = 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Language: English | 中文介绍 2 | # MyFbFramework 3 | 4 | ## My FreeBasic Framework 5 | 6 | 7 | 8 | #### Introduction 9 | 10 | MyFbFramework is a forms building, drawing and etc. library for the FreeBASIC programming language. This library helps in the development of software products using easy-to-use classes and syntax, which are similar in nature to the programming language vb.net. 11 | 12 | #### Some applications that use MyFbFramework 13 | * [VisualFBEditor - IDE for FreeBasic](https://github.com/XusinboyBekchanov/VisualFBEditor) 14 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/oop_test04.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' device.volume 8 | 9 | Var Device = SoundDevice() 10 | Var Samples = SampleBuffer("../data/fox.mp3") 11 | Print "play time: " & Samples.Length & " seconds" 12 | Var Sound = SoundBuffer(Samples) 13 | Sound.Play 14 | 15 | Print "wait on end of playback or press any key ..." 16 | Var w=0.0 17 | While Inkey()="" AndAlso Sound.Playposition()<1.0 18 | Device.Volume = 0.6+Sin(w)*0.4 : w+=0.01 19 | Sleep 10,1 20 | Wend -------------------------------------------------------------------------------- /examples/Animate/Languages/Chinese (Simplified).lng: -------------------------------------------------------------------------------- 1 | chinese 2 | [General] 3 | Balance: = 平衡: 4 | Close = 关闭 5 | Double click to select a file from local disk. = 双击从本地磁盘中选择一个文件。 6 | Full = 全屏 7 | Internet Radio = 网络电台 8 | Length: = 长度: 9 | Length: NA = 长度: NA 10 | Loop = 循环 11 | Open = 打开 12 | Pause = 暂停 13 | Play = 播放 14 | Position: = 位置: 15 | Ratio Fixed = 固定比率 16 | VisualFBEditor Animate Player = VisualFBEditor媒体播放器 17 | VisualFBEditor Animate Player(X32) = VisualFBEditor媒体播放器(X32) 18 | VisualFBEditor Animate Player(X64) = VisualFBEditor媒体播放器(X64) 19 | Volume: = 音量: -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/oop_test03.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' Sound.PlayPosition 8 | ' Sound.Pan 9 | 10 | var Device = SoundDevice() 11 | var Samples = SampleBuffer("../data/fox.mp3") 12 | var Sound = SoundBuffer(Samples) 13 | var w=0.0 14 | Sound.Play 15 | print "play time: " & Samples.Length & " seconds" 16 | print "wait on end of playback or press any key ..." 17 | while inkey()="" andalso Sound.PlayPosition()<1.0 18 | Sound.Pan = sin(w) : w+=0.01 19 | sleep 10,1 20 | wend 21 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/oop_test03.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' Sound.PlayPosition 8 | ' Sound.Pan 9 | 10 | var Device = SoundDevice() 11 | var Samples = SampleBuffer("../data/fox.mp3") 12 | var Sound = SoundBuffer(Samples) 13 | var w=0.0 14 | Sound.Play 15 | print "play time: " & Samples.Length & " seconds" 16 | print "wait on end of playback or press any key ..." 17 | while inkey()="" andalso Sound.PlayPosition()<1.0 18 | Sound.Pan = sin(w) : w+=0.01 19 | sleep 10,1 20 | wend 21 | -------------------------------------------------------------------------------- /examples/Animate/Media/Languages/Chinese (Simplified).lng: -------------------------------------------------------------------------------- 1 | chinese 2 | [General] 3 | Balance: = 平衡: 4 | Close = 关闭 5 | Double click to select a file from local disk. = 双击从本地磁盘中选择一个文件。 6 | Full = 全屏 7 | Internet Radio = 网络电台 8 | Length: = 长度: 9 | Length: NA = 长度: NA 10 | Loop = 循环 11 | Open = 打开 12 | Pause = 暂停 13 | Play = 播放 14 | Position: = 位置: 15 | Ratio Fixed = 固定比率 16 | VisualFBEditor Animate Player = VisualFBEditor媒体播放器 17 | VisualFBEditor Animate Player(X32) = VisualFBEditor媒体播放器(X32) 18 | VisualFBEditor Animate Player(X64) = VisualFBEditor媒体播放器(X64) 19 | Volume: = 音量: -------------------------------------------------------------------------------- /mff/gir_headers/Gir/freetype2-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/freetype2-2.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _FT_Bitmap FT_Bitmap 8 | TYPE AS _FT_Face FT_Face 9 | TYPE AS _FT_Library FT_Library 10 | TYPE AS gint32 /'int32'/ FT_Int32 11 | EXTERN "C" 12 | ' P_X 13 | 14 | ' P_3 15 | 16 | ' P_4 17 | 18 | DECLARE SUB FT_Library_Version() 19 | END EXTERN 20 | 21 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/xft-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/xft-2.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | #INCLUDE ONCE "xlib-2.0.bi" 8 | TYPE AS _XftColor XftColor 9 | TYPE AS _XftDraw XftDraw 10 | TYPE AS _XftFont XftFont 11 | TYPE AS _XftGlyphSpec XftGlyphSpec 12 | EXTERN "C" 13 | ' P_X 14 | 15 | ' P_3 16 | 17 | ' P_4 18 | 19 | DECLARE SUB XftInit() 20 | END EXTERN 21 | 22 | -------------------------------------------------------------------------------- /.github/workflows/windows.bat: -------------------------------------------------------------------------------- 1 | cd .. 2 | cd .. 3 | cd .. 4 | 5 | curl -L -O https://www.7-zip.org/a/7za920.zip 6 | 7 | PowerShell Expand-Archive -LiteralPath "7za920.zip" -DestinationPath ".\7z" -Force 8 | 9 | curl -L -O https://sourceforge.net/projects/fbc/files/FreeBASIC-1.10.0/Binaries-Windows/FreeBASIC-1.10.0-winlibs-gcc-9.3.0.7z 10 | 11 | 7z\7za.exe x "FreeBASIC-1.10.0-winlibs-gcc-9.3.0.7z" -o.\ 12 | 13 | cd MyFbFramework\mff 14 | 15 | ..\..\FreeBASIC-1.10.0-winlibs-gcc-9.3.0\fbc32.exe -b "mff.bi" "mff.rc" -dll -x "../mff32.dll" -v 16 | 17 | if not exist ../mff32.dll exit 1 18 | 19 | cd .. 20 | ls 21 | -------------------------------------------------------------------------------- /.github/workflows/linux.sh: -------------------------------------------------------------------------------- 1 | cd .. 2 | cd .. 3 | cd .. 4 | apt install libgtk-3-dev 5 | 6 | wget -O FreeBASIC-1.10.0-ubuntu-22.04-x86_64.tar.xz https://sourceforge.net/projects/fbc/files/FreeBASIC-1.10.0/Binaries-Linux/FreeBASIC-1.10.0-ubuntu-22.04-x86_64.tar.xz 7 | tar xf FreeBASIC-1.10.0-ubuntu-22.04-x86_64.tar.xz 8 | cd FreeBASIC-1.10.0-ubuntu-22.04-x86_64 9 | ./install.sh -i 10 | 11 | cd .. 12 | cd MyFbFramework/mff 13 | fbc -b "mff.bi" -dll -x "../libmff64_gtk3.so" -d __USE_GTK3__ -v 14 | 15 | if [ ! -f ../libmff64_gtk3.so ] 16 | then 17 | echo "libmff64_gtk3.so does not exist" 18 | exit 1 19 | fi 20 | 21 | cd .. 22 | ls 23 | -------------------------------------------------------------------------------- /Settings.ini: -------------------------------------------------------------------------------- 1 | [Setup] 2 | Enabled=True 3 | Name=My FreeBasic Framework 1.3.6 4 | Tips=MyFbFramework is a forms building, drawing and etc. library for the FreeBASIC programming language. 5 | Lib32=mff32.dll 6 | Lib64=mff64.dll 7 | Lib32_gtk2=mff32_gtk2.dll 8 | Lib64_gtk2=mff64_gtk2.dll 9 | Lib32_gtk3=mff32_gtk3.dll 10 | Lib64_gtk3=mff64_gtk3.dll 11 | LibX32_gtk2=libmff32_gtk2.so 12 | LibX64_gtk2=libmff64_gtk2.so 13 | LibX32_gtk3=libmff32_gtk3.so 14 | LibX64_gtk3=libmff64_gtk3.so 15 | HeadersFolder=mff 16 | SourcesFolder=mff 17 | IncludeFolder=./ 18 | Lib32Folder=lib/win-x86 19 | Lib64Folder=lib/win-x64 20 | Lib64ArmFolder=lib/win-arm64 21 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/oop_test02.bas: -------------------------------------------------------------------------------- 1 | #include "tests-common.bi" 2 | 3 | #include once "fbsound/fbsound_oop.bi" 4 | 5 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 6 | 7 | ' Sound.Volume 8 | Dim As WString * 256 FileName 9 | FileName = "../data/jimi.mod" 10 | FileName = "../data/010.mp3" 11 | FileName = "../data/legends.mp3" 12 | 'FileName = "../data/atem.wav" 13 | Var Device = SoundDevice() 14 | Var Samples = SampleBuffer(FileName) 15 | 16 | 'Var Samples = SampleBuffer("../data/010.mp3") 17 | Var Sound = SoundBuffer(Samples) 18 | Sound.Volume = 0.8 19 | Sound.Play 20 | 21 | Print "play time: " & Samples.Length & " seconds" 22 | Print "press any key ..." 23 | Sleep -------------------------------------------------------------------------------- /mff/Android/mffEditText.java: -------------------------------------------------------------------------------- 1 | package mff.example.application; 2 | 3 | import android.content.Context; 4 | import android.text.Editable; 5 | import android.text.TextWatcher; 6 | import android.widget.EditText; 7 | 8 | public class mffEditText extends EditText implements TextWatcher { 9 | public mffEditText(Context context) { 10 | super(context); 11 | } 12 | 13 | public void afterTextChanged(Editable s) { 14 | } 15 | 16 | public void beforeTextChanged(CharSequence s, int start, int count, 17 | int after) { 18 | } 19 | 20 | public native void onTextChanged(CharSequence s, int start, int before, int count); 21 | } 22 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Sync 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | 7 | jobs: 8 | sync-2-gitee: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Sync to Gitee 12 | uses: wearerequired/git-mirror-action@master 13 | env: 14 | # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY 15 | SSH_PRIVATE_KEY: ${{ github-gitee-LX }} 16 | with: 17 | # 注意替换为你的 GitHub 源仓库地址 18 | source-repo: git@github.com/hustbeef/MyFbFramework.git 19 | # 注意替换为你的 Gitee 目标仓库地址 20 | destination-repo: git@gitee.com/avata/MyFbFramework.git 21 | force_update: true # 强制覆盖目标仓库 22 | static_list: "" 23 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/libxml2-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/libxml2-2.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _xmlNode xmlNode 8 | TYPE AS _xmlNodePtr xmlNodePtr 9 | TYPE AS _xmlDoc xmlDoc 10 | TYPE AS _xmlDocPtr xmlDocPtr 11 | TYPE AS _xmlNsPtr xmlNsPtr 12 | TYPE AS _xmlChar xmlChar 13 | TYPE AS _xmlTextWriterPtr xmlTextWriterPtr 14 | TYPE AS _xmlTextReaderPtr xmlTextReaderPtr 15 | EXTERN "C" 16 | ' P_X 17 | 18 | ' P_3 19 | 20 | ' P_4 21 | 22 | DECLARE SUB dummy() 23 | END EXTERN 24 | 25 | -------------------------------------------------------------------------------- /examples/Grid/Languages/Chinese (Simplified).lng: -------------------------------------------------------------------------------- 1 | chinese 2 | [General] 3 | AllowEdit = 允许编辑 4 | Array = 数组 5 | Col = 列 6 | Col 1 is the row index = 列1是索引行 7 | Column = 列 8 | DarkMode = 暗黑模式 9 | Dele one Col = 删除整列 10 | Dele one Row = 删除整行 11 | Double Click or press space start edit, Enter Confirm input! = 双击或按空格开始编辑,输入回车确认输入! 12 | Elasped time: = 消耗时间: 13 | Grid = 表格 14 | Grid1 = 表格1 15 | Insert Col after = 在后插入列 16 | Insert Col before = 在前插入列 17 | Insert Row After = 在后插入行 18 | Insert Row before = 在前插入行 19 | Large Data = 大数据 20 | Load From File = 从文件加载 21 | OwnerData = 用户数据 22 | Row = 行 23 | Save To File = 保存到文件 24 | s. Total Rows/Cols: = 秒, 共有数据 行/列 25 | User = 用户 26 | Using DataArrayPtr(,) = 使用二维数组 27 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/DBus-1.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/DBus-1.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS LONG DBusBusType 8 | ENUM 9 | DBUS_BUS_SESSION = 0 10 | DBUS_BUS_SYSTEM = 1 11 | DBUS_BUS_STARTER = 2 12 | END ENUM 13 | TYPE AS _DBusConnection DBusConnection 14 | TYPE AS _DBusError DBusError 15 | TYPE AS _DBusMessage DBusMessage 16 | TYPE AS _DBusMessageIter DBusMessageIter 17 | TYPE AS _DBusPendingCall DBusPendingCall 18 | EXTERN "C" 19 | ' P_X 20 | 21 | ' P_3 22 | 23 | ' P_4 24 | 25 | END EXTERN 26 | 27 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: Xusinboy # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /mff/fbsound/plug-cdtor.bi: -------------------------------------------------------------------------------- 1 | #ifndef __FBS_PLUG_CDTOR_BI__ 2 | #define __FBS_PLUG_CDTOR_BI__ 3 | 4 | '' Copyright 2023 by Jeff Marshall 5 | '' coder[at]execulink.com 6 | 7 | #if __FB_OUT_DLL__ = 0 8 | '' building static library 9 | 10 | #define FBS_MODULE_CDTOR_SCOPE private 11 | #define FBS_MODULE_REGISTER_CDTOR constructor 12 | #define FBS_MODULE_CTOR 13 | #define FBS_MODULE_DTOR 14 | 15 | #else ' not( __FB_OUT_DLL__ = 0 ) 16 | '' building shared library 17 | 18 | #define FBS_MODULE_CDTOR_SCOPE private 19 | #define FBS_MODULE_REGISTER_CDTOR 20 | #define FBS_MODULE_CTOR constructor 21 | #define FBS_MODULE_DTOR destructor 22 | 23 | #endif ' __FB_OUT_DLL__ = 0 24 | 25 | #define FBS_GLOBAL_CTOR constructor 26 | #define FBS_GLOBAL_DTOR destructor 27 | 28 | #endif ' __FBS_PLUG_CDTOR_BI__ -------------------------------------------------------------------------------- /mff/gir_headers/Gir/xrandr-1.3.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/xrandr-1.3.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _XRRScreenSize XRRScreenSize 8 | TYPE AS _XRRScreenChangeNotifyEvent XRRScreenChangeNotifyEvent 9 | TYPE AS _XRRNotifyEvent XRRNotifyEvent 10 | TYPE AS _XRRScreenResources XRRScreenResources 11 | TYPE AS _XRROutputChangeNotifyEvent XRROutputChangeNotifyEvent 12 | TYPE AS _XRRCrtcChangeNotifyEvent XRRCrtcChangeNotifyEvent 13 | TYPE AS _XRROutputPropertyNotifyEvent XRROutputPropertyNotifyEvent 14 | EXTERN "C" 15 | ' P_X 16 | 17 | ' P_3 18 | 19 | ' P_4 20 | 21 | END EXTERN 22 | 23 | -------------------------------------------------------------------------------- /mff/fbsound/csid.bi: -------------------------------------------------------------------------------- 1 | #ifndef __CSID_BI__ 2 | #define __CSID_BI__ 3 | 4 | #ifndef NO_SID 5 | 6 | #inclib "csid" 7 | 8 | #define SIDMODEL_8580 8580 9 | #define SIDMODEL_6581 6581 10 | 11 | #define DEFAULT_SIDMODEL SIDMODEL_6581 12 | 13 | extern "C" 14 | 15 | declare sub libcsid_init(byval samplerate as long, byval sidmodel as long=DEFAULT_SIDMODEL) 16 | declare function libcsid_load(byval buffer as any ptr, byval nBufferSize as long, byval subtune as long=0) as long 17 | declare function libcsid_getauthor() as const zstring ptr 18 | declare function libcsid_getinfo() as const zstring ptr 19 | declare function libcsid_gettitle() as const zstring ptr 20 | declare sub libcsid_render(byval buffer as any ptr, byval nChannels as long, byval nBytes as long) 21 | 22 | end extern 23 | 24 | #endif ' NO_SID 25 | 26 | #endif ' __CSID_BI__ -------------------------------------------------------------------------------- /mff/Sys.bi: -------------------------------------------------------------------------------- 1 | '############################################################################### 2 | '# Sys.bi # 3 | '# This file is part of MyFBFramework # 4 | '# Authors: José Roca (2016), Xusinboy Bekchanov # 5 | '# Windows version functions based on WinFBX/Afx/AfxWin.inc # 6 | '############################################################################### 7 | 8 | Namespace My 9 | Namespace Sys 10 | Declare Function Name As String 11 | 12 | Declare Function Version As Long 13 | 14 | Declare Function Build As Long 15 | 16 | Declare Function Platform As Long 17 | End Namespace 18 | End Namespace 19 | 20 | #ifndef __USE_MAKE__ 21 | #include once "Sys.bas" 22 | #endif 23 | -------------------------------------------------------------------------------- /examples/Print/Languages/english.html: -------------------------------------------------------------------------------- 1 | english 2 | 3 |
 english
4 |
5 |
6 |
  • Fit to Window  =  Fit to Window 7 |
  • Landscape  =  Landscape 8 |
  • Portrait  =  Portrait 9 |
  • Print  =  Print 10 |
  • Print Preview  =  Print Preview 11 |
  • Show Print Preview Dialog  =  Show Print Preview Dialog 12 |
  • 13 |
    14 |
    15 | 16 | 17 | -------------------------------------------------------------------------------- /mff/fbsound/plug-ds.bi: -------------------------------------------------------------------------------- 1 | #ifndef __FBS_PLUGOUT_DS__ 2 | #define __FBS_PLUGOUT_DS__ 3 | 4 | ' ############## 5 | ' # plug-ds.bi # 6 | '############## 7 | ' Copyright 2005-2020 by D.J.Peters (Joshy) 8 | ' d.j.peters@web.de 9 | 10 | #include once "fbstypes.bi" 11 | 12 | #ifndef NO_PLUG_DS 13 | 14 | ' test of secondary DirectSoundBuffer 15 | #include once "windows.bi" ' <- BOOL, NULL ... 16 | #include once "win/mmsystem.bi" ' <- WAVEFORMETEX 17 | #include once "win/d3dtypes.bi" ' <- D3DVECTOR used in dsound.bi 18 | #include once "win/dsound.bi" ' <- IDirectSound 19 | 20 | #inclib "dxguid" 21 | #inclib "ole32" 22 | 23 | #if __FB_OUT_DLL__ = 0 24 | namespace fbsound.plug_mm 25 | #endif 26 | 27 | #if __FB_OUT_DLL__ = 0 28 | end namespace ' fbsound.plug_mm 29 | #endif 30 | 31 | #endif ' NO_PLUG_DS 32 | 33 | #endif ' __FBS_PLUGOUT_DS__ 34 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/GL-1.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/GL-1.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | TYPE AS _GLbitfield GLbitfield 8 | TYPE AS _GLcharARB GLcharARB 9 | TYPE AS _GLclampf GLclampf 10 | TYPE AS _GLboolean GLboolean 11 | TYPE AS _GLenum GLenum 12 | TYPE AS _GLfloat GLfloat 13 | TYPE AS _GLhandleARB GLhandleARB 14 | TYPE AS _GLint GLint 15 | TYPE AS _GLintptr GLintptr 16 | TYPE AS _GLsizei GLsizei 17 | TYPE AS _GLsizeiptr GLsizeiptr 18 | TYPE AS _GLuint GLuint 19 | TYPE AS _GLvoid GLvoid 20 | EXTERN "C" 21 | ' P_X 22 | 23 | ' P_3 24 | 25 | ' P_4 26 | 27 | DECLARE SUB glInitNames() 28 | END EXTERN 29 | 30 | -------------------------------------------------------------------------------- /mff/Classes.bi: -------------------------------------------------------------------------------- 1 | '############################################################################### 2 | '# Classes.bi # 3 | '# This file is part of MyFBFramework # 4 | '# Based on: # 5 | '# Classes.bi # 6 | '# FreeBasic Windows GUI ToolKit # 7 | '# Copyright (c) 2007-2008 Nastase Eodor # 8 | '# Version 1.0.0 # 9 | '############################################################################### 10 | 11 | #include once "List.bi" 12 | #include once "StringList.bi" 13 | #include once "ImageList.bi" 14 | #include once "Menus.bi" 15 | 16 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_xm.bas: -------------------------------------------------------------------------------- 1 | ' ################### 2 | ' # fbs_load_xm.bas # 3 | '################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.xm") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | dim as integer hWave 17 | 18 | if fbs_Init() then 19 | if fbs_Load_MODFile(data_path & "skidmaks2.xm",@hWave) then 20 | dim as integer ms 21 | fbs_Get_WaveLength(hWave,@ms) 22 | print "length of 'skidmaks2.xm' = " & ms/1000 & " seconds" 23 | if fbs_Play_Wave(hWave) then 24 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 25 | print "wait on end of sound or press any key ..." 26 | while inkey()="" and fbs_Get_PlayingSounds() 27 | sleep 100 28 | wend 29 | end if 30 | end if 31 | end if 32 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_it.bas: -------------------------------------------------------------------------------- 1 | ' ################### 2 | ' # fbs_load_it.bas # 3 | '################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.it") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | 17 | dim as integer hWave 18 | 19 | if fbs_Init() then 20 | if fbs_Load_MODFile(data_path & "nstalgia.it",@hWave) then 21 | dim as integer ms 22 | fbs_Get_WaveLength(hWave,@ms) 23 | print "length of 'nstalgia.it' = " & ms/1000 & " seconds" 24 | if fbs_Play_Wave(hWave) then 25 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 26 | print "wait on end of sound or press any key ..." 27 | while inkey()="" and fbs_Get_PlayingSounds() 28 | sleep 100 29 | wend 30 | end if 31 | end if 32 | end if 33 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_xm.bas: -------------------------------------------------------------------------------- 1 | ' ################### 2 | ' # fbs_load_xm.bas # 3 | '################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.xm") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | dim as integer hWave 17 | 18 | if fbs_Init() then 19 | if fbs_Load_MODFile(data_path & "skidmaks2.xm",@hWave) then 20 | dim as integer ms 21 | fbs_Get_WaveLength(hWave,@ms) 22 | print "length of 'skidmaks2.xm' = " & ms/1000 & " seconds" 23 | if fbs_Play_Wave(hWave) then 24 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 25 | print "wait on end of sound or press any key ..." 26 | while inkey()="" and fbs_Get_PlayingSounds() 27 | sleep 100 28 | wend 29 | end if 30 | end if 31 | end if 32 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_it.bas: -------------------------------------------------------------------------------- 1 | ' ################### 2 | ' # fbs_load_it.bas # 3 | '################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.it") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | 17 | dim as integer hWave 18 | 19 | if fbs_Init() then 20 | if fbs_Load_MODFile(data_path & "nstalgia.it",@hWave) then 21 | dim as integer ms 22 | fbs_Get_WaveLength(hWave,@ms) 23 | print "length of 'nstalgia.it' = " & ms/1000 & " seconds" 24 | if fbs_Play_Wave(hWave) then 25 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 26 | print "wait on end of sound or press any key ..." 27 | while inkey()="" and fbs_Get_PlayingSounds() 28 | sleep 100 29 | wend 30 | end if 31 | end if 32 | end if 33 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_play_mp3_stream.bas: -------------------------------------------------------------------------------- 1 | ' ########################### 2 | ' # fbs_play_mp3_stream.bas # 3 | '########################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Create_MP3Stream() 10 | ' fbs_Play_MP3Stream() 11 | ' fbs_End_MP3Stream() 12 | ' fbs_Set_MP3StreamVolume() 13 | 14 | const MEDIA = TESTS_DATA_PATH 15 | const FILE = "legends.mp3" 16 | const PATH = MEDIA & FILE 17 | 18 | ' only if not same as exe path 19 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 20 | 21 | fbs_Init() 22 | fbs_Create_MP3Stream(PATH) 23 | fbs_Play_MP3Stream() 24 | print "playing " & PATH & " press any key ..." 25 | sleep 26 | if fbs_Get_PlayingStreams()>0 then 27 | print "fade out and quit !" 28 | dim as single volume=1.0 29 | while volume>0.025 30 | volume*=0.95 31 | fbs_Set_MP3StreamVolume(volume) 32 | sleep 20,1 33 | wend 34 | end if 35 | fbs_End_MP3Stream() -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_play_mp3_stream.bas: -------------------------------------------------------------------------------- 1 | ' ########################### 2 | ' # fbs_play_mp3_stream.bas # 3 | '########################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Create_MP3Stream() 10 | ' fbs_Play_MP3Stream() 11 | ' fbs_End_MP3Stream() 12 | ' fbs_Set_MP3StreamVolume() 13 | 14 | const MEDIA = TESTS_DATA_PATH 15 | const FILE = "legends.mp3" 16 | const PATH = MEDIA & FILE 17 | 18 | ' only if not same as exe path 19 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 20 | 21 | fbs_Init() 22 | fbs_Create_MP3Stream(PATH) 23 | fbs_Play_MP3Stream() 24 | print "playing " & PATH & " press any key ..." 25 | sleep 26 | if fbs_Get_PlayingStreams()>0 then 27 | print "fade out and quit !" 28 | dim as single volume=1.0 29 | while volume>0.025 30 | volume*=0.95 31 | fbs_Set_MP3StreamVolume(volume) 32 | sleep 20,1 33 | wend 34 | end if 35 | fbs_End_MP3Stream() 36 | -------------------------------------------------------------------------------- /mff/SystemInformation.bi: -------------------------------------------------------------------------------- 1 | #ifdef __USE_WINAPI__ 2 | #include once "windows.bi" 3 | #endif 4 | 5 | Namespace My.Sys.Forms 6 | Type SystemInformation 7 | Private: 8 | FWidth As Integer 9 | FHeight As Integer 10 | Declare Static Function GetSize(iWidth As Integer, iHeight As Integer) As My.Sys.Drawing.Size 11 | Public: 12 | Declare Static Function DragSize As My.Sys.Drawing.Size 13 | Declare Static Function ScreenWidth As Integer 14 | Declare Static Function ScreenHeight As Integer 15 | Declare Static Function MouseButtons As Integer 16 | Declare Static Function DoubleClickSize As My.Sys.Drawing.Size 17 | Declare Static Function WorkingArea As My.Sys.Drawing.Rect 18 | Declare Static Function BorderSize As My.Sys.Drawing.Size 19 | Declare Static Function MaxWindowTrackSize As My.Sys.Drawing.Size 20 | 21 | End Type 22 | End Namespace 23 | 24 | #include once "SystemInformation.bas" -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_s3m.bas: -------------------------------------------------------------------------------- 1 | ' #################### 2 | ' # fbs_load_s3m.bas # 3 | '#################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.s3m") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | dim as integer hWave 17 | 18 | if fbs_Init() then 19 | print "load: flshdanc.s3m" 20 | if fbs_Load_MODFile(data_path & "flshdanc.s3m",@hWave) then 21 | dim as integer ms 22 | fbs_Get_WaveLength(hWave,@ms) 23 | print "length of 'flshdanc.s3m' = " & ms/1000 & " seconds" 24 | if fbs_Play_Wave(hWave) then 25 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 26 | print "wait on end of sound or press any key ..." 27 | while inkey()="" and fbs_Get_PlayingSounds() 28 | sleep 100 29 | wend 30 | end if 31 | end if 32 | end if 33 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_s3m.bas: -------------------------------------------------------------------------------- 1 | ' #################### 2 | ' # fbs_load_s3m.bas # 3 | '#################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.s3m") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | dim as integer hWave 17 | 18 | if fbs_Init() then 19 | print "load: flshdanc.s3m" 20 | if fbs_Load_MODFile(data_path & "flshdanc.s3m",@hWave) then 21 | dim as integer ms 22 | fbs_Get_WaveLength(hWave,@ms) 23 | print "length of 'flshdanc.s3m' = " & ms/1000 & " seconds" 24 | if fbs_Play_Wave(hWave) then 25 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 26 | print "wait on end of sound or press any key ..." 27 | while inkey()="" and fbs_Get_PlayingSounds() 28 | sleep 100 29 | wend 30 | end if 31 | end if 32 | end if 33 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_mod.bas: -------------------------------------------------------------------------------- 1 | ' #################### 2 | ' # fbs_load_mod.bas # 3 | '#################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.mod") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | 17 | dim as integer hWave 18 | 19 | if fbs_Init() then 20 | print "load: jimi.mod" 21 | if fbs_Load_MODFile(data_path & "jimi.mod",@hWave) then 22 | print "ok" 23 | dim as integer ms 24 | fbs_Get_WaveLength(hWave,@ms) 25 | print "length of 'jimi.mod' = " & ms/1000 & " seconds" 26 | if fbs_Play_Wave(hWave) then 27 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 28 | print "wait on end of sound or press any key ..." 29 | while inkey()="" and fbs_Get_PlayingSounds() 30 | sleep 100 31 | wend 32 | end if 33 | end if 34 | end if 35 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_mod.bas: -------------------------------------------------------------------------------- 1 | ' #################### 2 | ' # fbs_load_mod.bas # 3 | '#################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for: 8 | ' fbs_Load_MODFile("*.mod") 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | 17 | dim as integer hWave 18 | 19 | if fbs_Init() then 20 | print "load: jimi.mod" 21 | if fbs_Load_MODFile(data_path & "jimi.mod",@hWave) then 22 | print "ok" 23 | dim as integer ms 24 | fbs_Get_WaveLength(hWave,@ms) 25 | print "length of 'jimi.mod' = " & ms/1000 & " seconds" 26 | if fbs_Play_Wave(hWave) then 27 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 28 | print "wait on end of sound or press any key ..." 29 | while inkey()="" and fbs_Get_PlayingSounds() 30 | sleep 100 31 | wend 32 | end if 33 | end if 34 | end if 35 | -------------------------------------------------------------------------------- /mff/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | true 13 | 14 | 15 | 16 | 17 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_init_44_22_khz.bas: -------------------------------------------------------------------------------- 1 | ' ########################## 2 | ' # fbs_init_44_22_khz.bas # 3 | '########################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of reconfig the lib 8 | ' fbs_Init() 9 | ' fbs_Stop() 10 | ' fbs_Exit() 11 | 12 | const data_path = TESTS_DATA_PATH 13 | 14 | ' only if not same as exe path 15 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | ? "init with 44KHz" 18 | fbs_Init() ' 44100Hz. is default 19 | 20 | dim as integer hWave 21 | ? "load and play fox.mp3 for 9 seconds" 22 | fbs_Load_MP3File(data_path & "fox.mp3",@hWave) 23 | fbs_PLay_Wave(hWave) 24 | sleep 9000,1 25 | 26 | ? "stop":fbs_stop() 27 | sleep 1000,1 28 | ? "exit":fbs_exit() 29 | sleep 2000,1 30 | ? "init with 22KHz" 31 | fbs_Init(22050) ' changing from 44.1 KHz to 22.05 KHz 32 | ? "load play rnb_loop.mp3 endless" 33 | fbs_Load_MP3File(data_path & "rnb_loop.mp3",@hWave) 34 | fbs_PLay_Wave(hWave,-1) 35 | ? "any key=quit" 36 | sleep 37 | end 38 | 39 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_and_reloading_mp3stream.bas: -------------------------------------------------------------------------------- 1 | ' ######################################## 2 | ' # fbs_load_and_reloading_mp3stream.bas # 3 | '######################################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' simple speed test 8 | ' streaming decoding and reloading MP3. 9 | 10 | 11 | const data_path = TESTS_DATA_PATH 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | dim as boolean ok 17 | ok=fbs_Init() 18 | if ok=false then 19 | ? "error: fbs_Init() !" 20 | beep:sleep:end 1 21 | end if 22 | 23 | ? "any key = quit" 24 | while inkey="" 25 | ? "create stream: "; 26 | fbs_Create_MP3Stream(data_path & "atem.mp3") 27 | ? "ok" 28 | ? "wait on start: "; 29 | fbs_Play_MP3Stream() 30 | while fbs_Get_PlayingStreams()=0:sleep 10:wend 31 | ? "ok" 32 | ? "wait on end : "; 33 | while fbs_Get_PlayingStreams()>0:sleep 10:wend 34 | ? "ok":? 35 | sleep 100 36 | wend 37 | end 38 | 39 | 40 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_init_44_22_khz.bas: -------------------------------------------------------------------------------- 1 | ' ########################## 2 | ' # fbs_init_44_22_khz.bas # 3 | '########################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of reconfig the lib 8 | ' fbs_Init() 9 | ' fbs_Stop() 10 | ' fbs_Exit() 11 | 12 | const data_path = TESTS_DATA_PATH 13 | 14 | ' only if not same as exe path 15 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | ? "init with 44KHz" 18 | fbs_Init() ' 44100Hz. is default 19 | 20 | dim as integer hWave 21 | ? "load and play fox.mp3 for 9 seconds" 22 | fbs_Load_MP3File(data_path & "fox.mp3",@hWave) 23 | fbs_PLay_Wave(hWave) 24 | sleep 9000,1 25 | 26 | ? "stop":fbs_stop() 27 | sleep 1000,1 28 | ? "exit":fbs_exit() 29 | sleep 2000,1 30 | ? "init with 22KHz" 31 | fbs_Init(22050) ' changing from 44.1 KHz to 22.05 KHz 32 | ? "load play rnb_loop.mp3 endless" 33 | fbs_Load_MP3File(data_path & "rnb_loop.mp3",@hWave) 34 | fbs_PLay_Wave(hWave,-1) 35 | ? "any key=quit" 36 | sleep 37 | end 38 | 39 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_and_reloading_mp3stream.bas: -------------------------------------------------------------------------------- 1 | ' ######################################## 2 | ' # fbs_load_and_reloading_mp3stream.bas # 3 | '######################################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' simple speed test 8 | ' streaming decoding and reloading MP3. 9 | 10 | 11 | Const data_path = TESTS_DATA_PATH 12 | 13 | ' only if not same as exe path 14 | ''FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | Dim As Boolean ok 17 | ok=FBS_Init() 18 | If ok=False Then 19 | ? "error: fbs_Init() !" 20 | Beep:Sleep:End 1 21 | End If 22 | 23 | ? "any key = quit" 24 | While Inkey="" 25 | ? "create stream: "; 26 | FBS_Create_MP3Stream(data_path & "atem.mp3") 27 | ? "ok" 28 | ? "wait on start: "; 29 | FBS_Play_MP3Stream() 30 | While FBS_Get_PlayingStreams()=0:Sleep 10:Wend 31 | ? "ok" 32 | ? "wait on end : "; 33 | While FBS_Get_PlayingStreams()>0:Sleep 10:Wend 34 | ? "ok":? 35 | Sleep 100 36 | Wend 37 | End 38 | 39 | 40 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_get_soundposition.bas: -------------------------------------------------------------------------------- 1 | ' ############################# 2 | ' # fbs_get_soundposition.bas # 3 | '############################# 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test of: 8 | ' fbs_Get_SoundPosition() 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | ' only if not same as exe path 13 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | dim as integer hWave,hSound 16 | dim as long scr_w 17 | screeninfo scr_w:scr_w*=0.8 18 | screenres scr_w,100 19 | windowtitle "[any key] = quit fbs_Get_SoundPosition()" 20 | 21 | fbs_Init() 22 | fbs_Load_MP3File(data_path & "fox.mp3",@hWave) 23 | fbs_Create_Sound(hWave,@hSound) 24 | fbs_Play_Sound(hSound) 25 | dim as ubyte c=1 26 | dim as single position 27 | while inkey()="" 28 | if fbs_Get_SoundPosition(hSound,@Position) then 29 | ' end of sound trigger new playback 30 | if Position>=1.0 then fbs_Play_Sound(hSound):c+=1 31 | dim as integer x=Position*scr_w 32 | line(x-3,0)-step(6,99),c,BF 33 | end if 34 | sleep(5) 35 | wend 36 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/buildlib-32 - -static .bat: -------------------------------------------------------------------------------- 1 | @echo "build FBSound 1.2 for Windows x86:" 2 | @REM Set the right path to your 32-bit FreeBASIC compiler ! 3 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbscpu.bas -x lib/win32/libfbscpu.a 4 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbsdsp.bas -x lib/win32/libfbsdsp.a 5 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -p lib/win32 -lib src/fbsound.bas -x lib/win32/libfbsound.a 6 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -lib src/plug-ds.bas -x lib/win32/libfbsound-ds.a 7 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -lib src/plug-mm.bas -x lib/win32/libfbsound-mm.a 8 | del ..\fbsound-1.2\tests\libfbsound-32.dll.a 9 | del ..\fbsound-1.2\tests\libfbsound-ds-32.dll.a 10 | del ..\fbsound-1.2\tests\libfbsound-mm-32.dll.a 11 | @echo "ready!" 12 | @pause 13 | 14 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/buildlib-32.bat: -------------------------------------------------------------------------------- 1 | @echo "build FBSound 1.2 for Windows x86:" 2 | @REM Set the right path to your 32-bit FreeBASIC compiler ! 3 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbscpu.bas -x lib/win32/libfbscpu.a 4 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbsdsp.bas -x lib/win32/libfbsdsp.a 5 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -p lib/win32 -dll src/fbsound.bas -x lib/win32/fbsound.dll 6 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -dll src/plug-ds.bas -x lib/win32/fbsound-ds.dll 7 | c:\GitHub\VisualFBEditorPro\compiler\fbc320.exe -w pedantic -mt -gen gcc -asm intel -dll src/plug-mm.bas -x lib/win32/fbsound-mm.dll 8 | REM del ..\fbsound-1.2\tests\libfbsound-32.dll.a 9 | REM del ..\fbsound-1.2\tests\libfbsound-ds-32.dll.a 10 | REM del ..\fbsound-1.2\tests\libfbsound-mm-32.dll.a 11 | @echo "ready!" 12 | @pause 13 | 14 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_get_soundposition.bas: -------------------------------------------------------------------------------- 1 | ' ############################# 2 | ' # fbs_get_soundposition.bas # 3 | '############################# 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test of: 8 | ' fbs_Get_SoundPosition() 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | ' only if not same as exe path 13 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | dim as integer hWave,hSound 16 | dim as long scr_w 17 | screeninfo scr_w:scr_w*=0.8 18 | screenres scr_w,100 19 | windowtitle "[any key] = quit fbs_Get_SoundPosition()" 20 | 21 | fbs_Init() 22 | fbs_Load_MP3File(data_path & "fox.mp3",@hWave) 23 | fbs_Create_Sound(hWave,@hSound) 24 | fbs_Play_Sound(hSound) 25 | dim as ubyte c=1 26 | dim as single position 27 | while inkey()="" 28 | if fbs_Get_SoundPosition(hSound,@Position) then 29 | ' end of sound trigger new playback 30 | if Position>=1.0 then fbs_Play_Sound(hSound):c+=1 31 | dim as integer x=Position*scr_w 32 | line(x-3,0)-step(6,99),c,BF 33 | end if 34 | sleep(5) 35 | wend 36 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/buildlib-64 - -static .bat: -------------------------------------------------------------------------------- 1 | @echo "build FBSound 1.2 for Windows x86_64:" 2 | @REM Set the right path to your 64-bit FreeBASIC compiler ! 3 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbscpu.bas -x ./lib/win64/libfbscpu.a 4 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbsdsp.bas -x ./lib/win64/libfbsdsp.a 5 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -p ./lib/win64 -lib src/fbsound.bas -x ./lib/win64/libfbsound.a 6 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -lib src/plug-ds.bas -x ./lib/win64/libfbsound-ds.a 7 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -lib src/plug-mm.bas -x ./lib/win64/libfbsound-mm.a 8 | del ..\fbsound-1.2\tests\libfbsound-64.dll.a 9 | del ..\fbsound-1.2\tests\libfbsound-ds-64.dll.a 10 | del ..\fbsound-1.2\tests\libfbsound-mm-64.dll.a 11 | @echo "ready!" 12 | @pause 13 | 14 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/buildlib-64.bat: -------------------------------------------------------------------------------- 1 | @echo "build FBSound 1.2 for Windows x86_64:" 2 | @REM Set the right path to your 64-bit FreeBASIC compiler ! 3 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbscpu.bas -x ./lib/win64/libfbscpu.a 4 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -lib src/fbsdsp.bas -x ./lib/win64/libfbsdsp.a 5 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -p ./lib/win64 -dll src/fbsound.bas -x ./lib/win64/fbsound.dll 6 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -dll src/plug-ds.bas -x ./lib/win64/fbsound-ds.dll 7 | c:\GitHub\VisualFBEditorPro\compiler\fbc640.exe -w pedantic -mt -gen gcc -asm intel -dll src/plug-mm.bas -x ./lib/win64/fbsound-mm.dll 8 | REM del ..\fbsound-1.2\tests\libfbsound-64.dll.a 9 | REM del ..\fbsound-1.2\tests\libfbsound-ds-64.dll.a 10 | REM del ..\fbsound-1.2\tests\libfbsound-mm-64.dll.a 11 | @echo "ready!" 12 | @pause 13 | 14 | -------------------------------------------------------------------------------- /mff/DarkMode/DarkMode.bi: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | Dim Shared As Boolean g_darkModeSupported 4 | Dim Shared As Boolean g_darkModeEnabled 5 | 6 | #ifdef __USE_WINAPI__ 7 | Declare Function ShouldAppsUseDarkMode() As BOOL 8 | Declare Function AllowDarkModeForWindow(hWnd As hWnd, allow As BOOL) As BOOL 9 | Declare Function IsHighContrast() As BOOL 10 | Declare Sub RefreshTitleBarThemeColor(hWnd As hWnd) 11 | Declare Sub SetTitleBarThemeColor(hWnd As hWnd, dark As BOOL) 12 | Declare Function IsColorSchemeChangeMessage Overload(lParam As lParam) As BOOL 13 | Declare Function IsColorSchemeChangeMessage Overload(message As UINT, lParam As lParam) As BOOL 14 | Declare Sub AllowDarkModeForApp(allow As BOOL) 15 | Declare Sub EnableDarkScrollBarForWindowAndChildren(hwnd As hwnd) 16 | Declare Sub InitDarkMode() 17 | Declare Function IsWindows11() As BOOL 18 | #endif 19 | #define nullptr 0 20 | Declare Sub SetDarkMode(useDarkMode As Boolean, fixDarkScrollbar As Boolean) 21 | 22 | #ifndef __USE_MAKE__ 23 | #include once "DarkMode.bas" 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /mff/GUI.bi: -------------------------------------------------------------------------------- 1 | '############################################################################### 2 | '# GUI.bi # 3 | '# This file is part of MyFBFramework # 4 | '# Based on: # 5 | '# GUI.bi # 6 | '# FreeBasic Windows GUI ToolKit # 7 | '# Copyright (c) 2007-2008 Nastase Eodor # 8 | '# Version 1.0.0 # 9 | '############################################################################### 10 | 11 | #INCLUDE Once "SysUtils.bi" 12 | #INCLUDE Once "Graphics.bi" 13 | #INCLUDE Once "Control.bi" 14 | #INCLUDE Once "Graphic.bi" 15 | #INCLUDE Once "Canvas.bi" 16 | #INCLUDE Once "Classes.bi" 17 | #INCLUDE Once "Application.bi" 18 | #INCLUDE Once "Dialogs.bi" 19 | #INCLUDE Once "Form.bi" 20 | '... 21 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_and_destroy_wav.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_load_and_destroy_wav.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' simple speed test 8 | ' loading and reloading WAV files. 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | ' only if not same as exe path 13 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | 16 | dim as boolean ok 17 | ok=fbs_Init() 18 | if ok=false then 19 | ? "error: fbs_Init() !" 20 | beep:sleep:end 1 21 | end if 22 | 23 | dim as integer hWave 24 | 25 | ? "any key = quit" 26 | while inkey="" 27 | ? "loading : "; 28 | fbs_Load_WAVFile(data_path & "atem.wav",@hWave) 29 | ? "ok" 30 | ? "wait on start: "; 31 | fbs_Play_Wave(hWave) 32 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 33 | ? "ok " 34 | ? "wait on end : "; 35 | while fbs_Get_PlayingSounds()>0:sleep 10:wend 36 | ? "ok":? 37 | ' !!! don't add more sounds in the pool of waves !!! 38 | fbs_Destroy_Wave(@hWave) 39 | sleep 100 40 | wend 41 | end 42 | 43 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_and_destroy_wav.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_load_and_destroy_wav.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' simple speed test 8 | ' loading and reloading WAV files. 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | ' only if not same as exe path 13 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | 16 | dim as boolean ok 17 | ok=fbs_Init() 18 | if ok=false then 19 | ? "error: fbs_Init() !" 20 | beep:sleep:end 1 21 | end if 22 | 23 | dim as integer hWave 24 | 25 | ? "any key = quit" 26 | while inkey="" 27 | ? "loading : "; 28 | fbs_Load_WAVFile(data_path & "atem.wav",@hWave) 29 | ? "ok" 30 | ? "wait on start: "; 31 | fbs_Play_Wave(hWave) 32 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 33 | ? "ok " 34 | ? "wait on end : "; 35 | while fbs_Get_PlayingSounds()>0:sleep 10:wend 36 | ? "ok":? 37 | ' !!! don't add more sounds in the pool of waves !!! 38 | fbs_Destroy_Wave(@hWave) 39 | sleep 100 40 | wend 41 | end 42 | 43 | -------------------------------------------------------------------------------- /mff/Registry.bi: -------------------------------------------------------------------------------- 1 | #include once "SysUtils.bi" 2 | #include once "vbcompat.bi" 3 | 4 | Namespace My.Sys.Registry 5 | ' Possible registry data types 6 | Private Enum InTypes 7 | ValNull = 0 8 | ValString = 1 9 | ValXString = 2 10 | ValBinary = 3 11 | ValDWord = 4 12 | ValLink = 6 13 | ValMultiString = 7 14 | ValResList = 8 15 | End Enum 16 | 17 | #ifndef __USE_GTK__ 18 | ' Registry section definitions 19 | 'Const HKEY_CLASSES_ROOT = &H80000000 20 | 'Const HKEY_CURRENT_USER = &H80000001 21 | 'Const HKEY_LOCAL_MACHINE = &H80000002 22 | 'Const HKEY_USERS = &H80000003 23 | 'Const HKEY_PERFORMANCE_DATA = &H80000004 24 | 'Const HKEY_CURRENT_CONFIG = &H80000005 25 | 26 | Declare Function ReadRegistry(ByVal Group As HKEY, ByVal Section As LPCWSTR, ByVal Key As LPCWSTR) As String 27 | 28 | Declare Sub WriteRegistry(ByVal Group As HKEY, ByVal Section As LPCWSTR, ByVal Key As LPCWSTR, ByVal ValType As InTypes, value As String) 29 | #endif 30 | End Namespace 31 | 32 | #ifndef __USE_MAKE__ 33 | #include once "Registry.bas" 34 | #endif 35 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/ReadMe.md: -------------------------------------------------------------------------------- 1 | Folder Gir 2 | ========== 3 | 4 | This folder contains the library bindings (header files) and some 5 | special files, which names are starting by an underscore character: 6 | 7 | - the fundamental header `*._GirToBac-0.0.bi` (root of header tree) 8 | - manually translated macros 9 | * `*._GLibMacros-2.0.bi` 10 | * `*._GObjectMacros-2.0.bi` 11 | * `*._GdkMacros-2.0.bi` 12 | 13 | Since the GObjectIntrospection source files `*.gir` contain the main 14 | part of a language binding (type definitions, constants, functions and 15 | external variables), but cannot contain complex macros, those macros get 16 | manually translated to a separat file (and hopefuly do not change much). 17 | 18 | So when the compiler throughs an `undefined symbol` error, it may be 19 | caused by calling a macro needing the extra header. Example: 20 | 21 | If you want to use `g_signal_connect` in a Gtk application, you'll need 22 | 23 | #INCLUDE ONCE "Gir/Gtk-3.0.bi" ' the library header 24 | #INCLUDE ONCE "Gir/_GObjectMacros.bi" ' additional macros 25 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_oggfile.bas: -------------------------------------------------------------------------------- 1 | ' ######################## 2 | ' # fbs_load_oggfile.bas # 3 | '######################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for libogg,libvorbis and libvorbisfile 8 | ' fbs_Load_OGGFile() 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | ' only if not same as exe path 13 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | dim as integer hWave,hSound 16 | dim as double t1,t2 17 | 18 | fbs_Init() 19 | print "please wait while decode 'legends.ogg' in memory!" 20 | print 21 | t1=timer 22 | fbs_Load_OGGFile(data_path & "legends.ogg",@hWave) 23 | t2=int(timer-t1) 24 | print "done in " & t2 & " seconds" 25 | print 26 | 27 | print "create sound object from wave file" 28 | print 29 | fbs_Create_Sound(hWave,@hSound) 30 | print "play sound object" 31 | print 32 | fbs_Play_Sound(hSound) 33 | ' wait on first sample 34 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 35 | 36 | print "press any key for quit ...!" 37 | while fbs_Get_PlayingSounds() and inkey()="" 38 | sleep 100 39 | wend 40 | end 41 | 42 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_oggfile.bas: -------------------------------------------------------------------------------- 1 | ' ######################## 2 | ' # fbs_load_oggfile.bas # 3 | '######################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for libogg,libvorbis and libvorbisfile 8 | ' fbs_Load_OGGFile() 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | ' only if not same as exe path 13 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | dim as integer hWave,hSound 16 | dim as double t1,t2 17 | 18 | fbs_Init() 19 | print "please wait while decode 'legends.ogg' in memory!" 20 | print 21 | t1=timer 22 | fbs_Load_OGGFile(data_path & "legends.ogg",@hWave) 23 | t2=int(timer-t1) 24 | print "done in " & t2 & " seconds" 25 | print 26 | 27 | print "create sound object from wave file" 28 | print 29 | fbs_Create_Sound(hWave,@hSound) 30 | print "play sound object" 31 | print 32 | fbs_Play_Sound(hSound) 33 | ' wait on first sample 34 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 35 | 36 | print "press any key for quit ...!" 37 | while fbs_Get_PlayingSounds() and inkey()="" 38 | sleep 100 39 | wend 40 | end 41 | 42 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_set_loadcallback_mp3.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_set_loadcallback_mp3.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Set_LoadCallback() 10 | ' fbs_Enable_LoadCallback() 11 | ' fbs_Load_MP3File() 12 | 13 | const Media = TESTS_DATA_PATH 14 | const File = "legends.mp3" 15 | 16 | ' only if not same as exe path 17 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 18 | 19 | sub MyLoadCallback(byval percent as integer) 20 | static as integer row=-1 21 | if row=-1 then row=CsrLin()+1 22 | locate row,1 23 | print "loading '" & Media & File & "' " & percent & " % done" 24 | end sub 25 | 26 | if fbs_Init()=false then 27 | ? "fatal error: can't init fbsound 1.2 !" 28 | beep : sleep : end 1 29 | end if 30 | fbs_Set_LoadCallback(@MyLoadCallback) 31 | fbs_Enable_LoadCallback() 32 | 33 | ' decode MP3 as WAV file ! 34 | dim as integer hWave 35 | fbs_Load_MP3File(Media & File, @hWave) 36 | fbs_Play_Wave(hWave) 37 | ? 38 | ? "playing " & File 39 | ? "press any key ..." 40 | sleep 41 | 42 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_set_loadcallback_mp3.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_set_loadcallback_mp3.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Set_LoadCallback() 10 | ' fbs_Enable_LoadCallback() 11 | ' fbs_Load_MP3File() 12 | 13 | const Media = TESTS_DATA_PATH 14 | const File = "legends.mp3" 15 | 16 | ' only if not same as exe path 17 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 18 | 19 | sub MyLoadCallback(byval percent as integer) 20 | static as integer row=-1 21 | if row=-1 then row=CsrLin()+1 22 | locate row,1 23 | print "loading '" & Media & File & "' " & percent & " % done" 24 | end sub 25 | 26 | if fbs_Init()=false then 27 | ? "fatal error: can't init fbsound 1.2 !" 28 | beep : sleep : end 1 29 | end if 30 | fbs_Set_LoadCallback(@MyLoadCallback) 31 | fbs_Enable_LoadCallback() 32 | 33 | ' decode MP3 as WAV file ! 34 | dim as integer hWave 35 | fbs_Load_MP3File(Media & File, @hWave) 36 | fbs_Play_Wave(hWave) 37 | ? 38 | ? "playing " & File 39 | ? "press any key ..." 40 | sleep 41 | 42 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/xlib-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/xlib-2.0.gir 5 | #include once "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | 'Type As gulong Atom 8 | Type As gulong Colormap 9 | Type As gulong Cursor 10 | Type As _Display Display 11 | Type As gulong Drawable 12 | Type As gpointer GC 13 | Type As guint8 KeyCode 14 | Type As gulong KeySym 15 | Type As gulong Picture 16 | Type As _Screen_ Screen_ 17 | Type As gulong Time_ 18 | Type As _Visual Visual 19 | Type As gulong VisualID 20 | Type As gulong Window_ 21 | Type As _XConfigureEvent XConfigureEvent 22 | Type As gulong XID 23 | Type As gulong Pixmap 24 | Type As _XImage XImage 25 | Type As _XFontStruct XFontStruct 26 | Type As _XTrapezoid XTrapezoid 27 | Type As _XVisualInfo XVisualInfo 28 | Type As _XWindowAttributes XWindowAttributes 29 | Extern "C" 30 | ' P_X 31 | 32 | ' P_3 33 | Type As _XEvent XEvent 34 | ' P_4 35 | 36 | Declare Sub XOpenDisplay() 37 | End Extern 38 | 39 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_pause_rewind_sound.bas: -------------------------------------------------------------------------------- 1 | ' ############################## 2 | ' # fbs_pause_rewind_sound.bas # 3 | '############################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for 8 | ' fbs_PauseRewindSound() 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | sub fbs_PauseRewindSound(byval hSound as integer) 17 | dim as short ptr pStart 18 | ' stop playback 19 | fbs_Set_SoundPaused(hSound,True) 20 | ' get start position 21 | fbs_Get_SoundPointers(hSound,@pStart) 22 | ' set it as current play postion 23 | fbs_Set_SoundPointers(hSound,,pStart) 24 | end sub 25 | 26 | dim as integer hWave,hSound 27 | fbs_Init() 28 | print "please wait while decode 'legends.ogg' in memory!" 29 | fbs_Load_OGGFile(data_path & "legends.ogg",@hWave) 30 | fbs_Create_Sound(hWave,@hSound) 31 | fbs_Play_Sound(hSound) 32 | print "playing for 5 seconds" 33 | sleep 5000 34 | print "restart sound" 35 | ' pause and rewind 36 | fbs_PauseRewindSound(hSound) 37 | ' restart the sound 38 | fbs_Set_SoundPaused(hSound,False) 39 | sleep 40 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_pause_rewind_sound.bas: -------------------------------------------------------------------------------- 1 | ' ############################## 2 | ' # fbs_pause_rewind_sound.bas # 3 | '############################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for 8 | ' fbs_PauseRewindSound() 9 | 10 | const data_path = TESTS_DATA_PATH 11 | chdir(exepath()) 12 | 13 | ' only if not same as exe path 14 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | sub fbs_PauseRewindSound(byval hSound as integer) 17 | dim as short ptr pStart 18 | ' stop playback 19 | fbs_Set_SoundPaused(hSound,True) 20 | ' get start position 21 | fbs_Get_SoundPointers(hSound,@pStart) 22 | ' set it as current play postion 23 | fbs_Set_SoundPointers(hSound,,pStart) 24 | end sub 25 | 26 | dim as integer hWave,hSound 27 | fbs_Init() 28 | print "please wait while decode 'legends.ogg' in memory!" 29 | fbs_Load_OGGFile(data_path & "legends.ogg",@hWave) 30 | fbs_Create_Sound(hWave,@hSound) 31 | fbs_Play_Sound(hSound) 32 | print "playing for 5 seconds" 33 | sleep 5000 34 | print "restart sound" 35 | ' pause and rewind 36 | fbs_PauseRewindSound(hSound) 37 | ' restart the sound 38 | fbs_Set_SoundPaused(hSound,False) 39 | sleep 40 | -------------------------------------------------------------------------------- /examples/Canvas/english.html: -------------------------------------------------------------------------------- 1 | chinese 2 | 3 |
     chinese
    4 |
    5 |
    6 |
  • Background  =  Background 7 |
  • CenterImage  =  CenterImage 8 |
  • Cls  =  Cls 9 |
  • DoubleBuffered  =  DoubleBuffered 10 |
  • Drawing with GDI+  =  Drawing with GDI+ 11 |
  • Scale  =  Scale 12 |
  • Start Draw  =  Start Draw 13 |
  • Transparent  =  Transparent 14 |
  • Play =  Play 15 |
  • Pause  =  Pause 16 |
  • change the FPS  =  change the FPS 17 |
  • Language:  =  Language: 18 | 19 |
  • 20 |
    21 |
    22 | 23 | 24 | -------------------------------------------------------------------------------- /mff/NativeFontControl.bi: -------------------------------------------------------------------------------- 1 | ''################################################################################ 2 | ''# MonthCalendar.bi # 3 | ''# This file is part of MyFBFramework # 4 | ''# Authors: Xusinboy Bekchanov (2018-2019) # 5 | ''################################################################################ 6 | ' 7 | '#include once "Control.bi" 8 | ' 9 | 'Namespace My.Sys.Forms 10 | ' #define QNativeFontControl(__Ptr__) (*Cast(NativeFontControl Ptr, __Ptr__)) 11 | ' 12 | ' Private Type NativeFontControl Extends Control 13 | ' Private: 14 | ' #ifndef __USE_GTK__ 15 | ' Declare Static Sub WndProc(ByRef Message As Message) 16 | ' Declare Virtual Sub ProcessMessage(ByRef Message As Message) 17 | ' Declare Static Sub HandleIsAllocated(ByRef Sender As My.Sys.Forms.Control) 18 | ' #endif 19 | ' Public: 20 | ' Declare Operator Cast As My.Sys.Forms.Control Ptr 21 | ' Declare Constructor 22 | ' Declare Destructor 23 | ' End Type 24 | 'End Namespace 25 | ' 26 | '#ifndef __USE_MAKE__ 27 | ' #include once "NativeFontControl.bas" 28 | '#endif 29 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/tests-common.bi: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | Const TESTS_DATA_PATH = "../data/" 4 | 5 | #if Not defined( FBSOUND_USE_DYNAMIC ) And Not defined( FBSOUND_USE_STATIC ) 6 | '#define FBSOUND_USE_DYNAMIC 7 | '#define FBSOUND_USE_STATIC 8 | #endif 9 | 10 | '' set the DLL path before including fbsound_dynamic.bi to override 11 | #if defined( FBSOUND_USE_DYNAMIC ) 12 | #ifdef __FB_WIN32__ 13 | #ifdef __FB_64BIT__ 14 | Const FBSOUND_DLL_PATH = "../bin/win64/" 15 | #else 16 | Const FBSOUND_DLL_PATH = "../bin/win32/" 17 | #endif 18 | #else 19 | Const FBSOUND_DLL_PATH = "" 20 | #endif 21 | #else 22 | Const FBSOUND_DLL_PATH = "" 23 | #endif 24 | 25 | #if defined( FBSOUND_USE_DYNAMIC ) 26 | #include "mff/fbsound/fbsound_dynamic.bi" 27 | #include "mff/fbsound/fbsound.bi" 28 | #else 29 | #define FBSOUND_USE_STATIC 30 | #include once "mff/fbsound/fbsound.bi" 31 | #include once "mff/fbsound/plug.bi" 32 | #include once "mff/fbsound/plug-static.bi" 33 | #include once "mff/fbsound/fbsound.bas" 34 | #include once "mff/fbsound/plug-ds.bas" 35 | #include once "mff/fbsound/plug-mm.bas" 36 | #include once "mff/fbsound/plug-static.bas" 37 | 38 | #endif 39 | 40 | -------------------------------------------------------------------------------- /examples/GridData/frmGridDataTest.vfp: -------------------------------------------------------------------------------- 1 | File=GridData.bi 2 | File=sqlite3.bi 3 | *File=frmGridDataTest.bas 4 | File=SQLITE3_UTILITY.inc 5 | File=GridDataTest.rc 6 | File=xpmanifest.xml 7 | ProjectType=0 8 | Subsystem=0 9 | ProjectName="" 10 | HelpFileName="" 11 | ProjectDescription="" 12 | PassAllModuleFilesToCompiler=false 13 | OpenProjectAsFolder=false 14 | MajorVersion=0 15 | MinorVersion=0 16 | RevisionVersion=0 17 | BuildVersion=100 18 | AutoIncrementVersion=false 19 | ApplicationTitle="" 20 | ApplicationIcon="" 21 | Manifest=true 22 | RunAsAdministrator=false 23 | CompanyName="" 24 | FileDescription="{ProjectDescription}" 25 | InternalName="" 26 | LegalCopyright="" 27 | LegalTrademarks="" 28 | OriginalFilename="" 29 | ProductName="{ProjectName}" 30 | CompileTo=0 31 | OptimizationLevel=0 32 | OptimizationFastCode=false 33 | OptimizationSmallCode=false 34 | CompilationArguments32Windows="" 35 | CompilationArguments64Windows="" 36 | CompilationArguments32Linux="" 37 | CompilationArguments64Linux="" 38 | CompilerPath="" 39 | CommandLineArguments="" 40 | CreateDebugInfo=false 41 | AndroidSDKLocation="" 42 | AndroidNDKLocation="" 43 | JDKLocation="" 44 | ControlLibrary="Controls/MyFbFramework" 45 | -------------------------------------------------------------------------------- /examples/Forms/Form4.frm: -------------------------------------------------------------------------------- 1 | '################################################################################ 2 | '# Form4.frm # 3 | '# This file is an examples of MyFBFramework. # 4 | '# Authors: Xusinboy Bekchanov, Liu XiaLin # 5 | '################################################################################ 6 | 7 | '#Region "Form" 8 | #if defined(__FB_MAIN__) AndAlso Not defined(__MAIN_FILE__) 9 | #define __MAIN_FILE__ 10 | Const _MAIN_FILE_ = __FILE__ 11 | #ifdef __FB_WIN32__ 12 | #cmdline "Form1.rc" 13 | #endif 14 | #endif 15 | #include once "mff/Form.bi" 16 | 17 | Using My.Sys.Forms 18 | 19 | Type Form4Type Extends Form 20 | Declare Constructor 21 | 22 | End Type 23 | 24 | Constructor Form4Type 25 | ' Form4 26 | With This 27 | .Name = "Form4" 28 | .Text = "Form4" 29 | .FormStyle = FormStyles.fsNormal 30 | .Designer = @This 31 | .SetBounds 0, 0, 350, 300 32 | End With 33 | End Constructor 34 | 35 | Dim Shared Form4 As Form4Type 36 | #if _MAIN_FILE_ = __FILE__ 37 | Form4.MainForm = True 38 | Form4.Show 39 | App.Run 40 | #endif 41 | '#End Region 42 | -------------------------------------------------------------------------------- /examples/Forms/MDIForm/MDIForm.vfp: -------------------------------------------------------------------------------- 1 | File=MDIChild.frm 2 | *File=MDIMain.frm 3 | *File=Form1.rc 4 | ProjectType=0 5 | Subsystem=2 6 | ProjectName="" 7 | HelpFileName="" 8 | ProjectDescription="MDIForm" 9 | PassAllModuleFilesToCompiler=false 10 | OpenProjectAsFolder=false 11 | MajorVersion=0 12 | MinorVersion=0 13 | RevisionVersion=0 14 | BuildVersion=350 15 | AutoIncrementVersion=false 16 | ApplicationTitle="MDIForm" 17 | ApplicationIcon="" 18 | Manifest=true 19 | RunAsAdministrator=false 20 | CompanyName="" 21 | FileDescription="{ProjectDescription}" 22 | InternalName="MDIForm" 23 | LegalCopyright="" 24 | LegalTrademarks="" 25 | OriginalFilename="MDIForm" 26 | ProductName="{ProjectName}" 27 | CompileTo=0 28 | OptimizationLevel=0 29 | OptimizationFastCode=false 30 | OptimizationSmallCode=false 31 | CompilationArguments32Windows="" 32 | CompilationArguments64Windows="" 33 | CompilationArguments32Linux="" 34 | CompilationArguments64Linux="" 35 | CompilerPath="" 36 | CommandLineArguments="" 37 | CreateDebugInfo=false 38 | AndroidSDKLocation="" 39 | AndroidNDKLocation="" 40 | JDKLocation="" 41 | ControlLibrary="Controls/MariaDBBox" 42 | ControlLibrary="Controls/MyFbFramework" 43 | ControlLibrary="Controls/ScintillaControl" 44 | ControlLibrary="Controls/SQLite3" 45 | -------------------------------------------------------------------------------- /COPYING.modifiedLGPL.txt: -------------------------------------------------------------------------------- 1 | This is the COPYING.modifiedLGPL file, it applies to units in 2 | MyFbFramework sources distributed by members of the MyFbFramework development team. 3 | 4 | These files are distributed under the Library GNU General Public License 5 | (see the file COPYING.LGPL) with the following modification: 6 | 7 | As a special exception, the copyright holders of this library give you 8 | permission to link this library with independent modules to produce an 9 | executable, regardless of the license terms of these independent modules, 10 | and to copy and distribute the resulting executable under terms of your choice, 11 | provided that you also meet, for each linked independent module, the terms 12 | and conditions of the license of that module. An independent module is a 13 | module which is not derived from or based on this library. If you modify this 14 | library, you may extend this exception to your version of the library, but 15 | you are not obligated to do so. If you do not wish to do so, delete this 16 | exception statement from your version. 17 | 18 | 19 | If you didn't receive a copy of the file COPYING.LGPL, contact: 20 | Free Software Foundation, Inc., 21 | 675 Mass Ave 22 | Cambridge, MA 02139 23 | USA 24 | 25 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_load_and_play_wav.bas: -------------------------------------------------------------------------------- 1 | ' ############################# 2 | ' # fbs_load_and_play_wav.bas # 3 | '############################# 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | ' fbs_Load_WAVFile() 9 | ' fbs_Play_Wave() 10 | 11 | const data_path = TESTS_DATA_PATH 12 | chdir(exepath()) 13 | 14 | ' only if not same as exe path 15 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | dim as boolean ok 18 | ok=fbs_Init() 19 | if ok=false then 20 | ? "error: fbs_Init() !" 21 | ? FBS_Get_PlugError() 22 | beep:sleep:end 1 23 | end if 24 | 25 | dim as integer hWave 26 | ok=fbs_Load_WAVFile(data_path & "fbsloop44.wav",@hWave) 27 | if ok=false then 28 | ? "error: fbs_Load_WAVFile() !" 29 | beep:sleep:end 1 30 | end if 31 | 32 | 'get next free playback channel or create one 33 | ok=fbs_Play_Wave(hWave) 34 | if ok=false then 35 | ? "error: fbs_Play_Wave() !" 36 | beep:sleep:end 1 37 | end if 38 | 39 | ' 40 | ' main loop 41 | ' 42 | ? "[p] = begin new playback (4 loops)" 43 | ? "[esc] = quit" 44 | 45 | dim as integer KeyCode 46 | while KeyCode<>27 47 | KeyCode=asc(Inkey()) 48 | if KeyCode=asc("p") then 49 | fbs_Play_Wave(hWave,4) ' optional 4 times 50 | else 51 | sleep 100 52 | end if 53 | wend 54 | end 55 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/DBusGLib-1.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/DBusGLib-1.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | #INCLUDE ONCE "GObject-2.0.bi" 8 | TYPE AS _DBusGConnection DBusGConnection 9 | TYPE AS _DBusGMethodInvocation DBusGMethodInvocation 10 | TYPE AS _DBusGProxy DBusGProxy 11 | TYPE AS _DBusGProxyClass DBusGProxyClass 12 | EXTERN "C" 13 | ' P_X 14 | 15 | ' P_3 16 | 17 | DECLARE FUNCTION dbus_g_proxy_get_type() AS GType 18 | #DEFINE DBUSGLIB_TYPE_G_PROXY (dbus_g_proxy_get_type()) 19 | #DEFINE DBUSGLIB_G_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), DBUSGLIB_TYPE_G_PROXY, DBusGProxy)) 20 | #DEFINE DBUSGLIB_G_PROXY_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), DBUSGLIB_TYPE_G_PROXY, DBusGLib)) 21 | #DEFINE DBUSGLIB_IS_G_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), DBUSGLIB_TYPE_G_PROXY)) 22 | #DEFINE DBUSGLIB_IS_CLASS_G_PROXY(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), DBUSGLIB_TYPE_G_PROXY)) 23 | #DEFINE DBUSGLIB_G_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), DBUSGLIB_TYPE_G_PROXY, DBusGLib)) 24 | ' P_4 25 | 26 | END EXTERN 27 | 28 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_load_and_play_wav.bas: -------------------------------------------------------------------------------- 1 | ' ############################# 2 | ' # fbs_load_and_play_wav.bas # 3 | '############################# 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | ' fbs_Load_WAVFile() 9 | ' fbs_Play_Wave() 10 | 11 | const data_path = TESTS_DATA_PATH 12 | chdir(exepath()) 13 | 14 | ' only if not same as exe path 15 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | dim as boolean ok 18 | ok=fbs_Init() 19 | if ok=false then 20 | ? "error: fbs_Init() !" 21 | ? FBS_Get_PlugError() 22 | beep:sleep:end 1 23 | end if 24 | 25 | dim as integer hWave 26 | ok=fbs_Load_WAVFile(data_path & "fbsloop44.wav",@hWave) 27 | if ok=false then 28 | ? "error: fbs_Load_WAVFile() !" 29 | beep:sleep:end 1 30 | end if 31 | 32 | 'get next free playback channel or create one 33 | ok=fbs_Play_Wave(hWave) 34 | if ok=false then 35 | ? "error: fbs_Play_Wave() !" 36 | beep:sleep:end 1 37 | end if 38 | 39 | ' 40 | ' main loop 41 | ' 42 | ? "[p] = begin new playback (4 loops)" 43 | ? "[esc] = quit" 44 | 45 | dim as integer KeyCode 46 | while KeyCode<>27 47 | KeyCode=asc(Inkey()) 48 | if KeyCode=asc("p") then 49 | fbs_Play_Wave(hWave,4) ' optional 4 times 50 | else 51 | sleep 100 52 | end if 53 | wend 54 | end 55 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/Languages/english.html: -------------------------------------------------------------------------------- 1 | english 2 | 3 |
     english
    4 |
    5 |
    6 |
  • Can not load file.  =  Can not load file. 7 |
  • Channels  =  Channels 8 |
  • Channels Changed  =  Channels Changed 9 |
  • File:  =  File: 10 |
  • Normal playing  =  Normal playing 11 |
  • Play  =  Play 12 |
  • play time:  =  play time: 13 |
  • seconds  =  seconds 14 |
  • Stop  =  Stop 15 |
  • Volume  =  Volume 16 |
  • Volume Changed  =  Volume Changed 17 |
  • wait on end of playback ...  =  wait on end of playback ... 18 |
  • Waiting...  =  Waiting... 19 |
  • 20 |
    21 |
    22 | 23 | 24 | -------------------------------------------------------------------------------- /mff/UserControl.bi: -------------------------------------------------------------------------------- 1 | '################################################################################ 2 | '# UserControl.bi # 3 | '# This file is part of MyFBFramework # 4 | '# Authors: Xusinboy Bekchanov # 5 | '################################################################################ 6 | 7 | #include once "ContainerControl.bi" 8 | '#Include Once "Canvas.bi" 9 | 10 | Namespace My.Sys.Forms 11 | #define QUserControl(__Ptr__) (*Cast(UserControl Ptr,__Ptr__)) 12 | 13 | 'Provides an empty control that can be used to create other controls. A Control authored in VisualFBEditor 14 | Private Type UserControl Extends ContainerControl 15 | Private: 16 | #ifndef __USE_GTK__ 17 | Declare Static Sub HandleIsAllocated(ByRef Sender As Control) 18 | Declare Static Sub WndProc(ByRef Message As Message) 19 | #endif 20 | Public: 21 | Declare Virtual Sub ProcessMessage(ByRef Message As Message) 22 | 'Canvas As My.Sys.Drawing.Canvas 23 | Declare Operator Cast As Control Ptr 24 | Declare Constructor 25 | Declare Destructor 26 | End Type 27 | End Namespace 28 | 29 | #ifndef __USE_MAKE__ 30 | #include once "UserControl.bas" 31 | #endif 32 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/tests-common.bi: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | Const TESTS_DATA_PATH = "../../Resources/" 4 | 5 | #if Not defined( FBSOUND_USE_DYNAMIC ) And Not defined( FBSOUND_USE_STATIC ) 6 | '#define FBSOUND_USE_DYNAMIC 7 | #define FBSOUND_USE_STATIC 8 | #endif 9 | 10 | '' set the DLL path before including fbsound_dynamic.bi to override 11 | #if defined( FBSOUND_USE_DYNAMIC ) 12 | #ifdef __FB_WIN32__ 13 | #ifdef __FB_64BIT__ 14 | 'Const FBSOUND_DLL_PATH = "../../../lib/win-x64/" 15 | #else 16 | 'Const FBSOUND_DLL_PATH = "../../../lib/win-x86/" 17 | #endif 18 | #else 19 | Const FBSOUND_DLL_PATH = "" 20 | #endif 21 | #else 22 | Const FBSOUND_DLL_PATH = "" 23 | #endif 24 | 25 | #if defined( FBSOUND_USE_DYNAMIC ) 26 | #include "inc/fbsound/fbsound_dynamic.bi" 27 | #endif 28 | 29 | #if defined( FBSOUND_USE_STATIC ) 30 | ' 31 | '#ifdef __FB_WIN32__ 32 | ' #ifndef __FB_64BIT__ 33 | ' #libpath "./lib/win32/" 34 | ' #else 35 | ' #libpath "./lib/win64/" 36 | ' #endif 37 | '#else 38 | ' #ifdef __FB_LINUX__ 39 | ' #ifndef __FB_64BIT__ 40 | ' #libpath "./lib/lin32/" 41 | ' #else 42 | ' #libpath "./lib/lin64/" 43 | ' #endif 44 | ' #else 45 | ' #error 666: Build target must be Windows or Linux ! 46 | ' #endif 47 | '#endif 48 | 49 | #include "inc/fbsound/fbsound.bi" 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /examples/Forms/SDIForm/SDIForm.vfp: -------------------------------------------------------------------------------- 1 | File=C:\GitHub\VisualFBEditor\Controls\MyFbFramework\examples\Froms\Form1.frm 2 | File=SDIChild.frm 3 | *File=SDIMain.frm 4 | *File=Form1.rc 5 | ProjectType=0 6 | Subsystem=2 7 | ProjectName="" 8 | HelpFileName="" 9 | ProjectDescription="SDIForm" 10 | PassAllModuleFilesToCompiler=false 11 | OpenProjectAsFolder=false 12 | MajorVersion=0 13 | MinorVersion=0 14 | RevisionVersion=0 15 | BuildVersion=350 16 | AutoIncrementVersion=false 17 | ApplicationTitle="SDIForm" 18 | ApplicationIcon="" 19 | Manifest=true 20 | RunAsAdministrator=false 21 | CompanyName="" 22 | FileDescription="{ProjectDescription}" 23 | InternalName="SDIForm" 24 | LegalCopyright="" 25 | LegalTrademarks="" 26 | OriginalFilename="SDIForm" 27 | ProductName="{ProjectName}" 28 | CompileTo=0 29 | OptimizationLevel=0 30 | OptimizationFastCode=false 31 | OptimizationSmallCode=false 32 | CompilationArguments32Windows="" 33 | CompilationArguments64Windows="" 34 | CompilationArguments32Linux="" 35 | CompilationArguments64Linux="" 36 | CompilerPath="" 37 | CommandLineArguments="" 38 | CreateDebugInfo=false 39 | AndroidSDKLocation="" 40 | AndroidNDKLocation="" 41 | JDKLocation="" 42 | ControlLibrary="Controls/MariaDBBox" 43 | ControlLibrary="Controls/MyFbFramework" 44 | ControlLibrary="Controls/ScintillaControl" 45 | ControlLibrary="Controls/SQLite3" 46 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "FreeBASIC Run", 9 | "type": "cppdbg", 10 | "request": "launch", 11 | "windows": { 12 | "program": "${workspaceFolder}/../VisualFBEditor32.exe", 13 | "miDebuggerPath": "D:/FreeBasic/FreeBASIC-1.07.1-win32/bin/win32/gdb.exe", 14 | }, 15 | "linux": { 16 | "program": "${workspaceFolder}/../VisualFBEditor64_gtk3", 17 | "miDebuggerPath": "gdb", 18 | }, 19 | "args": [], 20 | "stopAtEntry": true, 21 | "cwd": "${workspaceFolder}", 22 | "environment": [], 23 | "externalConsole": false, 24 | "MIMode": "gdb", 25 | "setupCommands": [ 26 | { 27 | "description": "gdb", 28 | "text": "-enable-pretty-printing", 29 | "ignoreFailures": true 30 | } 31 | ], 32 | "preLaunchTask": "FreeBASIC Build" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/websocket-client.bas: -------------------------------------------------------------------------------- 1 | 2 | #include once "inc/mongoose.bi" 3 | 4 | '#ifndef __FB_64BIT__ 5 | '#libpath "win32" 6 | '#else 7 | '#libpath "win64" 8 | '#endif 9 | Dim Shared s_url As ZString Ptr =@"ws://localhost:8000/websocket" 10 | 11 | Private Sub fn(ByVal c As mg_connection Ptr, ByVal ev As Long, ByVal ev_data As Any Ptr) 12 | If ev = MG_EV_OPEN Then 13 | c->is_hexdumping = 1 14 | ElseIf ev = MG_EV_ERROR Then 15 | Print *Cast(ZString Ptr, c->fd), *Cast(ZString Ptr, ev_data) 16 | ElseIf ev = MG_EV_WS_OPEN Then 17 | mg_ws_send(c, Cast(Any Ptr,@"hello"), 5, WEBSOCKET_OP_TEXT) 18 | ElseIf ev = MG_EV_WS_MSG Then 19 | Dim wm As mg_ws_message Ptr = CPtr(mg_ws_message Ptr, ev_data) 20 | printf(!"GOT ECHO REPLY: [%.*s]\n", CLng(wm->data_.len_), wm->data_.buf) 21 | End If 22 | If ((ev = MG_EV_ERROR) OrElse (ev = MG_EV_CLOSE)) OrElse (ev = MG_EV_WS_MSG) Then 23 | *CPtr(BOOL Ptr, @c->fn_data) = True 24 | 25 | End If 26 | End Sub 27 | 28 | Dim mgr As mg_mgr 29 | Dim As BOOL done = False 30 | Dim c As mg_connection Ptr 31 | mg_mgr_init(@mgr) 32 | mg_log_set(MG_LL_DEBUG) 33 | c = mg_ws_connect(@mgr, s_url,Cast(Any Ptr, @fn), @done, NULL) 34 | While c AndAlso (done = False) 35 | mg_mgr_poll(@mgr, 1000) 36 | Wend 37 | mg_mgr_free(@mgr) 38 | Sleep 39 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/_GdkMacros-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, manual-generated file 2 | ' containing additional code-generating macros for Gdk-2.0 (Gdk-3.0) 3 | ' LGPLv2.1 (C) 2014-2022 by Thomas[ dot }Freiherr[ at ]gmx[ dot }net 4 | 5 | #INCLUDE ONCE "_GLibMacros-2.0.bi" 6 | 7 | #DEFINE GDK_ATOM_TO_POINTER(atom) (atom) 8 | #DEFINE GDK_POINTER_TO_ATOM(_P_) CAST(GdkAtom, (_P_)) 9 | #DEFINE _GDK_MAKE_ATOM(_V_) CAST(GdkAtom, GUINT_TO_POINTER(_V_)) 10 | #DEFINE GDK_NONE _GDK_MAKE_ATOM(0) 11 | 12 | #DEFINE GDK_SELECTION_PRIMARY _GDK_MAKE_ATOM(1) 13 | #DEFINE GDK_SELECTION_SECONDARY _GDK_MAKE_ATOM(2) 14 | #DEFINE GDK_SELECTION_CLIPBOARD _GDK_MAKE_ATOM(69) 15 | #DEFINE GDK_TARGET_BITMAP _GDK_MAKE_ATOM(5) 16 | #DEFINE GDK_TARGET_COLORMAP _GDK_MAKE_ATOM(7) 17 | #DEFINE GDK_TARGET_DRAWABLE _GDK_MAKE_ATOM(17) 18 | #DEFINE GDK_TARGET_PIXMAP _GDK_MAKE_ATOM(20) 19 | #DEFINE GDK_TARGET_STRING _GDK_MAKE_ATOM(31) 20 | #DEFINE GDK_SELECTION_TYPE_ATOM _GDK_MAKE_ATOM(4) 21 | #DEFINE GDK_SELECTION_TYPE_BITMAP _GDK_MAKE_ATOM(5) 22 | #DEFINE GDK_SELECTION_TYPE_COLORMAP _GDK_MAKE_ATOM(7) 23 | #DEFINE GDK_SELECTION_TYPE_DRAWABLE _GDK_MAKE_ATOM(17) 24 | #DEFINE GDK_SELECTION_TYPE_INTEGER _GDK_MAKE_ATOM(19) 25 | #DEFINE GDK_SELECTION_TYPE_PIXMAP _GDK_MAKE_ATOM(20) 26 | #DEFINE GDK_SELECTION_TYPE_WINDOW _GDK_MAKE_ATOM(33) 27 | #DEFINE GDK_SELECTION_TYPE_STRING _GDK_MAKE_ATOM(31) 28 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/web_root/rpc-over-websocket.js: -------------------------------------------------------------------------------- 1 | // JSON-RPC over Websocket implementation 2 | var JSONRPC_TIMEOUT_MS = 1000; 3 | 4 | var jsonrpc = function(url, onopen, onclose, onnotification) { 5 | var rpcid = 0, pending = {}, ws = new WebSocket(url); 6 | if (!ws) return null; 7 | ws.onclose = onclose; 8 | ws.onmessage = function(ev) { 9 | const frame = JSON.parse(ev.data); 10 | console.log('rcvd', frame, 'pending:', pending); 11 | if (frame.id !== undefined) { 12 | if (pending[frame.id] !== undefined) pending[frame.id](frame); // Resolve 13 | delete (pending[frame.id]); 14 | } else { 15 | if (onnotification) onnotification(frame); 16 | } 17 | }; 18 | if (onopen) onopen(); 19 | return { 20 | close: () => ws.close(), 21 | call: function(method, params) { 22 | const id = rpcid++, request = {id, method, params}; 23 | ws.send(JSON.stringify(request)); 24 | console.log('sent', request); 25 | return new Promise(function(resolve, reject) { 26 | setTimeout(function() { 27 | if (pending[id] === undefined) return; 28 | log('Timing out frame ', JSON.stringify(request)); 29 | delete (pending[id]); 30 | reject(); 31 | }, JSONRPC_TIMEOUT_MS); 32 | pending[id] = x => resolve(x); 33 | }); 34 | }, 35 | }; 36 | }; 37 | -------------------------------------------------------------------------------- /mff/CDropSource/CDropSource.bi: -------------------------------------------------------------------------------- 1 | #ifdef __USE_WINAPI__ 2 | #include once "windows.bi" 3 | #include once "win/ole2.bi" 4 | #endif 5 | 6 | Namespace My.Sys.Forms 7 | #ifdef __USE_WINAPI__ 8 | Type CDropSource 9 | Private: 10 | '' implements IDropTarget 11 | Dim As IDropSource m_DropSource = Any 12 | 13 | Public: 14 | Declare Constructor() 15 | Declare Destructor() 16 | 17 | Private: 18 | '' IDropTarget implementation (while there's no support for virtual methods and inheritance) 19 | Declare Static Function QueryInterface _ 20 | (ByVal pInst As IDropSource Ptr, _ 21 | ByVal iid As REFIID, ByVal ppvObject As Any Ptr Ptr) As HRESULT 22 | 23 | Declare Static Function AddRef _ 24 | (ByVal pInst As IDropSource Ptr) As ULong 25 | 26 | Declare Static Function Release _ 27 | (ByVal pInst As IDropSource Ptr) As ULong 28 | 29 | Declare Static Function QueryContinueDrag _ 30 | (ByVal This As IDropSource Ptr, ByVal fEscapePressed As WINBOOL, ByVal grfKeyState As DWORD) As HRESULT 31 | 32 | Declare Static Function GiveFeedback _ 33 | (ByVal This As IDropSource Ptr, ByVal dwEffect As DWORD) As HRESULT 34 | 35 | Public: 36 | '' member variables 37 | As Any Ptr Ctrl 38 | As Long m_lRefCount = Any 39 | As IDataObject Ptr m_pDataObject = Any 40 | End Type 41 | #endif 42 | End Namespace 43 | 44 | -------------------------------------------------------------------------------- /mff/fbsound/plug.bi: -------------------------------------------------------------------------------- 1 | #ifndef __FBS_PLUG_BI__ 2 | #define __FBS_PLUG_BI__ 3 | 4 | ' ########### 5 | ' # plug.bi # 6 | '########### 7 | ' Copyright 2005-2020 by D.J.Peters (Joshy) 8 | ' d.j.peters@web.de 9 | 10 | ' common to all plug-XXX interfaces 11 | #include once "fbstypes.bi" 12 | 13 | type FBS_PLUG_t 14 | as any ptr plug_hLib 15 | ' interface 16 | as function () as string plug_error 17 | as function (byref Plug as FBS_PLUG_t) as boolean plug_isany 18 | as function (byref Plug as FBS_PLUG_t) as boolean plug_init 19 | as function () as boolean plug_start 20 | as function () as boolean plug_stop 21 | as function () as boolean plug_exit 22 | 23 | as any ptr ThreadID 24 | as boolean ThreadExit 25 | as FILLCALLBACK FillBuffer 26 | 27 | ' plublic section 28 | as zstring * 64 PlugName 29 | as zstring * 64 DeviceName 30 | as integer DeviceIndex 31 | as integer Framesize 32 | as integer nFrames 33 | as integer nBuffers 34 | as integer BufferSize 35 | as ubyte ptr lpCurentBuffer 36 | as any ptr ptr lpBuffers 37 | as FBS_FORMAT Fmt 38 | end type 39 | type FBS_PLUG as FBS_PLUG_t 40 | 41 | #endif ' __FBS_PLUG_BI__ 42 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "FreeBASIC Build", 8 | "type": "shell", 9 | "windows": { 10 | "command": "D:/FreeBasic/FreeBASIC-1.07.1-win32/fbc.exe", 11 | "args": [ 12 | "-g", 13 | "-b", 14 | "mff.bi", 15 | "mff.rc", 16 | "-x", 17 | "../mff32.dll", 18 | "-dll" 19 | ], 20 | }, 21 | "linux": { 22 | "command": "/mnt/media/FreeBasic/FreeBASIC-1.07.3-linux-x86_64/bin/fbc", 23 | "args": [ 24 | "-g", 25 | "-b", 26 | "mff.bi", 27 | "-x", 28 | "../libmff64_gtk2.so", 29 | "-dll" 30 | ], 31 | }, 32 | "options": { 33 | "cwd": "${workspaceFolder}/mff" 34 | }, 35 | "problemMatcher": [], 36 | "group": { 37 | "kind": "build", 38 | "isDefault": true 39 | } 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /mff/WebView/WebKitWebView.bi: -------------------------------------------------------------------------------- 1 | #ifdef __USE_GTK3__ 2 | #inclib "webkitgtk-3.0" 3 | #else 4 | #inclib "webkitgtk-1.0" 5 | #endif 6 | Extern "C" 7 | Declare Function webkit_web_view_new() As GtkWidget Ptr 8 | Declare Sub webkit_web_view_load_uri(web_view As Any Ptr, uri As gchar Ptr) 9 | Declare Sub webkit_web_view_load_html(web_view As Any Ptr, text As gchar Ptr , base_uri As gchar Ptr = 0) 10 | Declare Sub webkit_web_view_load_html_string(web_view As Any Ptr , text As gchar Ptr , base_uri As gchar Ptr = 0) 11 | Declare Sub webkit_web_view_reload_bypass_cache(web_view As Any Ptr) 12 | Declare Function webkit_web_view_get_uri(web_view As Any Ptr) As gchar Ptr 13 | Declare Function webkit_web_view_can_go_back(web_view As Any Ptr) As gboolean 14 | Declare Sub webkit_web_view_go_back(web_view As Any Ptr) 15 | Declare Function webkit_web_view_can_go_forward(web_view As Any Ptr) As gboolean 16 | Declare Sub webkit_web_view_go_forward(web_view As Any Ptr) 17 | Declare Sub webkit_web_view_stop_loading(web_view As Any Ptr) 18 | Declare Function webkit_web_view_is_loading(web_view As Any Ptr) As gboolean 19 | Declare Function webkit_web_view_get_load_status (web_view As Any Ptr) As Long 20 | Declare Function webkit_web_resource_get_data(resource As Any Ptr) As String Ptr 21 | Declare Function webkit_web_view_get_main_resource(web_view As Any Ptr) As Any Ptr 22 | End Extern 23 | -------------------------------------------------------------------------------- /mff/gir_headers/Gir/GModule-2.0.bi: -------------------------------------------------------------------------------- 1 | ' FreeBasic header file, auto-generated by 2 | ' ### girtobac ### 3 | ' LGPLv2.1 (C) 2013-2022 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net 4 | ' Auto-translated from file /usr/share/gir-1.0/GModule-2.0.gir 5 | #INCLUDE ONCE "_GirToBac-0.0.bi" 6 | ' Repository version 1.2 7 | #INCLUDE ONCE "GLib-2.0.bi" 8 | TYPE AS _GModule GModule 9 | TYPE AS LONG GModuleFlags 10 | ENUM 11 | G_MODULE_BIND_LAZY = 1 12 | G_MODULE_BIND_LOCAL = 2 13 | G_MODULE_BIND_MASK = 3 14 | END ENUM 15 | EXTERN "C" LIB "gmodule-2.0" 16 | ' P_X 17 | 18 | ' P_3 19 | 20 | DECLARE FUNCTION g_module_close(BYVAL AS GModule PTR) AS gboolean 21 | DECLARE SUB g_module_make_resident(BYVAL AS GModule PTR) 22 | DECLARE FUNCTION g_module_name(BYVAL AS GModule PTR) AS const gchar PTR 23 | DECLARE FUNCTION g_module_symbol(BYVAL AS GModule PTR, BYVAL AS const gchar PTR, BYVAL AS gpointer PTR) AS gboolean 24 | DECLARE FUNCTION g_module_build_path(BYVAL AS const gchar PTR, BYVAL AS const gchar PTR) AS gchar PTR 25 | DECLARE FUNCTION g_module_error() AS const gchar PTR 26 | DECLARE FUNCTION g_module_open(BYVAL AS const gchar PTR, BYVAL AS GModuleFlags) AS GModule PTR 27 | DECLARE FUNCTION g_module_supported() AS gboolean 28 | TYPE GModuleCheckInit AS FUNCTION CDECL(BYVAL AS GModule PTR) AS const gchar PTR 29 | TYPE GModuleUnload AS SUB CDECL(BYVAL AS GModule PTR) 30 | ' P_4 31 | 32 | END EXTERN 33 | 34 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_set_loadcallback_mod.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_set_loadcallback_mod.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Set_LoadCallback() 10 | ' fbs_Load_MODFile() 11 | 12 | const data_path = TESTS_DATA_PATH 13 | 14 | ' only if not same as exe path 15 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | ' shared for the callback 18 | dim shared as string CurFile 19 | 20 | sub MyLoadCallback(byval percent as integer) 21 | locate 1,1 22 | print "loading " & CurFile & " " & percent & " % done" 23 | end sub 24 | 25 | dim as integer hWave 26 | ' in this example i use same sampleraste as the mp3 file! 27 | if fbs_init()=true then 28 | 29 | if fbs_Set_LoadCallback(@MyLoadCallback)=true then 30 | fbs_Enable_LoadCallback() 31 | end if 32 | CurFile = "jimi.mod" 33 | if fbs_Load_MODFile(data_path & CurFile,@hWave)=true then 34 | 'fbs_Play_Wave hWave,[loops],[speed],[volume],[pan],[@hSound] 35 | if fbs_Play_Wave(hWave)=false then 36 | ? "error: fbs_Play_Wave !" 37 | sleep:end 1 38 | else 39 | while fbs_Get_PlayingSounds=0:sleep 10:wend 40 | end if 41 | else 42 | ? "error: fbs_Load_MODFile!" 43 | sleep:end 1 44 | end if 45 | else 46 | ? "error fbs_Init()" 47 | beep:sleep:end 1 48 | end if 49 | 50 | ? "playing ... press any key" 51 | sleep 52 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_set_loadcallback_mod.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_set_loadcallback_mod.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Set_LoadCallback() 10 | ' fbs_Load_MODFile() 11 | 12 | const data_path = TESTS_DATA_PATH 13 | 14 | ' only if not same as exe path 15 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | ' shared for the callback 18 | dim shared as string CurFile 19 | 20 | sub MyLoadCallback(byval percent as integer) 21 | locate 1,1 22 | print "loading " & CurFile & " " & percent & " % done" 23 | end sub 24 | 25 | dim as integer hWave 26 | ' in this example i use same sampleraste as the mp3 file! 27 | if fbs_init()=true then 28 | 29 | if fbs_Set_LoadCallback(@MyLoadCallback)=true then 30 | fbs_Enable_LoadCallback() 31 | end if 32 | CurFile = "jimi.mod" 33 | if fbs_Load_MODFile(data_path & CurFile,@hWave)=true then 34 | 'fbs_Play_Wave hWave,[loops],[speed],[volume],[pan],[@hSound] 35 | if fbs_Play_Wave(hWave)=false then 36 | ? "error: fbs_Play_Wave !" 37 | sleep:end 1 38 | else 39 | while fbs_Get_PlayingSounds=0:sleep 10:wend 40 | end if 41 | else 42 | ? "error: fbs_Load_MODFile!" 43 | sleep:end 1 44 | end if 45 | else 46 | ? "error fbs_Init()" 47 | beep:sleep:end 1 48 | end if 49 | 50 | ? "playing ... press any key" 51 | sleep 52 | -------------------------------------------------------------------------------- /examples/ListView/ListView Example.bas: -------------------------------------------------------------------------------- 1 | #ifdef __FB_WIN32__ 2 | '#Compile "Form1.rc" 3 | #endif 4 | '#Region "Form" 5 | #include once "mff/Form.bi" 6 | #include once "mff/ListView.bi" 7 | #include once "mff/ImageList.bi" 8 | 9 | Using My.Sys.Forms 10 | 11 | Type Form1Type Extends Form 12 | Declare Constructor 13 | 14 | Dim As ImageList ImageList1 15 | Dim As ListView ListView1 16 | End Type 17 | 18 | Constructor Form1Type 19 | ' Form1 20 | With This 21 | .Name = "Form1" 22 | .Text = "Form1" 23 | .SetBounds 0, 0, 350, 300 24 | End With 25 | ' ImageList1 26 | With ImageList1 27 | .Name = "ImageList1" 28 | .SetBounds 50, 170, 16, 16 29 | .Parent = @This 30 | .Add "About", "About" 31 | End With 32 | ' ListView1 33 | With ListView1 34 | .Name = "ListView1" 35 | .Text = "ListView1" 36 | .TabIndex = 0 37 | .Images = @ImageList1 38 | .SmallImages = @ImageList1 39 | .SetBounds 19, 30, 280, 130 40 | .Parent = @This 41 | .Columns.Add "Column1", , 100 42 | .Columns.Add "Column2", , 100 43 | Var Item1 = .ListItems.Add("Item1", "About") 44 | Item1->Text(1) = "Item1_1" 45 | Item1->Tag = @"Item" 46 | .ListItems.Add "Item2" 47 | End With 48 | End Constructor 49 | 50 | Dim Shared Form1 As Form1Type 51 | 52 | #ifndef _NOT_AUTORUN_FORMS_ 53 | #define _NOT_AUTORUN_FORMS_ 54 | 55 | Form1.Show 56 | 57 | App.Run 58 | #endif 59 | '#End Region 60 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_set_loadcallback_ogg.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_set_loadcallback_ogg.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Set_LoadCallback() 10 | ' fbs_Load_OGGFile() 11 | 12 | const data_path = TESTS_DATA_PATH 13 | chdir(exepath()) 14 | 15 | ' only if not same as exe path 16 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 17 | 18 | ' shared for the callback 19 | dim shared as string CurFile 20 | 21 | sub MyLoadCallback(byval percent as integer) 22 | locate 1,1 23 | print "loading " & CurFile & " " & percent & " % done" 24 | end sub 25 | 26 | dim as integer hWave 27 | ' in this example i use same sampleraste as the mp3 file! 28 | if fbs_init()=true then 29 | if fbs_Set_LoadCallback(@MyLoadCallback)=true then 30 | fbs_Enable_LoadCallback() 31 | end if 32 | CurFile = "legends.ogg" 33 | if fbs_Load_OGGFile(data_path & CurFile,@hWave)=true then 34 | 'fbs_Play_Wave hWave,[loops],[speed],[volume],[pan],[@hSound] 35 | if fbs_Play_Wave(hWave)=false then 36 | ? "error: fbs_Play_Wave !" 37 | sleep:end 1 38 | else 39 | while fbs_Get_PlayingSounds=0:sleep 10:wend 40 | end if 41 | else 42 | ? "error: fbs_Load_OGGFile!" 43 | sleep:end 1 44 | end if 45 | else 46 | ? "error fbs_Init()" 47 | beep:sleep:end 1 48 | end if 49 | 50 | ? "playing ... press any key" 51 | sleep 52 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_set_loadcallback_ogg.bas: -------------------------------------------------------------------------------- 1 | ' ################################ 2 | ' # fbs_set_loadcallback_ogg.bas # 3 | '################################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | 9 | ' fbs_Set_LoadCallback() 10 | ' fbs_Load_OGGFile() 11 | 12 | const data_path = TESTS_DATA_PATH 13 | chdir(exepath()) 14 | 15 | ' only if not same as exe path 16 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 17 | 18 | ' shared for the callback 19 | dim shared as string CurFile 20 | 21 | sub MyLoadCallback(byval percent as integer) 22 | locate 1,1 23 | print "loading " & CurFile & " " & percent & " % done" 24 | end sub 25 | 26 | dim as integer hWave 27 | ' in this example i use same sampleraste as the mp3 file! 28 | if fbs_init()=true then 29 | if fbs_Set_LoadCallback(@MyLoadCallback)=true then 30 | fbs_Enable_LoadCallback() 31 | end if 32 | CurFile = "legends.ogg" 33 | if fbs_Load_OGGFile(data_path & CurFile,@hWave)=true then 34 | 'fbs_Play_Wave hWave,[loops],[speed],[volume],[pan],[@hSound] 35 | if fbs_Play_Wave(hWave)=false then 36 | ? "error: fbs_Play_Wave !" 37 | sleep:end 1 38 | else 39 | while fbs_Get_PlayingSounds=0:sleep 10:wend 40 | end if 41 | else 42 | ? "error: fbs_Load_OGGFile!" 43 | sleep:end 1 44 | end if 45 | else 46 | ? "error fbs_Init()" 47 | beep:sleep:end 1 48 | end if 49 | 50 | ? "playing ... press any key" 51 | sleep 52 | -------------------------------------------------------------------------------- /mff/Android/mffActivity.java: -------------------------------------------------------------------------------- 1 | package mff.example.application; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.os.Bundle; 6 | import android.util.Log; 7 | import android.view.View; 8 | 9 | public class mffActivity extends AppCompatActivity implements View.OnClickListener, View.OnLayoutChangeListener { 10 | 11 | // Used to load the 'native-lib' library on application startup. 12 | static { 13 | try { 14 | System.loadLibrary("mff-app"); 15 | } catch (Exception ex) { 16 | Log.println(0, "log_tag", ex.getMessage()); 17 | } 18 | } 19 | 20 | @Override 21 | protected void onCreate(Bundle savedInstanceState) { 22 | super.onCreate(savedInstanceState); 23 | setContentView(R.layout.activity_main); 24 | 25 | onCreate(findViewById(R.id.layout)); 26 | 27 | // Example of a call to a native method 28 | //Button btn = findViewById(R.id.button7); 29 | //btn.setText(stringFromJNI()); 30 | } 31 | 32 | /** 33 | * A native method that is implemented by the 'native-lib' native library, 34 | * which is packaged with this application. 35 | */ 36 | public native void onCreate(Object layout); 37 | 38 | @Override 39 | public native void onClick(View view); 40 | 41 | @Override 42 | public native void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom); 43 | } -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_set_get_pointers.bas: -------------------------------------------------------------------------------- 1 | ' ############################ 2 | ' # fbs_set_get_pointers.bas # 3 | '############################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for 8 | ' fbs_Get_WavePointers (hWave ,[@lpStart],[@lpEnd] ,[@nChannels]) 9 | ' fbs_Get_SoundPointers(hSound,[@lpStart],[@lpPlay],[@lpEnd]) 10 | ' fbs_Set_SoundPointers(hSound,[lpStart] ,[lpPlay] ,[lpEnd]) 11 | 12 | const data_path = TESTS_DATA_PATH 13 | 14 | ' only if not same as exe path 15 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | dim as integer hWave,hSound,nSamples,nChannels 18 | dim as short ptr lpWaveStart,lpWaveEnd 19 | dim as short ptr lpSoundStart,lpSoundPlay,lpSoundEnd 20 | 21 | fbs_Init() 22 | fbs_Load_WAVFile(data_path & "fbsloop44.wav",@hWave) 23 | fbs_Create_Sound(hWave,@hSound) 24 | ' Get start,end and number of channels from wave object 25 | fbs_Get_WavePointers(hWave,@lpWaveStart,@lpWaveEnd,@nChannels) 26 | nSamples=(lpWaveEnd-lpWaveStart)/(2*nChannels) 27 | 28 | ' begin = start of the wave 29 | lpSoundPlay = lpWaveStart 30 | ' any begin of playback region 31 | lpSoundStart=lpWaveStart+(nSamples\32)*31 32 | ' any end of playback region 33 | lpSoundEnd =lpWaveEnd 34 | fbs_Set_SoundPointers(hSound,lpSoundStart,lpSoundPlay,lpSoundEnd) 35 | 36 | fbs_Play_Sound(hSound,4) ' 4 times 37 | ' wait on first sample 38 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 39 | 40 | while fbs_Get_PlayingSounds() and inkey()="" 41 | sleep 100 42 | wend 43 | 'end 44 | 45 | 46 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_set_get_pointers.bas: -------------------------------------------------------------------------------- 1 | ' ############################ 2 | ' # fbs_set_get_pointers.bas # 3 | '############################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for 8 | ' fbs_Get_WavePointers (hWave ,[@lpStart],[@lpEnd] ,[@nChannels]) 9 | ' fbs_Get_SoundPointers(hSound,[@lpStart],[@lpPlay],[@lpEnd]) 10 | ' fbs_Set_SoundPointers(hSound,[lpStart] ,[lpPlay] ,[lpEnd]) 11 | 12 | const data_path = TESTS_DATA_PATH 13 | 14 | ' only if not same as exe path 15 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | dim as integer hWave,hSound,nSamples,nChannels 18 | dim as short ptr lpWaveStart,lpWaveEnd 19 | dim as short ptr lpSoundStart,lpSoundPlay,lpSoundEnd 20 | 21 | fbs_Init() 22 | fbs_Load_WAVFile(data_path & "fbsloop44.wav",@hWave) 23 | fbs_Create_Sound(hWave,@hSound) 24 | ' Get start,end and number of channels from wave object 25 | fbs_Get_WavePointers(hWave,@lpWaveStart,@lpWaveEnd,@nChannels) 26 | nSamples=(lpWaveEnd-lpWaveStart)/(2*nChannels) 27 | 28 | ' begin = start of the wave 29 | lpSoundPlay = lpWaveStart 30 | ' any begin of playback region 31 | lpSoundStart=lpWaveStart+(nSamples\32)*31 32 | ' any end of playback region 33 | lpSoundEnd =lpWaveEnd 34 | fbs_Set_SoundPointers(hSound,lpSoundStart,lpSoundPlay,lpSoundEnd) 35 | 36 | fbs_Play_Sound(hSound,4) ' 4 times 37 | ' wait on first sample 38 | while fbs_Get_PlayingSounds()=0:sleep 10:wend 39 | 40 | while fbs_Get_PlayingSounds() and inkey()="" 41 | sleep 100 42 | wend 43 | 'end 44 | 45 | 46 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/certs/generate.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | # 3 | # Geneate self-signed ECC certificates 4 | 5 | cd `dirname $0` 6 | 7 | # Create cnf for adding SAN DNS:localhost 8 | # See https://security.stackexchange.com/questions/190905/subject-alternative-name-in-certificate-signing-request-apparently-does-not-surv 9 | cat > cnf <uri, mg_str_s(Cast(ZString Ptr, @"/websocket")), NULL) Then 17 | mg_ws_upgrade(c, hm, NULL) 18 | ElseIf mg_match(hm->uri, mg_str_s( Cast(ZString Ptr, @"/rest")), NULL) Then 19 | mg_http_reply(c, 200, "", !"{""result"": %d}\n", "123") 20 | Else 21 | Dim opts As mg_http_serve_opts 22 | opts.root_dir = s_web_root 23 | mg_http_serve_dir(c, ev_data, @opts) 24 | End If 25 | ElseIf ev = MG_EV_WS_MSG Then 26 | Dim wm As mg_ws_message Ptr = CPtr(mg_ws_message Ptr, ev_data) 27 | mg_ws_send(c, wm->data_.buf, wm->data_.len_, WEBSOCKET_OP_TEXT) 28 | End If 29 | End Sub 30 | 31 | Dim mgr As mg_mgr 32 | mg_mgr_init(@mgr) 33 | printf(!"Starting WS listener on %s/websocket\n", s_listen_on) 34 | mg_http_listen(@mgr, s_listen_on,Cast(Any Ptr, @fn), NULL) 35 | While True 36 | mg_mgr_poll(@mgr, 1000) 37 | Wend 38 | mg_mgr_free(@mgr) 39 | Sleep 40 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_set_masterfilter.bas: -------------------------------------------------------------------------------- 1 | ' ############################ 2 | ' # fbs_set_masterfilter.bas # 3 | '############################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' fbs_Volume_2_dB() 8 | ' fbs_Set_MasterFilter() 9 | ' fbs_Enable_MasterFilter() 10 | 11 | const data_path = TESTS_DATA_PATH 12 | 13 | ' only if not same as exe path 14 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | screenres 640,480 17 | windowTitle "[ESC]=quit move the mouse x,y" 18 | 19 | dim as boolean ok 20 | ok=fbs_Init() 21 | if ok=False then 22 | ? "error: fbs_Init() !" 23 | ? fbs_Get_PlugError() 24 | beep:sleep:end 1 25 | end if 26 | 27 | dim as integer hWave 28 | fbs_Load_MP3File(data_path & "fox.mp3",@hWave) 29 | 30 | dim as single Volume=0.75,Hz=5040.0 31 | fbs_Set_MasterFilter(0,Hz,fbs_Volume_2_dB(Volume)) 32 | 33 | fbs_Enable_MasterFilter(0) 34 | fbs_Play_Wave(hWave,4) ' play it 4 times 35 | while fbs_Get_PlayingSounds()=0:sleep 100:wend 36 | 37 | ' 38 | ' mainloop 39 | ' 40 | dim as integer ox,oy,mx,my 41 | ox=320:oy=240 42 | setmouse ox,oy 43 | 44 | while (asc(Inkey)<>27) and (fbs_Get_PlayingSounds()>0) 45 | if getmouse(mx,my)=0 then 46 | if (mx<>ox) or (my<>oy) then 47 | ox=mx:oy=my 48 | Hz=40+ (10000.0f/640.0f)*mx 49 | Volume=0.01 + ( 1.5f/480.0f)*my 50 | locate 1,1 51 | ? str(Hz) & " Hz. " 52 | ? str(Volume) & " volume " 53 | fbs_Set_MasterFilter(0,Hz,fbs_Volume_2_dB(Volume)) 54 | end if 55 | end if 56 | sleep 10 57 | wend 58 | end 59 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_set_masterfilter.bas: -------------------------------------------------------------------------------- 1 | ' ############################ 2 | ' # fbs_set_masterfilter.bas # 3 | '############################ 4 | 5 | #include "tests-common.bi" 6 | 7 | ' fbs_Volume_2_dB() 8 | ' fbs_Set_MasterFilter() 9 | ' fbs_Enable_MasterFilter() 10 | 11 | const data_path = TESTS_DATA_PATH 12 | 13 | ' only if not same as exe path 14 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 15 | 16 | screenres 640,480 17 | windowTitle "[ESC]=quit move the mouse x,y" 18 | 19 | dim as boolean ok 20 | ok=fbs_Init() 21 | if ok=False then 22 | ? "error: fbs_Init() !" 23 | ? fbs_Get_PlugError() 24 | beep:sleep:end 1 25 | end if 26 | 27 | dim as integer hWave 28 | fbs_Load_MP3File(data_path & "fox.mp3",@hWave) 29 | 30 | dim as single Volume=0.75,Hz=5040.0 31 | fbs_Set_MasterFilter(0,Hz,fbs_Volume_2_dB(Volume)) 32 | 33 | fbs_Enable_MasterFilter(0) 34 | fbs_Play_Wave(hWave,4) ' play it 4 times 35 | while fbs_Get_PlayingSounds()=0:sleep 100:wend 36 | 37 | ' 38 | ' mainloop 39 | ' 40 | dim as integer ox,oy,mx,my 41 | ox=320:oy=240 42 | setmouse ox,oy 43 | 44 | while (asc(Inkey)<>27) and (fbs_Get_PlayingSounds()>0) 45 | if getmouse(mx,my)=0 then 46 | if (mx<>ox) or (my<>oy) then 47 | ox=mx:oy=my 48 | Hz=40+ (10000.0f/640.0f)*mx 49 | Volume=0.01 + ( 1.5f/480.0f)*my 50 | locate 1,1 51 | ? str(Hz) & " Hz. " 52 | ? str(Volume) & " volume " 53 | fbs_Set_MasterFilter(0,Hz,fbs_Volume_2_dB(Volume)) 54 | end if 55 | end if 56 | sleep 10 57 | wend 58 | end 59 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_get_length.bas: -------------------------------------------------------------------------------- 1 | ' ###################### 2 | ' # fbs_get_length.bas # 3 | '###################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for 8 | ' fbs_Get_WaveLength(hWave,@MS) 9 | ' fbs_Get_SoundLength(hSound,@MS) 10 | 11 | ' fbs_Get_WaveLength 12 | ' returns playback length in 1/1000 seconds 13 | ' indepent from curentplayback speed and number of loops 14 | 15 | ' fbs_Get_SoundLength 16 | ' returns playback length in 1/1000 seconds 17 | ' dependently on playback speed and number of loops 18 | 19 | const data_path = TESTS_DATA_PATH 20 | 21 | ' only if not same as exe path 22 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 23 | 24 | const last_number = 9 25 | dim as integer hWave,hSound,SoundLength,WaveLength 26 | 27 | fbs_Init() 28 | fbs_Load_WAVFile(data_path & "fbsloop44.wav",@hWave) 29 | fbs_Create_Sound(hWave,@hSound) 30 | 31 | fbs_Get_WaveLength (hWave ,@WaveLength) 32 | fbs_Get_SoundLength(hSound,@SoundLength) 33 | ? "before playing:" 34 | ? "wave length=" & wavelength *0.001 & " sec." 35 | ? "sound length=" & soundlength*0.001 & " sec." 36 | ? 37 | fbs_Set_SoundSpeed(hSound,0.5) ' halfspeed 38 | fbs_Play_Wave (hWave,4) ' 4 times 39 | fbs_Play_Sound (hSound,2) ' 2 times 40 | fbs_Get_WaveLength(hWave,@WaveLength) 41 | fbs_Get_SoundLength(hSound,@SoundLength) 42 | 43 | ? "while playing:" 44 | ? "wave length indepent of speed and loops=" & WaveLength*0.001 & " sec." 45 | ? "sound length depently of speed and loops=" & SoundLength*0.001 & " sec." 46 | ? 47 | ? "press any key ..." 48 | sleep 49 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_get_length.bas: -------------------------------------------------------------------------------- 1 | ' ###################### 2 | ' # fbs_get_length.bas # 3 | '###################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' short test for 8 | ' fbs_Get_WaveLength(hWave,@MS) 9 | ' fbs_Get_SoundLength(hSound,@MS) 10 | 11 | ' fbs_Get_WaveLength 12 | ' returns playback length in 1/1000 seconds 13 | ' indepent from curentplayback speed and number of loops 14 | 15 | ' fbs_Get_SoundLength 16 | ' returns playback length in 1/1000 seconds 17 | ' dependently on playback speed and number of loops 18 | 19 | const data_path = TESTS_DATA_PATH 20 | 21 | ' only if not same as exe path 22 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 23 | 24 | const last_number = 9 25 | dim as integer hWave,hSound,SoundLength,WaveLength 26 | 27 | fbs_Init() 28 | fbs_Load_WAVFile(data_path & "fbsloop44.wav",@hWave) 29 | fbs_Create_Sound(hWave,@hSound) 30 | 31 | fbs_Get_WaveLength (hWave ,@WaveLength) 32 | fbs_Get_SoundLength(hSound,@SoundLength) 33 | ? "before playing:" 34 | ? "wave length=" & wavelength *0.001 & " sec." 35 | ? "sound length=" & soundlength*0.001 & " sec." 36 | ? 37 | fbs_Set_SoundSpeed(hSound,0.5) ' halfspeed 38 | fbs_Play_Wave (hWave,4) ' 4 times 39 | fbs_Play_Sound (hSound,2) ' 2 times 40 | fbs_Get_WaveLength(hWave,@WaveLength) 41 | fbs_Get_SoundLength(hSound,@SoundLength) 42 | 43 | ? "while playing:" 44 | ? "wave length indepent of speed and loops=" & WaveLength*0.001 & " sec." 45 | ? "sound length depently of speed and loops=" & SoundLength*0.001 & " sec." 46 | ? 47 | ? "press any key ..." 48 | sleep 49 | -------------------------------------------------------------------------------- /mff/fbsound/plug-static.bi: -------------------------------------------------------------------------------- 1 | #ifndef __FBS_PLUG_STATIC_BI__ 2 | #define __FBS_PLUG_STATIC_BI__ 3 | 4 | '' plug-static.bi 5 | '' 6 | '' Copyright 2023 by Jeff Marshall 7 | '' coder[at]execulink.com 8 | 9 | #include once "plug-cdtor.bi" 10 | 11 | #if __FB_OUT_DLL__ = 0 12 | 13 | namespace fbsound.cdtor 14 | 15 | enum module_group 16 | MODULE_NONE = 0 17 | MODULE_MAIN = 1 18 | MODULE_SUPPORT = 2 19 | MODULE_PLUGIN1 = 3 20 | MODULE_PLUGIN2 = 4 21 | MODULE_PLUGIN3 = 5 22 | end enum 23 | 24 | type cdtor_struct 25 | ctorproc as sub cdecl () 26 | dtorproc as sub cdecl () 27 | module as zstring ptr 28 | group as module_group 29 | plug_filler as function cdecl( byref plug as FBS_PLUG ) as boolean 30 | next as cdtor_struct ptr 31 | end type 32 | 33 | declare sub register cdecl _ 34 | ( _ 35 | byval cdtor_ctx as cdtor_struct ptr _ 36 | ) 37 | 38 | declare sub callctors cdecl () 39 | declare sub calldtors cdecl () 40 | 41 | #if defined( DEBUG ) or ( __FB_DEBUG__ <> 0 ) 42 | declare sub dump cdecl () 43 | #endif 44 | 45 | declare function getfirst_cdtor cdecl _ 46 | (_ 47 | ) as const cdtor_struct ptr 48 | 49 | declare function getnext_cdtor cdecl _ 50 | ( _ 51 | byval cdtor as const cdtor_struct ptr _ 52 | ) as const cdtor_struct ptr 53 | 54 | declare function getfirst_plugin cdecl _ 55 | ( _ 56 | ) as const cdtor_struct ptr 57 | 58 | declare function getnext_plugin cdecl _ 59 | ( _ 60 | byval cdtor as const cdtor_struct ptr _ 61 | ) as const cdtor_struct ptr 62 | 63 | end namespace 64 | 65 | #endif ' __FB_OUT_DLL__ = 0 66 | 67 | #endif ' __FBS_PLUG_STATIC_BI__ -------------------------------------------------------------------------------- /examples/Resources/LICENSE.md: -------------------------------------------------------------------------------- 1 | | resource | author | licence | notes | 2 | | :------------------- | :---------: | :------ | :---- | 3 | | country.mp3 | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game | 4 | | target.ogg | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game | 5 | | target.flac | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game | 6 | | coin.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) | 7 | | sound.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) | 8 | | spring.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) | 9 | | weird.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) | 10 | | mini1111.xm | [tPORt](https://modarchive.org/index.php?request=view_by_moduleid&query=51891) | [Mod Archive Distribution license](https://modarchive.org/index.php?terms-upload) | - | 11 | -------------------------------------------------------------------------------- /mff/Clipboard.bi: -------------------------------------------------------------------------------- 1 | '****************************************************************************** 2 | '* ClipboardType 3 | '* This file is part of MyFBFramework 4 | '* Based on: 5 | '* TClipboard 6 | '* FreeBasic Windows GUI ToolKit 7 | '* Copyright (c) 2007-2008 Nastase Eodor 8 | '* nastase_eodor@yahoo.com 9 | '* Updated and added cross-platform 10 | '* by Xusinboy Bekchanov (2018-2019) 11 | '****************************************************************************** 12 | #include once "Component.bi" 13 | 14 | Namespace My.Sys 15 | Private Type ClipboardType 16 | Private: 17 | FFormatCount As Integer 18 | FFormat As WString Ptr 19 | FText As WString Ptr 20 | #ifdef __USE_GTK__ 21 | FClipboard As GtkClipboard Ptr 22 | #endif 23 | Public: 24 | Declare Sub Open 25 | Declare Sub Clear 26 | Declare Sub Close 27 | Declare Sub SetAsText(ByRef Value As WString) 28 | Declare Function GetAsText ByRef As WString 29 | #ifndef __USE_GTK__ 30 | Declare Sub SetAsHandle(FFormat As WORD, Value As HANDLE) 31 | Declare Function GetAsHandle(FFormat As WORD) As HANDLE 32 | Declare Function HasFormat(FFormat As WORD) As Boolean 33 | #endif 34 | Declare Property FormatCount As Integer 35 | Declare Property FormatCount(Value As Integer) 36 | Declare Property Format ByRef As WString 37 | Declare Property Format(ByRef Value As WString) 38 | Declare Constructor 39 | Declare Destructor 40 | End Type 41 | End Namespace 42 | 43 | 'Common Shared As My.Sys.ClipboardType Ptr pClipboard 44 | 45 | #ifndef __USE_MAKE__ 46 | #include once "Clipboard.bas" 47 | #endif 48 | -------------------------------------------------------------------------------- /mff/HTTP.bi: -------------------------------------------------------------------------------- 1 | #include once "Component.bi" 2 | 3 | Using My.Sys.ComponentModel 4 | 5 | Namespace My.Sys.Forms 6 | Type HTTPRequest 7 | Headers As String 8 | ResourceAddress As String 9 | Body As String 10 | End Type 11 | Type HTTPResponce 12 | Headers As String 13 | StatusCode As Integer 14 | Body As String 15 | BodyFileName As String 16 | Reason As String 17 | End Type 18 | 19 | Type HTTPConnection Extends Component 20 | 21 | Private: 22 | FAbort As Boolean 23 | Public: 24 | #ifndef ReadProperty_Off 25 | Declare Function ReadProperty(ByRef PropertyName As String) As Any Ptr 26 | #endif 27 | #ifndef WriteProperty_Off 28 | Declare Function WriteProperty(ByRef PropertyName As String, Value As Any Ptr) As Boolean 29 | #endif 30 | 'Get or set request cancellation. 31 | Declare Property Abort As Boolean 32 | Declare Property Abort(Value As Boolean) 33 | 34 | As String Host = "127.0.0.1" 35 | As Integer Port = 80 36 | As Integer Timeout = 3000 37 | 'Get response content and HTTP status code. 38 | Declare Sub CallMethod(HTTPMethod As String, ByRef Request As HTTPRequest, ByRef Responce As HTTPResponce) 39 | Declare Constructor 40 | Declare Destructor 41 | OnReceive As Sub(ByRef Designer As My.Sys.Object, ByRef Sender As HTTPConnection, ByRef Request As HTTPRequest, ByRef Buffer As String) 42 | OnComplete As Sub(ByRef Designer As My.Sys.Object, ByRef Sender As HTTPConnection, ByRef Request As HTTPRequest, ByRef Responce As HTTPResponce) 43 | End Type 44 | End Namespace 45 | 46 | #ifndef __USE_MAKE__ 47 | #include once "HTTP.bas" 48 | #endif 49 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_stream_sid_preview.bas: -------------------------------------------------------------------------------- 1 | ' ############################## 2 | ' # fbs_stream_sid_preview.bas # 3 | '############################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of get number of tunes in a SID file: 8 | ' fbs_Create_SIDStream(filename ,[PlayTune=0],[@nTunes]) 9 | 10 | chdir(exepath()) 11 | 12 | ' only if not same as exe path 13 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | fbs_Init() 16 | 17 | const DataPath = TESTS_DATA_PATH 18 | const SIDFile = "comic_bakery.sid" 19 | const FilePath = DataPath & SIDFile 20 | 21 | dim as integer nTunes,PlayTune=0 22 | 23 | ' play the first [tune=0] and optional get the number of tunes stored in a SID file. 24 | if fbs_Create_SIDStream(FilePath,PlayTune,@nTunes)=false then 25 | ? "error: fbs_Create_SIDStream( '" & FilePath & "') !" 26 | beep : sleep : end 1 27 | end if 28 | 29 | fbs_Play_SIDStream() ' start first tune 30 | 31 | print "SID title : " & fbs_Get_SIDTitle() 32 | print "SID author : " & fbs_Get_SIDAuthor() 33 | print "SID info : " & fbs_Get_SIDInfo() 34 | print 35 | print "playing ; " & SIDFile 36 | print 37 | 38 | ' if more than one tune play it as preview's 39 | if nTunes>1 then 40 | for PlayTune as integer=1 to nTunes-1 41 | print "play preview tune " & PlayTune & "/" & nTunes & " for 3 seconds" 42 | sleep 3000,1 43 | fbs_End_SIDStream() 44 | fbs_Create_SIDStream(FilePath, PlayTune) 45 | fbs_Play_SIDStream() 46 | if asc(inkey())=27 then exit for 47 | next 48 | else 49 | 50 | end if 51 | 52 | print "press any key ..." 53 | sleep 54 | fbs_End_SIDStream() 55 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_stream_sid_preview.bas: -------------------------------------------------------------------------------- 1 | ' ############################## 2 | ' # fbs_stream_sid_preview.bas # 3 | '############################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of get number of tunes in a SID file: 8 | ' fbs_Create_SIDStream(filename ,[PlayTune=0],[@nTunes]) 9 | 10 | chdir(exepath()) 11 | 12 | ' only if not same as exe path 13 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | fbs_Init() 16 | 17 | const DataPath = TESTS_DATA_PATH 18 | const SIDFile = "comic_bakery.sid" 19 | const FilePath = DataPath & SIDFile 20 | 21 | dim as integer nTunes,PlayTune=0 22 | 23 | ' play the first [tune=0] and optional get the number of tunes stored in a SID file. 24 | if fbs_Create_SIDStream(FilePath,PlayTune,@nTunes)=false then 25 | ? "error: fbs_Create_SIDStream( '" & FilePath & "') !" 26 | beep : sleep : end 1 27 | end if 28 | 29 | fbs_Play_SIDStream() ' start first tune 30 | 31 | print "SID title : " & fbs_Get_SIDTitle() 32 | print "SID author : " & fbs_Get_SIDAuthor() 33 | print "SID info : " & fbs_Get_SIDInfo() 34 | print 35 | print "playing ; " & SIDFile 36 | print 37 | 38 | ' if more than one tune play it as preview's 39 | if nTunes>1 then 40 | for PlayTune as integer=1 to nTunes-1 41 | print "play preview tune " & PlayTune & "/" & nTunes & " for 3 seconds" 42 | sleep 3000,1 43 | fbs_End_SIDStream() 44 | fbs_Create_SIDStream(FilePath, PlayTune) 45 | fbs_Play_SIDStream() 46 | if asc(inkey())=27 then exit for 47 | next 48 | else 49 | 50 | end if 51 | 52 | print "press any key ..." 53 | sleep 54 | fbs_End_SIDStream() 55 | -------------------------------------------------------------------------------- /examples/Animate/Languages/english.html: -------------------------------------------------------------------------------- 1 | english 2 | 3 |
     english
    4 |
    5 |
    6 |
  • Balance:  =  Balance: 7 |
  • Close  =  Close 8 |
  • Double click to select a file from local disk.  =  Double click to select a file from local disk. 9 |
  • Full  =  Full 10 |
  • Internet Radio  =  Internet Radio 11 |
  • Length:  =  Length: 12 |
  • Length: NA  =  Length: NA 13 |
  • Loop  =  Loop 14 |
  • Open  =  Open 15 |
  • Pause  =  Pause 16 |
  • Play  =  Play 17 |
  • Position:  =  Position: 18 |
  • Ratio Fixed  =  Ratio Fixed 19 |
  • VisualFBEditor Animate Player  =  VisualFBEditor Animate Player 20 |
  • VisualFBEditor Animate Player(X32)  =  VisualFBEditor Animate Player(X32) 21 |
  • VisualFBEditor Animate Player(X64)  =  VisualFBEditor Animate Player(X64) 22 |
  • Volume:  =  Volume: 23 |
  • 24 |
    25 |
    26 | 27 | 28 | -------------------------------------------------------------------------------- /examples/Animate/Media/Languages/english.html: -------------------------------------------------------------------------------- 1 | english 2 | 3 |
     english
    4 |
    5 |
    6 |
  • Balance:  =  Balance: 7 |
  • Close  =  Close 8 |
  • Double click to select a file from local disk.  =  Double click to select a file from local disk. 9 |
  • Full  =  Full 10 |
  • Internet Radio  =  Internet Radio 11 |
  • Length:  =  Length: 12 |
  • Length: NA  =  Length: NA 13 |
  • Loop  =  Loop 14 |
  • Open  =  Open 15 |
  • Pause  =  Pause 16 |
  • Play  =  Play 17 |
  • Position:  =  Position: 18 |
  • Ratio Fixed  =  Ratio Fixed 19 |
  • VisualFBEditor Animate Player  =  VisualFBEditor Animate Player 20 |
  • VisualFBEditor Animate Player(X32)  =  VisualFBEditor Animate Player(X32) 21 |
  • VisualFBEditor Animate Player(X64)  =  VisualFBEditor Animate Player(X64) 22 |
  • Volume:  =  Volume: 23 |
  • 24 |
    25 |
    26 | 27 | 28 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_create_wave.bas: -------------------------------------------------------------------------------- 1 | ' ####################### 2 | ' # fbs_create_wave.bas # 3 | '####################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | ' fbs_Create_Wave(nSamples,@hWAve,@lpSamples) 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | chdir(exepath()) 13 | 14 | ' only if not same as exe path 15 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | if fbs_Init()=false then 18 | print "error: FBS_INIT() " & FBS_Get_PlugError() 19 | beep : sleep : end 1 20 | end if 21 | 22 | 23 | dim as integer nSamples = 44100 24 | dim as integer hWave,hSound 25 | dim as double w,wstep=PI2/44100.0 * 400.0 26 | dim as FBS_SAMPLE ptr pSamples 27 | dim as FBS_SAMPLE ptr pS,pP,pE 28 | 29 | ' !!! create window before init fbsound !!! 30 | dim as integer sw=640,sh=480 31 | screenres sw,sh 32 | 33 | 34 | 35 | fbs_Create_Wave(nSamples,@hWave,@pSamples) 36 | for i as integer=0 to nSamples-1 37 | ' right channel 38 | pSamples[i*2 ]=sin(w )*4000:w+=wstep 39 | ' left channel 40 | pSamples[i*2+1]=sin(w+PI)*4000:w+=wstep 41 | next 42 | fbs_Create_Sound(hWave,@hSound) 43 | fbs_Get_SoundPointers(hSound,@pS,@pP,@pE) 44 | 45 | sw\=2 46 | sh\=2 47 | for x as integer=0 to sw-1 48 | ' right channel 49 | pset (x ,sh+pE[-sw*2+x*2 ]*0.01),3 ' end of samples 50 | pset (sw+x,sh+pS[ x*2 ]*0.01),4 ' start of samples 51 | ' left channel 52 | pset (x ,sh+pE[-sw*2+x*2+1]*0.01),5 ' end of samples 53 | pset (sw+x,sh+pS[ x*2+1]*0.01),6 ' start of samples 54 | next 55 | 56 | fbs_Play_Sound(hSound,-1) ' loop endless 57 | print "playing clean sin wave endless" 58 | sleep 59 | end 60 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_create_wave.bas: -------------------------------------------------------------------------------- 1 | ' ####################### 2 | ' # fbs_create_wave.bas # 3 | '####################### 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | ' fbs_Create_Wave(nSamples,@hWAve,@lpSamples) 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | chdir(exepath()) 13 | 14 | ' only if not same as exe path 15 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 16 | 17 | if fbs_Init()=false then 18 | print "error: FBS_INIT() " & FBS_Get_PlugError() 19 | beep : sleep : end 1 20 | end if 21 | 22 | 23 | dim as integer nSamples = 44100 24 | dim as integer hWave,hSound 25 | dim as double w,wstep=PI2/44100.0 * 400.0 26 | dim as FBS_SAMPLE ptr pSamples 27 | dim as FBS_SAMPLE ptr pS,pP,pE 28 | 29 | ' !!! create window before init fbsound !!! 30 | dim as integer sw=640,sh=480 31 | screenres sw,sh 32 | 33 | 34 | 35 | fbs_Create_Wave(nSamples,@hWave,@pSamples) 36 | for i as integer=0 to nSamples-1 37 | ' right channel 38 | pSamples[i*2 ]=sin(w )*4000:w+=wstep 39 | ' left channel 40 | pSamples[i*2+1]=sin(w+PI)*4000:w+=wstep 41 | next 42 | fbs_Create_Sound(hWave,@hSound) 43 | fbs_Get_SoundPointers(hSound,@pS,@pP,@pE) 44 | 45 | sw\=2 46 | sh\=2 47 | for x as integer=0 to sw-1 48 | ' right channel 49 | pset (x ,sh+pE[-sw*2+x*2 ]*0.01),3 ' end of samples 50 | pset (sw+x,sh+pS[ x*2 ]*0.01),4 ' start of samples 51 | ' left channel 52 | pset (x ,sh+pE[-sw*2+x*2+1]*0.01),5 ' end of samples 53 | pset (sw+x,sh+pS[ x*2+1]*0.01),6 ' start of samples 54 | next 55 | 56 | fbs_Play_Sound(hSound,-1) ' loop endless 57 | print "playing clean sin wave endless" 58 | sleep 59 | end 60 | -------------------------------------------------------------------------------- /mff/ToolTips.bi: -------------------------------------------------------------------------------- 1 | '################################################################################ 2 | '# ToolTips.bi # 3 | '# This file is part of MyFBFramework # 4 | '# Authors: Xusinboy Bekchanov (2018-2019) # 5 | '################################################################################ 6 | 7 | #include once "Control.bi" 8 | 9 | Namespace My.Sys.Forms 10 | #define QToolTips(__Ptr__) (*Cast(ToolTips Ptr, __Ptr__)) 11 | 12 | Private Type ToolTips Extends Control 13 | Private: 14 | #ifndef __USE_GTK__ 15 | Declare Static Sub WNDPROC(ByRef Message As Message) 16 | Declare Virtual Sub ProcessMessage(ByRef Message As Message) 17 | Declare Static Sub HandleIsAllocated(ByRef Sender As Control) 18 | #else 19 | Declare Static Function ActivateLink(Label As GtkLabel Ptr, uri As gchar Ptr, user_data As gpointer) As Boolean 20 | Dim As GtkWidget Ptr winTooltip 21 | lblTooltip As GtkWidget Ptr 22 | #endif 23 | Public: 24 | #ifndef __USE_GTK__ 25 | Declare Sub CreateWnd 26 | #endif 27 | 'Displays the ToolTip to the user (Windows only). 28 | Declare Virtual Sub Show 29 | 'Conceals the ToolTip from the user (Windows only). 30 | Declare Virtual Sub Hide 31 | Declare Operator Cast As Control Ptr 32 | Declare Constructor 33 | Declare Destructor 34 | OnLinkClicked As Sub(ByRef Designer As My.Sys.Object, ByRef Sender As ToolTips, ByRef link As WString) 35 | End Type 36 | End Namespace 37 | 38 | #ifndef __USE_MAKE__ 39 | #include once "ToolTips.bas" 40 | #endif 41 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/web_root/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

    JSON-RPC over Websocket demo

    5 | 6 | 7 |
     
    8 | 9 | 10 |
    Event log:
    11 |
    12 | 13 | 14 | 31 | 32 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_play_sid_stream.bas: -------------------------------------------------------------------------------- 1 | ' ########################### 2 | ' # fbs_play_sid_stream.bas # 3 | '########################### 4 | 5 | #include "tests-common.bi" 6 | 7 | #ifdef NOSID 8 | #error 666: sorry no SID decoder ! 9 | #endif 10 | 11 | ' example of: 12 | ' fbs_Create_SIDStream() 13 | ' fbs_Play_SIDStream() 14 | ' fbs_Get_PlayingStreams() 15 | ' fbs_Get_SIDTitle() 16 | ' fbs_Get_SIDAuthor() 17 | ' fbs_Get_SIDInfo() 18 | ' fbs_Set_SIDStreamVolume() 19 | ' fbs_End_SIDStream() 20 | 21 | const MEDIA = TESTS_DATA_PATH 22 | const FILE = "comic_bakery.sid" 23 | const PATH = MEDIA & FILE 24 | chdir(exepath()) 25 | 26 | ' only if not same as exe path 27 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 28 | 29 | 30 | dim as boolean ok 31 | 32 | ok=fbs_Init() 33 | if ok=false then 34 | ? "error: fbs_Init() !" 35 | ? fbs_Get_PlugError() 36 | beep:sleep:end 1 37 | end if 38 | 39 | ok=FBS_Create_SIDStream(PATH) 40 | if ok=false then 41 | ? "error: fbs_Create_SIDStream( '" & PATH & "') !" 42 | beep:sleep:end 1 43 | end if 44 | 45 | ok=FBS_Play_SIDStream() 46 | if ok=false then 47 | ? "error: fbs_Play_SIDStream() !" 48 | beep:sleep:end 1 49 | end if 50 | 51 | print "SID title : " & FBS_Get_SIDTitle() 52 | print "SID author: " & FBS_Get_SIDAuthor() 53 | print "SID info : " & FBS_Get_SIDInfo() 54 | print 55 | print "playing " & PATH 56 | print "press any key ..." 57 | sleep 58 | if fbs_Get_PlayingStreams()>0 then 59 | print "fade out and quit !" 60 | dim as single volume=1.0 61 | while volume>0.025 62 | volume*=0.95 63 | fbs_Set_SIDStreamVolume(volume) 64 | sleep 30,1 65 | wend 66 | end if 67 | fbs_End_SIDStream() 68 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_play_sid_stream.bas: -------------------------------------------------------------------------------- 1 | ' ########################### 2 | ' # fbs_play_sid_stream.bas # 3 | '########################### 4 | 5 | #include "tests-common.bi" 6 | 7 | #ifdef NOSID 8 | #error 666: sorry no SID decoder ! 9 | #endif 10 | 11 | ' example of: 12 | ' fbs_Create_SIDStream() 13 | ' fbs_Play_SIDStream() 14 | ' fbs_Get_PlayingStreams() 15 | ' fbs_Get_SIDTitle() 16 | ' fbs_Get_SIDAuthor() 17 | ' fbs_Get_SIDInfo() 18 | ' fbs_Set_SIDStreamVolume() 19 | ' fbs_End_SIDStream() 20 | 21 | const MEDIA = TESTS_DATA_PATH 22 | const FILE = "comic_bakery.sid" 23 | const PATH = MEDIA & FILE 24 | chdir(exepath()) 25 | 26 | ' only if not same as exe path 27 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 28 | 29 | 30 | dim as boolean ok 31 | 32 | ok=fbs_Init() 33 | if ok=false then 34 | ? "error: fbs_Init() !" 35 | ? fbs_Get_PlugError() 36 | beep:sleep:end 1 37 | end if 38 | 39 | ok=FBS_Create_SIDStream(PATH) 40 | if ok=false then 41 | ? "error: fbs_Create_SIDStream( '" & PATH & "') !" 42 | beep:sleep:end 1 43 | end if 44 | 45 | ok=FBS_Play_SIDStream() 46 | if ok=false then 47 | ? "error: fbs_Play_SIDStream() !" 48 | beep:sleep:end 1 49 | end if 50 | 51 | print "SID title : " & FBS_Get_SIDTitle() 52 | print "SID author: " & FBS_Get_SIDAuthor() 53 | print "SID info : " & FBS_Get_SIDInfo() 54 | print 55 | print "playing " & PATH 56 | print "press any key ..." 57 | sleep 58 | if fbs_Get_PlayingStreams()>0 then 59 | print "fade out and quit !" 60 | dim as single volume=1.0 61 | while volume>0.025 62 | volume*=0.95 63 | fbs_Set_SIDStreamVolume(volume) 64 | sleep 30,1 65 | wend 66 | end if 67 | fbs_End_SIDStream() 68 | -------------------------------------------------------------------------------- /examples/WebBrowser/mongoose/udp-sntp-time-sync.bas: -------------------------------------------------------------------------------- 1 | 2 | #include once "inc/mongoose.bi" 3 | '#ifndef __FB_64BIT__ 4 | ' #libpath "win32" 5 | '#else 6 | ' #libpath "win64" 7 | '#endif 8 | 'demo for udp(sntp-time-sync) 9 | Dim Shared s_boot_timestamp As time_t = 0 10 | Dim Shared s_sntp_conn As mg_connection Ptr = NULL 11 | 12 | 'private function my_time(byval tp as time_t ptr) as time_t 13 | ' dim as time_t t = s_boot_timestamp + mg_millis() / 1000 14 | ' if tp <> NULL then 15 | ' *tp = t 16 | ' end if 17 | ' return t 18 | 'end function 19 | 20 | Private Sub sfn cdecl (ByVal c As mg_connection Ptr, ByVal ev As Long, ByVal ev_data As Any Ptr) 21 | If ev = MG_EV_SNTP_TIME Then 22 | Dim curtime As ULongInt = mg_now() 23 | MG_INFO("SNTP-updated current time is: %llu ms from epoch", curtime) 24 | Scope 25 | Dim t As ULongInt = *CPtr(ULongInt Ptr, ev_data) 26 | s_boot_timestamp = (t - mg_millis()) / 1000 27 | MG_INFO("Got SNTP time: %llu ms from epoch, ", t) 28 | 29 | End Scope 30 | ElseIf ev = MG_EV_CLOSE Then 31 | s_sntp_conn = NULL 32 | End If 33 | End Sub 34 | 35 | Private Sub timer_fn cdecl (ByVal arg As Any Ptr) 36 | Dim mgr As mg_mgr Ptr = CPtr(mg_mgr Ptr, arg) 37 | If s_sntp_conn = NULL Then 38 | s_sntp_conn = mg_sntp_connect(mgr, NULL, Cast(Any Ptr, @sfn), NULL) 39 | End If 40 | If s_sntp_conn <> NULL Then 41 | mg_sntp_request(s_sntp_conn) 42 | End If 43 | End Sub 44 | 45 | Dim mgr As mg_mgr 46 | mg_mgr_init(@mgr) 47 | mg_log_set(MG_LL_DEBUG) 48 | mg_timer_add(@mgr, 5000, MG_TIMER_REPEAT Or MG_TIMER_RUN_NOW, Cast(Any Ptr, @timer_fn), @mgr) 49 | While True 50 | mg_mgr_poll(@mgr, 300) 51 | Wend 52 | mg_mgr_free(@mgr) 53 | Sleep 54 | -------------------------------------------------------------------------------- /examples/mff/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Canvas/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Forms/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Hello/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Animate/Media/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Forms/MDIForm/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Forms/SDIForm/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/NotifyIcon/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/PageScroller/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | true 22 | PerMonitorV2 23 | 24 | 25 | 26 | 27 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/Animate/Media/fbsound/fbs_set_soundspeed.bas: -------------------------------------------------------------------------------- 1 | ' ########################## 2 | ' # fbs_set_soundspeed.bas # 3 | '########################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | ' fbs_Set_SoundSpeed() !!! 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | ' only if not same as exe path 13 | fbs_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | ' 16 | ' main 17 | ' 18 | dim as integer ox,oy,mx,my 19 | screenres 640,480 20 | 21 | dim as boolean ok 22 | ok=fbs_Init() 23 | if ok=false then 24 | ? "error: fbs_Init() !" 25 | ? fbs_get_plugerror() 26 | beep:sleep:end 1 27 | end if 28 | 29 | dim as integer hWave 30 | ok=fbs_Load_MP3File(data_path & "rnb_loop.mp3",@hWave) 31 | if ok=false then 32 | ? "error: fbs_Load_MP3File() !" 33 | beep:sleep:end 1 34 | end if 35 | 36 | dim as integer hSound 37 | dim as single speed=1.0 38 | 39 | 'play wave endless and create new sound object from wave object 40 | ok=fbs_Play_Wave(hWave,-1,,,,@hSound) 41 | if ok=false then 42 | ? "error: fbs_Play_Wave() !" 43 | beep:sleep:end 1 44 | end if 45 | 46 | 47 | 48 | ox=480:oy=240 49 | while (mx<>ox) and (my<>oy) 50 | setmouse ox,oy 51 | sleep 100 52 | getmouse mx,my 53 | wend 54 | 55 | ? "change playback speed with the mouse." 56 | ? "!!!!!!!!!!! -2.0 to +2.0 !!!!!!!!!!!!" 57 | ? "[any key] = quit" 58 | 59 | dim k as string 60 | while len(inkey)=0 61 | if getmouse(mx,my)=0 then 62 | if ox<>mx then 63 | speed=(mx-320)*(2/320) 64 | fbs_Set_SoundSpeed(hSound,speed) 65 | ox=mx 66 | locate 4,3:print "speed=> " + str(speed) + "< " +str(fbs_Get_Plugrate()*speed) + " Hz. " 67 | end if 68 | end if 69 | sleep 50 70 | wend 71 | end 72 | -------------------------------------------------------------------------------- /examples/SoundPlayer/fbsound/fbs_set_soundspeed.bas: -------------------------------------------------------------------------------- 1 | ' ########################## 2 | ' # fbs_set_soundspeed.bas # 3 | '########################## 4 | 5 | #include "tests-common.bi" 6 | 7 | ' example of: 8 | ' fbs_Set_SoundSpeed() !!! 9 | 10 | const data_path = TESTS_DATA_PATH 11 | 12 | ' only if not same as exe path 13 | 'FBS_Set_PlugPath( FBSOUND_DLL_PATH ) 14 | 15 | ' 16 | ' main 17 | ' 18 | dim as integer ox,oy,mx,my 19 | screenres 640,480 20 | 21 | dim as boolean ok 22 | ok=fbs_Init() 23 | if ok=false then 24 | ? "error: fbs_Init() !" 25 | ? fbs_get_plugerror() 26 | beep:sleep:end 1 27 | end if 28 | 29 | dim as integer hWave 30 | ok=fbs_Load_MP3File(data_path & "rnb_loop.mp3",@hWave) 31 | if ok=false then 32 | ? "error: fbs_Load_MP3File() !" 33 | beep:sleep:end 1 34 | end if 35 | 36 | dim as integer hSound 37 | dim as single speed=1.0 38 | 39 | 'play wave endless and create new sound object from wave object 40 | ok=fbs_Play_Wave(hWave,-1,,,,@hSound) 41 | if ok=false then 42 | ? "error: fbs_Play_Wave() !" 43 | beep:sleep:end 1 44 | end if 45 | 46 | 47 | 48 | ox=480:oy=240 49 | while (mx<>ox) and (my<>oy) 50 | setmouse ox,oy 51 | sleep 100 52 | getmouse mx,my 53 | wend 54 | 55 | ? "change playback speed with the mouse." 56 | ? "!!!!!!!!!!! -2.0 to +2.0 !!!!!!!!!!!!" 57 | ? "[any key] = quit" 58 | 59 | dim k as string 60 | while len(inkey)=0 61 | if getmouse(mx,my)=0 then 62 | if ox<>mx then 63 | speed=(mx-320)*(2/320) 64 | fbs_Set_SoundSpeed(hSound,speed) 65 | ox=mx 66 | locate 4,3:print "speed=> " + str(speed) + "< " +str(fbs_Get_Plugrate()*speed) + " Hz. " 67 | end if 68 | end if 69 | sleep 50 70 | wend 71 | end 72 | --------------------------------------------------------------------------------