diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-11-04 17:07:53 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-11-04 17:07:53 +0000 |
commit | 2e2daa66fccd73fd09fd3d188a2ed2e40adde167 (patch) | |
tree | 68b29d652966b37517ed7c5c6bc829d614892596 | |
parent | fbf316185a7613231677d21d52b0c6174ab109a9 (diff) | |
parent | 7a5e4cd906877649e3ccc8cd46bc3db6d31bf52f (diff) | |
download | fpc-objc.tar.gz |
* merged r14048 - r14054 from trunkobjc
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/objc@14055 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | installer/install.pas | 17 | ||||
-rw-r--r-- | installer/scroll.pas | 19 | ||||
-rw-r--r-- | packages/fv/src/views.pas | 18 | ||||
-rw-r--r-- | rtl/inc/wustring22.inc | 8 | ||||
-rw-r--r-- | tests/test/units/math/tnaninf.pp | 2 |
5 files changed, 41 insertions, 23 deletions
diff --git a/installer/install.pas b/installer/install.pas index 0b8b1ad190..664bf35465 100644 --- a/installer/install.pas +++ b/installer/install.pas @@ -1106,14 +1106,22 @@ program install; else {$endif MAYBE_LFN} begin - items[j]:=newsitem(package[i].name+diskspacestr(package[i].diskspace),items[j]); + items[j]:=newsitem(package[i].name+diskspacestr(package[i].diskspace) +{$ifdef DEBUG} + +' ('+dotstr(i)+')' +{$endif DEBUG} + ,items[j]); packmask[j]:=packmask[j] or packagemask(i); enabmask[j]:=enabmask[j] or packagemask(i); firstitem[j]:=i-1; end; end else - items[j]:=newsitem(package[i].name,items[j]); + items[j]:=newsitem(package[i].name +{$ifdef DEBUG} + +' ('+dotstr(i)+')' +{$endif DEBUG} + ,items[j]); end; end; @@ -1186,7 +1194,10 @@ program install; if (sbr.b.y-sbr.a.y)<cfg.pack[j].packages then begin sbsbr.assign(sbr.b.x,sbr.a.y,sbr.b.x+1,sbr.b.y); - New(sbsb, init(sbsbr)); + sbsb:=CreateIdScrollBar (sbsbr.a.x, sbsbr.a.y,sbsbr.b.y-sbsbr.a.y,j,false); + sbsb^.SetRange(0,cfg.pack[j].packages-(sbsbr.b.y-sbsbr.a.y)-1); + sbsb^.SetStep(5,1); + //New(sbsb, init(sbsbr)); end else sbsb:=nil; diff --git a/installer/scroll.pas b/installer/scroll.pas index 379bb103b8..803c071d62 100644 --- a/installer/scroll.pas +++ b/installer/scroll.pas @@ -52,6 +52,7 @@ type private DrawLock: Byte; DrawFlag: Boolean; + ScrollFlag : boolean; procedure CheckDraw; procedure UpdateLimits; procedure ShiftViews(DX,DY: sw_integer); @@ -86,6 +87,11 @@ procedure TScrollBox.HandleEvent(var Event: TEvent); begin if (Event.What=evBroadcast) and (Event.Command=cmCursorChanged) then TrackCursor; + If (Event.What = evBroadcast) AND + (Event.Command = cmScrollBarChanged) AND { Scroll bar change } + Not ScrollFlag AND + ((Event.InfoPtr = HScrollBar) OR { Our scrollbar? } + (Event.InfoPtr = VScrollBar)) Then ScrollDraw; { Redraw scroller } inherited HandleEvent(Event); end; @@ -123,7 +129,7 @@ begin if (D.X <> Delta.X) or (D.Y <> Delta.Y) then begin SetCursor(Cursor.X + Delta.X - D.X, Cursor.Y + Delta.Y - D.Y); - Delta := D; + ScrollTo(D.X,D.Y); if DrawLock <> 0 then DrawFlag := True else @@ -134,14 +140,19 @@ end; procedure TScrollBox.ScrollTo(X, Y: Sw_Integer); var DX,DY: sw_integer; + PrevScrollFlag : boolean; begin Inc(DrawLock); DX:=Delta.X-X; DY:=Delta.Y-Y; + PrevScrollFlag:=ScrollFlag; + ScrollFlag:=true; + if HScrollBar <> nil then HScrollBar^.SetValue(X); if VScrollBar <> nil then VScrollBar^.SetValue(Y); + ScrollFlag:=PrevScrollFlag; ShiftViews(DX,DY); Dec(DrawLock); CheckDraw; @@ -154,6 +165,8 @@ procedure TScrollBox.ShiftViews(DX,DY: sw_integer); end; begin ForEach(@DoShift); + Delta.X:=Delta.X-DX; + Delta.Y:=Delta.Y-DY; end; procedure TScrollBox.SetLimit(X, Y: Sw_Integer); @@ -162,9 +175,9 @@ begin Limit.Y := Y; Inc(DrawLock); if HScrollBar <> nil then - HScrollBar^.SetParams(HScrollBar^.Value, 0, X - Size.X, Size.X - 1, HScrollBar^.ArStep); + HScrollBar^.SetParams(HScrollBar^.Value, HScrollBar^.Min, HScrollBar^.Max, HScrollBar^.PgStep, HScrollBar^.ArStep); if VScrollBar <> nil then - VScrollBar^.SetParams(VScrollBar^.Value, 0, Y - Size.Y, Size.Y - 1, VScrollBar^.ArStep); + VScrollBar^.SetParams(VScrollBar^.Value, VScrollBar^.Min, VScrollBar^.Max, VScrollBar^.PgStep, VScrollBar^.ArStep); Dec(DrawLock); CheckDraw; end; diff --git a/packages/fv/src/views.pas b/packages/fv/src/views.pas index 3485a61431..299d29a5e2 100644 --- a/packages/fv/src/views.pas +++ b/packages/fv/src/views.pas @@ -3136,16 +3136,16 @@ VAR Tracking: Boolean; I, P, S, ClickPart, Iv: Sw_Integer; Part := -1; { Preset failure } If Extent.Contains(Mouse) Then Begin { Contains mouse } If (Size.X = 1) Then Begin { Vertical scrollbar } - Mark := Mouse.Y - 1; { Calc position } + Mark := Mouse.Y; { Calc position } End Else Begin { Horizontal bar } - Mark := Mouse.X - 1; { Calc position } + Mark := Mouse.X; { Calc position } End; If (Mark >= P) AND (Mark < P+1) Then { Within thumbnail } Part := sbIndicator; { Indicator part } If (Part <> sbIndicator) Then Begin { Not indicator part } If (Mark < 1) Then Part := sbLeftArrow Else { Left arrow part } If (Mark < P) Then Part := sbPageLeft Else { Page left part } - If (Mark < S) Then Part := sbPageRight Else { Page right part } + If (Mark < S-1) Then Part := sbPageRight Else { Page right part } Part := sbRightArrow; { Right arrow part } If (Size.X = 1) Then Inc(Part, 4); { Correct for vertical } End; @@ -3205,14 +3205,14 @@ BEGIN MakeLocal(Event.Where, Mouse); { Localize mouse } Extent.A.X := 0; { Zero x extent value } Extent.A.Y := 0; { Zero y extent value } - Extent.B.X := Size.X; { Set extent x value } - Extent.B.Y := Size.Y; { set extent y value } + Extent.B.X := Size.X; { Set extent x value } + Extent.B.Y := Size.Y; { set extent y value } P := GetPos; { Current position } S := GetSize; { Initial size } ClickPart := GetPartCode; { Get part code } If (ClickPart <> sbIndicator) Then Begin { Not thumb nail } Repeat - MakeLocal(Event.Where, Mouse); { Localize mouse } + MakeLocal(Event.Where, Mouse); { Localize mouse } If GetPartCode = ClickPart Then SetValue(Value+ScrollStep(ClickPart)); { Same part repeat } Until NOT MouseEvent(Event, evMouseAuto); { Until auto done } @@ -3220,12 +3220,12 @@ BEGIN End Else Begin { Thumb nail move } Iv := Value; { Initial value } Repeat - MakeLocal(Event.Where, Mouse); { Localize mouse } + MakeLocal(Event.Where, Mouse); { Localize mouse } Tracking := Extent.Contains(Mouse); { Check contains } If Tracking Then Begin { Tracking mouse } If (Size.X=1) Then - I := Mouse.Y-1 Else { Calc vert position } - I := Mouse.X-1; { Calc horz position } + I := Mouse.Y Else { Calc vert position } + I := Mouse.X; { Calc horz position } If (I < 0) Then I := 0; { Check underflow } If (I > S) Then I := S; { Check overflow } End Else I := GetPos; { Get position } diff --git a/rtl/inc/wustring22.inc b/rtl/inc/wustring22.inc index 6b73469bb7..8a48073a33 100644 --- a/rtl/inc/wustring22.inc +++ b/rtl/inc/wustring22.inc @@ -1447,13 +1447,7 @@ var begin SetLength(S,Len); If (Buf<>Nil) and (Len>0) then - begin - BufLen := IndexByte(Buf^, Len+1, 0); - If (BufLen>0) and (BufLen < Len) then - Len := BufLen; - widestringmanager.Ansi2WideMoveProc(Buf,S,Len); - //PWideChar(Pointer(S)+Len*sizeof(WideChar))^:=#0; - end; + widestringmanager.Ansi2WideMoveProc(Buf,S,Len); end; diff --git a/tests/test/units/math/tnaninf.pp b/tests/test/units/math/tnaninf.pp index 339e641b9b..27862899a1 100644 --- a/tests/test/units/math/tnaninf.pp +++ b/tests/test/units/math/tnaninf.pp @@ -1,5 +1,5 @@ uses - math; + Math; begin if not(isnan(nan)) then |