lazarus/lcl/include/page.inc
mattias 907efa7e6e implemented TPairSplitter
git-svn-id: trunk@3225 -
2002-08-19 15:15:24 +00:00

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
}