xref: /aoo41x/main/basctl/source/inc/docsignature.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef BASCTL_DOCSIGNATURE_HXX
28 #define BASCTL_DOCSIGNATURE_HXX
29 
30 /** === begin UNO includes === **/
31 #include <com/sun/star/frame/XModel.hpp>
32 /** === end UNO includes === **/
33 
34 #include <memory>
35 
36 //........................................................................
37 namespace basctl
38 {
39 //........................................................................
40 
41     class ScriptDocument;
42 	//====================================================================
43 	//= DocumentSignature
44 	//====================================================================
45     struct DocumentSignature_Data;
46     /// encapsulates (actions on) the signature/state of a document
47 	class DocumentSignature
48 	{
49     public:
50         /** creates a DocumentSignature instance for the given document
51 
52             If the given ScriptDocument instance refers to the application, or to a document
53             which does not support being signed, the DocumentSignature instance is invalid afterwards.
54         */
55         DocumentSignature( const ScriptDocument& _rDocument );
56         ~DocumentSignature();
57 
58         /** determines whether the instance is valid
59 
60             An instance is valid if and only if it has been constructed with a document
61             which supports signatures.
62         */
63         bool    supportsSignatures() const;
64 
65         /** signs the scripting content inside the document
66 
67             @precond
68                 isValid returns <TRUE/>
69         */
70         void        signScriptingContent() const;
71 
72         /** retrieves the state of the signature of the scripting content inside the document
73 
74             If the instance is not valid, then SIGNATURESTATE_NOSIGNATURES is returned.
75         */
76         sal_uInt16  getScriptingSignatureState() const;
77 
78     private:
79         DocumentSignature();        // not implemented
80 
81     private:
82         ::std::auto_ptr< DocumentSignature_Data >   m_pData;
83 	};
84 
85 //........................................................................
86 } // namespace basctl
87 //........................................................................
88 
89 #endif // BASCTL_DOCSIGNATURE_HXX
90