added PopupMenu to the ScrollButtons

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@596 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
eugene1
2008-10-18 11:10:39 +00:00
parent 8c09b81cfd
commit 6741150b9a
4 changed files with 347 additions and 309 deletions

View File

@ -282,6 +282,7 @@ type
procedure PageButtonMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PageButtonMouseClick(Sender: TObject);
procedure PopupMouseClick(Sender: TObject);
procedure PageButtonMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure SetAutoShowScrollButtons(const AValue: Boolean);
@ -308,6 +309,7 @@ type
X,Y: Integer; State: TDragState; var Accept: Boolean);
procedure SubDragDrop(Sender, Source: TObject; X,Y: Integer);
//End
procedure PopupTabs(Sender: TObject);
procedure MoveLeftTopClick(Sender: TObject);
procedure MoveRightBottomClick(Sender: TObject);
procedure PageRemoved(Index: Integer);
@ -1964,6 +1966,9 @@ begin
FTabHeight:=20;
FPagesPopup := TPopupMenu.Create(Self);
FPagesPopup.OnPopup:=@PopupTabs;
FBar := TGradTabBar.Create(Self);
FBar.Height:=FTabHeight;
FBar.Top:=0;
@ -2010,8 +2015,11 @@ begin
begin
OnMouseUp:=nil;
OnMouseDown:=nil;
PopupMenu:=FPagesPopup;
end;
FRightButton.PopupMenu:=FPagesPopup;
Height:=200;
Width:=200;
end;
@ -2254,6 +2262,16 @@ begin
FOnTabButtonClick(Self, FPageList.IndexOf(AButton.Owner));
end;
procedure TGradTabControl.PopupMouseClick(Sender: TObject);
var
AButton : TGradTabPageButton;
begin
//WriteLn('MouseClick: ', FTabList.IndexOf(Sender));
AButton := Page[(Sender as TMenuItem).Tag].TabButton;
PageButtonMouseClick(AButton);
end;
procedure TGradTabControl.PageButtonMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
@ -2379,6 +2397,28 @@ begin
OnDragDrop(Sender, Source, X, Y);
end;
procedure TGradTabControl.PopupTabs(Sender: TObject);
var
tempMenu : TMenuItem;
i : Integer;
begin
with FPagesPopup.Items do begin
Clear;
for i := 0 to PageCount-1 do begin
tempMenu := TMenuItem.Create(FPagesPopup);
tempMenu.Caption:=Page[i].Caption;
tempMenu.OnClick:=@PopupMouseClick;
tempMenu.Tag:=i;
//DebugLn('I=%d OnClick-Assigned=%s',[i,BoolStr(Assigned(Page[i].TabButton.OnClick))]);
Add(tempMenu);
end;
end;
end;
procedure TGradTabControl.MoveLeftTopClick(Sender: TObject);
begin
//PagesBar.MoveTo(FMoveIncrement);