summaryrefslogtreecommitdiff
path: root/libgtk_kylix/GTKStdCtrls.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2024-12-24 12:41:48 +0100
committerTomas Bzatek <tbzatek@redhat.com>2025-11-27 19:39:51 +0100
commit1b2b4bb4f3ecc034a6e9364d8768e50b167a9680 (patch)
tree065ddde53b64f7957a30b7dc9d83a748f309868c /libgtk_kylix/GTKStdCtrls.pas
parentb9703b29819b619037cc282d719c187e51bacd30 (diff)
downloadtuxcmd-1b2b4bb4f3ecc034a6e9364d8768e50b167a9680.tar.xz
Rough GTK3 port
Diffstat (limited to 'libgtk_kylix/GTKStdCtrls.pas')
-rw-r--r--libgtk_kylix/GTKStdCtrls.pas262
1 files changed, 36 insertions, 226 deletions
diff --git a/libgtk_kylix/GTKStdCtrls.pas b/libgtk_kylix/GTKStdCtrls.pas
index 33ca7a6..2bca3bb 100644
--- a/libgtk_kylix/GTKStdCtrls.pas
+++ b/libgtk_kylix/GTKStdCtrls.pas
@@ -1,6 +1,5 @@
(*
GTK-Kylix Library: GTKStdCtrls - Standard visual controls (such as buttons, labels, entry)
- Version 0.6.24 (last updated 2008-11-17)
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 GTKStdCtrls;
interface
-uses gtk2, glib2, lazglib2, lazgobject2, Classes, GTKControls, GTKConsts, GTKClasses;
+uses lazglib2, lazgobject2, lazgtk3, Classes, GTKControls, GTKConsts;
type
@@ -34,51 +33,24 @@ type
private
FOnClick: TNotifyEvent;
function GetCaption: string;
- function GetUseStock: boolean;
function GetUseUnderline: boolean;
function GetBorderStyle: TGTKBorderStyle;
procedure SetCaption(Value: string);
- procedure SetUseStock(Value: boolean);
procedure SetUseUnderline(Value: boolean);
procedure SetBorderStyle(Value: TGTKBorderStyle);
public
constructor Create(AOwner: TComponent); override;
- constructor CreateFromStock(AOwner: TComponent; const StockID: PChar);
+ constructor CreateFromIconName(AOwner: TComponent; const IconName: string);
destructor Destroy; override;
published
property Caption: string read GetCaption write SetCaption;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
- property UseStock: boolean read GetUseStock write SetUseStock;
property UseUnderline: boolean read GetUseUnderline write SetUseUnderline;
property BorderStyle: TGTKBorderStyle read GetBorderStyle write SetBorderStyle;
end;
-(****************************************** TGTKMISC ****************************************************************************)
- TGTKMisc = class(TGTKControl)
- private
- function GetXAlign: Single;
- function GetYAlign: Single;
- function GetXPadding: integer;
- function GetYPadding: integer;
- procedure SetXAlign(Value: Single);
- procedure SetYAlign(Value: Single);
- procedure SetXPadding(Value: integer);
- procedure SetYPadding(Value: integer);
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure SetAlignment(XAlign, YAlign : Single);
- procedure SetPadding(XPadding, YPadding : integer);
- published
- property XAlign: Single read GetXAlign write SetXAlign;
- property YAlign: Single read GetYAlign write SetYAlign;
- property XPadding: integer read GetXPadding write SetXPadding;
- property YPadding: integer read GetYPadding write SetYPadding;
- end;
-
(****************************************** TGTKLABEL **************************************************************************)
- TGTKAlignment = (taLeftJustify, taRightJustify, taCenter, taFill);
- TGTKLabel = class(TGTKMisc)
+ TGTKLabel = class(TGTKControl)
private
FLinked: boolean;
function GetCaption: string;
@@ -87,6 +59,8 @@ type
function GetLineWrap: boolean;
function GetUseUnderline: boolean;
function GetSelectable: boolean;
+ function GetXAlign: Single;
+ function GetYAlign: Single;
procedure SetCaption(Value: string);
procedure SetAlignment(Value: TGTKAlignment);
procedure SetUseMarkup(Value: boolean);
@@ -94,6 +68,8 @@ type
procedure SetUseUnderline(Value: boolean);
procedure SetFocusControl(Value: TGTKControl);
procedure SetSelectable(Value: boolean);
+ procedure SetXAlign(Value: Single);
+ procedure SetYAlign(Value: Single);
public
constructor Create(AOwner: TComponent); override;
constructor CreateFromWidget(AOwner: TComponent; Widget: PGtkWidget);
@@ -107,6 +83,8 @@ type
property UseUnderline: boolean read GetUseUnderline write SetUseUnderline;
property FocusControl: TGTKControl write SetFocusControl;
property Selectable: boolean read GetSelectable write SetSelectable;
+ property XAlign: Single read GetXAlign write SetXAlign;
+ property YAlign: Single read GetYAlign write SetYAlign;
end;
(****************************************** TGTKTOGGLEBUTTON ********************************************************************)
@@ -223,30 +201,6 @@ type
property Visibility: boolean read GetVisibility write SetVisibility;
end;
-(****************************************** TGTKCOMBO **************************************************************************)
- TGTKCombo = class(TGTKHBox)
- private
- procedure ItemsChanged(Sender: TObject);
- function GetAllowEmpty: boolean;
- function GetMatchValue: boolean;
- function GetCaseSensitive: boolean;
- procedure SetAllowEmpty(Value: boolean);
- procedure SetMatchValue(Value: boolean);
- procedure SetCaseSensitive(Value: boolean);
- public
- Items: TGList;
- Entry: TGTKEntry;
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure UpdateItems;
- procedure SetPolicy(MatchValue, AllowEmpty: boolean);
- procedure DisableActivate;
- published
- property AllowEmpty: boolean read GetAllowEmpty write SetAllowEmpty;
- property MatchValue: boolean read GetMatchValue write SetMatchValue;
- property CaseSensitive: boolean read GetCaseSensitive write SetCaseSensitive;
- end;
-
(****************************************** TGTKSPINEDIT ************************************************************************)
TGTKSpinEdit = class(TGTKEntry)
private
@@ -302,12 +256,12 @@ begin
end;
end;
-constructor TGTKButton.CreateFromStock(AOwner: TComponent; const StockID: PChar);
+constructor TGTKButton.CreateFromIconName(AOwner: TComponent; const IconName: string);
begin
inherited Create(AOwner);
FOnClick := nil;
if ClassName = 'TGTKButton' then begin
- FWidget := gtk_button_new_from_stock(StockID);
+ FWidget := gtk_button_new_from_icon_name(PChar(IconName), GTK_ICON_SIZE_BUTTON);
g_signal_connect_data(PGObject(FWidget), 'clicked', TGCallback(@TGTKButton_OnClick), Self, nil, G_CONNECT_DEFAULT);
Show;
end;
@@ -320,22 +274,12 @@ end;
function TGTKButton.GetCaption: string;
begin
- Result := String(gtk_label_get_text(PGtkLabel(ChildControl)));
+ Result := String(gtk_button_get_label(PGtkButton(FWidget)));
end;
procedure TGTKButton.SetCaption(Value: string);
begin
- gtk_label_set_text_with_mnemonic(PGtkLabel(ChildControl), PChar(Value));
-end;
-
-function TGTKButton.GetUseStock: boolean;
-begin
- Result := gtk_button_get_use_stock(PGtkButton(FWidget));
-end;
-
-procedure TGTKButton.SetUseStock(Value: boolean);
-begin
- gtk_button_set_use_stock(PGtkButton(FWidget), Value);
+ gtk_button_set_label(PGtkButton(FWidget), PChar(Value));
end;
function TGTKButton.GetUseUnderline: boolean;
@@ -355,84 +299,7 @@ end;
procedure TGTKButton.SetBorderStyle(Value: TGTKBorderStyle);
begin
- gtk_button_set_relief(PGtkButton(FWidget), integer(Value));
-end;
-
-(********************************************************************************************************************************)
-(********************************************************************************************************************************)
-constructor TGTKMisc.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
-end;
-
-destructor TGTKMisc.Destroy;
-begin
- inherited Destroy;
-end;
-
-procedure TGTKMisc.SetAlignment(XAlign, YAlign : Single);
-begin
- gtk_misc_set_alignment(PGtkMisc(FWidget), XAlign, YAlign);
-end;
-
-procedure _gtk_misc_get_alignment(misc:PGtkMisc; xalign:Pgfloat; yalign:Pgfloat); cdecl; external gtklib name 'gtk_misc_get_alignment';
-procedure _gtk_misc_get_padding(misc:PGtkMisc; xpad:Pgint; ypad:Pgint); cdecl; external gtklib name 'gtk_misc_get_padding';
-
-function TGTKMisc.GetXAlign: Single;
-var axalign: gfloat;
-begin
- axalign := 0.0;
- _gtk_misc_get_alignment(PGtkMisc(FWidget), @axalign, nil);
- Result := axalign;
-end;
-
-procedure TGTKMisc.SetXAlign(Value: Single);
-begin
- SetAlignment(Value, YAlign);
-end;
-
-function TGTKMisc.GetYAlign: Single;
-var ayalign: gfloat;
-begin
- ayalign := 0.0;
- _gtk_misc_get_alignment(PGtkMisc(FWidget), nil, @ayalign);
- Result := ayalign;
-end;
-
-procedure TGTKMisc.SetYAlign(Value: Single);
-begin
- SetAlignment(XAlign, Value);
-end;
-
-procedure TGTKMisc.SetPadding(XPadding, YPadding : integer);
-begin
- gtk_misc_set_padding(PGtkMisc(FWidget), XPadding, YPadding);
-end;
-
-function TGTKMisc.GetXPadding: integer;
-var xpad: gint;
-begin
- xpad := 0;
- _gtk_misc_get_padding(PGtkMisc(FWidget), @xpad, nil);
- Result := xpad;
-end;
-
-procedure TGTKMisc.SetXPadding(Value: integer);
-begin
- SetPadding(Value, YPadding);
-end;
-
-function TGTKMisc.GetYPadding: integer;
-var ypad: gint;
-begin
- ypad := 0;
- _gtk_misc_get_padding(PGtkMisc(FWidget), nil, @ypad);
- Result := ypad;
-end;
-
-procedure TGTKMisc.SetYPadding(Value: integer);
-begin
- SetPadding(XPadding, Value);
+ gtk_button_set_relief(PGtkButton(FWidget), TGtkReliefStyle(Value));
end;
(********************************************************************************************************************************)
@@ -528,6 +395,26 @@ begin
gtk_label_set_selectable(PGtkLabel(FWidget), Value);
end;
+function TGTKLabel.GetXAlign: Single;
+begin
+ Result := gtk_label_get_xalign(PGtkLabel(FWidget));
+end;
+
+procedure TGTKLabel.SetXAlign(Value: Single);
+begin
+ gtk_label_set_xalign(PGtkLabel(FWidget), Value);
+end;
+
+function TGTKLabel.GetYAlign: Single;
+begin
+ Result := gtk_label_get_yalign(PGtkLabel(FWidget));
+end;
+
+procedure TGTKLabel.SetYAlign(Value: Single);
+begin
+ gtk_label_set_yalign(PGtkLabel(FWidget), Value);
+end;
+
(********************************************************************************************************************************)
(********************************************************************************************************************************)
procedure TGTKToggleButton_OnToggled(ToggleButton: PGtkToggleButton; user_data: Pgpointer); cdecl;
@@ -689,7 +576,7 @@ end;
procedure TGTKFrame.SetShadowType(Value: TGTKShadowType);
begin
- gtk_frame_set_shadow_type(PGtkFrame(FWidget), gtk2.TGtkShadowType(Value));
+ gtk_frame_set_shadow_type(PGtkFrame(FWidget), lazgtk3.TGtkShadowType(Value));
end;
(********************************************************************************************************************************)
@@ -717,7 +604,7 @@ end;
procedure TGTKEditable.SetEditable(Value: boolean);
begin
- gtk_entry_set_editable(PGtkEntry(FWidget), Value);
+ gtk_editable_set_editable(PGtkEditable(FWidget), Value);
end;
procedure TGTKEditable.CutClipboard;
@@ -833,83 +720,6 @@ end;
(********************************************************************************************************************************)
(********************************************************************************************************************************)
-constructor TGTKCombo.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FWidget := gtk_combo_new;
- Items := TGList.Create(Self);
- Items.Notify := @ItemsChanged;
- Entry := TGTKEntry.CreateFromWidget(Self, PGtkCombo(FWidget)^.entry);
- Show;
-end;
-
-destructor TGTKCombo.Destroy;
-begin
- Items.Free;
- inherited Destroy;
-end;
-
-procedure TGTKCombo.UpdateItems;
-begin
- gtk_combo_set_popdown_strings(PGtkCombo(FWidget), GLIB2.PGList(Items.FList));
-end;
-
-function TGTKCombo.GetAllowEmpty: boolean;
-var b: gboolean;
-begin
- b := False;
- g_object_get(PGObject(FWidget), 'allow-empty', [@b, nil]);
- Result := b;
-end;
-
-procedure TGTKCombo.SetAllowEmpty(Value: boolean);
-begin
- g_object_set(PGObject(FWidget), 'allow-empty', [Ord(Value), nil]);
-end;
-
-function TGTKCombo.GetMatchValue: boolean;
-var b: gboolean;
-begin
- b := False;
- g_object_get(PGObject(FWidget), 'value-in-list', [@b, nil]);
- Result := b;
-end;
-
-procedure TGTKCombo.SetMatchValue(Value: boolean);
-begin
- g_object_set(PGObject(FWidget), 'value-in-list', [Ord(Value), nil]);
-end;
-
-procedure TGTKCombo.SetPolicy(MatchValue, AllowEmpty: boolean);
-begin
- gtk_combo_set_value_in_list(PGtkCombo(FWidget), MatchValue, AllowEmpty);
-end;
-
-function TGTKCombo.GetCaseSensitive: boolean;
-var b: gboolean;
-begin
- b := False;
- g_object_get(PGObject(FWidget), 'case-sensitive', [@b, nil]);
- Result := b;
-end;
-
-procedure TGTKCombo.SetCaseSensitive(Value: boolean);
-begin
- gtk_combo_set_case_sensitive(PGtkCombo(FWidget), Value);
-end;
-
-procedure TGTKCombo.DisableActivate;
-begin
- gtk_combo_disable_activate(PGtkCombo(FWidget));
-end;
-
-procedure TGTKCombo.ItemsChanged(Sender: TObject);
-begin
- UpdateItems;
-end;
-
-(********************************************************************************************************************************)
-(********************************************************************************************************************************)
constructor TGTKSpinEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);