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 _COLUMN_HXX 25 #define _COLUMN_HXX 26 27 28 #ifndef _FIXED_HXX //autogen 29 #include <vcl/fixed.hxx> 30 #endif 31 #ifndef _FIELD_HXX //autogen 32 #include <vcl/field.hxx> 33 #endif 34 #ifndef _IMAGE_HXX //autogen 35 #include <vcl/image.hxx> 36 #endif 37 #ifndef _GROUP_HXX //autogen 38 #include <vcl/group.hxx> 39 #endif 40 #ifndef _LSTBOX_HXX //autogen 41 #include <vcl/lstbox.hxx> 42 #endif 43 #ifndef _BUTTON_HXX //autogen 44 #include <vcl/button.hxx> 45 #endif 46 #include <vcl/timer.hxx> 47 #ifndef _IMAGEBTN_HXX //autogen 48 #include <vcl/button.hxx> 49 #endif 50 #include <svtools/ctrlbox.hxx> 51 #include <svtools/valueset.hxx> 52 #include <sfx2/basedlgs.hxx> 53 #include <sfx2/tabdlg.hxx> 54 #include <fmtclbl.hxx> 55 #include <colex.hxx> 56 #include <prcntfld.hxx> 57 58 const int nMaxCols = 99; 59 class SwColMgr; 60 class SwWrtShell; 61 class SwColumnPage; 62 /*-------------------------------------------------------------------- 63 Beschreibung: 64 --------------------------------------------------------------------*/ 65 66 class SwColumnDlg : public SfxModalDialog 67 { 68 OKButton aOK; 69 CancelButton aCancel; 70 HelpButton aHelp; 71 72 FixedText aApplyToFT; 73 ListBox aApplyToLB; 74 75 SwWrtShell& rWrtShell; 76 SwColumnPage* pTabPage; 77 SfxItemSet* pPageSet; 78 SfxItemSet* pSectionSet; 79 SfxItemSet* pSelectionSet; 80 SfxItemSet* pFrameSet; 81 82 long nOldSelection; 83 long nSelectionWidth; 84 long nPageWidth; 85 86 sal_Bool bPageChanged : 1; 87 sal_Bool bSectionChanged : 1; 88 sal_Bool bSelSectionChanged : 1; 89 sal_Bool bFrameChanged : 1; 90 91 92 DECL_LINK(ObjectHdl, ListBox*); 93 DECL_LINK(OkHdl, OKButton*); 94 95 public: 96 SwColumnDlg(Window* pParent, SwWrtShell& rSh); 97 virtual ~SwColumnDlg(); 98 GetWrtShell()99 SwWrtShell& GetWrtShell() { return rWrtShell; } 100 }; 101 102 /*-----------------07.03.97 08.26------------------- 103 104 --------------------------------------------------*/ 105 class ColumnValueSet : public ValueSet 106 { 107 public: ColumnValueSet(Window * pParent,const ResId & rResId)108 ColumnValueSet(Window* pParent, const ResId& rResId) : 109 ValueSet(pParent, rResId){} 110 ~ColumnValueSet(); 111 112 virtual void UserDraw( const UserDrawEvent& rUDEvt ); 113 virtual void DataChanged( const DataChangedEvent& rDCEvt ); 114 }; 115 116 /*-------------------------------------------------------------------- 117 Beschreibung: Spaltendialog jetzt als TabPage 118 --------------------------------------------------------------------*/ 119 class SwColumnPage : public SfxTabPage 120 { 121 FixedLine aFLGroup; 122 FixedText aClNrLbl; 123 NumericField aCLNrEdt; 124 ColumnValueSet aDefaultVS; 125 ImageList aPreColsIL; 126 CheckBox aBalanceColsCB; 127 128 FixedLine aFLLayout; 129 ImageButton aBtnUp; 130 FixedText aColumnFT; 131 FixedText aWidthFT; 132 FixedText aDistFT; 133 FixedText aLbl1; 134 PercentField aEd1; 135 PercentField aDistEd1; 136 FixedText aLbl2; 137 PercentField aEd2; 138 PercentField aDistEd2; 139 FixedText aLbl3; 140 PercentField aEd3; 141 ImageButton aBtnDown; 142 CheckBox aAutoWidthBox; 143 144 145 FixedLine aFLLineType; 146 FixedText aLineTypeLbl; 147 LineListBox aLineTypeDLB; 148 FixedText aLineHeightLbl; 149 MetricField aLineHeightEdit; 150 FixedText aLinePosLbl; 151 ListBox aLinePosDLB; 152 153 FixedLine aVertFL; 154 FixedLine aPropertiesFL; 155 FixedText aTextDirectionFT; 156 ListBox aTextDirectionLB; 157 158 // Example 159 SwColExample aPgeExampleWN; 160 SwColumnOnlyExample aFrmExampleWN; 161 162 SwColMgr* pColMgr; 163 164 sal_uInt16 nFirstVis; 165 sal_uInt16 nCols; 166 long nColWidth[nMaxCols]; 167 long nColDist[nMaxCols]; 168 sal_uInt16 nMinWidth; 169 PercentField *pModifiedField; 170 sal_Bool bFormat; 171 sal_Bool bFrm; 172 sal_Bool bHtmlMode; 173 sal_Bool bLockUpdate; 174 175 // Handler 176 DECL_LINK( ColModify, NumericField * ); 177 DECL_LINK( GapModify, PercentField * ); 178 DECL_LINK( EdModify, PercentField * ); 179 DECL_LINK( AutoWidthHdl, CheckBox * ); 180 DECL_LINK( Timeout, Timer * ); 181 DECL_LINK( SetDefaultsHdl, ValueSet * ); 182 183 DECL_LINK( Up, Button * ); 184 DECL_LINK( Down, Button * ); 185 void Apply(Button *); 186 DECL_LINK( UpdateColMgr, void* ); 187 188 void Update(); 189 void UpdateCols(); 190 void Init(); 191 void ResetColWidth(); 192 void SetLabels( sal_uInt16 nVis ); 193 194 using SfxTabPage::ActivatePage; 195 using SfxTabPage::DeactivatePage; 196 197 virtual void ActivatePage(const SfxItemSet& rSet); 198 virtual int DeactivatePage(SfxItemSet *pSet); 199 200 SwColumnPage(Window *pParent, const SfxItemSet &rSet); 201 202 public: 203 virtual ~SwColumnPage(); 204 205 static SfxTabPage *Create(Window *pParent, const SfxItemSet &rSet); 206 static sal_uInt16* GetRanges(); 207 208 virtual sal_Bool FillItemSet(SfxItemSet &rSet); 209 virtual void Reset(const SfxItemSet &rSet); 210 211 void SetFrmMode(sal_Bool bMod); 212 void SetPageWidth(long nPageWidth); 213 SetFormatUsed(sal_Bool bFmt)214 void SetFormatUsed(sal_Bool bFmt) { bFormat = bFmt; } 215 ShowBalance(sal_Bool bShow)216 void ShowBalance(sal_Bool bShow) {aBalanceColsCB.Show(bShow);} 217 void SetInSection(sal_Bool bSet); 218 ActivateColumnControl()219 void ActivateColumnControl() {aCLNrEdt.GrabFocus();} 220 }; 221 222 #endif 223 224