diff options
| author | Cecilio Pardo | 2024-09-11 15:44:28 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2024-09-14 13:57:26 +0300 |
| commit | aa7dee58d81817285208471074f1af598ebf0c98 (patch) | |
| tree | 2ff7a33af0eebdd12d1890eaf205ef4a84838e1d /src/menu.c | |
| parent | db1eb8a282c1832fd34be049e80dcb1a3b59ade2 (diff) | |
| download | emacs-aa7dee58d81817285208471074f1af598ebf0c98.tar.gz emacs-aa7dee58d81817285208471074f1af598ebf0c98.zip | |
Support GUI dialogs and message boxes better on MS-Windows
* src/w32menu.c (TASKDIALOG_COMMON_BUTTON_FLAGS, TASKDIALOG_FLAGS)
(PFTASKDIALOGCALLBACK, TASKDIALOG_BUTTON, TASKDIALOGCONFIG)
(TDN_CREATED, TDM_ENABLE_BUTTON, TDF_ALLOW_DIALOG_CANCELLATION)
(TD_INFORMATION_ICON) [!MINGW_W64]: Define.
(TaskDialogIndirect_Proc): Declare function type.
(TASK_DIALOG_MAX_BUTTONS): New macro.
(task_dialog_callback): New callback function.
(w32_popup_dialog): Add dialog implementation using TaskDialog.
(globals_of_w32menu): Load TaskDialogIndirect from comctl32.dll.
(Bug#20481)
Diffstat (limited to 'src/menu.c')
| -rw-r--r-- | src/menu.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/menu.c b/src/menu.c index de4d0964e9c..6b4aaef1715 100644 --- a/src/menu.c +++ b/src/menu.c | |||
| @@ -1594,9 +1594,10 @@ for instance using the window manager, then this produces a quit and | |||
| 1594 | Lisp_Object selection | 1594 | Lisp_Object selection |
| 1595 | = FRAME_TERMINAL (f)->popup_dialog_hook (f, header, contents); | 1595 | = FRAME_TERMINAL (f)->popup_dialog_hook (f, header, contents); |
| 1596 | #ifdef HAVE_NTGUI | 1596 | #ifdef HAVE_NTGUI |
| 1597 | /* NTGUI supports only simple dialogs with Yes/No choices. For | 1597 | /* NTGUI on Windows versions before Vista supports only simple |
| 1598 | other dialogs, it returns the symbol 'unsupported--w32-dialog', | 1598 | dialogs with Yes/No choices. For other dialogs, it returns the |
| 1599 | as a signal for the caller to fall back to the emulation code. */ | 1599 | symbol 'unsupported--w32-dialog', as a signal for the caller to |
| 1600 | fall back to the emulation code. */ | ||
| 1600 | if (!EQ (selection, Qunsupported__w32_dialog)) | 1601 | if (!EQ (selection, Qunsupported__w32_dialog)) |
| 1601 | #endif | 1602 | #endif |
| 1602 | return selection; | 1603 | return selection; |