xref: /AOO41X/main/sc/source/ui/miscdlgs/delcodlg.cxx (revision b3f79822e811ac3493b185030a72c3c5a51f32d8)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sc.hxx"
26 
27 #undef SC_DLLIMPLEMENTATION
28 
29 
30 
31 //------------------------------------------------------------------
32 
33 #include "delcodlg.hxx"
34 #include "scresid.hxx"
35 #include "miscdlgs.hrc"
36 
37 
38 //==================================================================
39 
40 sal_Bool   ScDeleteContentsDlg::bPreviousAllCheck = sal_False;
41 sal_uInt16 ScDeleteContentsDlg::nPreviousChecks   = (IDF_DATETIME | IDF_STRING  |
42                                                  IDF_NOTE     | IDF_FORMULA |
43                                                  IDF_VALUE);
44 
45 //-----------------------------------------------------------------------
46 
ScDeleteContentsDlg(Window * pParent,sal_uInt16 nCheckDefaults)47 ScDeleteContentsDlg::ScDeleteContentsDlg( Window* pParent,
48                                           sal_uInt16  nCheckDefaults ) :
49     ModalDialog     ( pParent, ScResId( RID_SCDLG_DELCONT ) ),
50     //
51     aFlFrame        ( this, ScResId( FL_FRAME ) ),
52     aBtnDelAll      ( this, ScResId( BTN_DELALL ) ),
53     aBtnDelStrings  ( this, ScResId( BTN_DELSTRINGS ) ),
54     aBtnDelNumbers  ( this, ScResId( BTN_DELNUMBERS ) ),
55     aBtnDelDateTime ( this, ScResId( BTN_DELDATETIME ) ),
56     aBtnDelFormulas ( this, ScResId( BTN_DELFORMULAS ) ),
57     aBtnDelNotes    ( this, ScResId( BTN_DELNOTES ) ),
58     aBtnDelAttrs    ( this, ScResId( BTN_DELATTRS ) ),
59     aBtnDelObjects  ( this, ScResId( BTN_DELOBJECTS ) ),
60     aBtnOk          ( this, ScResId( BTN_OK ) ),
61     aBtnCancel      ( this, ScResId( BTN_CANCEL ) ),
62     aBtnHelp        ( this, ScResId( BTN_HELP ) ),
63     bObjectsDisabled( sal_False )
64 {
65     if ( nCheckDefaults != 0 )
66     {
67         ScDeleteContentsDlg::nPreviousChecks = nCheckDefaults;
68         ScDeleteContentsDlg::bPreviousAllCheck = sal_False;
69     }
70 
71     aBtnDelAll.Check     ( ScDeleteContentsDlg::bPreviousAllCheck );
72     aBtnDelStrings.Check ( IS_SET( IDF_STRING,
73                                    ScDeleteContentsDlg::nPreviousChecks ) );
74     aBtnDelNumbers.Check ( IS_SET( IDF_VALUE,
75                                    ScDeleteContentsDlg::nPreviousChecks ) );
76     aBtnDelDateTime.Check( IS_SET( IDF_DATETIME,
77                                    ScDeleteContentsDlg::nPreviousChecks ) );
78     aBtnDelFormulas.Check( IS_SET( IDF_FORMULA,
79                                    ScDeleteContentsDlg::nPreviousChecks ) );
80     aBtnDelNotes.Check   ( IS_SET( IDF_NOTE,
81                                    ScDeleteContentsDlg::nPreviousChecks ) );
82     aBtnDelAttrs.Check   ( IS_SET( IDF_ATTRIB,
83                                    ScDeleteContentsDlg::nPreviousChecks ) );
84     aBtnDelObjects.Check ( IS_SET( IDF_OBJECTS,
85                                    ScDeleteContentsDlg::nPreviousChecks ) );
86 
87     DisableChecks( aBtnDelAll.IsChecked() );
88 
89     aBtnDelAll.SetClickHdl( LINK( this, ScDeleteContentsDlg, DelAllHdl ) );
90 
91     //-------------
92     FreeResource();
93 }
94 
95 //------------------------------------------------------------------------
96 
GetDelContentsCmdBits() const97 sal_uInt16 ScDeleteContentsDlg::GetDelContentsCmdBits() const
98 {
99     ScDeleteContentsDlg::nPreviousChecks = 0;
100 
101     if ( aBtnDelStrings.IsChecked() )
102         ScDeleteContentsDlg::nPreviousChecks  = IDF_STRING;
103     if ( aBtnDelNumbers.IsChecked() )
104         ScDeleteContentsDlg::nPreviousChecks |= IDF_VALUE;
105     if ( aBtnDelDateTime.IsChecked())
106         ScDeleteContentsDlg::nPreviousChecks |= IDF_DATETIME;
107     if ( aBtnDelFormulas.IsChecked())
108         ScDeleteContentsDlg::nPreviousChecks |= IDF_FORMULA;
109     if ( aBtnDelNotes.IsChecked()   )
110         ScDeleteContentsDlg::nPreviousChecks |= IDF_NOTE;
111     if ( aBtnDelAttrs.IsChecked()   )
112         ScDeleteContentsDlg::nPreviousChecks |= IDF_ATTRIB;
113     if ( aBtnDelObjects.IsChecked() )
114         ScDeleteContentsDlg::nPreviousChecks |= IDF_OBJECTS;
115 
116     ScDeleteContentsDlg::bPreviousAllCheck = aBtnDelAll.IsChecked();
117 
118     return ( (ScDeleteContentsDlg::bPreviousAllCheck)
119                 ? IDF_ALL
120                 : ScDeleteContentsDlg::nPreviousChecks );
121 }
122 
123 //------------------------------------------------------------------------
124 
DisableChecks(sal_Bool bDelAllChecked)125 void ScDeleteContentsDlg::DisableChecks( sal_Bool bDelAllChecked )
126 {
127     if ( bDelAllChecked )
128     {
129         aBtnDelStrings.Disable();
130         aBtnDelNumbers.Disable();
131         aBtnDelDateTime.Disable();
132         aBtnDelFormulas.Disable();
133         aBtnDelNotes.Disable();
134         aBtnDelAttrs.Disable();
135         aBtnDelObjects.Disable();
136     }
137     else
138     {
139         aBtnDelStrings.Enable();
140         aBtnDelNumbers.Enable();
141         aBtnDelDateTime.Enable();
142         aBtnDelFormulas.Enable();
143         aBtnDelNotes.Enable();
144         aBtnDelAttrs.Enable();
145         if (bObjectsDisabled)
146             aBtnDelObjects.Disable();
147         else
148             aBtnDelObjects.Enable();
149     }
150 }
151 
152 //------------------------------------------------------------------------
153 
DisableObjects()154 void ScDeleteContentsDlg::DisableObjects()
155 {
156     bObjectsDisabled = sal_True;
157     aBtnDelObjects.Check(sal_False);
158     aBtnDelObjects.Disable();
159 }
160 
161 //------------------------------------------------------------------------
162 
IMPL_LINK_INLINE_START(ScDeleteContentsDlg,DelAllHdl,void *,EMPTYARG)163 IMPL_LINK_INLINE_START( ScDeleteContentsDlg, DelAllHdl, void *, EMPTYARG )
164 {
165     DisableChecks( aBtnDelAll.IsChecked() );
166 
167     return 0;
168 }
IMPL_LINK_INLINE_END(ScDeleteContentsDlg,DelAllHdl,void *,EMPTYARG)169 IMPL_LINK_INLINE_END( ScDeleteContentsDlg, DelAllHdl, void *, EMPTYARG )
170 
171 __EXPORT ScDeleteContentsDlg::~ScDeleteContentsDlg()
172 {
173 }
174 
175 
176 
177