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 #ifndef SD_TOOLPANEL_CONTROLS_RECENT_MASTER_PAGES_SELECTOR_HXX
25 #define SD_TOOLPANEL_CONTROLS_RECENT_MASTER_PAGES_SELECTOR_HXX
26 
27 #include "MasterPagesSelector.hxx"
28 
29 namespace sd { namespace toolpanel { namespace controls {
30 
31 
32 /** Show the recently used master pages (that are not currently used).
33 */
34 class RecentMasterPagesSelector
35     : public MasterPagesSelector
36 {
37 public:
38     RecentMasterPagesSelector (
39         TreeNode* pParent,
40         SdDrawDocument& rDocument,
41         ViewShellBase& rBase,
42         const ::boost::shared_ptr<MasterPageContainer>& rpContainer);
43     virtual ~RecentMasterPagesSelector (void);
44 
45     virtual void LateInit (void);
46 
47     virtual void GetState (SfxItemSet& rItemSet);
48 
49 protected:
50     DECL_LINK(MasterPageListListener, void*);
51     virtual void Fill (ItemList& rItemList);
52 
53 	using sd::toolpanel::controls::MasterPagesSelector::Fill;
54 
55     /** Forward this call to the base class but save and restore the
56         currently selected item.
57         Assign the given master page to the list of pages.
58         @param pMasterPage
59             This master page will usually be a member of the list of all
60             available master pages as provided by the MasterPageContainer.
61         @param rPageList
62             The pages to which to assign the master page.  These pages may
63             be slides or master pages themselves.
64     */
65     virtual void AssignMasterPageToPageList (
66         SdPage* pMasterPage,
67         const ::boost::shared_ptr<std::vector<SdPage*> >& rpPageList);
68 };
69 
70 } } } // end of namespace ::sd::toolpanel::controls
71 
72 #endif
73