xref: /aoo4110/main/reportdesign/inc/RptModel.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski #ifndef REPORT_RPTMODEL_HXX
24*b1cdbd2cSJim Jagielski #define REPORT_RPTMODEL_HXX
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski #include "dllapi.h"
27*b1cdbd2cSJim Jagielski #include <svx/svdmodel.hxx>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/report/XReportDefinition.hpp>
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski class Window;
32*b1cdbd2cSJim Jagielski namespace dbaui
33*b1cdbd2cSJim Jagielski {
34*b1cdbd2cSJim Jagielski     class DBSubComponentController;
35*b1cdbd2cSJim Jagielski }
36*b1cdbd2cSJim Jagielski namespace reportdesign
37*b1cdbd2cSJim Jagielski {
38*b1cdbd2cSJim Jagielski     class OReportDefinition;
39*b1cdbd2cSJim Jagielski }
40*b1cdbd2cSJim Jagielski namespace rptui
41*b1cdbd2cSJim Jagielski {
42*b1cdbd2cSJim Jagielski //============================================================================
43*b1cdbd2cSJim Jagielski // OReportModel
44*b1cdbd2cSJim Jagielski //============================================================================
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski class OReportPage;
47*b1cdbd2cSJim Jagielski class OXUndoEnvironment;
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski class REPORTDESIGN_DLLPUBLIC OReportModel : public SdrModel
50*b1cdbd2cSJim Jagielski {
51*b1cdbd2cSJim Jagielski 	friend class OReportPage;
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski private:
54*b1cdbd2cSJim Jagielski 	OXUndoEnvironment*	                m_pUndoEnv;
55*b1cdbd2cSJim Jagielski     ::dbaui::DBSubComponentController*	m_pController;
56*b1cdbd2cSJim Jagielski     ::reportdesign::OReportDefinition*  m_pReportDefinition;
57*b1cdbd2cSJim Jagielski 
58*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoModel();
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski 	OReportModel( const OReportModel& );
61*b1cdbd2cSJim Jagielski 	void operator=(const OReportModel& rSrcModel);
62*b1cdbd2cSJim Jagielski public:
63*b1cdbd2cSJim Jagielski 	TYPEINFO();
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski     OReportModel(::reportdesign::OReportDefinition* _pReportDefinition);
66*b1cdbd2cSJim Jagielski     virtual ~OReportModel();
67*b1cdbd2cSJim Jagielski 
68*b1cdbd2cSJim Jagielski 	virtual void        SetChanged(sal_Bool bFlg = sal_True);
69*b1cdbd2cSJim Jagielski 	virtual SdrPage*    AllocPage(FASTBOOL bMasterPage);
70*b1cdbd2cSJim Jagielski 	virtual Window*     GetCurDocViewWin();
71*b1cdbd2cSJim Jagielski     virtual SdrPage*    RemovePage(sal_uInt16 nPgNum);
72*b1cdbd2cSJim Jagielski     /** returns the numbering type that is used to format page fields in drawing shapes */
73*b1cdbd2cSJim Jagielski 	virtual SvxNumType  GetPageNumType() const;
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski 	OXUndoEnvironment&  GetUndoEnv();
76*b1cdbd2cSJim Jagielski 	void                SetModified(sal_Bool _bModified);
77*b1cdbd2cSJim Jagielski 
getController() const78*b1cdbd2cSJim Jagielski     inline dbaui::DBSubComponentController* getController() const { return m_pController; }
attachController(dbaui::DBSubComponentController & _rController)79*b1cdbd2cSJim Jagielski     inline void attachController( dbaui::DBSubComponentController& _rController ) { m_pController = &_rController; }
80*b1cdbd2cSJim Jagielski     void detachController();
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski     OReportPage* createNewPage(const ::com::sun::star::uno::Reference< ::com::sun::star::report::XSection >& _xSection);
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski     /** returns the page which belongs to a section
85*b1cdbd2cSJim Jagielski     *
86*b1cdbd2cSJim Jagielski     * \param _xSection
87*b1cdbd2cSJim Jagielski     * \return The page or <NULL/> when t�no page could be found.
88*b1cdbd2cSJim Jagielski     */
89*b1cdbd2cSJim Jagielski     OReportPage* getPage(const ::com::sun::star::uno::Reference< ::com::sun::star::report::XSection >& _xSection);
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski     /// returns the XReportDefinition which the OReportModel belongs to
92*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::report::XReportDefinition >
93*b1cdbd2cSJim Jagielski                 getReportDefinition() const;
94*b1cdbd2cSJim Jagielski 
95*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createShape(const ::rtl::OUString& aServiceSpecifier,::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& _rShape,sal_Int32 nOrientation = -1);
96*b1cdbd2cSJim Jagielski };
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski #endif
99*b1cdbd2cSJim Jagielski 
100