gtk: move CreateComponent code for TStatusBar to CreateHandle and FinishComponentCreate to SetCallbacks

git-svn-id: trunk@13469 -
This commit is contained in:
paul 2007-12-26 09:36:23 +00:00
parent b50f0bcf7a
commit 20c2a16ecc
4 changed files with 26 additions and 21 deletions

View File

@ -149,7 +149,6 @@ type
function CreateComponentWidget(Sender: TObject; ACompStyle: Integer; const ACaption: String
): PGtkWidget; virtual; // temporary solution till all are created through createhandle
function CreateAPIWidget(AWinControl: TWinControl): PGtkWidget;
function CreateStatusBar(StatusBar: TObject): PGtkWidget;
function OldCreateStatusBarPanel(StatusBar: TObject; Index: integer): PGtkWidget;
function CreateSimpleClientAreaWidget(Sender: TObject;
NotOnParentsClientArea: boolean): PGtkWidget;

View File

@ -4564,21 +4564,6 @@ begin
BorderStyleShadowMap[TCustomControl(AWinControl).BorderStyle]);
end;
{------------------------------------------------------------------------------
function TGtkWidgetSet.CreateStatusBar(StatusBar: TObject): PGtkWidget;
Create a TStatusBar widget set
------------------------------------------------------------------------------}
function TGtkWidgetSet.CreateStatusBar(StatusBar: TObject): PGtkWidget;
begin
{$IFDEF OldStatusBar}
Result:=gtk_statusbar_new;
{$ELSE}
Result:=gtk_hbox_new(false,0);
UpdateStatusBarPanels(StatusBar,Result);
{$ENDIF}
end;
{------------------------------------------------------------------------------
function TGtkWidgetSet.CreateStatusBarPanel(StatusBar: TObject; Index: integer
): PGtkWidget;
@ -4753,11 +4738,6 @@ begin
P := gtk_progress_bar_new_with_adjustment (PGtkAdjustment (TempWidget));
end;
csStatusBar :
begin
p:=CreateStatusBar(Sender);
end;
csTrackBar:
with (TCustomTrackBar (Sender)) do
begin

View File

@ -45,7 +45,10 @@ type
{ TGtkWSStatusBar }
TGtkWSStatusBar = class(TWSStatusBar)
protected
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
public
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
class procedure PanelUpdate(const AStatusBar: TStatusBar; PanelIndex: integer); override;
class procedure SetPanelText(const AStatusBar: TStatusBar; PanelIndex: integer); override;
class procedure Update(const AStatusBar: TStatusBar); override;
@ -389,6 +392,28 @@ end;
{ TGtkWSStatusBar }
class procedure TGtkWSStatusBar.SetCallbacks(const AWidget: PGtkWidget;
const AWidgetInfo: PWidgetInfo);
begin
TGtkWSWinControl.SetCallbacks(PGtkObject(AWidget), TComponent(AWidgetInfo^.LCLObject));
end;
class function TGtkWSStatusBar.CreateHandle(const AWinControl: TWinControl;
const AParams: TCreateParams): TLCLIntfHandle;
var
Widget: PGtkWidget;
WidgetInfo: PWidgetInfo;
begin
Widget := gtk_hbox_new(false,0);
UpdateStatusBarPanels(AWinControl, Widget);
Result := TLCLIntfHandle(PtrUInt(Widget));
{$IFDEF DebugLCLComponents}
DebugGtkWidgets.MarkCreated(Widget, dbgsName(AWinControl));
{$ENDIF}
WidgetInfo := CreateWidgetInfo(Pointer(Result), AWinControl, AParams);
SetCallbacks(Widget, WidgetInfo);
end;
class procedure TGtkWSStatusBar.PanelUpdate(const AStatusBar: TStatusBar;
PanelIndex: integer);
var

View File

@ -188,6 +188,7 @@ end;
class procedure TGtkWSScrollingWinControl.ScrollBy(const AWinControl: TScrollingWinControl;
const DeltaX, DeltaY: integer);
begin
{$note implement me}
end;