mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 09:39:31 +02:00
Cocoa/TabControl: TCocoaTabControl.exttabMoveTabViewItem_toIndex() improved
This commit is contained in:
parent
5bfc060093
commit
51f7942433
@ -103,6 +103,8 @@ type
|
||||
// lcl
|
||||
procedure exttabInsertTabViewItem_atIndex(lTabPage: NSTabViewItem; index: integer);
|
||||
message 'exttabInsertTabViewItem:atIndex:';
|
||||
procedure exttabMoveTabViewItem_toIndex(lTabPage: NSTabViewItem; NewIndex: integer);
|
||||
message 'exttabMoveTabViewItem:toIndex:';
|
||||
procedure exttabRemoveTabViewItem(lTabPage: NSTabViewItem);
|
||||
message 'exttabRemoveTabViewItem:';
|
||||
function exttabIndexOfTabViewItem(lTabPage: NSTabViewItem): NSInteger;
|
||||
@ -799,6 +801,37 @@ begin
|
||||
inherited mouseMoved(event);
|
||||
end;
|
||||
|
||||
procedure TCocoaTabControl.exttabMoveTabViewItem_toIndex(
|
||||
lTabPage: NSTabViewItem; NewIndex: integer);
|
||||
var
|
||||
isMovingCurrentPage: Boolean;
|
||||
OldIndex: Integer;
|
||||
begin
|
||||
if fulltabs.count=0 then
|
||||
Exit;
|
||||
if NewIndex > fulltabs.count then
|
||||
NewIndex:= fulltabs.count;
|
||||
|
||||
OldIndex := exttabIndexOfTabViewItem( lTabPage );
|
||||
isMovingCurrentPage := (OldIndex=currentIndex);
|
||||
|
||||
fulltabs.removeObjectAtIndex( OldIndex );
|
||||
fulltabs.insertObject_atIndex( lTabPage, NewIndex );
|
||||
|
||||
if isMovingCurrentPage then begin
|
||||
currentIndex:= NewIndex;
|
||||
leftKeepAmount:= currentIndex - visibleLeftIndex;
|
||||
selectTabViewItem( lTabPage );
|
||||
end else begin
|
||||
if (OldIndex<currentIndex) and (NewIndex>currentIndex) then
|
||||
dec( currentIndex )
|
||||
else if (OldIndex>currentIndex) and (NewIndex<=currentIndex) then
|
||||
inc( currentIndex );
|
||||
end;
|
||||
|
||||
UpdateTabAndArrowVisibility( self );
|
||||
end;
|
||||
|
||||
procedure TCocoaTabControl.exttabInsertTabViewItem_atIndex(
|
||||
lTabPage:NSTabViewItem; index:integer );
|
||||
begin
|
||||
|
Loading…
Reference in New Issue
Block a user