Closes #16706. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			94 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/msw/private/msgdlg.h
 | |
| // Purpose:     helper functions used with native message dialog
 | |
| // Author:      Rickard Westerlund
 | |
| // Created:     2010-07-12
 | |
| // Copyright:   (c) 2010 wxWidgets team
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_MSW_PRIVATE_MSGDLG_H_
 | |
| #define _WX_MSW_PRIVATE_MSGDLG_H_
 | |
| 
 | |
| #include "wx/msw/wrapcctl.h"
 | |
| #include "wx/scopedarray.h"
 | |
| 
 | |
| // Macro to help identify if task dialogs are available: we rely on
 | |
| // TD_WARNING_ICON being defined in the headers for this as this symbol is used
 | |
| // by the task dialogs only. Also notice that task dialogs are available for
 | |
| // Unicode applications only.
 | |
| #if defined(TD_WARNING_ICON) && wxUSE_UNICODE
 | |
|     #define wxHAS_MSW_TASKDIALOG
 | |
| #endif
 | |
| 
 | |
| // Provides methods for creating a task dialog.
 | |
| namespace wxMSWMessageDialog
 | |
| {
 | |
| 
 | |
| #ifdef wxHAS_MSW_TASKDIALOG
 | |
|     class wxMSWTaskDialogConfig
 | |
|     {
 | |
|     public:
 | |
|         enum { MAX_BUTTONS = 4  };
 | |
| 
 | |
|         wxMSWTaskDialogConfig()
 | |
|             : buttons(new TASKDIALOG_BUTTON[MAX_BUTTONS]),
 | |
|               parent(NULL),
 | |
|               iconId(0),
 | |
|               style(0),
 | |
|               useCustomLabels(false)
 | |
|             { }
 | |
| 
 | |
|         // initializes the object from a message dialog.
 | |
|         wxMSWTaskDialogConfig(const wxMessageDialogBase& dlg);
 | |
| 
 | |
|         wxScopedArray<TASKDIALOG_BUTTON> buttons;
 | |
|         wxWindow *parent;
 | |
|         wxString caption;
 | |
|         wxString message;
 | |
|         wxString extendedMessage;
 | |
|         long iconId;
 | |
|         long style;
 | |
|         bool useCustomLabels;
 | |
|         wxString btnYesLabel;
 | |
|         wxString btnNoLabel;
 | |
|         wxString btnOKLabel;
 | |
|         wxString btnCancelLabel;
 | |
|         wxString btnHelpLabel;
 | |
| 
 | |
|         // Will create a task dialog with it's parameters for it's creation
 | |
|         // stored in the provided TASKDIALOGCONFIG parameter.
 | |
|         // NOTE: The wxMSWTaskDialogConfig object needs to remain accessible
 | |
|         // during the subsequent call to TaskDialogIndirect().
 | |
|         void MSWCommonTaskDialogInit(TASKDIALOGCONFIG &tdc);
 | |
| 
 | |
|         // Used by MSWCommonTaskDialogInit() to add a regular button or a
 | |
|         // button with a custom label if used.
 | |
|         void AddTaskDialogButton(TASKDIALOGCONFIG &tdc,
 | |
|                                  int btnCustomId,
 | |
|                                  int btnCommonId,
 | |
|                                  const wxString& customLabel);
 | |
|     }; // class wxMSWTaskDialogConfig
 | |
| 
 | |
| 
 | |
|     typedef HRESULT (WINAPI *TaskDialogIndirect_t)(const TASKDIALOGCONFIG *,
 | |
|                                                    int *, int *, BOOL *);
 | |
| 
 | |
|     // Return the pointer to TaskDialogIndirect(). This should only be called
 | |
|     // if HasNativeTaskDialog() returned true and is normally guaranteed to
 | |
|     // succeed in this case.
 | |
|     TaskDialogIndirect_t GetTaskDialogIndirectFunc();
 | |
| #endif // wxHAS_MSW_TASKDIALOG
 | |
| 
 | |
| 
 | |
|     // Check if the task dialog is available: this simply checks the OS version
 | |
|     // as we know that it's only present in Vista and later.
 | |
|     bool HasNativeTaskDialog();
 | |
| 
 | |
|     // Translates standard MSW button IDs like IDCANCEL into an equivalent
 | |
|     // wx constant such as wxCANCEL.
 | |
|     int MSWTranslateReturnCode(int msAns);
 | |
| }; // namespace wxMSWMessageDialog
 | |
| 
 | |
| #endif // _WX_MSW_PRIVATE_MSGDLG_H_
 |