1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: regoptions.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef SVTOOLS_REGOPTIONS_HXX
32 #define SVTOOLS_REGOPTIONS_HXX
34 #include "svtools/svldllapi.h"
35 #include <tools/string.hxx>
37 //........................................................................
40 //........................................................................
42 //====================================================================
44 //====================================================================
46 /** encapsulates access to the configuration settings for registering the product
48 class SVL_DLLPUBLIC RegOptions
51 RegOptionsImpl
* m_pImpl
;
53 // the impl class is constructed upon need only (as this is expensive)
54 SVL_DLLPRIVATE
void ensureImpl( );
60 // retrieves the URL which should be used for online registration
61 String
getRegistrationURL( ) const;
63 // checks if the menu item which can be used to trigger the online registration should be available
64 sal_Bool
allowMenu( ) const;
67 { // the registration dialog shall be executed ....
68 dpDisabled
, // ... never - it has been disabled
69 dpNotThisSession
, // ... later - no statement when, but _not now_
70 dpRemindLater
, // ... later at a reminder date
71 dpThisSession
// ... during this session
74 /** checks if the registration dialog is allowed
75 <p>A return value of <TRUE/> does not mean that during this session, the dialog is allowed to
76 be executed. It simply means executing it is allowed <em>in general</em></p>
78 DialogPermission
getDialogPermission( ) const;
80 /** claims that the current session is done with respect to the registration dialog.
82 <p>This is not to be called if <method>getDialogPermission</method> returned dpDisabled previously<p>
83 <p>The behaviour changes as follows:
85 <li>any subsequent calls to <method>getDialogPermission</method> will return dpNotThisSession, given
86 that it previously returned dpNotThisSession</li>
87 <li>any subsequent calls to <method>getDialogPermission</method> will return dpDisabled, given
88 that it previously returned dpThisSession</li>
89 <li>an internal (persistent) session counter is updated, so that during the next session,
90 <method>getDialogPermission</method> <em>may</em> return dpThisSession</li>
93 void markSessionDone( );
95 /** activates the reminder
97 <p>If this method is called, the reminder for the dialog will be activated.
98 This means that during the next <arg>_nDaysFromNow</arg>-1 days,
99 <method>getDialogPermission</method> will return dpRemindLater</p>,
100 at the <arg>_nDaysFromNow</arg>th day from today onwards it will
101 return dpThisSession.</p>
103 <p>It is not allowed to call this method if the dialog is currently disabled.</p>
105 <p>If the current session has not been marked as done already
106 (i.e., <method>markSessionDone</method> has not been called, yet), this is
107 done implicitly when you call <method>activateReminder</method>.</p>
109 void activateReminder( sal_Int32 _nDaysFromNow
);
111 /** removes the reminder
113 <p>If this method is called, the reminder for the dialog will be removed.
115 void removeReminder();
117 /** checks if the reminder date has come
119 <p>Returns <true/> if the current date is greater or equal the reminder date.
121 bool hasReminderDateCome() const;
124 //........................................................................
126 //........................................................................
128 #endif // SVTOOLS_REGOPTIONS_HXX