From 2a9c1d1a75b7d4e79dfbc6be3dada1a1e959e58e Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 6 Dec 2011 20:27:29 +0100 Subject: Make dialogs fail with an exception in headless tests. --- vcl/inc/vcl/svapp.hxx | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'vcl/inc/vcl/svapp.hxx') diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx index 0350ee5f3c63..cfd46eddac6a 100644 --- a/vcl/inc/vcl/svapp.hxx +++ b/vcl/inc/vcl/svapp.hxx @@ -29,6 +29,10 @@ #ifndef _SV_SVAPP_HXX #define _SV_SVAPP_HXX +#include + +#include + #include #include #include @@ -140,6 +144,23 @@ public: class VCL_DLLPUBLIC Application { public: + enum DialogCancelMode { + DIALOG_CANCEL_OFF, ///< do not automatically cancel dialogs + DIALOG_CANCEL_SILENT, ///< silently cancel any dialogs + DIALOG_CANCEL_FATAL + ///< cancel any dialogs by throwing a DialogCancelledException + }; + + class VCL_DLLPUBLIC DialogCancelledException: + virtual public std::runtime_error + { + public: + explicit DialogCancelledException(char const * what_arg): + runtime_error(what_arg) {} + + virtual ~DialogCancelledException() throw (); + }; + Application(); virtual ~Application(); @@ -302,7 +323,8 @@ public: static void SetDefDialogParent( Window* pWindow ); static Window* GetDefDialogParent(); - static void EnableDialogCancel( sal_Bool bDialogCancel = sal_True ); + static DialogCancelMode GetDialogCancelMode(); + static void SetDialogCancelMode( DialogCancelMode mode ); static sal_Bool IsDialogCancelEnabled(); static void SetSystemWindowMode( sal_uInt16 nMode ); @@ -320,9 +342,12 @@ public: static void SetFilterHdl( const Link& rLink ); static const Link& GetFilterHdl(); - static void EnableHeadlessMode( sal_Bool bEnable = sal_True ); + static void EnableHeadlessMode( bool dialogsAreFatal ); static sal_Bool IsHeadlessModeEnabled(); + static bool IsHeadlessModeRequested(); + ///< check command line arguments for --headless + static void ShowNativeErrorBox(const String& sTitle , const String& sMessage); -- cgit v1.2.1