xref: /aoo42x/main/sd/source/ui/dlg/inspagob.cxx (revision 5b190011)
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 
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 
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 
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 
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 
152 sal_Bool SdInsertPagesObjsDlg::IsLink()
153 {
154 	return( aCbxLink.IsChecked() );
155 }
156 
157 /*************************************************************************
158 |*
159 |*	Ist Verknuepfung gechecked
160 |*
161 \************************************************************************/
162 
163 sal_Bool SdInsertPagesObjsDlg::IsRemoveUnnessesaryMasterPages() const
164 {
165 	return( aCbxMasters.IsChecked() );
166 }
167 
168 /*************************************************************************
169 |*
170 |* Enabled und selektiert Endfarben-LB
171 |*
172 \************************************************************************/
173 
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