mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-11 10:58:19 +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 OldCreateStatusBarPanel(StatusBar: TObject; Index: integer): PGtkWidget;
|
||||||
function CreateSimpleClientAreaWidget(Sender: TObject;
|
function CreateSimpleClientAreaWidget(Sender: TObject;
|
||||||
NotOnParentsClientArea: boolean): PGtkWidget;
|
NotOnParentsClientArea: boolean): PGtkWidget;
|
||||||
function CreateToolBar(ToolBarObject: TObject): PGtkWidget;
|
|
||||||
procedure DestroyEmptySubmenu(Sender: TObject);virtual;
|
procedure DestroyEmptySubmenu(Sender: TObject);virtual;
|
||||||
procedure DestroyConnectedWidget(Widget: PGtkWidget;
|
procedure DestroyConnectedWidget(Widget: PGtkWidget;
|
||||||
CheckIfDestroying: boolean);virtual;
|
CheckIfDestroying: boolean);virtual;
|
||||||
|
@ -4029,34 +4029,6 @@ begin
|
|||||||
Result := hCursor(PtrUInt(gdk_cursor_new(CursorValue)));
|
Result := hCursor(PtrUInt(gdk_cursor_new(CursorValue)));
|
||||||
end;
|
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);
|
procedure TGtkWidgetSet.DestroyEmptySubmenu(Sender: TObject);
|
||||||
|
|
||||||
|
@ -46,9 +46,9 @@ type
|
|||||||
|
|
||||||
TGtkWSStatusBar = class(TWSStatusBar)
|
TGtkWSStatusBar = class(TWSStatusBar)
|
||||||
protected
|
protected
|
||||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||||
public
|
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 PanelUpdate(const AStatusBar: TStatusBar; PanelIndex: integer); override;
|
||||||
class procedure SetPanelText(const AStatusBar: TStatusBar; PanelIndex: integer); override;
|
class procedure SetPanelText(const AStatusBar: TStatusBar; PanelIndex: integer); override;
|
||||||
class procedure Update(const AStatusBar: TStatusBar); override;
|
class procedure Update(const AStatusBar: TStatusBar); override;
|
||||||
@ -151,9 +151,9 @@ type
|
|||||||
TGtkWSProgressBar = class(TWSProgressBar)
|
TGtkWSProgressBar = class(TWSProgressBar)
|
||||||
private
|
private
|
||||||
protected
|
protected
|
||||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||||
public
|
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 ApplyChanges(const AProgressBar: TCustomProgressBar); override;
|
||||||
class procedure SetPosition(const AProgressBar: TCustomProgressBar; const NewPosition: integer); override;
|
class procedure SetPosition(const AProgressBar: TCustomProgressBar; const NewPosition: integer); override;
|
||||||
end;
|
end;
|
||||||
@ -187,7 +187,9 @@ type
|
|||||||
TGtkWSToolBar = class(TWSToolBar)
|
TGtkWSToolBar = class(TWSToolBar)
|
||||||
private
|
private
|
||||||
protected
|
protected
|
||||||
|
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||||
public
|
public
|
||||||
|
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||||
{$ifdef OldToolbar}
|
{$ifdef OldToolbar}
|
||||||
class function GetButtonCount(const AToolBar: TToolBar): integer; override;
|
class function GetButtonCount(const AToolBar: TToolBar): integer; override;
|
||||||
class procedure InsertToolButton(const AToolBar: TToolbar; const AControl: TControl); override;
|
class procedure InsertToolButton(const AToolBar: TToolbar; const AControl: TControl); override;
|
||||||
@ -200,9 +202,9 @@ type
|
|||||||
TGtkWSTrackBar = class(TWSTrackBar)
|
TGtkWSTrackBar = class(TWSTrackBar)
|
||||||
private
|
private
|
||||||
protected
|
protected
|
||||||
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
class procedure SetCallbacks(const AWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||||
public
|
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 procedure ApplyChanges(const ATrackBar: TCustomTrackBar); override;
|
||||||
class function GetPosition(const ATrackBar: TCustomTrackBar): integer; override;
|
class function GetPosition(const ATrackBar: TCustomTrackBar): integer; override;
|
||||||
class procedure SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer); override;
|
class procedure SetPosition(const ATrackBar: TCustomTrackBar; const NewPosition: integer); override;
|
||||||
@ -530,6 +532,48 @@ begin
|
|||||||
//debugln('TGtkWSStatusBar.GetPreferredSize END ',dbgs(PreferredHeight));
|
//debugln('TGtkWSStatusBar.GetPreferredSize END ',dbgs(PreferredHeight));
|
||||||
end;
|
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
|
initialization
|
||||||
|
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
@ -547,9 +591,7 @@ initialization
|
|||||||
// RegisterWSComponent(TCustomUpDown, TGtkWSCustomUpDown);
|
// RegisterWSComponent(TCustomUpDown, TGtkWSCustomUpDown);
|
||||||
// RegisterWSComponent(TCustomUpDown, TGtkWSUpDown);
|
// RegisterWSComponent(TCustomUpDown, TGtkWSUpDown);
|
||||||
// RegisterWSComponent(TCustomToolButton, TGtkWSToolButton);
|
// RegisterWSComponent(TCustomToolButton, TGtkWSToolButton);
|
||||||
{$ifdef OldToolbar}
|
|
||||||
RegisterWSComponent(TToolBar, TGtkWSToolBar);
|
RegisterWSComponent(TToolBar, TGtkWSToolBar);
|
||||||
{$ENDIF}
|
|
||||||
RegisterWSComponent(TCustomTrackBar, TGtkWSTrackBar);
|
RegisterWSComponent(TCustomTrackBar, TGtkWSTrackBar);
|
||||||
// RegisterWSComponent(TCustomTreeView, TGtkWSCustomTreeView);
|
// RegisterWSComponent(TCustomTreeView, TGtkWSCustomTreeView);
|
||||||
// RegisterWSComponent(TCustomTreeView, TGtkWSTreeView);
|
// RegisterWSComponent(TCustomTreeView, TGtkWSTreeView);
|
||||||
|
Loading…
Reference in New Issue
Block a user