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