1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-08-04 15:20:24 +00:00
Commit graph

2777 commits

Author SHA1 Message Date
Samuel Gomes
4c5072e0aa Enable PulseAudio on Linux 2022-11-18 10:46:58 +05:30
Samuel Gomes
bc522b8a80
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-16 11:56:05 +05:30
github-actions[bot]
5e3fa2d6c2 Automatic update of ./internal/source 2022-11-16 06:19:29 +00:00
Matt Kilgore
249750bcbd
Merge pull request #249 from mkilgore/release-3.4.1
Version 3.4.1
2022-11-16 01:01:20 -05:00
Matthew Kilgore
1aac3b1955 Version 3.4.1 2022-11-15 23:47:34 -05:00
github-actions[bot]
de63331a19 Automatic update of ./internal/source 2022-11-16 04:41:13 +00:00
Matt Kilgore
0cfb01c6bb
Merge pull request #247 from SteveMcNeill/main
Swap in Optional New Load File Dialog
2022-11-15 23:24:33 -05:00
Matt Kilgore
4ff9edbf9d
Merge branch 'main' into main 2022-11-15 22:55:06 -05:00
Matthew Kilgore
65cfbda3b7 Rename 'New Dialogs' to 'GUI Dialogs', Persist setting
The 'New Dialogs' menu option was renamed to 'GUI Dialogs' to better
explain what it does. Additionally the setting of which dialogs to use
is saved to the config.ini file so that it presists across multiple runs
of QB64-PE.
2022-11-15 22:21:29 -05:00
Samuel Gomes
96e2c92bd6
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-16 08:13:26 +05:30
Matt Kilgore
bd6ad5fde6
Merge pull request #248 from mkilgore/fix-password-inputbox
Fix password handling in _InputBox$ on Windows
2022-11-15 21:04:30 -05:00
Matthew Kilgore
a28342be99 Fix password handling in _InputBox$ on Windows
We were incorrectly treating the empty string and NULL the same and
using a password dialog for both. It now has the correct behavior of
displaying the password when provided the empty string, but just
displaying a blank input box when provided NULL.
2022-11-14 20:23:41 -05:00
SteveMcNeill
2147911ec3 Swap in Optional New Load File Dialog
And without screwing up the keyword casing this time!  ;)
2022-11-14 17:47:27 -05:00
Samuel Gomes
5cefba8609 Merge branch 'miniaudio-fixes' of https://github.com/a740g/QB64pe into miniaudio-fixes 2022-11-14 23:46:22 +05:30
Samuel Gomes
ea80bddd51
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-14 23:33:25 +05:30
Samuel Gomes
884ff158ff
Merge pull request #243 from a740g/setup-win-enhancements
setup_win enhancements
2022-11-14 23:00:09 +05:30
Samuel Gomes
0dd825e5f3 Add -static-libgcc -static-libstdc++ to TEST_CFLAGS-$(win) 2022-11-14 12:15:51 +05:30
Samuel Gomes
cb14a3d4d7
Merge branch 'main' into setup-win-enhancements 2022-11-14 09:54:13 +05:30
Samuel Gomes
2cd889f0ec Update .ci/bootstrap.bat to use setup_mingw.cmd 2022-11-14 09:53:58 +05:30
Matt Kilgore
855eaac864
Merge pull request #245 from mkilgore/dialog-fixes
Improve dialog window association and _InputBox$ support on Windows
2022-11-13 15:41:24 -05:00
Matthew Kilgore
e6964dfc69 Include stdint.h on Windows, change integer defines to use them
It seems we weren't including stdint.h on Windows by mistake. Likely we
were getting it anywy from some other header, but it sounds like that
got changed in newer versions of MinGW and either way we shouldn't rely
on that.

