Commit Graph
337 Commits
Author SHA1 Message Date
Lauri Nurmi d7fd467f18 Add wxTextEntryDialog::SetHint()
Sets the hint text for the underlying wxTextCtrl.

Closes #26176.
2026-02-11 13:46:22 +01:00
AliKet 21bf245fc5 Remove unnecessary call to ClearBackground()
Calling ClearBackground() followed by a Refresh() doesn't make any sense
because ClearBackground() either a no-op (e.g. wxGTK) or just redundant
under (wxOSX and wxQt) or will be overwritten in wxMSW.
2026-02-10 15:33:48 +01:00
Bill Su 96eca6412e Provide safe API for detecting closing wxTipWindow
Previous API was ugly and suffered from a race condition as the window
could be closed before the constructor returned.

Provide a safer API using weak-pointer-like wxTipWindow::Ref class that
is guaranteed to stop being valid when the tip window is closed.

Also implement two-stage constructions for this class, as usual.

Closes #26070.

Closes #26071.
2026-01-07 15:29:06 +01:00
Vadim Zeitlin 0a6523c4d9 Update copyright years to 2025
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.10 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS Simulator on Silicon Mac (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
Update Documentation / Update Online Documentation (push) Has been cancelled
No Response / no-response (push) Has been cancelled
Just run misc/scripts/inc_year and commit the results.

See #18690.
2026-01-01 17:40:18 +01:00
Blake-Madden cd07eabd54 Add support for "Do not show this again" checkbox to wxInfoBar
Closes #25394.
2025-05-26 17:54:07 +02:00
Blake-Madden 0026505c35 DPI fixes in samples and sizer overview
Remove redundant 5 arguments to wxSizerFlags::Border() and replace
Border(10) with DoubleBorder().

Add FromDIP in other places.

Closes #25148.
2025-02-12 18:09:41 +01:00
Vadim Zeitlin 5252bd3ca9 Update copyright year in the dialogs sample too
Add it to the list of files updated by inc_year script and also change
the copyright to start at 1992 and not 1998 to make things simpler.

See #25041.
2025-01-16 17:59:40 +01:00
Vadim Zeitlin 7aa6da06d0 Remove wxUSE_LONGLONG and always use wxLongLong_t
All supported platforms provide 64-bit integer types since many years,
so remove the legacy wxLongLongWx implementation and rename
wxLongLongNative to just wxLongLong and always compile it in.

Note that wxLongLong itself must still be kept for compatibility as it
has member functions, such as GetValue() or ToString(), that can be used
in the existing code.
2024-10-18 19:26:15 +02:00
Vadim Zeitlin 3f5bbe541b Ellipsize info bar text instead of truncating it
If there is not enough space to show the text in full, prefer to
ellipsize it in the middle instead of just truncating it.

Also show some text too long to fit into the window in the dialogs
sample to demonstrate that ellipsization really works.
2024-09-26 19:52:22 +02:00
Vadim Zeitlin 42882760e5 Revert "Wrap label if necessary in wxInfoBar in wxGTK"
This reverts commit 32d8b5954a which was
broken in both the generic and GTK version: generic one didn't work at
all and GTK one didn't adjust the height of the infobar correctly.

See #1443, #14121.
2024-09-25 18:38:00 +02:00
Lauri Nurmi 8b26611c64 Expose reason for notification dismissal through SetInt()
On all platforms, except macOS, the reason why a notification was
dismissed is known. Specifically, it can be useful to distinguish whether
the notification closed because of a timeout, or a click by the user.
2024-03-20 22:45:56 +02:00
Lauri Nurmi 1bef48229e Fix duplicate accelerator for the font dialog in dialogs sample
Shift-Ctrl-N was already taken when it was added for the font dialog in
9b25ed0 (Add an accelerator for the font dialog in the dialogs sample,
2022-04-16). Use Shift-Ctrl-J instead.

Closes #24324.
2024-02-16 00:29:47 +01:00
Lauri Nurmi 1864a49dd2 Fix dialogs sample never exiting with a persistent taskbar icon
If the latest user notification shown was shown with
"Use persistent taskbar icon" toggled on, the application process
would never really exit after closing. So delete m_taskbarIcon
in destructor.

Closes #24316.
2024-02-16 00:23:24 +01:00
Blake-Madden a059061eb7 Replace wxDECLARE_NO_COPY_CLASS with deleted functions in samples
Use standard C++11 way of making classes non-copyable instead of
wx-specific macro.

Closes #24150.
2023-12-22 12:21:54 +01:00
PB a69fabecb1 Fix using wxStaticBoxSizer in samples
If a control is contained in a wxStaticBoxSizer or its child sizer,
wxStaticBoxSizer::GetStaticBox() should be used as the control's parent.

However, widgets and dialogs samples did not do that, which resulted in
flooding the message log in widgets sample with warnings about this; in
dialogs sample the warnings were shown in the debug output.

Fix this by always using the static box as the control's parent when the
control is contained (directly or indirectly) in a wxStaticBoxSizer.

Closes #23967.
2023-10-22 01:27:55 +02:00
Vadim Zeitlin 6f9f4c6dbe Call wxYield() while showing wxBusyInfo in the dialogs sample
Otherwise it can't be seen at all with wxGTK.
2023-10-03 16:28:55 +02:00
Vadim Zeitlin cc5f5f90b0 Show high resolution bitmaps in wxBusyInfo if available
Instead of always scaling the single bitmap passed to it, allow passing
wxBitmapBundle and select the bitmap most appropriate for the current
resolution from it.

Closes #23813.
2023-08-25 20:32:07 +02:00
Vadim Zeitlin d5ef9d4387 Add wxGenericAboutDialog::GetCustomControlParent()
This function should be used to get the parent for the custom controls
instead of relying on them being reparented under it by the code added
in the last commit.

Change the type of m_contents to be wxWindow and not wxPanel as it
doesn't really matter, but wxPanel is not fully declared in this header
while wxWindow is.
2023-06-20 19:19:49 +02:00
Vadim Zeitlin 020aff8a7f Don't use "Copyright" word in wxAboutDialog under MSW
MSW platform convention is to show just "© whatever" instead of
"Copyright © whatever" in the "About" dialogs, so make it simpler to
conform to it but still keeping using the word under the other
platforms, where it usually is included, by removing the "Copyright"
word under MSW only in wx code.
2023-02-24 00:42:13 +00:00
Vadim Zeitlin 17827947ec Don't show "developer" in the simple "About" dialog
This doesn't look well in the native Mac or MSW versions, so leave it
out to make the dialog nicer by default.
2023-01-30 21:11:42 +01:00
Vadim Zeitlin 9fbc7abea1 Update copyright year in the dialogs sample "About"
This is not critical, so might not be worth updating it every year, but
using 2006 there is still a bit too vintage.
2023-01-30 21:11:42 +01:00
PB b4a29dfab7 Remove unused variable from the dialogs sample 2022-12-24 12:49:09 +01:00
Vadim Zeitlin 699042a272 Remove EnterHandlingTextCtrl class from the dialogs sample
This code was simplified by 16473d9b19 (Make class used as template
parameter local now that we can, 2022-11-11) but we can simplify it even
more by just getting rid of this class completely and using a small
lambda as the event handler.

No real changes.
2022-11-11 13:58:18 +01:00
Vadim Zeitlin 16473d9b19 Make class used as template parameter local now that we can
Address a minor TODO-C++11 comment in the dialogs sample by moving the
class declaration into the function using it, now that we don't have to
keep it outside it.

This commit is best viewed with Git --color-moved option.
2022-11-11 00:34:40 +01:00
Vadim Zeitlin 4f4c5fcfdf Use nullptr instead of NULL in the code and documentation
This is a combination of running clang-tidy with modernize-use-nullptr
check for some ports (GTK, X11, OSX) and manual changes to the ports for
which it couldn't be used easily (MSW, DFB) and also manually updating
the docs.

Also replace NULL with null or nullptr in the comments as this is more
consistent with the use of nullptr in the code and makes it simpler to
grep for the remaining occurrences of NULL itself.

And also use null in the assert messages.

Only a few occurrences of "NULL" are still left in non-C files, mostly
corresponding to unclear comments or string output which it might not be
safe to change.
2022-10-18 01:25:25 +02:00
Vadim Zeitlin 0ef1cdcc21 Remove support for wxMotif
This port hasn't been updated for ages and is not used by anybody any
longer, so remove its code to facilitate maintenance.

Also remove references to this port from the documentation and most of
the other places (VMS-specific descrip.vms files still check for it
because it's not clear how to update them all), including configure.

Regenerate the latter and rebake all makefiles.

Finally document that this port is not available any longer.
2022-10-16 16:39:56 +02:00
PB 88d526660f Replace wxOVERRIDE and wxNOEXCEPT with override and noexcept
Don't use deprecated macros in wxWidgets itself.
2022-10-15 18:10:45 +02:00
Vadim Zeitlin 854599c0bd Add wxFileDialog::AddShortcut() documentation
Also add a comment to the sample explaining the default behaviour.
2022-07-17 22:24:56 +01:00
Vadim Zeitlin 5d3ebf9457 Add wxFileDialog::AddShortcut()
This allows to add application-specific directories to the file dialog.

This commit only contains the implementation for wxMSW and a change
showing the new function in the sample.
2022-07-17 22:24:56 +01:00
Vadim Zeitlin 475c2ca201 Add an example of customizing "Save" file dialog too
Show doing it in the sample and also add a missing line to the example
in the documentation.
2022-06-12 00:51:31 +01:00
Vadim Zeitlin c18486e81f Add support for custom comboboxes in wxFileDialogCustomize
Allow using simple (i.e. not editable) comboboxes, known as wxChoice in
wx API, in the dialog too.

Demonstrate their use in the dialogs sample.
2022-06-04 00:50:54 +01:00
Vadim Zeitlin 5e7b104248 Change the meaning of the radio buttons in the file dialog
No real changes, just rename the buttons to use paper size for
demonstrating something else.
2022-06-03 23:07:47 +01:00
Vadim Zeitlin 76ff441bf2 Demonstrate disabling radio buttons in the sample
Radio buttons are different from the other controls internally in
IFileDialogCustomize-based implementation, so check that disabling them
also works correctly.
2022-06-03 23:00:23 +01:00
Vadim Zeitlin 07d7dd19f8 Add support for custom radio button controls in wxFileDialog
Update the dialogs sample to show using them too.
2022-06-03 01:35:31 +01:00
Vadim Zeitlin bf5ddc200b Improve extra controls support in wxGenericFileDialog
Update the extra controls whenever anything changes in the dialog to
make the example in the dialogs sample actually work with the generic
dialog (previously nothing was updated at all).

Also delete the extra controls earlier to make the behaviour more
consistent with the native dialogs.

Use the new customization API for the generic dialogs in the sample too.
2022-06-03 01:35:31 +01:00
Vadim Zeitlin 751a73a2ca Add optional label to wxFileDialogCustomize::AddTextCtrl()
Creating a text with a label is a common operation and can be
implemented to look slightly better than AddStaticText() followed by
AddTextCtrl() without a label when using IFileDialog.
2022-06-03 01:35:30 +01:00
Vadim Zeitlin 095c4dfc94 Add event generation to MSW IFileDialog-based implementation
Inherit wxFileDialogCustomControl from wxEvtHandler to allow Bind()ing
to events on it and use this to handle wxEVT_BUTTON and wxEVT_CHECKBOX
in the sample.

And inherit from IFileDialogControlEvents in wxMSW code to actually
generate these events when they happen.
2022-06-03 01:35:30 +01:00
Vadim Zeitlin 359ab98cb2 Start adding new API for wxFileDialog customization
wxFileDialog::SetCustomizeHook() can be implemented in terms of
IFileDialogCustomize in wxMSW, which means that it can be used with the
new style dialogs shown by IFileDialog, unlike SetExtraControlCreator(),
which could only be supported when using older style common dialogs.

Add support for a few different controls and wxMSW implementation, more
controls, generic implementation and the documentation will be updated
later.

Also update the sample to show the new API in action and allow toggling
between using it and the old API for testing.
2022-06-03 01:35:30 +01:00
Vadim Zeitlin 63f44b5bfa Call MSWOnInitDone() when using IFileDialog too
This allows to use the new style dialog for the file dialogs for which
Centre() or SetSize() had been called, as we can now position the window
even when not using a hook function.

As there is no IFileDialogEvents function corresponding to CDN_INITDONE
notification, use the first call to OnTypeChange() instead.
2022-06-03 01:35:30 +01:00
Vadim Zeitlin 9b25ed038a Add an accelerator for the font dialog in the dialogs sample
No real changes, just make it faster to bring up the font dialog for
testing.
2022-04-16 16:40:49 +01:00
Lauri Nurmi 1ad25bdd5c Demonstrate how to interrupt closing an application
Add a menu item to the dialogs sample for simulating having unsaved
documents in the application. Then demonstrate how to do something
when the user attempts to close the application, e.g. show a dialog,
and possibly cancel closing.

This code was originally written for debugging some issue related to
closing an application, but besides that it serves as an example of a
very common pattern a lot of real world applications need in some form.

Mention the example in samples/dialogs in wxCloseEvent documentation
2022-02-25 00:37:58 +01:00
Dimitri Schoolwerth 25f981bfad Demonstrate wxOSX_FILEDIALOG_ALWAYS_SHOW_TYPES in dialogs sample
Add a menu option (Ctrl+Cmd+S) to toggle showing of the filter choice
with file types in open dialogs on macOS.
2021-02-15 00:37:45 +01:00
Vadim Zeitlin 5e8a14ff41 Update dialogs sample to use wxWebCredentials too
This should have been done in abcc31c6b2 (Update wxCredentialEntryDialog
to use wxWebCredentials, 2021-01-10).
2021-01-12 14:59:14 +01:00
Vadim Zeitlin 6bdab7b3c8 Merge branch 'master' into web-request
Merge with the latest master in preparation for merging into master.

Rebake to resolve conflicts in generated files.
2020-12-12 18:12:25 +01:00
PB f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Stefan Csomor be9216b6b1 Show all other supported window modal dialogs in the sample too 2020-07-14 20:10:46 +02:00
Stefan Csomor f585878136 Show using window-modal file open dialog in the sample 2020-07-14 20:10:04 +02:00
Vadim Zeitlin b7057c336f Merge branch 'msw-dismiss-unfocused-popup'
Allow wxPopupTransientWindow to work without wxPU_CONTAINS_CONTROLS too
in wxMSW and don't use wxPU_CONTAINS_CONTROLS by default, notably
allowing wxTipWindow to be shown without stealing focus.

See https://github.com/wxWidgets/wxWidgets/pull/1942

Closes #18636.
2020-07-11 19:56:32 +02:00
Ian McInerney 79d73d4eb3 Add show hidden folders flag to wxDirDialog
Add wxDD_SHOW_HIDDEN similar to the existing wxFD_SHOW_HIDDEN.
2020-07-10 03:29:16 +02:00
Ian McInerney b43f9b0ea4 Update sample to use multiple selection in wxDirDialog 2020-07-10 03:25:51 +02:00