xref: /AOO41X/main/chart2/source/controller/dialogs/res_Titles.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_chart2.hxx"
30 
31 #include "res_Titles.hxx"
32 #include "res_Titles.hrc"
33 #include "ResId.hxx"
34 #include "TitleDialogData.hxx"
35 
36  #ifndef _SVT_CONTROLDIMS_HRC_
37  #include <svtools/controldims.hrc>
38  #endif
39 
40 //.............................................................................
41 namespace chart
42 {
43 //.............................................................................
44 
45 TitleResources::TitleResources( Window* pWindow, bool bShowSecondaryAxesTitle )
46     : m_aFT_Main(pWindow, SchResId(FT_MAINTITLE))
47 	, m_aEd_Main(pWindow, SchResId(ED_MAINTITLE))
48 	, m_aFT_Sub(pWindow, SchResId(FT_SUBTITLE))
49 	, m_aEd_Sub(pWindow, SchResId(ED_SUBTITLE))
50     , m_aFL_Axes(pWindow, SchResId(FL_AXES))
51 	, m_aFT_XAxis(pWindow, SchResId(FT_TITLE_X_AXIS))
52 	, m_aEd_XAxis(pWindow, SchResId(ED_X_AXIS))
53 	, m_aFT_YAxis(pWindow, SchResId(FT_TITLE_Y_AXIS))
54 	, m_aEd_YAxis(pWindow, SchResId(ED_Y_AXIS))
55 	, m_aFT_ZAxis(pWindow, SchResId(FT_TITLE_Z_AXIS))
56 	, m_aEd_ZAxis(pWindow, SchResId(ED_Z_AXIS))
57     , m_aFL_SecondaryAxes(pWindow, SchResId(FL_SECONDARY_AXES))
58     , m_aFT_SecondaryXAxis(pWindow, SchResId(FT_TITLE_SECONDARY_X_AXIS))
59     , m_aEd_SecondaryXAxis(pWindow, SchResId(ED_SECONDARY_X_AXIS))
60     , m_aFT_SecondaryYAxis(pWindow, SchResId(FT_TITLE_SECONDARY_Y_AXIS))
61     , m_aEd_SecondaryYAxis(pWindow, SchResId(ED_SECONDARY_Y_AXIS))
62 {
63      long nMaxTextWidth = ::std::max( m_aFT_Main.CalcMinimumSize().Width(),m_aFT_Sub.CalcMinimumSize().Width() ) ;
64      nMaxTextWidth = ::std::max( nMaxTextWidth, m_aFT_XAxis.CalcMinimumSize().Width() ) ;
65      nMaxTextWidth = ::std::max( nMaxTextWidth, m_aFT_YAxis.CalcMinimumSize().Width() ) ;
66      nMaxTextWidth = ::std::max( nMaxTextWidth, m_aFT_ZAxis.CalcMinimumSize().Width() ) ;
67      if( bShowSecondaryAxesTitle )
68      {
69          nMaxTextWidth = ::std::max( nMaxTextWidth, m_aFT_SecondaryXAxis.CalcMinimumSize().Width() ) ;
70          nMaxTextWidth = ::std::max( nMaxTextWidth, m_aFT_SecondaryYAxis.CalcMinimumSize().Width() ) ;
71      }
72 
73      Size aControlDistance( m_aFT_Main.LogicToPixel( Size(RSC_SP_CTRL_DESC_X,RSC_SP_CTRL_GROUP_Y), MapMode(MAP_APPFONT) ) );
74      long nEditFieldXPos = m_aFT_Main.GetPosPixel().X() + nMaxTextWidth + aControlDistance.Width();
75      long nEditFieldWidth = m_aEd_Main.GetPosPixel().X() + m_aEd_Main.GetSizePixel().Width() - nEditFieldXPos;
76 
77      if( nEditFieldWidth > 10 )
78      {
79          Size aFTSize( m_aFT_Main.GetSizePixel() );
80          aFTSize.Width() = nMaxTextWidth;
81          m_aFT_Main.SetSizePixel(aFTSize);
82  	     m_aFT_Sub.SetSizePixel(aFTSize);
83          m_aFT_XAxis.SetSizePixel(aFTSize);
84          m_aFT_YAxis.SetSizePixel(aFTSize);
85          m_aFT_ZAxis.SetSizePixel(aFTSize);
86          if( bShowSecondaryAxesTitle )
87          {
88              m_aFT_SecondaryXAxis.SetSizePixel(aFTSize);
89              m_aFT_SecondaryYAxis.SetSizePixel(aFTSize);
90          }
91 
92          m_aEd_Main.SetPosPixel( Point( nEditFieldXPos, m_aEd_Main.GetPosPixel().Y() ) );
93          m_aEd_Sub.SetPosPixel( Point( nEditFieldXPos, m_aEd_Sub.GetPosPixel().Y() ) );
94          m_aEd_XAxis.SetPosPixel( Point( nEditFieldXPos, m_aEd_XAxis.GetPosPixel().Y() ) );
95          m_aEd_YAxis.SetPosPixel( Point( nEditFieldXPos, m_aEd_YAxis.GetPosPixel().Y() ) );
96          m_aEd_ZAxis.SetPosPixel( Point( nEditFieldXPos, m_aEd_ZAxis.GetPosPixel().Y() ) );
97          if(bShowSecondaryAxesTitle)
98          {
99              m_aEd_SecondaryXAxis.SetPosPixel( Point( nEditFieldXPos, m_aEd_SecondaryXAxis.GetPosPixel().Y() ) );
100              m_aEd_SecondaryYAxis.SetPosPixel( Point( nEditFieldXPos, m_aEd_SecondaryYAxis.GetPosPixel().Y() ) );
101          }
102 
103          Size aEditSize( m_aEd_Main.GetSizePixel() );
104          aEditSize.Width() = nEditFieldWidth;
105          m_aEd_Main.SetSizePixel( aEditSize );
106          m_aEd_Sub.SetSizePixel( aEditSize );
107          m_aEd_XAxis.SetSizePixel( aEditSize );
108          m_aEd_YAxis.SetSizePixel( aEditSize );
109          m_aEd_ZAxis.SetSizePixel( aEditSize );
110          if(bShowSecondaryAxesTitle)
111          {
112              m_aEd_SecondaryXAxis.SetSizePixel( aEditSize );
113              m_aEd_SecondaryYAxis.SetSizePixel( aEditSize );
114          }
115      }
116 
117      m_aFT_SecondaryXAxis.Show( bShowSecondaryAxesTitle );
118      m_aEd_SecondaryXAxis.Show( bShowSecondaryAxesTitle );
119      m_aFT_SecondaryYAxis.Show( bShowSecondaryAxesTitle );
120      m_aEd_SecondaryYAxis.Show( bShowSecondaryAxesTitle );
121 }
122 
123 TitleResources::~TitleResources()
124 {
125 }
126 
127 void TitleResources::SetUpdateDataHdl( const Link& rLink )
128 {
129     sal_uLong nTimeout = 4*EDIT_UPDATEDATA_TIMEOUT;
130 
131     m_aEd_Main.EnableUpdateData( nTimeout );
132     m_aEd_Main.SetUpdateDataHdl( rLink );
133 
134     m_aEd_Sub.EnableUpdateData( nTimeout );
135     m_aEd_Sub.SetUpdateDataHdl( rLink );
136 
137     m_aEd_XAxis.EnableUpdateData( nTimeout );
138     m_aEd_XAxis.SetUpdateDataHdl( rLink );
139 
140     m_aEd_YAxis.EnableUpdateData( nTimeout );
141     m_aEd_YAxis.SetUpdateDataHdl( rLink );
142 
143     m_aEd_ZAxis.EnableUpdateData( nTimeout );
144     m_aEd_ZAxis.SetUpdateDataHdl( rLink );
145 
146     m_aEd_SecondaryXAxis.EnableUpdateData( nTimeout );
147     m_aEd_SecondaryXAxis.SetUpdateDataHdl( rLink );
148 
149     m_aEd_SecondaryYAxis.EnableUpdateData( nTimeout );
150     m_aEd_SecondaryYAxis.SetUpdateDataHdl( rLink );
151 }
152 
153 bool TitleResources::IsModified()
154 {
155     return m_aEd_Main.IsModified()
156         || m_aEd_Sub.IsModified()
157         || m_aEd_XAxis.IsModified()
158         || m_aEd_YAxis.IsModified()
159         || m_aEd_ZAxis.IsModified()
160         || m_aEd_SecondaryXAxis.IsModified()
161         || m_aEd_SecondaryYAxis.IsModified();
162 }
163 
164 void TitleResources::ClearModifyFlag()
165 {
166     m_aEd_Main.ClearModifyFlag();
167     m_aEd_Sub.ClearModifyFlag();
168     m_aEd_XAxis.ClearModifyFlag();
169     m_aEd_YAxis.ClearModifyFlag();
170     m_aEd_ZAxis.ClearModifyFlag();
171     m_aEd_SecondaryXAxis.ClearModifyFlag();
172     m_aEd_SecondaryYAxis.ClearModifyFlag();
173 }
174 
175 void TitleResources::writeToResources( const TitleDialogData& rInput )
176 {
177     m_aFT_Main.Enable( rInput.aPossibilityList[0] );
178     m_aFT_Sub.Enable( rInput.aPossibilityList[1] );
179     m_aFT_XAxis.Enable( rInput.aPossibilityList[2] );
180     m_aFT_YAxis.Enable( rInput.aPossibilityList[3] );
181     m_aFT_ZAxis.Enable( rInput.aPossibilityList[4] );
182     m_aFT_SecondaryXAxis.Enable( rInput.aPossibilityList[5] );
183     m_aFT_SecondaryYAxis.Enable( rInput.aPossibilityList[6] );
184 
185     m_aEd_Main.Enable( rInput.aPossibilityList[0] );
186     m_aEd_Sub.Enable( rInput.aPossibilityList[1] );
187     m_aEd_XAxis.Enable( rInput.aPossibilityList[2] );
188     m_aEd_YAxis.Enable( rInput.aPossibilityList[3] );
189     m_aEd_ZAxis.Enable( rInput.aPossibilityList[4] );
190     m_aEd_SecondaryXAxis.Enable( rInput.aPossibilityList[5] );
191     m_aEd_SecondaryYAxis.Enable( rInput.aPossibilityList[6] );
192 
193     m_aEd_Main.SetText(rInput.aTextList[0]);
194     m_aEd_Sub.SetText(rInput.aTextList[1]);
195     m_aEd_XAxis.SetText(rInput.aTextList[2]);
196     m_aEd_YAxis.SetText(rInput.aTextList[3]);
197     m_aEd_ZAxis.SetText(rInput.aTextList[4]);
198     m_aEd_SecondaryXAxis.SetText(rInput.aTextList[5]);
199     m_aEd_SecondaryYAxis.SetText(rInput.aTextList[6]);
200 }
201 
202 void TitleResources::readFromResources( TitleDialogData& rOutput )
203 {
204     rOutput.aExistenceList[0] = static_cast<sal_Bool>(m_aEd_Main.GetText().Len()!=0);
205     rOutput.aExistenceList[1] = static_cast<sal_Bool>(m_aEd_Sub.GetText().Len()!=0);
206     rOutput.aExistenceList[2] = static_cast<sal_Bool>(m_aEd_XAxis.GetText().Len()!=0);
207     rOutput.aExistenceList[3] = static_cast<sal_Bool>(m_aEd_YAxis.GetText().Len()!=0);
208     rOutput.aExistenceList[4] = static_cast<sal_Bool>(m_aEd_ZAxis.GetText().Len()!=0);
209     rOutput.aExistenceList[5] = static_cast<sal_Bool>(m_aEd_SecondaryXAxis.GetText().Len()!=0);
210     rOutput.aExistenceList[6] = static_cast<sal_Bool>(m_aEd_SecondaryYAxis.GetText().Len()!=0);
211 
212     rOutput.aTextList[0] = m_aEd_Main.GetText();
213     rOutput.aTextList[1] = m_aEd_Sub.GetText();
214     rOutput.aTextList[2] = m_aEd_XAxis.GetText();
215     rOutput.aTextList[3] = m_aEd_YAxis.GetText();
216     rOutput.aTextList[4] = m_aEd_ZAxis.GetText();
217     rOutput.aTextList[5] = m_aEd_SecondaryXAxis.GetText();
218     rOutput.aTextList[6] = m_aEd_SecondaryYAxis.GetText();
219 }
220 
221 //.............................................................................
222 } //namespace chart
223 //.............................................................................
224 
225