xref: /AOO41X/main/sd/source/ui/dlg/inspagob.cxx (revision 79aad27f7f29270c03e208e3d687e8e3850af11d)
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_sd.hxx"
26 
27 #ifdef SD_DLLIMPLEMENTATION
28 #undef SD_DLLIMPLEMENTATION
29 #endif
30 
31 
32 #include "inspagob.hxx"
33 
34 #include "strings.hrc"
35 #include "res_bmp.hrc"
36 #include "sdresid.hxx"
37 #include "drawdoc.hxx"
38 #include "DrawDocShell.hxx"
39 #include "ViewShell.hxx"
40 #include "inspagob.hrc"
41 
42 
43 /*************************************************************************
44 |*
45 |*  Ctor
46 |*
47 \************************************************************************/
48 
SdInsertPagesObjsDlg(::Window * pWindow,const SdDrawDocument * pInDoc,SfxMedium * pSfxMedium,const String & rFileName)49 SdInsertPagesObjsDlg::SdInsertPagesObjsDlg(
50     ::Window* pWindow,
51     const SdDrawDocument* pInDoc,
52     SfxMedium* pSfxMedium,
53     const String& rFileName )
54     : ModalDialog     ( pWindow, SdResId( DLG_INSERT_PAGES_OBJS ) ),
55       aLbTree         ( this, SdResId( LB_TREE ) ),
56       aCbxLink        ( this, SdResId( CBX_LINK ) ),
57       aCbxMasters     ( this, SdResId( CBX_CHECK_MASTERS ) ),
58       aBtnOk          ( this, SdResId( BTN_OK ) ),
59       aBtnCancel      ( this, SdResId( BTN_CANCEL ) ),
60       aBtnHelp        ( this, SdResId( BTN_HELP ) ),
61       pMedium       ( pSfxMedium ),
62       mpDoc         ( pInDoc ),
63       rName         ( rFileName )
64 {
65     FreeResource();
66 
67     aLbTree.SetViewFrame( ( (SdDrawDocument*) pInDoc )->GetDocSh()->GetViewShell()->GetViewFrame() );
68 
69     aLbTree.SetSelectHdl( LINK( this, SdInsertPagesObjsDlg, SelectObjectHdl ) );
70 
71     // Text wird eingefuegt
72     if( !pMedium )
73         SetText( String( SdResId( STR_INSERT_TEXT ) ) );
74 
75     Reset();
76 }
77 
78 /*************************************************************************
79 |*
80 |*  Dtor
81 |*
82 \************************************************************************/
83 
~SdInsertPagesObjsDlg()84 SdInsertPagesObjsDlg::~SdInsertPagesObjsDlg()
85 {
86 }
87 
88 /*************************************************************************
89 |*
90 |*  Fuellt die TreeLB in Abhaengigkeit des Mediums. Ist kein Medium
91 |*  vorhanden, handelt es sich um ein Text- und kein Drawdokument
92 |*
93 \************************************************************************/
94 
Reset()95 void SdInsertPagesObjsDlg::Reset()
96 {
97     if( pMedium )
98     {
99         aLbTree.SetSelectionMode( MULTIPLE_SELECTION );
100 
101         // transfer ownership of Medium
102         aLbTree.Fill( mpDoc, pMedium, rName );
103     }
104     else
105     {
106         Color aColor( COL_WHITE );
107         Bitmap aBmpText( SdResId( BMP_DOC_TEXT ) );
108         Image aImgText( aBmpText, aColor );
109         Bitmap aBmpTextH( SdResId( BMP_DOC_TEXT_H ) );
110         Image aImgTextH( aBmpTextH, Color( COL_BLACK ) );
111         SvLBoxEntry* pEntry = aLbTree.InsertEntry( rName, aImgText, aImgText );
112         aLbTree.SetExpandedEntryBmp( pEntry, aImgTextH, BMP_COLOR_HIGHCONTRAST );
113         aLbTree.SetCollapsedEntryBmp( pEntry, aImgTextH, BMP_COLOR_HIGHCONTRAST );
114     }
115 
116     aCbxMasters.Check( sal_True );
117 }
118 
119 /*************************************************************************
120 |*
121 |*  Liefert die Liste zurueck
122 |*  nType == 0 -> Seiten
123 |*  nType == 1 -> Objekte
124 |*
125 \************************************************************************/
126 
GetList(sal_uInt16 nType)127 List* SdInsertPagesObjsDlg::GetList( sal_uInt16 nType )
128 {
129     // Bei Draw-Dokumenten muss bei der Selektion des Dokumentes NULL
130     // zurueckgegeben werden
131     if( pMedium )
132     {
133         // Um zu gewaehrleisten, dass die Bookmarks geoeffnet sind
134         // (Wenn gesamtes Dokument ausgewaehlt wurde)
135         aLbTree.GetBookmarkDoc();
136 
137         // Wenn das Dokument (mit-)selektiert oder nichst selektiert ist,
138         // wird das gesamte Dokument (und nicht mehr!) eingefuegt.
139         if( aLbTree.GetSelectionCount() == 0 ||
140             ( aLbTree.IsSelected( aLbTree.First() ) ) )
141             return( NULL ); // #37350#
142     }
143     return( aLbTree.GetSelectEntryList( nType ) );
144 }
145 
146 /*************************************************************************
147 |*
148 |*  Ist Verknuepfung gechecked
149 |*
150 \************************************************************************/
151 
IsLink()152 sal_Bool SdInsertPagesObjsDlg::IsLink()
153 {
154     return( aCbxLink.IsChecked() );
155 }
156 
157 /*************************************************************************
158 |*
159 |*  Ist Verknuepfung gechecked
160 |*
161 \************************************************************************/
162 
IsRemoveUnnessesaryMasterPages() const163 sal_Bool SdInsertPagesObjsDlg::IsRemoveUnnessesaryMasterPages() const
164 {
165     return( aCbxMasters.IsChecked() );
166 }
167 
168 /*************************************************************************
169 |*
170 |* Enabled und selektiert Endfarben-LB
171 |*
172 \************************************************************************/
173 
IMPL_LINK(SdInsertPagesObjsDlg,SelectObjectHdl,void *,EMPTYARG)174 IMPL_LINK( SdInsertPagesObjsDlg, SelectObjectHdl, void *, EMPTYARG )
175 {
176     if( aLbTree.IsLinkableSelected() )
177         aCbxLink.Enable();
178     else
179         aCbxLink.Disable();
180 
181     return( 0 );
182 }
183 
184 
185