mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-04 16:18:21 +02:00
gtk: move CreateToolbar code to TGtkWsToolBar (fixes #0010530)
git-svn-id: trunk@13788 -
This commit is contained in:
parent
e43001918b
commit
e2c49dc18f
@ -154,7 +154,6 @@ type
|
||||
function OldCreateStatusBarPanel(StatusBar: TObject; Index: integer): PGtkWidget;
|
||||
function CreateSimpleClientAreaWidget(Sender: TObject;
|
||||
NotOnParentsClientArea: boolean): PGtkWidget;
|
||||
function CreateToolBar(ToolBarObject: TObject): PGtkWidget;
|
||||
procedure DestroyEmptySubmenu(Sender: TObject);virtual;
|
||||
procedure DestroyConnectedWidget(Widget: PGtkWidget;
|
||||
CheckIfDestroying: boolean);virtual;
|
||||
|
@ -4029,34 +4029,6 @@ begin
|
||||
Result := hCursor(PtrUInt(gdk_cursor_new(CursorValue)));
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
function TGtkWidgetSet.CreateToolBar(ToolBarObject: TObject): PGtkWidget;
|
||||
|
||||
Creates a gtk_toolbar and puts a fixed widget as client area.
|
||||
Since we are not using the gtk tool buttons, we can put any LCL control as
|
||||
child and get all LCL TControl abilities.
|
||||
------------------------------------------------------------------------------}
|
||||
function TGtkWidgetSet.CreateToolBar(ToolBarObject: TObject): PGtkWidget;
|
||||
var
|
||||
ClientWidget: PGtkWidget;
|
||||
begin
|
||||
{$IFDEF GTK1}
|
||||
Result := gtk_toolbar_new();
|
||||
gtk_toolbar_set_space_size(PGTKToolbar(Result),0);
|
||||
gtk_toolbar_set_space_style(PGTKToolbar(Result),GTK_TOOLBAR_SPACE_EMPTY);
|
||||
ClientWidget := gtk_fixed_new();
|
||||
gtk_toolbar_insert_widget(PGTKToolbar(Result),ClientWidget,nil,nil,0);
|
||||
{$ELSE}
|
||||
Result := gtk_hbox_new(false,0);
|
||||
ClientWidget := CreateFixedClientWidget;
|
||||
gtk_container_add(GTK_CONTAINER(Result), ClientWidget);
|
||||
{$ENDIF}
|
||||
gtk_widget_show(ClientWidget);
|
||||
SetFixedWidget(Result,ClientWidget);
|
||||
SetMainWidget(Result,ClientWidget);
|
||||
gtk_widget_show(Result);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TGtkWidgetSet.DestroyEmptySubmenu(Sender: TObject);
|
||||
|
||||
|
@ -46,9 +46,9 @@ type
|
||||
|
||||
TGtkWSStatusBar = class(TWSStatusBar)
|
||||
protected
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
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;
|
||||
@ -151,9 +151,9 @@ type
|
||||
TGtkWSProgressBar = class(TWSProgressBar)
|
||||
private
|
||||
protected
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
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;
|
||||
@ -187,7 +187,9 @@ type
|
||||
TGtkWSToolBar = class(TWSToolBar)
|
||||
private
|
||||
protected
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
{$ifdef OldToolbar}
|
||||
class function GetButtonCount(const AToolBar: TToolBar): integer; override;
|
||||
class procedure InsertToolButton(const AToolBar: TToolbar; const AControl: TControl); override;
|
||||
@ -200,9 +202,9 @@ type
|
||||
TGtkWSTrackBar = class(TWSTrackBar)
|
||||
private
|
||||
protected
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
class procedure ApplyChanges(const ATrackBar: TCustomTrackBar); override;
|
||||
class function GetPosition(const ATrackBar: TCustomTrackBar): integer; override;
|
||||
class procedure SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer); override;
|
||||
@ -530,6 +532,48 @@ begin
|
||||
//debugln('TGtkWSStatusBar.GetPreferredSize END ',dbgs(PreferredHeight));
|
||||
end;
|
||||
|
||||
{ TGtkWSToolBar }
|
||||
|
||||
class procedure TGtkWSToolBar.SetCallbacks(const AWidget: PGtkWidget;
|
||||
const AWidgetInfo: PWidgetInfo);
|
||||
begin
|
||||
TGtkWSWinControl.SetCallbacks(PGtkObject(AWidget), TComponent(AWidgetInfo^.LCLObject));
|
||||
end;
|
||||
|
||||
class function TGtkWSToolBar.CreateHandle(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams): TLCLIntfHandle;
|
||||
var
|
||||
Widget, ClientWidget: PGtkWidget;
|
||||
WidgetInfo: PWidgetInfo;
|
||||
begin
|
||||
{$ifdef gtk1}
|
||||
Widget := gtk_toolbar_new();
|
||||
gtk_toolbar_set_space_size(PGTKToolbar(Widget), 0);
|
||||
gtk_toolbar_set_space_style(PGTKToolbar(Widget), GTK_TOOLBAR_SPACE_EMPTY);
|
||||
ClientWidget := gtk_fixed_new();
|
||||
gtk_toolbar_insert_widget(PGTKToolbar(Widget), ClientWidget, nil, nil, 0);
|
||||
{$else}
|
||||
Widget:= gtk_hbox_new(false,0);
|
||||
ClientWidget := CreateFixedClientWidget;
|
||||
gtk_container_add(GTK_CONTAINER(Widget), ClientWidget);
|
||||
{$endif}
|
||||
|
||||
Result := TLCLIntfHandle(PtrUInt(Widget));
|
||||
WidgetInfo := CreateWidgetInfo(Widget, AWinControl, AParams);
|
||||
|
||||
{$IFDEF DebugLCLComponents}
|
||||
DebugGtkWidgets.MarkCreated(Widget, dbgsName(AWinControl));
|
||||
{$ENDIF}
|
||||
|
||||
gtk_widget_show(ClientWidget);
|
||||
SetFixedWidget(Widget, ClientWidget);
|
||||
SetMainWidget(Widget, ClientWidget);
|
||||
gtk_widget_show(Widget);
|
||||
|
||||
Set_RC_Name(AWinControl, Widget);
|
||||
SetCallbacks(Widget, WidgetInfo);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
@ -547,9 +591,7 @@ initialization
|
||||
// RegisterWSComponent(TCustomUpDown, TGtkWSCustomUpDown);
|
||||
// RegisterWSComponent(TCustomUpDown, TGtkWSUpDown);
|
||||
// RegisterWSComponent(TCustomToolButton, TGtkWSToolButton);
|
||||
{$ifdef OldToolbar}
|
||||
RegisterWSComponent(TToolBar, TGtkWSToolBar);
|
||||
{$ENDIF}
|
||||
RegisterWSComponent(TCustomTrackBar, TGtkWSTrackBar);
|
||||
// RegisterWSComponent(TCustomTreeView, TGtkWSCustomTreeView);
|
||||
// RegisterWSComponent(TCustomTreeView, TGtkWSTreeView);
|
||||
|
Loading…
Reference in New Issue
Block a user