From 9cbdf8402d100f17afba5c0ce5f3c009cdad2572 Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 9 Jul 2013 13:24:41 +0000 Subject: [PATCH] CtrlLib: ArrayCtrl WhenHeaderLayout git-svn-id: svn://ultimatepp.org/upp/trunk@6177 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/ArrayCtrl.cpp | 10 +++++++++- uppsrc/CtrlLib/ArrayCtrl.h | 2 ++ uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp | 13 ++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/uppsrc/CtrlLib/ArrayCtrl.cpp b/uppsrc/CtrlLib/ArrayCtrl.cpp index 2b3d6fa5f..ad67de88a 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.cpp +++ b/uppsrc/CtrlLib/ArrayCtrl.cpp @@ -912,6 +912,13 @@ void ArrayCtrl::HeaderLayout() { SyncInfo(); SyncPageCtrls(); PlaceEdits(); + WhenHeaderLayout(); +} + +void ArrayCtrl::HeaderScroll() +{ + Scroll(); + WhenHeaderLayout(); } void ArrayCtrl::HeaderScrollVisibility() @@ -2793,7 +2800,8 @@ ArrayCtrl::ArrayCtrl() { AddFrame(sb); AddFrame(header); header.WhenLayout = THISBACK(HeaderLayout); - header.WhenScroll = sb.WhenScroll = THISBACK(Scroll); + header.WhenScroll = THISBACK(HeaderScroll); + sb.WhenScroll = THISBACK(Scroll); header.Moving(); WhenAcceptRow = true; WhenBar = THISBACK(StdBar); diff --git a/uppsrc/CtrlLib/ArrayCtrl.h b/uppsrc/CtrlLib/ArrayCtrl.h index df7320416..65eb33484 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.h +++ b/uppsrc/CtrlLib/ArrayCtrl.h @@ -252,6 +252,7 @@ private: void SetSb(); void MinMaxLine(); void HeaderLayout(); + void HeaderScroll(); void Scroll(); int FindEnabled(int i, int dir); void Page(int q); @@ -338,6 +339,7 @@ public: Callback WhenCtrlsAction; Callback WhenSel; Callback WhenScroll; + Callback WhenHeaderLayout; Callback WhenDrag; Callback3 WhenDropCell; diff --git a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp index a82a713c1..1fd5bdf22 100644 --- a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp @@ -2583,7 +2583,18 @@ constructed automatically via the column editing [/ factory] calls its [* WhenAction] method. It can be used to watch out for changes in the cell editors and react to specific situations accordingly.&] [s3; &] -[s0; &] +[s4;%- &] +[s5;:ArrayCtrl`:`:WhenSel:%- [_^Callback^ Callback]_[* WhenSel]&] +[s2; Called whenever cursor or selection changes.&] +[s3;%- &] +[s4;%- &] +[s5;:ArrayCtrl`:`:WhenScroll:%- [_^Callback^ Callback]_[* WhenScroll]&] +[s2; Called when scrolling of ArrayCtrl content happened.&] +[s3;%- &] +[s3; &] +[s4;%- &] +[s5;:ArrayCtrl`:`:WhenHeaderLayout:%- [_^Callback^ Callback]_[* WhenHeaderLayout]&] +[s2; Called when header changes.&] [s0; &] [s0;%- &] [ {{10000t/25b/25@3 [s0;%- [*@(229)4 ArrayCtrl`::IdInfo]]}}&]