Being that we include stdint.h on all platforms, I also changed os.h to
always use these types when defining the `int32` and friends sized
types. Ideally we get rid of those defines in the future but we can at
least use the stdint.h types going forward (as we already have).
2022-11-12 19:48:26 -05:00
Matthew Kilgore
1509f85719 Improve _InputBox$ support on Windows
This applies various dialog settings so that the dialog is always on
top, and also so that Tab works as expected to move between the
controls. The Edit control is moved first so that it's focused when the
window appears.
2022-11-12 19:48:17 -05:00
Matthew Kilgore
3f709ba65b Add logic to correctly discover our process's Window
Currently we have two different ways of determining what Window handle
to tie our dialogs too - we either use GetForegroundWindow(), or create
a completely new and hidden handle. The associated window determines
what process names shows up on notifications, and also which window
can't be interacted with while a dialog is open.

Both of those approaches aren't really good. In the case of
GetForegroundWindow(), it just returns whatever window the user has in
focus, which might be a completely different process. With the hidden
window, it means the dialog and notification aren't really tied to the
QB64-PE program, so you can still interact with the window even when a
dialog is open, and the notification doesn't show an exectuable name.

To solve this we're now using EnumWindows() to enumerate over all the
Windows on the system and find one associated with our ProcessId. We
then check if it's the top-level window and return it if it is.

If that process fails to find a window (such as if this is a
console-only program, or $SCREENHIDE is used) then we check if
GetConsoleWindow() gives us a handle and use that.

