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_dbaccess.hxx" 26 #ifndef DBAUI_DLGSIZE_HRC 27 #include "dlgsize.hrc" 28 #endif 29 #ifndef _DBAUI_DLGSIZE_HXX 30 #include "dlgsize.hxx" 31 #endif 32 #ifndef _DBU_DLG_HRC_ 33 #include "dbu_dlg.hrc" 34 #endif 35 #ifndef _DBAUI_MODULE_DBU_HXX_ 36 #include "moduledbu.hxx" 37 #endif 38 39 //......................................................................... 40 namespace dbaui 41 { 42 //......................................................................... 43 44 45 #define DEF_ROW_HEIGHT 45 46 #define DEF_COL_WIDTH 227 47 48 DBG_NAME(DlgSize) 49 //================================================================== 50 DlgSize::DlgSize( Window* pParent, sal_Int32 nVal, sal_Bool bRow, sal_Int32 _nAlternativeStandard ) 51 :ModalDialog( pParent, ModuleRes(bRow ? DLG_ROWHEIGHT : DLG_COLWIDTH)) 52 ,m_nPrevValue(nVal) 53 ,m_nStandard(bRow ? DEF_ROW_HEIGHT : DEF_COL_WIDTH) 54 ,aFT_VALUE(this, ModuleRes( FT_VALUE)) 55 ,aMF_VALUE(this, ModuleRes( MF_VALUE)) 56 ,aCB_STANDARD(this, ModuleRes(CB_STANDARD)) 57 ,aPB_OK(this, ModuleRes(PB_OK)) 58 ,aPB_CANCEL(this, ModuleRes(PB_CANCEL)) 59 ,aPB_HELP(this, ModuleRes(PB_HELP)) 60 { 61 DBG_CTOR(DlgSize,NULL); 62 63 if ( _nAlternativeStandard > 0 ) 64 m_nStandard = _nAlternativeStandard; 65 aCB_STANDARD.SetClickHdl(LINK(this,DlgSize,CbClickHdl)); 66 67 aMF_VALUE.EnableEmptyFieldValue(sal_True); 68 sal_Bool bDefault = -1 == nVal; 69 aCB_STANDARD.Check(bDefault); 70 if (bDefault) 71 { 72 SetValue(m_nStandard); 73 m_nPrevValue = m_nStandard; 74 } 75 LINK(this,DlgSize,CbClickHdl).Call(&aCB_STANDARD); 76 77 FreeResource(); 78 } 79 80 //------------------------------------------------------------------------------ 81 DlgSize::~DlgSize() 82 { 83 84 DBG_DTOR(DlgSize,NULL); 85 } 86 87 //------------------------------------------------------------------------------ 88 void DlgSize::SetValue( sal_Int32 nVal ) 89 { 90 aMF_VALUE.SetValue(nVal, FUNIT_CM ); 91 } 92 93 //------------------------------------------------------------------------------ 94 sal_Int32 DlgSize::GetValue() 95 { 96 if (aCB_STANDARD.IsChecked()) 97 return -1; 98 return (sal_Int32)aMF_VALUE.GetValue( FUNIT_CM ); 99 } 100 101 //------------------------------------------------------------------------------ 102 IMPL_LINK( DlgSize, CbClickHdl, Button *, pButton ) 103 { 104 105 if( pButton == &aCB_STANDARD ) 106 { 107 aMF_VALUE.Enable(!aCB_STANDARD.IsChecked()); 108 if (aCB_STANDARD.IsChecked()) 109 { 110 m_nPrevValue = static_cast<sal_Int32>(aMF_VALUE.GetValue(FUNIT_CM)); 111 // don't use getValue as this will use aCB_STANDARD.to determine if we're standard 112 aMF_VALUE.SetEmptyFieldValue(); 113 } 114 else 115 { 116 SetValue( m_nPrevValue ); 117 } 118 } 119 return 0; 120 } 121 // ----------------------------------------------------------------------------- 122 //......................................................................... 123 } // namespace dbaui 124 //......................................................................... 125 126 127