mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-03 02:17:19 +01:00
246 lines
8.0 KiB
PHP
246 lines
8.0 KiB
PHP
// included by extctrls.pp
|
|
{******************************************************************************
|
|
TPage
|
|
******************************************************************************
|
|
|
|
*****************************************************************************
|
|
* *
|
|
* This file is part of the Lazarus Component Library (LCL) *
|
|
* *
|
|
* See the file COPYING.LCL, included in this distribution, *
|
|
* for details about the copyright. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
* *
|
|
*****************************************************************************
|
|
}
|
|
{------------------------------------------------------------------------------
|
|
TPage Constructor
|
|
------------------------------------------------------------------------------}
|
|
constructor TPage.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
|
|
fImageIndex:=-1;
|
|
|
|
{set the default height and width}
|
|
|
|
if (AOwner<>nil) and (AOwner is TControl) then begin
|
|
SetInitialBounds(0,0,
|
|
TControl(AOwner).ClientWidth,TControl(AOwner).ClientHeight);
|
|
end else begin
|
|
SetInitialBounds(0,0,120,100);
|
|
end;
|
|
|
|
fCompStyle := csPage;
|
|
|
|
Visible := False;
|
|
ControlStyle := ControlStyle + [csAcceptsControls];
|
|
{ The alignment is performed by the notebook component }
|
|
|
|
Caption := '';
|
|
end;
|
|
|
|
{------------------------------------------------------------------------------
|
|
method TPage SetImageIndex
|
|
Params: const AValue: integer
|
|
Result: none
|
|
|
|
Set the image index of the image shown in the tabs.
|
|
------------------------------------------------------------------------------}
|
|
procedure TPage.SetImageIndex(const AValue: integer);
|
|
begin
|
|
if FImageIndex=AValue then exit;
|
|
FImageIndex:=AValue;
|
|
if not HandleAllocated or (csLoading in ComponentState) then exit;
|
|
CNSendMessage(LM_NB_UpdateTab, Self, nil);
|
|
end;
|
|
|
|
{------------------------------------------------------------------------------
|
|
TPage WMPaint
|
|
Params: a TLMPaint message
|
|
------------------------------------------------------------------------------}
|
|
procedure TPage.WMPaint(var Msg: TLMPaint);
|
|
var Notebook: TNoteBook;
|
|
begin
|
|
if (Parent is TNoteBook) then begin
|
|
NoteBook:=TNoteBook(Parent);
|
|
if (NoteBook.PageIndex>=0) and (NoteBook.Page[NoteBook.PageIndex]=Self) then
|
|
inherited WMPaint(Msg);
|
|
end else
|
|
inherited WMPaint(Msg);
|
|
end;
|
|
|
|
{------------------------------------------------------------------------------
|
|
procedure TPage.SetParent(AParent: TWinControl);
|
|
|
|
Set parent wincontrol.
|
|
------------------------------------------------------------------------------}
|
|
procedure TPage.SetParent(AParent: TWinControl);
|
|
var
|
|
OldParent: TWinControl;
|
|
ParentNotebook: TCustomNotebook;
|
|
i: integer;
|
|
begin
|
|
OldParent:=Parent;
|
|
if (OldParent<>AParent) and (OldParent<>nil)
|
|
and (OldParent is TCustomNotebook) then begin
|
|
// remove from old pagelist
|
|
ParentNotebook:=TCustomNotebook(OldParent);
|
|
i:=PageIndex;
|
|
if i>=0 then
|
|
TNBPages(ParentNotebook.fAccess).RemovePage(i);
|
|
end;
|
|
|
|
inherited SetParent(AParent);
|
|
|
|
if (OldParent<>AParent) and (Parent<>nil)
|
|
and (Parent is TCustomNotebook) then begin
|
|
// add to new pagelist
|
|
ParentNotebook:=TCustomNotebook(Parent);
|
|
if ParentNotebook.PageList.IndexOf(Self)<0 then
|
|
TNBPages(ParentNotebook.fAccess).InsertPage(ParentNotebook.PageCount,Self);
|
|
end;
|
|
end;
|
|
|
|
{------------------------------------------------------------------------------
|
|
TPage Destroy
|
|
------------------------------------------------------------------------------}
|
|
destructor TPage.Destroy;
|
|
begin
|
|
inherited Destroy;
|
|
end;
|
|
|
|
{------------------------------------------------------------------------------
|
|
TPage AdjustClientRect
|
|
Params: Rect
|
|
------------------------------------------------------------------------------}
|
|
procedure TPage.AdjustClientRect(var ARect: TRect);
|
|
begin
|
|
ARect:=GetClientRect;
|
|
end;
|
|
|
|
{------------------------------------------------------------------------------
|
|
function TPage.PageIndex: integer;
|
|
|
|
Returns the index of the page in the notebook.
|
|
------------------------------------------------------------------------------}
|
|
function TPage.PageIndex: integer;
|
|
begin
|
|
if (Parent<>nil) and (Parent is TCustomNotebook) then
|
|
Result:=TCustomNotebook(Parent).PageList.IndexOf(Self);
|
|
end;
|
|
|
|
function TPage.CanTab: boolean;
|
|
begin
|
|
Result:=false;
|
|
end;
|
|
|
|
// included by extctrls.pp
|
|
{
|
|
$Log$
|
|
Revision 1.15 2002/08/19 15:15:23 mattias
|
|
implemented TPairSplitter
|
|
|
|
Revision 1.14 2003/06/11 22:29:42 mattias
|
|
fixed realizing bounds after loading form
|
|
|
|
Revision 1.13 2003/06/10 17:23:35 mattias
|
|
implemented tabstop
|
|
|
|
Revision 1.12 2002/12/22 22:42:55 mattias
|
|
custom controls now support child wincontrols
|
|
|
|
Revision 1.11 2002/09/05 12:11:43 lazarus
|
|
MG: TNotebook is now streamable
|
|
|
|
Revision 1.10 2002/09/02 19:10:28 lazarus
|
|
MG: TNoteBook now starts with no Page and TPage has no auto names
|
|
|
|
Revision 1.9 2002/06/08 17:16:02 lazarus
|
|
MG: added close buttons and images to TNoteBook and close buttons to source editor
|
|
|
|
Revision 1.8 2002/05/10 06:05:55 lazarus
|
|
MG: changed license to LGPL
|
|
|
|
Revision 1.7 2002/03/31 23:20:38 lazarus
|
|
MG: fixed initial size of TPage
|
|
|
|
Revision 1.6 2002/03/25 17:59:20 lazarus
|
|
GTK Cleanup
|
|
Shane
|
|
|
|
Revision 1.5 2002/03/13 22:48:16 lazarus
|
|
Constraints implementation (first cut) and sizig - moving system rework to
|
|
better match Delphi/Kylix way of doing things (the existing implementation
|
|
worked by acident IMHO :-)
|
|
|
|
Revision 1.4 2002/01/01 15:50:14 lazarus
|
|
MG: fixed initial component aligning
|
|
|
|
Revision 1.3 2001/06/26 21:44:32 lazarus
|
|
MG: reduced paint messages
|
|
|
|
Revision 1.2 2001/01/12 18:27:32 lazarus
|
|
Streaming additions by MAttias
|
|
Shane
|
|
|
|
Revision 1.1 2000/07/13 10:28:27 michael
|
|
+ Initial import
|
|
|
|
Revision 1.2 2000/05/09 02:07:40 lazarus
|
|
Replaced writelns with Asserts. CAW
|
|
|
|
Revision 1.1 2000/04/02 20:49:56 lazarus
|
|
MWE:
|
|
Moved lazarus/lcl/*.inc files to lazarus/lcl/include
|
|
|
|
Revision 1.13 2000/02/26 23:31:50 lazarus
|
|
MWE:
|
|
Fixed notebook crash on insert
|
|
Fixed loadfont problem for win32 (tleast now a fontname is required)
|
|
|
|
Revision 1.12 2000/02/25 19:28:34 lazarus
|
|
Played with TNotebook to see why it crashes when I add a tab and the tnotebook is showing. Havn't figured it out
|
|
Shane
|
|
|
|
Revision 1.11 2000/02/20 20:13:47 lazarus
|
|
On my way to make alignments and stuff work :-)
|
|
|
|
Revision 1.10 2000/01/06 01:10:36 lazarus
|
|
Stoppok:
|
|
- changed ReadState to match current definition in fcl
|
|
(affects TPage & TCustomNotebook)
|
|
- added callback FItems.OnChanging to TCustomRadiogroup
|
|
|
|
Revision 1.9 1999/11/01 01:28:30 lazarus
|
|
MWE: Implemented HandleNeeded/CreateHandle/CreateWND
|
|
Now controls are created on demand. A call to CreateComponent shouldn't
|
|
be needed. It is now part of CreateWnd
|
|
|
|
Revision 1.8 1999/10/05 02:40:22 lazarus
|
|
Cleaned up the code. CAW
|
|
|
|
Revision 1.7 1999/09/30 21:59:03 lazarus
|
|
MWE: Fixed TNoteBook problems
|
|
Modifications: A few
|
|
- Removed some debug messages
|
|
+ Added some others
|
|
* changed fixed widged of TPage. Code is still broken.
|
|
+ TWinControls are also added to the Controls collection
|
|
+ Added TControl.Controls[] property
|
|
|
|
Revision 1.6 1999/09/22 20:07:16 lazarus
|
|
*** empty log message ***
|
|
|
|
Revision 1.4 1999/09/21 23:46:55 lazarus
|
|
*** empty log message ***
|
|
|
|
Revision 1.3 1999/08/03 06:34:26 lazarus
|
|
Added cvs logging to bottom of unit
|
|
|
|
}
|
|
|