If neither approach works, then we fall back to creating a hidden window
so that the dialogs can still work.
2022-11-12 19:16:43 -05:00
Samuel Gomes
2229b41e34 Update MINGW download URLs 2022-11-11 18:59:08 +05:30
Samuel Gomes
7c2f709b7e Change blockSampleFrames for reduced latency 2022-11-11 18:50:59 +05:30
Samuel Gomes
2a5e2e8add Add O2 by default due to resampling code in audio 2022-11-10 18:48:41 +05:30
Matthew Kilgore
c5e2be53f9 Swap bmp test images for png
Functionally it doesn't matter what kind of images we store for the
tests, as _LOADIMAGE() will open them exactly the same. png however has
the advantages of being substantially smaller, and also viewable
directly on GitHub in PRs, making them easier to review.
2022-11-09 21:56:44 -05:00
Samuel Gomes
309fc2b732
Merge branch 'QB64-Phoenix-Edition:main' into setup-win-enhancements 2022-11-10 07:27:46 +05:30
Samuel Gomes
ae35e596b4
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-10 07:27:37 +05:30
Matt Kilgore
4799c9b7d0
Merge pull request #241 from mkilgore/paint-fill-fix
Fix PAINT when border color is not supplied (QB64Official/qb64#38)
2022-11-09 20:39:28 -05:00
Matt Kilgore
a85f10e35c
Merge branch 'main' into paint-fill-fix 2022-11-08 21:55:53 -05:00
Samuel Gomes
1150d23a2a
Merge branch 'QB64-Phoenix-Edition:main' into setup-win-enhancements 2022-11-08 23:54:33 +05:30
Samuel Gomes
28bdc23ce3
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-08 23:54:25 +05:30
Matt Kilgore
f40bc3acaa
Merge pull request #238 from mkilgore/fix-inputbox-windows
Fix _InputBox$ on Windows to use DialogBoxIndirect, and a few other changes
2022-11-08 13:18:48 -05:00
Matthew Kilgore
ac8aac39b7 Use signed type for xdelta and ydelta arrays
I accidentally declared these as uint32_t even though I store -1 in
them. It was working anyway due to the implicit conversion that happens
when adding it to an int32_t, but it should be fixed regardless.
2022-11-08 01:32:05 -05:00
Matthew Kilgore
8005e62402 Add PAINT tile image-based tests 2022-11-08 01:02:22 -05:00
Matthew Kilgore
4f5af8888e Fix PAINT when border color is not supplied
The border color parameter to PAINT is optional, but sub_paint was not
handling that case. What it should do in that situation is keep painting
until it finds pixels that are not the same color as the original
starting pixel was. Instead it would simply assume border color was
valid and paint until it finds color zero (the default parameter value
when it's not provided).

This was originally reported in QB64Official/qb64#2, and Walt
(@TheJoyfulProgrammer) fixed it in QB64Official/qb64#38. Functionally
this is the same change, however I'm checking `passed & 4` to see
whether a border color was provided rather than `bordercol == NULL`.
The later has problems if the provided bordercolor is zero, which is
allowed since zero is a valid color. The `passed` argument indicates
which of the function arguments were actually provided in the QB64
source that called PAINT.

Additionally, along with the `while (true)` loop that Walt changed I
went ahead and removed the duplication of the sections for each
direction. We now just use a couple of arrays to determine which
direction we're checking and loop over all 4.
2022-11-08 00:59:12 -05:00
Matthew Kilgore
90b3bd2662 Address build warnings on tinyfiledialogs.c
A function was made unnecessary but wasn't removed, triggering a
warning. Additionally gcc likes parenthesis around `=` assignments used
for conditions.
2022-11-08 00:49:13 -05:00
Matthew Kilgore
5b238467a9 Use hidden input if defaultText is blank
Fairly simple, this sets the ES_PASSWORD flag when the default text is
blank.

Additionally I fixed the dialog callback to correctly call EndDialog()
rather than DestroyWindow().
2022-11-08 00:49:13 -05:00
Matthew Kilgore
7bf68383d5 Fix warnings, remove unused code in tinyfiledialogs.c 2022-11-08 00:49:13 -05:00
Matthew Kilgore
ee9f8e4404 Remove quote checks on Windows
These are the last of the quote checks, these don't require any
associated changes as the underlying Win32 functions already allow
quotes. They were simply added to keep parity with the functionality on
other platforms, that that has since been fixed.
2022-11-08 00:49:13 -05:00
Matthew Kilgore
ec0ec10652 Add missing static to char array in tinyfd_openFileDialog
Fairly simple, lBuff is used to return the resulting filename and has to
be static so that it's still valid when the function exits.
2022-11-08 00:49:13 -05:00
Matthew Kilgore
0115029e5e Implement InputBox using DialogBoxIndirect
This removes the VBS based InputBox for Windows and replaces it with a
version that uses DialogBoxIndirect to create the dialog. While it is a
bit more complicated in some respects, it removes any concerns about the
contents of the strings as they're no longer being inserted into the
generated script.

It also has the advantage that it doesn't spawn another process (which
then shows up in the task bar in some situations).

With this changes quote characters are allowed in all of the parameters.
2022-11-08 00:49:13 -05:00
Samuel Gomes
a9d29e17d7
Merge branch 'QB64-Phoenix-Edition:main' into setup-win-enhancements 2022-11-08 07:56:48 +05:30
Samuel Gomes
839e1479a0
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-08 07:56:40 +05:30
Matt Kilgore
f5b24dfdc1
Merge pull request #239 from mkilgore/fix-macos-escaping
Fix osascript escaping on Mac OS
2022-11-07 21:25:24 -05:00
Matthew Kilgore
f73a1da97d Fix osascript escaping on Mac OS
Escaping the osascript commands requires two layers of escaping: One for the
script itself, and one for the sh arguments.

For the script itself, we simply have to escape the " character with \". When
then take the result of that and escape it sutably for sh arguments in single
quotes. We already have a function for that so we simply call that to do the
job.
2022-11-07 02:43:29 -05:00
Samuel Gomes
218a9234c6
Merge branch 'QB64-Phoenix-Edition:main' into setup-win-enhancements 2022-11-07 00:16:37 +05:30
Samuel Gomes
e9905d6cd0
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-07 00:16:25 +05:30
Matt Kilgore
942b5d73b9
Merge pull request #237 from mkilgore/fix-notifypopup-windows
Swap NotifyPopup to use Shell_NotifyIcon
2022-11-06 12:38:01 -05:00