summaryrefslogtreecommitdiffstats
path: root/include/tools/errinf.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/tools/errinf.hxx')
-rw-r--r--include/tools/errinf.hxx181
1 files changed, 181 insertions, 0 deletions
diff --git a/include/tools/errinf.hxx b/include/tools/errinf.hxx
new file mode 100644
index 000000000000..815447b7372f
--- /dev/null
+++ b/include/tools/errinf.hxx
@@ -0,0 +1,181 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __RSC
+
+#ifndef _EINF_HXX
+#define _EINF_HXX
+
+#include <limits.h>
+#include <tools/rtti.hxx>
+#include <tools/errcode.hxx>
+#include <tools/string.hxx>
+#include "tools/toolsdllapi.h"
+
+class EDcr_Impl;
+class ErrHdl_Impl;
+class Window;
+
+class ErrorInfo
+{
+private:
+ sal_uIntPtr lUserId;
+
+public:
+ TYPEINFO();
+
+ ErrorInfo( sal_uIntPtr lArgUserId ) :
+ lUserId( lArgUserId ){}
+ virtual ~ErrorInfo(){}
+
+ sal_uIntPtr GetErrorCode() const { return lUserId; }
+
+ static ErrorInfo* GetErrorInfo(sal_uIntPtr);
+};
+
+class TOOLS_DLLPUBLIC DynamicErrorInfo : public ErrorInfo
+{
+ friend class EDcr_Impl;
+
+private:
+ EDcr_Impl* pImpl;
+
+public:
+ TYPEINFO();
+
+ DynamicErrorInfo(sal_uIntPtr lUserId, sal_uInt16 nMask);
+ virtual ~DynamicErrorInfo();
+
+ operator sal_uIntPtr() const;
+ sal_uInt16 GetDialogMask() const;
+};
+
+class TOOLS_DLLPUBLIC StringErrorInfo : public DynamicErrorInfo
+{
+private:
+ OUString aString;
+
+public:
+ TYPEINFO();
+
+ StringErrorInfo( sal_uIntPtr lUserId,
+ const OUString& aStringP,
+ sal_uInt16 nFlags = 0);
+ const OUString& GetErrorString() const { return aString; }
+};
+
+class TOOLS_DLLPUBLIC TwoStringErrorInfo: public DynamicErrorInfo
+{
+private:
+ OUString aArg1;
+ OUString aArg2;
+
+public:
+ TYPEINFO();
+
+ TwoStringErrorInfo(sal_uIntPtr nUserID, const OUString & rTheArg1,
+ const OUString & rTheArg2, sal_uInt16 nFlags = 0):
+ DynamicErrorInfo(nUserID, nFlags), aArg1(rTheArg1), aArg2(rTheArg2) {}
+
+ virtual ~TwoStringErrorInfo() {}
+
+ const OUString& GetArg1() const { return aArg1; }
+ const OUString& GetArg2() const { return aArg2; }
+};
+
+class TOOLS_DLLPUBLIC MessageInfo : public DynamicErrorInfo
+{
+public:
+ TYPEINFO();
+
+ MessageInfo(sal_uIntPtr UserId, sal_uInt16 nFlags = 0) :
+ DynamicErrorInfo(UserId, nFlags) {}
+ MessageInfo(sal_uIntPtr UserId, const OUString &rArg, sal_uInt16 nFlags = 0 ) :
+ DynamicErrorInfo(UserId, nFlags), aArg(rArg) {}
+
+ const OUString& GetMessageArg() const { return aArg; }
+
+private:
+ OUString aArg;
+};
+
+class TOOLS_DLLPUBLIC ErrorContext
+{
+ friend class ErrorHandler;
+
+private:
+ ErrorContext* pNext;
+ Window* pWin;
+
+public:
+ ErrorContext(Window *pWin=0);
+ virtual ~ErrorContext();
+
+ virtual sal_Bool GetString( sal_uIntPtr nErrId, OUString& rCtxStr ) = 0;
+ Window* GetParent() { return pWin; }
+
+ static ErrorContext* GetContext();
+};
+
+typedef sal_uInt16 WindowDisplayErrorFunc(
+ Window *, sal_uInt16 nMask, const OUString &rErr, const OUString &rAction);
+
+typedef void BasicDisplayErrorFunc(
+ const OUString &rErr, const OUString &rAction);
+
+class TOOLS_DLLPUBLIC ErrorHandler
+{
+ friend class ErrHdl_Impl;
+
+private:
+ ErrHdl_Impl* pImpl;
+
+ static sal_uInt16 HandleError_Impl( sal_uIntPtr lId,
+ sal_uInt16 nFlags,
+ sal_Bool bJustCreateString,
+ OUString & rError);
+protected:
+ virtual sal_Bool CreateString( const ErrorInfo *,
+ OUString &, sal_uInt16& nMask ) const = 0;
+
+public:
+ ErrorHandler();
+ virtual ~ErrorHandler();
+
+ static sal_uInt16 HandleError ( sal_uIntPtr lId, sal_uInt16 nMask = USHRT_MAX );
+ static sal_Bool GetErrorString( sal_uIntPtr lId, OUString& rStr );
+
+ static void RegisterDisplay( BasicDisplayErrorFunc* );
+ static void RegisterDisplay( WindowDisplayErrorFunc* );
+};
+
+class TOOLS_DLLPUBLIC SimpleErrorHandler : private ErrorHandler
+{
+protected:
+ virtual sal_Bool CreateString( const ErrorInfo*, OUString &,
+ sal_uInt16 &nMask ) const;
+
+public:
+ SimpleErrorHandler();
+};
+
+#endif
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */