Fixed for i#103021
[ooovba.git] / applied_patches / 0138-sc-datapilot-dynamic-range.diff
blob6f5b6d3f5b36f9f1d213a5065b5d576843a7dc7d
1 diff --git sc/source/ui/dbgui/fieldwnd.cxx sc/source/ui/dbgui/fieldwnd.cxx
2 index 10d3da7..979ba53 100644
3 --- sc/source/ui/dbgui/fieldwnd.cxx
4 +++ sc/source/ui/dbgui/fieldwnd.cxx
5 @@ -629,7 +629,7 @@ void ScDPFieldWindow::DelField( size_t nDelIndex )
7 void ScDPFieldWindow::ClearFields()
9 - if( eType == TYPE_SELECT )
10 + if( eType == TYPE_SELECT || eType == TYPE_PAGE || eType == TYPE_COL || eType == TYPE_ROW || eType == TYPE_DATA)
12 com::sun::star::uno::Reference < com::sun::star::accessibility::XAccessible > xTempAcc = xAccessible;
13 if (!xTempAcc.is() && pAccessible)
14 diff --git sc/source/ui/dbgui/pivot.hrc sc/source/ui/dbgui/pivot.hrc
15 index 4dea022..d142eb3 100644
16 --- sc/source/ui/dbgui/pivot.hrc
17 +++ sc/source/ui/dbgui/pivot.hrc
18 @@ -66,6 +66,10 @@
19 #define BTN_FILTER 29
20 #define BTN_DRILLDOWN 30
22 +#define FT_INAREA 40
23 +#define RB_INAREA 41
24 +#define ED_INAREA 42
26 #define PIVOTSTR_SUM 1
27 #define PIVOTSTR_COUNT 2
28 #define PIVOTSTR_AVG 3
29 diff --git sc/source/ui/dbgui/pivot.src sc/source/ui/dbgui/pivot.src
30 index 78d5cf0..324cc37 100644
31 --- sc/source/ui/dbgui/pivot.src
32 +++ sc/source/ui/dbgui/pivot.src
33 @@ -158,7 +158,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
34 Size = MAP_APPFONT ( 50 , 14 ) ;
35 TabStop = TRUE ;
36 MapUnit = MAP_APPFONT ;
37 - Delta = 73 ;
38 + Delta = 90 ;
40 Window WND_FIELD
42 @@ -178,17 +178,42 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
43 Text [ en-US ] = "Result" ;
44 Hide = TRUE ;
46 - FixedText FT_OUTAREA
48 + FixedText FT_INAREA
50 Pos = MAP_APPFONT ( 12 , 203 ) ;
51 Size = MAP_APPFONT ( 59 , 8 ) ;
52 Hide = TRUE ;
53 + Text [ en-US ] = "Selection from" ;
54 + };
55 + Edit ED_INAREA
56 + {
57 + Border = TRUE ;
58 + Pos = MAP_APPFONT ( 73 , 201 ) ;
59 + Size = MAP_APPFONT ( 100 , 12 ) ;
60 + TabStop = TRUE ;
61 + Hide = TRUE ;
62 + };
63 + ImageButton RB_INAREA
64 + {
65 + Pos = MAP_APPFONT ( 177 , 200 ) ;
66 + Size = MAP_APPFONT ( 13 , 15 ) ;
67 + TabStop = TRUE ;
68 + Hide = TRUE ;
69 + QuickHelpText [ en-US ] = "Shrink" ;
70 + };
72 + FixedText FT_OUTAREA
73 + {
74 + Pos = MAP_APPFONT ( 12 , 221 ) ;
75 + Size = MAP_APPFONT ( 59 , 8 ) ;
76 + Hide = TRUE ;
77 Text [ en-US ] = "Results to" ;
79 ListBox LB_OUTAREA
81 Border = TRUE ;
82 - Pos = MAP_APPFONT ( 73 , 201 ) ;
83 + Pos = MAP_APPFONT ( 73 , 219 ) ;
84 Size = MAP_APPFONT ( 75 , 90 ) ;
85 TabStop = TRUE ;
86 DropDown = TRUE ;
87 @@ -197,14 +222,14 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
88 Edit ED_OUTAREA
90 Border = TRUE ;
91 - Pos = MAP_APPFONT ( 152 , 201 ) ;
92 + Pos = MAP_APPFONT ( 152 , 219 ) ;
93 Size = MAP_APPFONT ( 100 , 12 ) ;
94 TabStop = TRUE ;
95 Hide = TRUE ;
97 ImageButton RB_OUTAREA
99 - Pos = MAP_APPFONT ( 256 , 200 ) ;
100 + Pos = MAP_APPFONT ( 256 , 218 ) ;
101 Size = MAP_APPFONT ( 13 , 15 ) ;
102 TabStop = TRUE ;
103 Hide = TRUE ;
104 @@ -212,7 +237,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
106 CheckBox BTN_IGNEMPTYROWS
108 - Pos = MAP_APPFONT ( 12 , 219 ) ;
109 + Pos = MAP_APPFONT ( 12 , 237 ) ;
110 Size = MAP_APPFONT ( 124 , 10 ) ;
111 TabStop = TRUE ;
112 Hide = TRUE ;
113 @@ -220,7 +245,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
115 CheckBox BTN_DETECTCAT
117 - Pos = MAP_APPFONT ( 142 , 219 ) ;
118 + Pos = MAP_APPFONT ( 142 , 237 ) ;
119 Size = MAP_APPFONT ( 124 , 10 ) ;
120 TabStop = TRUE ;
121 Hide = TRUE ;
122 @@ -228,7 +253,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
124 CheckBox BTN_TOTALCOL
126 - Pos = MAP_APPFONT ( 12 , 233 ) ;
127 + Pos = MAP_APPFONT ( 12 , 251 ) ;
128 Size = MAP_APPFONT ( 124 , 10 ) ;
129 TabStop = TRUE ;
130 Hide = TRUE ;
131 @@ -236,7 +261,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
133 CheckBox BTN_TOTALROW
135 - Pos = MAP_APPFONT ( 142 , 233 ) ;
136 + Pos = MAP_APPFONT ( 142 , 251 ) ;
137 Size = MAP_APPFONT ( 124 , 10 ) ;
138 TabStop = TRUE ;
139 Hide = TRUE ;
140 @@ -244,7 +269,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
142 CheckBox BTN_FILTER
144 - Pos = MAP_APPFONT ( 12 , 247 ) ;
145 + Pos = MAP_APPFONT ( 12 , 265 ) ;
146 Size = MAP_APPFONT ( 124 , 10 ) ;
147 TabStop = TRUE ;
148 Hide = TRUE ;
149 @@ -252,7 +277,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
151 CheckBox BTN_DRILLDOWN
153 - Pos = MAP_APPFONT ( 142 , 247 ) ;
154 + Pos = MAP_APPFONT ( 142 , 265 ) ;
155 Size = MAP_APPFONT ( 124 , 10 ) ;
156 TabStop = TRUE ;
157 Hide = TRUE ;
158 diff --git sc/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
159 index fe48844..ecfa087 100644
160 --- sc/source/ui/dbgui/pvlaydlg.cxx
161 +++ sc/source/ui/dbgui/pvlaydlg.cxx
162 @@ -36,6 +36,7 @@
163 //----------------------------------------------------------------------------
165 #include "pvlaydlg.hxx"
166 +#include "dbdocfun.hxx"
168 #include <sfx2/dispatch.hxx>
169 #include <vcl/msgbox.hxx>
170 @@ -56,6 +57,7 @@
171 #include "pivot.hrc"
172 #include "dpobject.hxx"
173 #include "dpsave.hxx"
174 +#include "dpshttab.hxx"
175 #include "scmod.hxx"
177 #include "sc.hrc" //CHINA001
178 @@ -120,6 +122,11 @@ ScDPLayoutDlg::ScDPLayoutDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pPar
179 aFtInfo ( this, ScResId( FT_INFO ) ),
181 aFlAreas ( this, ScResId( FL_OUTPUT ) ),
183 + aFtInArea ( this, ScResId( FT_INAREA) ),
184 + aEdInPos ( this, ScResId( ED_INAREA) ),
185 + aRbInPos ( this, ScResId( RB_INAREA ), &aEdInPos, this ),
187 aLbOutPos ( this, ScResId( LB_OUTAREA ) ),
188 aFtOutArea ( this, ScResId( FT_OUTAREA ) ),
189 aEdOutPos ( this, this, ScResId( ED_OUTAREA ) ),
190 @@ -143,6 +150,8 @@ ScDPLayoutDlg::ScDPLayoutDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pPar
192 bIsDrag ( FALSE ),
194 + pEditActive ( NULL ),
196 eLastActiveType ( TYPE_SELECT ),
197 nOffset ( 0 ),
199 @@ -204,6 +213,10 @@ void __EXPORT ScDPLayoutDlg::Init()
200 for ( USHORT i = 0; i < FUNC_COUNT; ++i )
201 aFuncNameArr.push_back( String( ScResId( i + 1 ) ) );
203 + aBtnMore.AddWindow( &aFlAreas );
204 + aBtnMore.AddWindow( &aFtInArea );
205 + aBtnMore.AddWindow( &aEdInPos );
206 + aBtnMore.AddWindow( &aRbInPos );
207 aBtnMore.AddWindow( &aFtOutArea );
208 aBtnMore.AddWindow( &aLbOutPos );
209 aBtnMore.AddWindow( &aEdOutPos );
210 @@ -214,7 +227,6 @@ void __EXPORT ScDPLayoutDlg::Init()
211 aBtnMore.AddWindow( &aBtnTotalRow );
212 aBtnMore.AddWindow( &aBtnFilter );
213 aBtnMore.AddWindow( &aBtnDrillDown );
214 - aBtnMore.AddWindow( &aFlAreas );
215 aBtnMore.SetClickHdl( LINK( this, ScDPLayoutDlg, MoreClickHdl ) );
218 @@ -232,31 +244,35 @@ void __EXPORT ScDPLayoutDlg::Init()
219 aRowArr.resize( MAX_FIELDS );
220 aDataArr.resize( MAX_FIELDS );
222 - InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
223 - InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
224 - InitWnd( thePivotData.aColArr, static_cast<long>(thePivotData.nColCount), TYPE_COL );
225 - InitWnd( thePivotData.aRowArr, static_cast<long>(thePivotData.nRowCount), TYPE_ROW );
226 - InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
228 - aSlider.SetPageSize( PAGE_SIZE );
229 - aSlider.SetVisibleSize( PAGE_SIZE );
230 - aSlider.SetLineSize( LINE_SIZE );
231 - aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
233 - if ( thePivotData.nLabels > PAGE_SIZE )
234 + ScRange inRange;
235 + String inString;
236 + if (xDlgDPObject->GetSheetDesc())
238 - aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
239 - aSlider.Show();
240 + aEdInPos.Enable();
241 + aRbInPos.Enable();
242 + aOldRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
243 + aOldRange.Format( inString, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
244 + aEdInPos.SetText(inString);
246 else
247 - aSlider.Hide();
249 + /* Data is not reachable, so could be a remote database */
250 + aEdInPos.Disable();
251 + aRbInPos.Disable();
254 - // Ein-/Ausgabebereiche: ----------------------------------------------
255 + InitFields();
257 aLbOutPos .SetSelectHdl( LINK( this, ScDPLayoutDlg, SelAreaHdl ) );
258 aEdOutPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdModifyHdl ) );
259 + aEdInPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdInModifyHdl ) );
260 aBtnOk .SetClickHdl ( LINK( this, ScDPLayoutDlg, OkHdl ) );
261 aBtnCancel.SetClickHdl ( LINK( this, ScDPLayoutDlg, CancelHdl ) );
262 + Link aLink = LINK( this, ScDPLayoutDlg, GetFocusHdl );
263 + if ( aEdInPos.IsEnabled() )
264 + // Once disabled it will never get enabled, so no need to handle focus.
265 + aEdInPos.SetGetFocusHdl( aLink );
266 + aEdOutPos.SetGetFocusHdl( aLink );
268 if ( pViewData && pDoc )
270 @@ -475,6 +491,27 @@ void ScDPLayoutDlg::InitFocus()
271 aWndSelect.GrabFocus();
274 +void ScDPLayoutDlg::InitFields()
276 + InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
277 + InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
278 + InitWnd( thePivotData.aColArr, static_cast<long>(thePivotData.nColCount), TYPE_COL );
279 + InitWnd( thePivotData.aRowArr, static_cast<long>(thePivotData.nRowCount), TYPE_ROW );
280 + InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
282 + aSlider.SetPageSize( PAGE_SIZE );
283 + aSlider.SetVisibleSize( PAGE_SIZE );
284 + aSlider.SetLineSize( LINE_SIZE );
285 + aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
287 + if ( thePivotData.nLabels > PAGE_SIZE )
289 + aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
290 + aSlider.Show();
292 + else
293 + aSlider.Hide();
296 //----------------------------------------------------------------------------
298 @@ -1309,23 +1346,76 @@ BOOL ScDPLayoutDlg::GetPivotArrays( PivotField* pPageArr,
299 return bFit;
302 +void ScDPLayoutDlg::UpdateSrcRange()
304 + String theCurPosStr = aEdInPos.GetText();
305 + USHORT nResult = ScRange().Parse(theCurPosStr, pDoc, pDoc->GetAddressConvention());
307 + if ( SCA_VALID != (nResult & SCA_VALID) )
308 + // invalid source range.
309 + return;
311 + ScRefAddress start, end;
312 + ConvertDoubleRef(pDoc, theCurPosStr, 1, start, end, pDoc->GetAddressConvention());
313 + ScRange aNewRange(start.GetAddress(), end.GetAddress());
314 + ScSheetSourceDesc inSheet = *xDlgDPObject->GetSheetDesc();
316 + if (inSheet.aSourceRange == aNewRange)
317 + // new range is identical to the current range. Nothing to do.
318 + return;
320 + ScTabViewShell * pTabViewShell = pViewData->GetViewShell();
321 + inSheet.aSourceRange = aNewRange;
322 + xDlgDPObject->SetSheetDesc(inSheet);
323 + xDlgDPObject->FillOldParam( thePivotData, FALSE );
324 + xDlgDPObject->FillLabelData(thePivotData);
326 + pTabViewShell->SetDialogDPObject(xDlgDPObject.get());
327 + aLabelDataArr.clear();
328 + aWndSelect.ClearFields();
329 + aWndData.ClearFields();
330 + aWndRow.ClearFields();
331 + aWndCol.ClearFields();
332 + aWndPage.ClearFields();
334 + for (size_t i = 0; i < MAX_LABELS; ++i)
335 + aSelectArr[i].reset();
337 + for (size_t i = 0; i < MAX_FIELDS; ++i)
339 + aRowArr[i].reset();
340 + aColArr[i].reset();
341 + aDataArr[i].reset();
344 + for (size_t i = 0; i < MAX_PAGEFIELDS; ++i)
345 + aPageArr[i].reset();
347 + InitFields();
350 //----------------------------------------------------------------------------
352 void ScDPLayoutDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
354 - if ( bRefInputMode )
356 - if ( rRef.aStart != rRef.aEnd )
357 - RefInputStart( &aEdOutPos );
359 - ScAddress aAdr( nStartCol, nStartRow, nStartTab );
360 - aAdr.PutInOrder( ScAddress( nEndCol, nEndRow, nEndTab ) );
362 - String aRefStr;
363 + if ( !bRefInputMode || !pEditActive )
364 + return;
366 + if ( rRef.aStart != rRef.aEnd )
367 + RefInputStart( pEditActive );
369 + if ( pEditActive == &aEdInPos )
371 + String aRefStr;
372 + rRef.Format( aRefStr, SCR_ABS_3D, pDocP, pDocP->GetAddressConvention() );
373 + pEditActive->SetRefString( aRefStr );
375 + else if ( pEditActive == &aEdOutPos )
377 + String aRefStr;
378 rRef.aStart.Format( aRefStr, STD_FORMAT, pDocP, pDocP->GetAddressConvention() );
379 - aEdOutPos.SetRefString( aRefStr );
381 + pEditActive->SetRefString( aRefStr );
386 @@ -1335,7 +1426,12 @@ void ScDPLayoutDlg::SetActive()
388 if ( bRefInputMode )
390 - aEdOutPos.GrabFocus();
391 + if ( pEditActive )
392 + pEditActive->GrabFocus();
394 + if ( pEditActive == &aEdInPos )
395 + EdInModifyHdl( NULL );
396 + else if ( pEditActive == &aEdOutPos )
397 EdModifyHdl( NULL );
399 else
400 @@ -1374,7 +1470,7 @@ IMPL_LINK( ScDPLayoutDlg, OkHdl, OKButton *, EMPTYARG )
401 String aOutPosStr( aEdOutPos.GetText() );
402 ScAddress aAdrDest;
403 BOOL bToNewTable = (aLbOutPos.GetSelectEntryPos() == 1);
404 - USHORT nResult = !bToNewTable ? aAdrDest.Parse( aOutPosStr, pDoc ) : 0;
405 + USHORT nResult = !bToNewTable ? aAdrDest.Parse( aOutPosStr, pDoc, pDoc->GetAddressConvention() ) : 0;
407 if ( bToNewTable
408 || ( (aOutPosStr.Len() > 0) && (SCA_VALID == (nResult & SCA_VALID)) ) )
409 @@ -1507,12 +1603,11 @@ IMPL_LINK( ScDPLayoutDlg, OkHdl, OKButton *, EMPTYARG )
411 //----------------------------------------------------------------------------
413 -IMPL_LINK_INLINE_START( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
414 +IMPL_LINK( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
416 Close();
417 return 0;
419 -IMPL_LINK_INLINE_END( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
422 //----------------------------------------------------------------------------
423 @@ -1524,9 +1619,18 @@ IMPL_LINK( ScDPLayoutDlg, MoreClickHdl, MoreButton *, EMPTYARG )
424 bRefInputMode = TRUE;
425 //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
426 //SFX_APPWINDOW->Enable();
427 + if ( aEdInPos.IsEnabled() )
429 + aEdInPos.Enable();
430 + aEdInPos.GrabFocus();
431 + aEdInPos.Enable();
433 + else
435 aEdOutPos.Enable();
436 aEdOutPos.GrabFocus();
437 - aRbOutPos.Enable();
438 + aEdOutPos.Enable();
441 else
443 @@ -1543,7 +1647,7 @@ IMPL_LINK( ScDPLayoutDlg, MoreClickHdl, MoreButton *, EMPTYARG )
444 IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, Edit *, EMPTYARG )
446 String theCurPosStr = aEdOutPos.GetText();
447 - USHORT nResult = ScAddress().Parse( theCurPosStr, pDoc );
448 + USHORT nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
450 if ( SCA_VALID == (nResult & SCA_VALID) )
452 @@ -1567,6 +1671,13 @@ IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, Edit *, EMPTYARG )
456 +IMPL_LINK( ScDPLayoutDlg, EdInModifyHdl, Edit *, EMPTYARG )
458 + UpdateSrcRange();
459 + return 0;
463 //----------------------------------------------------------------------------
465 IMPL_LINK( ScDPLayoutDlg, SelAreaHdl, ListBox *, EMPTYARG )
466 @@ -1620,4 +1731,16 @@ IMPL_LINK( ScDPLayoutDlg, ScrollHdl, ScrollBar *, EMPTYARG )
467 return 0;
470 +//----------------------------------------------------------------------------
472 +IMPL_LINK( ScDPLayoutDlg, GetFocusHdl, Control*, pCtrl )
474 + pEditActive = NULL;
475 + if ( pCtrl == &aEdInPos )
476 + pEditActive = &aEdInPos;
477 + else if ( pCtrl == &aEdOutPos )
478 + pEditActive = &aEdOutPos;
480 + return 0;
483 diff --git sc/source/ui/inc/pvlaydlg.hxx sc/source/ui/inc/pvlaydlg.hxx
484 index 1f6f132..3455375 100644
485 --- sc/source/ui/inc/pvlaydlg.hxx
486 +++ sc/source/ui/inc/pvlaydlg.hxx
487 @@ -48,6 +48,7 @@
488 #include "pivot.hxx"
489 #include "anyrefdg.hxx"
490 #include "fieldwnd.hxx"
491 +#include "formula/funcutl.hxx"
493 /*==========================================================================*\
495 @@ -129,10 +130,18 @@ private:
496 FixedInfo aFtInfo;
498 FixedLine aFlAreas;
500 + // DP source selection
501 + FixedText aFtInArea;
502 + ::formula::RefEdit aEdInPos;
503 + ::formula::RefButton aRbInPos;
505 + // DP output location
506 ListBox aLbOutPos;
507 FixedText aFtOutArea;
508 - formula::RefEdit aEdOutPos;
509 - formula::RefButton aRbOutPos;
510 + formula::RefEdit aEdOutPos;
511 + formula::RefButton aRbOutPos;
513 CheckBox aBtnIgnEmptyRows;
514 CheckBox aBtnDetectCat;
515 CheckBox aBtnTotalCol;
516 @@ -155,6 +164,8 @@ private:
517 size_t nDnDFromIndex;
518 BOOL bIsDrag;
520 + ::formula::RefEdit* pEditActive;
522 Rectangle aRectPage;
523 Rectangle aRectRow;
524 Rectangle aRectCol;
525 @@ -173,6 +184,7 @@ private:
526 ScDPFuncDataVec aDataArr;
528 ScDPObjectPtr xDlgDPObject;
529 + ScRange aOldRange;
530 ScPivotParam thePivotData;
531 ScViewData* pViewData;
532 ScDocument* pDoc;
533 @@ -184,6 +196,7 @@ private:
534 void InitWndSelect ( LabelData** ppLabelArr, long nLabels );
535 void InitWnd ( PivotField* pArr, long nCount, ScDPFieldType eType );
536 void InitFocus ();
537 + void InitFields ();
538 void CalcWndSizes ();
539 Point DlgPos2WndPos ( const Point& rPt, Window& rWnd );
540 ScDPLabelData* GetLabelData ( SCsCOL nCol, size_t* pPos = NULL );
541 @@ -207,14 +220,19 @@ private:
542 USHORT& rColCount,
543 USHORT& rRowCount,
544 USHORT& rDataCount );
546 + void UpdateSrcRange();
548 // Handler
549 DECL_LINK( ClickHdl, PushButton * );
550 DECL_LINK( ScrollHdl, ScrollBar * );
551 DECL_LINK( SelAreaHdl, ListBox * );
552 DECL_LINK( MoreClickHdl, MoreButton * );
553 DECL_LINK( EdModifyHdl, Edit * );
554 + DECL_LINK( EdInModifyHdl, Edit * );
555 DECL_LINK( OkHdl, OKButton * );
556 DECL_LINK( CancelHdl, CancelButton * );
557 + DECL_LINK( GetFocusHdl, Control* );