diff options
Diffstat (limited to 'libgtk_kylix/GTKControls.pas')
| -rw-r--r-- | libgtk_kylix/GTKControls.pas | 388 |
1 files changed, 149 insertions, 239 deletions
diff --git a/libgtk_kylix/GTKControls.pas b/libgtk_kylix/GTKControls.pas index 82de154..4729266 100644 --- a/libgtk_kylix/GTKControls.pas +++ b/libgtk_kylix/GTKControls.pas @@ -1,6 +1,5 @@ (* GTK-Kylix Library: GTKControls - Basic objects - Version 0.6.23 (last updated 2008-11-11) Copyright (C) 2007 Tomas Bzatek <tbzatek@users.sourceforge.net> This library is free software; you can redistribute it and/or @@ -24,7 +23,7 @@ unit GTKControls; interface -uses gtk2, gdk2, lazglib2, lazgobject2, Classes; +uses lazglib2, lazgobject2, lazgdk3, lazgtk3, Classes; const @@ -58,14 +57,15 @@ type type TGTKShadowType = (stNone, stShadowIn, stShadowOut, stEtchedIn, stEtchedOut); TGTKPosition = (poLeft, poRight, poTop, poBottom); - + TGTKAlignment = (taLeftJustify, taRightJustify, taCenter, taFill); + (****************************************** TGTKCONTROL *************************************************************************) TGDKMouseButton = (mbLeft, mbMiddle, mbRight, mbNoButton); TGDKKeyEvent = procedure (Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean) of object; TGDKMouseEvent = procedure (Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean) of object; TGDKFocusEvent = procedure (Sender: TObject; var Accept: boolean) of object; TGDKExposeEvent = procedure (Sender: TObject; const Rect: PGdkRectangle; var Accept: boolean) of object; - TGTKControlState = (csNormal, csActive, csPrelight, csSelected, csInsensitive); + TGTKControlState = (csNormal, csActive, csPrelight, csSelected, csInsensitive, csInconsistent, csFocused, csBackdrop, csDirLTR, cdDirRTL, csLink, csVisited, csChecked, csDropActive); TGTKControl = class(TComponent64) private FVisible: Boolean; @@ -92,6 +92,12 @@ type function GetFocused: boolean; function GetDefault: boolean; function GetControlState: TGTKControlState; + function GetHAlign: TGTKAlignment; + function GetVAlign: TGTKAlignment; + function GetMarginStart: Integer; + function GetMarginEnd: Integer; + function GetMarginTop: Integer; + function GetMarginBottom: Integer; procedure SetHeight(const Value: Integer); procedure SetVisible(const Value: Boolean); procedure SetWidth(const Value: Integer); @@ -111,6 +117,12 @@ type procedure SetOnExpose(Value: TGDKExposeEvent); procedure SetControlState(Value: TGTKControlState); procedure SetOnMouseMove(Value: TGDKMouseEvent); + procedure SetHAlign(Value: TGTKAlignment); + procedure SetVAlign(Value: TGTKAlignment); + procedure SetMarginStart(Value: Integer); + procedure SetMarginEnd(Value: Integer); + procedure SetMarginTop(Value: Integer); + procedure SetMarginBottom(Value: Integer); protected procedure SetParent(const Value: TGTKControl); virtual; public @@ -118,7 +130,6 @@ type constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Hide; - procedure HideAll; procedure Show; procedure ShowAll; procedure SetSizeRequest(const Width, Height: Integer); @@ -127,21 +138,7 @@ type property Enabled: Boolean read GetEnabled write SetEnabled default True; property PopupMenu: TGTKControl read FPopupMenu write SetPopupMenu; procedure SetFocus; - procedure SetForegroundColor(Red, Green, Blue: word); overload; - procedure SetForegroundColor(State: integer; Red, Green, Blue: word); overload; - procedure SetForegroundColor(State: integer; Color: PGdkColor); overload; - procedure SetForegroundColor(Color: PGdkColor); overload; - procedure SetBackgroundColor(Red, Green, Blue: word); overload; - procedure SetBackgroundColor(State: integer; Red, Green, Blue: word); overload; - procedure SetBackgroundColor(State: integer; Color: PGdkColor); overload; - procedure SetBackgroundColor(Color: PGdkColor); overload; - procedure SetTextColor(Red, Green, Blue: word); overload; - procedure SetTextColor(State: integer; Red, Green, Blue: word); overload; - procedure SetBaseColor(Red, Green, Blue: word); overload; - procedure SetBaseColor(State: integer; Red, Green, Blue: word); overload; procedure Invalidate; - procedure SetAlignment(XAlign, YAlign: Double); - procedure SetPadding(XPad, YPad: integer); function GetData(Key: string): Pointer; procedure SetData(Key: string; Value: Pointer); published @@ -164,6 +161,12 @@ type property OnExpose: TGDKExposeEvent read FOnExpose write SetOnExpose; property ComponentState; property ControlState: TGTKControlState read GetControlState write SetControlState; + property HAlign: TGTKAlignment read GetHAlign write SetHAlign; + property VAlign: TGTKAlignment read GetVAlign write SetHAlign; + property MarginStart: Integer read GetMarginStart write SetMarginStart; + property MarginEnd: Integer read GetMarginEnd write SetMarginEnd; + property MarginTop: Integer read GetMarginTop write SetMarginTop; + property MarginBottom: Integer read GetMarginBottom write SetMarginBottom; end; (****************************************** TGTKCONTAINER ***********************************************************************) @@ -234,46 +237,27 @@ type destructor Destroy; override; end; -(****************************************** TGTKTOOLTIPS ************************************************************************) - TGTKTooltips = class(TComponent) - private - function GetEnabled: boolean; - procedure SetEnabled(Value: boolean); - public - FObject: PGtkTooltips; - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - published - property Enabled: boolean read GetEnabled write SetEnabled; - end; - -(****************************************** TGTKTABLE ***************************************************************************) - TGTKTableAttachOptions = set of (taoExpand, taoShrink, taoFill); - TGTKTable = class(TGTKContainer) +(****************************************** TGTKGRID ****************************************************************************) + TGTKGridAttachOptions = set of (taoExpand, taoShrink, taoFill); + TGTKGrid = class(TGTKContainer) private - function GetRowCount: integer; - procedure SetRowCount(Value: integer); - function GetColCount: integer; - procedure SetColCount(Value: integer); function GetRowSpacing: integer; procedure SetRowSpacing(Value: integer); function GetColSpacing: integer; procedure SetColSpacing(Value: integer); - function GetHomogeneous: boolean; - procedure SetHomogeneous(Value: boolean); + function GetRowHomogeneous: boolean; + function GetColHomogeneous: boolean; + procedure SetRowHomogeneous(Value: boolean); + procedure SetColHomogeneous(Value: boolean); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; - procedure SetRowColCount(Rows, Cols: integer); - procedure AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XPadding, YPadding: integer); - procedure AddControlEx(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XAttachOptions, - YAttachOptions: TGTKTableAttachOptions; XPadding, YPadding: integer); + procedure AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl); published - property RowCount: integer read GetRowCount write SetRowCount; - property ColCount: integer read GetColCount write SetColCount; property RowSpacing: integer read GetRowSpacing write SetRowSpacing; property ColSpacing: integer read GetColSpacing write SetColSpacing; - property Homogeneous: boolean read GetHomogeneous write SetHomogeneous; + property RowHomogeneous: boolean read GetRowHomogeneous write SetRowHomogeneous; + property ColHomogeneous: boolean read GetColHomogeneous write SetColHomogeneous; end; @@ -289,7 +273,7 @@ uses GTKMenus, GTKForms, GTKUtils; procedure Beep; begin - gdk_beep; + gdk_beep(); end; @@ -334,13 +318,6 @@ begin gtk_widget_hide(FWidget); end; -procedure TGTKControl.HideAll; -begin - if Parent <> nil then Parent.HideAll; - FVisible := False; - gtk_widget_hide_all(FWidget); -end; - procedure TGTKControl.Show; begin FVisible := True; @@ -362,7 +339,7 @@ begin raise EInvalidOperation.Create('Invalid Operation'); FParent := Value; try - if Assigned(FWidget) and GTK_IS_WIDGET(FWidget) then + if Assigned(FWidget) then if Assigned(Value) then gtk_widget_set_parent(FWidget, Value.FWidget) else gtk_widget_unparent(FWidget); @@ -378,12 +355,12 @@ end; function TGTKControl.GetWidth: Integer; begin - Result := FWidget^.allocation.width; + Result := gtk_widget_get_allocated_width(FWidget); end; function TGTKControl.GetHeight: Integer; begin - Result := FWidget^.allocation.height; + Result := gtk_widget_get_allocated_height(FWidget); end; procedure TGTKControl.SetWidth(const Value: Integer); @@ -402,13 +379,17 @@ begin end; function TGTKControl.GetLeft: Integer; +var A: TGtkAllocation; begin - Result := FWidget^.allocation.x; + gtk_widget_get_allocation(FWidget, @A); + Result := A.x; end; function TGTKControl.GetTop: Integer; +var A: TGtkAllocation; begin - Result := FWidget^.allocation.y; + gtk_widget_get_allocation(FWidget, @A); + Result := A.y; end; function TGTKControl.GetEnabled: boolean; @@ -429,13 +410,13 @@ var Shift: TShiftState; Accept: boolean; begin Shift := []; - if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); - if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); - if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); + if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift); + if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl); + if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt); Accept := True; - if Assigned(TGTKControl(user_data).FOnMouseDown) and (event^._type = GDK_BUTTON_PRESS) + if Assigned(TGTKControl(user_data).FOnMouseDown) and (event^.type_ = GDK_BUTTON_PRESS) then TGTKControl(user_data).FOnMouseDown(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept); - if Assigned(TGTKControl(user_data).FOnDblClick) and (event^._type = GDK_2BUTTON_PRESS) + if Assigned(TGTKControl(user_data).FOnDblClick) and (event^.type_ = GDK_2BUTTON_PRESS) then TGTKControl(user_data).FOnDblClick(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept); Result := not Accept; if Accept then @@ -463,17 +444,13 @@ begin end; function TGTKControl.GetTooltip: string; -var text: PChar; begin - text := nil; - Result := ''; - g_object_get(PGObject(FWidget), 'tooltip-text', [@text, nil]); - if text <> nil then Result := string(text); + Result := gtk_widget_get_tooltip_text(FWidget); end; procedure TGTKControl.SetTooltip(Value: string); begin - g_object_set(PGObject(FWidget), 'tooltip-text', [PChar(Value), nil]) + gtk_widget_set_tooltip_text(FWidget, PChar(Value)); end; procedure TGTKControl.SetFocus; @@ -520,9 +497,9 @@ var Shift: TShiftState; begin Accept := True; Shift := []; - if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); - if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); - if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); + if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift); + if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl); + if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt); if KeyDown then begin if Assigned(TGTKControl(user_data).FOnKeyDown) then TGTKControl(user_data).FOnKeyDown(TGTKControl(user_data), event^.keyval, Shift, Accept); @@ -597,66 +574,6 @@ begin end; end; -procedure TGTKControl.SetForegroundColor(Red, Green, Blue: word); -begin - gtk_widget_modify_fg(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetForegroundColor(State: integer; Red, Green, Blue: word); -begin - gtk_widget_modify_fg(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetForegroundColor(State: integer; Color: PGdkColor); -begin - gtk_widget_modify_fg(FWidget, State, Color); -end; - -procedure TGTKControl.SetForegroundColor(Color: PGdkColor); -begin - gtk_widget_modify_fg(FWidget, 0, Color); -end; - -procedure TGTKControl.SetBackgroundColor(Red, Green, Blue: word); -begin - gtk_widget_modify_bg(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetBackgroundColor(State: integer; Red, Green, Blue: word); -begin - gtk_widget_modify_bg(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetBackgroundColor(State: integer; Color: PGdkColor); -begin - gtk_widget_modify_bg(FWidget, State, Color); -end; - -procedure TGTKControl.SetBackgroundColor(Color: PGdkColor); -begin - gtk_widget_modify_bg(FWidget, 0, Color); -end; - -procedure TGTKControl.SetTextColor(Red, Green, Blue: word); -begin - gtk_widget_modify_text(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetTextColor(State: integer; Red, Green, Blue: word); -begin - gtk_widget_modify_text(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetBaseColor(Red, Green, Blue: word); -begin - gtk_widget_modify_base(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); -end; - -procedure TGTKControl.SetBaseColor(State: integer; Red, Green, Blue: word); -begin - gtk_widget_modify_base(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); -end; - procedure TGTKControl.SetOnMouseDown(Value: TGDKMouseEvent); begin if @FOnMouseDown <> @Value then begin @@ -692,9 +609,9 @@ var Shift: TShiftState; Accept: boolean; begin Shift := []; - if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); - if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); - if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); + if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift); + if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl); + if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt); Accept := True; if Assigned(TGTKControl(user_data).FOnMouseUp) then TGTKControl(user_data).FOnMouseUp(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept); @@ -719,12 +636,12 @@ begin Result := False; if event^.is_hint <> 0 then Exit; Shift := []; - if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); - if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); - if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); - if event^.state and GDK_BUTTON1_MASK = GDK_BUTTON1_MASK then Button := mbLeft else - if event^.state and GDK_BUTTON2_MASK = GDK_BUTTON2_MASK then Button := mbMiddle else - if event^.state and GDK_BUTTON3_MASK = GDK_BUTTON3_MASK then Button := mbRight else + if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift); + if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl); + if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt); + if GDK_BUTTON1_MASK in event^.state then Button := mbLeft else + if GDK_BUTTON2_MASK in event^.state then Button := mbMiddle else + if GDK_BUTTON3_MASK in event^.state then Button := mbRight else Button := mbNoButton; if Assigned(TGTKControl(user_data).FOnMouseMove) then TGTKControl(user_data).FOnMouseMove(TGTKControl(user_data), Button, Shift, Trunc(event^.x), Trunc(event^.y), Accept); @@ -760,16 +677,6 @@ begin gtk_widget_queue_draw(FWidget); end; -procedure TGTKControl.SetAlignment(XAlign, YAlign: Double); -begin - gtk_misc_set_alignment(PGtkMisc(FWidget), XAlign, YAlign); -end; - -procedure TGTKControl.SetPadding(XPad, YPad: integer); -begin - gtk_misc_set_padding(PGtkMisc(FWidget), XPad, YPad); -end; - function TGTKControl_expose_event(widget: PGtkWidget; event: PGdkEventExpose; user_data: gpointer):gboolean; cdecl; var Accept: boolean; begin @@ -791,12 +698,12 @@ end; function TGTKControl.GetControlState: TGTKControlState; begin - Result := TGTKControlState(FWidget^.state); + Result := TGTKControlState(gtk_widget_get_state_flags(FWidget)); end; procedure TGTKControl.SetControlState(Value: TGTKControlState); begin - gtk_widget_set_state(FWidget, integer(Value)); + gtk_widget_set_state_flags(FWidget, TGtkStateFlags(Value), True); end; function TGTKControl.GetData(Key: string): Pointer; @@ -809,6 +716,67 @@ begin g_object_set_data(PGObject(FWidget), PChar(Key), Value); end; +function TGTKControl.GetHAlign: TGTKAlignment; +begin + Result := TGTKAlignment(gtk_widget_get_halign(FWidget)); +end; + +function TGTKControl.GetVAlign: TGTKAlignment; +begin + Result := TGTKAlignment(gtk_widget_get_valign(FWidget)); +end; + +procedure TGTKControl.SetHAlign(Value: TGTKAlignment); +begin + gtk_widget_set_halign(FWidget, TGtkAlign(Value)); +end; + +procedure TGTKControl.SetVAlign(Value: TGTKAlignment); +begin + gtk_widget_set_valign(FWidget, TGtkAlign(Value)); +end; + +function TGTKControl.GetMarginStart: Integer; +begin + Result := gtk_widget_get_margin_start(FWidget); +end; + +function TGTKControl.GetMarginEnd: Integer; +begin + Result := gtk_widget_get_margin_end(FWidget); +end; + +function TGTKControl.GetMarginTop: Integer; +begin + Result := gtk_widget_get_margin_top(FWidget); +end; + +function TGTKControl.GetMarginBottom: Integer; +begin + Result := gtk_widget_get_margin_bottom(FWidget); +end; + +procedure TGTKControl.SetMarginStart(Value: Integer); +begin + gtk_widget_set_margin_start(FWidget, Value); +end; + +procedure TGTKControl.SetMarginEnd(Value: Integer); +begin + gtk_widget_set_margin_end(FWidget, Value); +end; + +procedure TGTKControl.SetMarginTop(Value: Integer); +begin + gtk_widget_set_margin_top(FWidget, Value); +end; + +procedure TGTKControl.SetMarginBottom(Value: Integer); +begin + gtk_widget_set_margin_bottom(FWidget, Value); +end; + + (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKContainer.Create(AOwner: TComponent); @@ -889,12 +857,12 @@ end; procedure TGTKBox.AddControl(Control: TGTKControl); begin - gtk_box_pack_start_defaults(PGtkBox(FWidget), Control.FWidget); + gtk_box_pack_start(PGtkBox(FWidget), Control.FWidget, True, True, 0); end; procedure TGTKBox.AddControlEnd(Control: TGTKControl); begin - gtk_box_pack_end_defaults(PGtkBox(FWidget), Control.FWidget); + gtk_box_pack_end(PGtkBox(FWidget), Control.FWidget, True, True, 0); end; procedure TGTKBox.AddControlEx(Control: TGTKControl; Expand, Fill: boolean; Padding: integer); @@ -933,7 +901,7 @@ constructor TGTKHBox.Create(AOwner: TComponent); begin inherited Create(AOwner); if ClassName = 'TGTKHBox' then begin - FWidget := gtk_hbox_new(True, 0); + FWidget := gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); Show; end; end; @@ -949,7 +917,7 @@ constructor TGTKVBox.Create(AOwner: TComponent); begin inherited Create(AOwner); if ClassName = 'TGTKVBox' then begin - FWidget := gtk_vbox_new(False, 0); + FWidget := gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); Show; end; end; @@ -961,32 +929,6 @@ end; (********************************************************************************************************************************) (********************************************************************************************************************************) -constructor TGTKTooltips.Create(AOwner: TComponent); -begin - inherited Create(AOwner); - FObject := gtk_tooltips_new; -end; - -destructor TGTKTooltips.Destroy; -begin - inherited Destroy; -end; - -function TGTKTooltips.GetEnabled: boolean; -begin - // FIXME: This is horrible expression - Result := Boolean(gtk2.enabled(FObject^)); -end; - -procedure TGTKTooltips.SetEnabled(Value: boolean); -begin - if Value then gtk_tooltips_enable(FObject) - else gtk_tooltips_disable(FObject); -end; - - -(********************************************************************************************************************************) -(********************************************************************************************************************************) constructor TGTKEventBox.Create(AOwner: TComponent); begin inherited Create(AOwner); @@ -1001,95 +943,63 @@ end; (********************************************************************************************************************************) (********************************************************************************************************************************) -constructor TGTKTable.Create(AOwner: TComponent); +constructor TGTKGrid.Create(AOwner: TComponent); begin inherited Create(AOwner); - FWidget := gtk_table_new(0, 0, False); + FWidget := gtk_grid_new(); Show; end; -destructor TGTKTable.Destroy; +destructor TGTKGrid.Destroy; begin inherited Destroy; end; -function TGTKTable.GetRowCount: integer; -var nrows: guint; -begin - nrows := 1; - g_object_get(PGObject(FWidget), 'n-rows', [@nrows, nil]); - Result := nrows; -end; - -procedure TGTKTable.SetRowCount(Value: integer); -begin - SetRowColCount(Value, ColCount); -end; - -function TGTKTable.GetColCount: integer; -var ncols: guint; +function TGTKGrid.GetRowSpacing: integer; begin - ncols := 1; - g_object_get(PGObject(FWidget), 'n-columns', [@ncols, nil]); - Result := ncols; + Result := gtk_grid_get_row_spacing(PGtkGrid(FWidget)); end; -procedure TGTKTable.SetColCount(Value: integer); +procedure TGTKGrid.SetRowSpacing(Value: integer); begin - SetRowColCount(RowCount, Value); + gtk_grid_set_row_spacing(PGtkGrid(FWidget), Value); end; -procedure TGTKTable.SetRowColCount(Rows, Cols: integer); +function TGTKGrid.GetColSpacing: integer; begin - gtk_table_resize(PGtkTable(FWidget), Rows, Cols); + Result := gtk_grid_get_column_spacing(PGtkGrid(FWidget)); end; -function TGTKTable.GetRowSpacing: integer; +procedure TGTKGrid.SetColSpacing(Value: integer); begin - Result := gtk_table_get_default_row_spacing(PGtkTable(FWidget)); + gtk_grid_set_column_spacing(PGtkGrid(FWidget), Value); end; -procedure TGTKTable.SetRowSpacing(Value: integer); +function TGTKGrid.GetRowHomogeneous: boolean; begin - gtk_table_set_row_spacings(PGtkTable(FWidget), Value); + Result := gtk_grid_get_row_homogeneous(PGtkGrid(FWidget)); end; -function TGTKTable.GetColSpacing: integer; +function TGTKGrid.GetColHomogeneous: boolean; begin - Result := gtk_table_get_default_col_spacing(PGtkTable(FWidget)); + Result := gtk_grid_get_column_homogeneous(PGtkGrid(FWidget)); end; -procedure TGTKTable.SetColSpacing(Value: integer); +procedure TGTKGrid.SetRowHomogeneous(Value: boolean); begin - gtk_table_set_col_spacings(PGtkTable(FWidget), Value); + gtk_grid_set_row_homogeneous(PGtkGrid(FWidget), Value); end; -function TGTKTable.GetHomogeneous: boolean; +procedure TGTKGrid.SetColHomogeneous(Value: boolean); begin - Result := gtk_table_get_homogeneous(PGtkTable(FWidget)); + gtk_grid_set_column_homogeneous(PGtkGrid(FWidget), Value); end; -procedure TGTKTable.SetHomogeneous(Value: boolean); +procedure TGTKGrid.AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl); begin - gtk_table_set_homogeneous(PGtkTable(FWidget), Value); + gtk_grid_attach(PGtkGrid(FWidget), Control.FWidget, Column, Row, NumCols, NumRows); end; -procedure TGTKTable.AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XPadding, YPadding: integer); -begin - gtk_table_attach(PGtkTable(FWidget), Control.FWidget, Column, Column + NumCols, Row, Row + NumRows, - GTK_EXPAND or GTK_SHRINK or GTK_FILL, GTK_EXPAND or GTK_SHRINK or GTK_FILL, XPadding, YPadding); -end; - -procedure TGTKTable.AddControlEx(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XAttachOptions, - YAttachOptions: TGTKTableAttachOptions; XPadding, YPadding: integer); -begin - gtk_table_attach(PGtkTable(FWidget), Control.FWidget, Column, Column + NumCols, Row, Row + NumRows, - (GTK_EXPAND*Ord(taoExpand in XAttachOptions)) or (GTK_SHRINK*Ord(taoShrink in XAttachOptions)) or (GTK_FILL*Ord(taoFill in XAttachOptions)), - (GTK_EXPAND*Ord(taoExpand in YAttachOptions)) or (GTK_SHRINK*Ord(taoShrink in YAttachOptions)) or (GTK_FILL*Ord(taoFill in YAttachOptions)), - XPadding, YPadding); -end; - - (********************************************************************************************************************************) (********************************************************************************************************************************) |
