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

git-svn-id: trunk@13470 -
This commit is contained in:
paul 2007-12-26 09:47:15 +00:00
parent 20c2a16ecc
commit 3298b06f86
3 changed files with 31 additions and 10 deletions

View File

@ -4729,15 +4729,6 @@ begin
csPreviewFileControl:
P:=CreateSimpleClientAreaWidget(Sender,true);
csProgressBar:
with (TCustomProgressBar (Sender)) do
begin
{ Create a GtkAdjustment object to hold the range of the progress bar }
TempWidget := PGtkWidget( gtk_adjustment_new (Position, Min, Max, 0, 0, 0));
{ Create the GtkProgressBar using the adjustment }
P := gtk_progress_bar_new_with_adjustment (PGtkAdjustment (TempWidget));
end;
csTrackBar:
with (TCustomTrackBar (Sender)) do
begin

View File

@ -151,7 +151,9 @@ type
TGtkWSProgressBar = class(TWSProgressBar)
private
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 ApplyChanges(const AProgressBar: TCustomProgressBar); override;
class procedure SetPosition(const AProgressBar: TCustomProgressBar; const NewPosition: integer); override;
end;
@ -238,6 +240,34 @@ const
{ TGtkWSProgressBar }
class procedure TGtkWSProgressBar.SetCallbacks(const AWidget: PGtkWidget;
const AWidgetInfo: PWidgetInfo);
begin
TGtkWSWinControl.SetCallbacks(PGtkObject(AWidget), TComponent(AWidgetInfo^.LCLObject));
end;
class function TGtkWSProgressBar.CreateHandle(const AWinControl: TWinControl;
const AParams: TCreateParams): TLCLIntfHandle;
var
Adjustment: PGtkAdjustment;
Widget: PGtkWidget;
WidgetInfo: PWidgetInfo;
begin
with TCustomProgressBar(AWinControl) do
begin
// Create a GtkAdjustment object to hold the range of the progress bar
Adjustment := PGtkAdjustment(gtk_adjustment_new(Position, Min, Max, 0, 0, 0));
// Create the GtkProgressBar using the adjustment
Widget := gtk_progress_bar_new_with_adjustment(Adjustment);
end;
Result := TLCLIntfHandle(PtrUInt(Widget));
{$IFDEF DebugLCLComponents}
DebugGtkWidgets.MarkCreated(Widget, dbgsName(AWinControl));
{$ENDIF}
WidgetInfo := CreateWidgetInfo(Pointer(Result), AWinControl, AParams);
SetCallbacks(Widget, WidgetInfo);
end;
class procedure TGtkWSProgressBar.ApplyChanges(const AProgressBar: TCustomProgressBar);
var
wHandle: HWND;

View File

@ -391,7 +391,7 @@ end;
class function TGtkWSScrollBar.CreateHandle(const AWinControl: TWinControl;
const AParams: TCreateParams): TLCLIntfHandle;
var
Adjustment: PgtkAdjustment;
Adjustment: PGtkAdjustment;
Widget: PGtkWidget;
WidgetInfo: PWidgetInfo;
begin