summaryrefslogtreecommitdiff
path: root/libgtk_kylix/GTKExtCtrls.pas
diff options
context:
space:
mode:
Diffstat (limited to 'libgtk_kylix/GTKExtCtrls.pas')
-rw-r--r--libgtk_kylix/GTKExtCtrls.pas238
1 files changed, 95 insertions, 143 deletions
diff --git a/libgtk_kylix/GTKExtCtrls.pas b/libgtk_kylix/GTKExtCtrls.pas
index 777f8ed..4cb925e 100644
--- a/libgtk_kylix/GTKExtCtrls.pas
+++ b/libgtk_kylix/GTKExtCtrls.pas
@@ -1,6 +1,5 @@
(*
GTK-Kylix Library: GTKExtCtrls - Extended visual controls
- Version 0.6.23 (last updated 2008-08-23)
Copyright (C) 2004 Tomas Bzatek <tbzatek@users.sourceforge.net>
This library is free software; you can redistribute it and/or
@@ -24,7 +23,7 @@ unit GTKExtCtrls;
interface
-uses gtk2, lazglib2, lazgobject2, Classes, GTKControls, GTKStdCtrls, GTKMenus;
+uses lazglib2, lazgobject2, lazgtk3, Classes, GTKControls, GTKStdCtrls, GTKMenus;
type
@@ -47,24 +46,6 @@ type
constructor Create(AOwner: TComponent); override;
end;
-(****************************************** TGTKHANDLEBOX ***********************************************************************)
- TGTKHandleBox = class(TGTKBin)
- private
- function GetShadowType: TGTKShadowType;
- function GetHandlePosition: TGTKPosition;
- function GetSnapEdge: TGTKPosition;
- procedure SetShadowType(Value: TGTKShadowType);
- procedure SetHandlePosition(Value: TGTKPosition);
- procedure SetSnapEdge(Value: TGTKPosition);
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- published
- property ShadowType: TGTKShadowType read GetShadowType write SetShadowType;
- property HandlePosition: TGTKPosition read GetHandlePosition write SetHandlePosition;
- property SnapEdge: TGTKPosition read GetSnapEdge write SetSnapEdge;
- end;
-
(****************************************** TGTKPROGRESSBAR *********************************************************************)
TGTKProgressBarOrientation = (poLeftToRight, poRightToLeft, poBottomToTop, poTopToBottom);
TGTKProgressBar = class(TGTKControl)
@@ -73,12 +54,10 @@ type
function GetText: string;
function GetFraction: Double;
function GetPulseStep: Double;
- function GetOrientation: TGTKProgressBarOrientation;
function GetValue: Int64;
procedure SetText(Value: string);
procedure SetFraction(Value: Double);
procedure SetPulseStep(Value: Double);
- procedure SetOrientation(Value: TGTKProgressBarOrientation);
procedure SetValue(Value: Int64);
public
constructor Create(AOwner: TComponent); override;
@@ -88,7 +67,6 @@ type
property Text: string read GetText write SetText;
property Fraction: Double read GetFraction write SetFraction;
property PulseStep: Double read GetPulseStep write SetPulseStep;
- property Orientation: TGTKProgressBarOrientation read GetOrientation write SetOrientation;
property Max: Int64 read FMax write FMax;
property Value: Int64 read GetValue write SetValue;
end;
@@ -147,10 +125,6 @@ type
procedure SetCaption(PageNo: integer; Caption: string);
procedure NextPage;
procedure PrevPage;
- function GetExpandTab(PageNo: integer): boolean;
- procedure SetExpandTab(PageNo: integer; Value: boolean);
- function GetFillTab(PageNo: integer): boolean;
- procedure SetFillTab(PageNo: integer; Value: boolean);
function GetTabLabel(PageNo: integer): TGTKLabel;
published
property PageIndex: integer read GetPageIndex write SetPageIndex;
@@ -161,23 +135,45 @@ type
property OnSwitchPage: TNotifyEvent read FOnSwitchPage write FOnSwitchPage;
end;
-(****************************************** TGTKOPTIONMENU **********************************************************************)
- TGTKOptionMenu = class(TGTKButton)
+(****************************************** TGTKCOMBOBOX ***********************************************************************)
+ TGTKComboBox = class(TGTKBin)
private
- FItems: TGTKMenuItem;
FOnChanged: TNotifyEvent;
- procedure ItemsChanged(Sender: TObject);
function GetItemIndex: integer;
+ function GetItemID: string;
procedure SetItemIndex(Value: integer);
+ procedure SetItemID(Value: string);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
+ procedure AppendItem(const Text: string);
+ procedure AppendItemID(const ID: string; const Text: string);
+ procedure ClearItems();
published
- property Items: TGTKMenuItem read FItems;
property ItemIndex: integer read GetItemIndex write SetItemIndex;
+ property ItemID: string read GetItemID write SetItemID;
property OnChanged: TNotifyEvent read FOnChanged write FOnChanged;
end;
+(****************************************** TGTKCOMBOBOXTEXT *******************************************************************)
+ TGTKComboBoxText = class(TGTKComboBox)
+ private
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ published
+ end;
+
+(****************************************** TGTKCOMBOBOXENTRY *******************************************************************)
+ TGTKComboBoxEntry = class(TGTKComboBox)
+ private
+ public
+ Entry: TGTKEntry;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ published
+ end;
+
(****************************************** TGTKSCROLLEDWINDOW ******************************************************************)
TGTKScrollBarPolicy = (sbAlways, sbAutomatic, sbNever);
TGTKScrolledWindow = class(TGTKBin)
@@ -199,7 +195,7 @@ type
end;
(****************************************** TGTKBUTTONBOX ***********************************************************************)
- TGTKButtonBoxLayout = (blDefault, blSpread, blEdge, blStart, blEnd);
+ TGTKButtonBoxLayout = (blDefault, blSpread, blEdge, blStart, blEnd, blCenter, blExpand);
TGTKButtonBox = class(TGTKBox)
private
function GetLayout: TGTKButtonBoxLayout;
@@ -245,7 +241,7 @@ end;
constructor TGTKHSeparator.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_hseparator_new;
+ FWidget := gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
Show;
end;
@@ -254,56 +250,12 @@ end;
constructor TGTKVSeparator.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_vseparator_new;
+ FWidget := gtk_separator_new(GTK_ORIENTATION_VERTICAL);
Show;
end;
(********************************************************************************************************************************)
(********************************************************************************************************************************)
-constructor TGTKHandleBox.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FWidget := gtk_handle_box_new;
- Show;
-end;
-
-destructor TGTKHandleBox.Destroy;
-begin
- inherited Destroy;
-end;
-
-function TGTKHandleBox.GetShadowType: TGTKShadowType;
-begin
- Result := TGTKShadowType(gtk_handle_box_get_shadow_type(PGtkHandleBox(FWidget)));
-end;
-
-procedure TGTKHandleBox.SetShadowType(Value: TGTKShadowType);
-begin
- gtk_handle_box_set_shadow_type(PGtkHandleBox(FWidget), gtk2.TGtkShadowType(Value));
-end;
-
-function TGTKHandleBox.GetHandlePosition: TGTKPosition;
-begin
- Result := TGTKPosition(gtk_handle_box_get_handle_position(PGtkHandleBox(FWidget)));
-end;
-
-procedure TGTKHandleBox.SetHandlePosition(Value: TGTKPosition);
-begin
- gtk_handle_box_set_handle_position(PGtkHandleBox(FWidget), Integer(Value));
-end;
-
-function TGTKHandleBox.GetSnapEdge: TGTKPosition;
-begin
- Result := TGTKPosition(gtk_handle_box_get_snap_edge(PGtkHandleBox(FWidget)));
-end;
-
-procedure TGTKHandleBox.SetSnapEdge(Value: TGTKPosition);
-begin
- gtk_handle_box_set_snap_edge(PGtkHandleBox(FWidget), Integer(Value));
-end;
-
-(********************************************************************************************************************************)
-(********************************************************************************************************************************)
constructor TGTKProgressBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
@@ -352,16 +304,6 @@ begin
gtk_progress_bar_set_pulse_step(PGtkProgressbar(FWidget), Value);
end;
-function TGTKProgressBar.GetOrientation: TGTKProgressBarOrientation;
-begin
- Result := TGTKProgressBarOrientation(gtk_progress_bar_get_orientation(PGtkProgressBar(FWidget)));
-end;
-
-procedure TGTKProgressBar.SetOrientation(Value: TGTKProgressBarOrientation);
-begin
- gtk_progress_bar_set_orientation(PGtkProgressbar(FWidget), gtk2.TGtkProgressBarOrientation(Value));
-end;
-
function TGTKProgressBar.GetValue: Int64;
begin
Result := Round(Fraction * Max);
@@ -419,7 +361,7 @@ end;
constructor TGTKHPaned.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_hpaned_new;
+ FWidget := gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
Show;
end;
@@ -428,14 +370,14 @@ end;
constructor TGTKVPaned.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_vpaned_new;
+ FWidget := gtk_paned_new(GTK_ORIENTATION_VERTICAL);
Show;
end;
(********************************************************************************************************************************)
(********************************************************************************************************************************)
-procedure TGTKNotebook_switch_page(notebook: PGtkNotebook; page: PGtkNotebookPage; page_num: guint; user_data: gpointer); cdecl;
+procedure TGTKNotebook_switch_page(notebook: PGtkNotebook; page: PGtkWidget; page_num: guint; user_data: gpointer); cdecl;
begin
if Assigned(user_data) and Assigned(TGTKNotebook(user_data).FOnSwitchPage) then TGTKNotebook(user_data).FOnSwitchPage(TObject(user_data));
end;
@@ -454,11 +396,9 @@ begin
inherited Destroy;
end;
-function _gtk_notebook_append_page(notebook:PGtkNotebook; child:PGtkWidget; tab_label:PGtkWidget): gint; cdecl; external gtklib name 'gtk_notebook_append_page';
-
function TGTKNotebook.AppendPage(Child: TGTKControl; Caption: string): integer;
begin
- Result := _gtk_notebook_append_page(PGtkNotebook(FWidget), Child.FWidget, nil);
+ Result := gtk_notebook_append_page(PGtkNotebook(FWidget), Child.FWidget, nil);
gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), Child.FWidget, PChar(Caption));
end;
@@ -484,7 +424,7 @@ end;
procedure TGTKNotebook.SetPageIndex(Value: integer);
begin
- gtk_notebook_set_page(PGtkNotebook(FWidget), Value);
+ gtk_notebook_set_current_page(PGtkNotebook(FWidget), Value);
end;
procedure TGTKNotebook.NextPage;
@@ -504,7 +444,7 @@ end;
procedure TGTKNotebook.SetTabPosition(Value: TGTKPosition);
begin
- gtk_notebook_set_tab_pos(PGtkNotebook(FWidget), Integer(Value));
+ gtk_notebook_set_tab_pos(PGtkNotebook(FWidget), TGtkPositionType(Value));
end;
function TGTKNotebook.GetShowTabs: boolean;
@@ -537,79 +477,91 @@ begin
gtk_notebook_set_scrollable(PGtkNotebook(FWidget), Value);
end;
-procedure _gtk_notebook_query_tab_label_packing(notebook:PGtkNotebook;child:PGtkWidget;expand:Pgboolean;fill:Pgboolean;pack_type:PGtkPackType); cdecl; external gtklib name 'gtk_notebook_query_tab_label_packing';
+function TGTKNotebook.GetTabLabel(PageNo: integer): TGTKLabel;
+begin
+ Result := TGTKLabel.CreateFromWidget(Self, gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo)));
+end;
-function TGTKNotebook.GetExpandTab(PageNo: integer): boolean;
-var expand: gboolean;
+(********************************************************************************************************************************)
+(********************************************************************************************************************************)
+procedure TGTKComboBox_changed(widget: PGtkComboBox; user_data: pgpointer); cdecl;
begin
- expand := False;
- _gtk_notebook_query_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), @expand, nil, nil);
- Result := expand;
+ if Assigned(TGTKComboBox(user_data).FOnChanged) then TGTKComboBox(user_data).FOnChanged(TGTKComboBox(user_data));
end;
-procedure TGTKNotebook.SetExpandTab(PageNo: integer; Value: boolean);
+constructor TGTKComboBox.Create(AOwner: TComponent);
begin
- gtk_notebook_set_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), Value, GetFillTab(PageNo), GTK_PACK_START);
+ inherited Create(AOwner);
+ FOnChanged := nil;
end;
-function TGTKNotebook.GetFillTab(PageNo: integer): boolean;
-var fill: gboolean;
+destructor TGTKComboBox.Destroy;
begin
- fill := False;
- _gtk_notebook_query_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), nil, @fill, nil);
- Result := fill;
+ inherited Destroy;
end;
-procedure TGTKNotebook.SetFillTab(PageNo: integer; Value: boolean);
+function TGTKComboBox.GetItemIndex: integer;
begin
- gtk_notebook_set_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), GetExpandTab(PageNo), Value, GTK_PACK_START);
+ Result := gtk_combo_box_get_active(PGtkComboBox(FWidget));
end;
-function TGTKNotebook.GetTabLabel(PageNo: integer): TGTKLabel;
+function TGTKComboBox.GetItemID: string;
begin
- Result := TGTKLabel.CreateFromWidget(Self, gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo)));
+ Result := string(gtk_combo_box_get_active_id(PGtkComboBox(FWidget)));
end;
-(********************************************************************************************************************************)
-(********************************************************************************************************************************)
-procedure TGTKOptionMenu_changed(optionmenu: PGtkOptionMenu; user_data: pgpointer); cdecl;
+procedure TGTKComboBox.SetItemIndex(Value: integer);
begin
- if Assigned(TGTKOptionMenu(user_data).FOnChanged) then TGTKOptionMenu(user_data).FOnChanged(TGTKOptionMenu(user_data));
+ gtk_combo_box_set_active(PGtkComboBox(FWidget), Value);
end;
-constructor TGTKOptionMenu.Create(AOwner: TComponent);
+procedure TGTKComboBox.SetItemID(Value: string);
begin
- inherited Create(AOwner);
- FOnChanged := nil;
- FWidget := gtk_option_menu_new;
- g_signal_connect_data(PGObject(FWidget), 'changed', TGCallback(@TGTKOptionMenu_changed), Self, nil, G_CONNECT_DEFAULT);
- Show;
- FItems := TGTKMenuItem.Create(Self);
- FItems.FParentMenu := Self;
- FItems.Notify := @ItemsChanged;
+ gtk_combo_box_set_active_id(PGtkComboBox(FWidget), PChar(Value));
end;
-destructor TGTKOptionMenu.Destroy;
+procedure TGTKComboBox.AppendItem(const Text: string);
begin
- FItems.Notify := nil;
- FItems.Free;
- inherited Destroy;
+ gtk_combo_box_text_append_text(PGtkComboBoxText(FWidget), PChar(Text));
end;
-procedure TGTKOptionMenu.ItemsChanged(Sender: TObject);
+procedure TGTKComboBox.AppendItemID(const ID: string; const Text: string);
begin
- if Assigned(FItems.FMenu) and (gtk_option_menu_get_menu(PGtkOptionMenu(FWidget)) <> FItems.FMenu)
- then gtk_option_menu_set_menu(PGtkOptionMenu(FWidget), FItems.FMenu);
+ gtk_combo_box_text_append(PGtkComboBoxText(FWidget), PChar(ID), PChar(Text));
end;
-function TGTKOptionMenu.GetItemIndex: integer;
+procedure TGTKComboBox.ClearItems();
begin
- Result := gtk_option_menu_get_history(PGtkOptionMenu(FWidget));
+ gtk_combo_box_text_remove_all(PGtkComboBoxText(FWidget));
end;
-procedure TGTKOptionMenu.SetItemIndex(Value: integer);
+(********************************************************************************************************************************)
+(********************************************************************************************************************************)
+constructor TGTKComboBoxText.Create(AOwner: TComponent);
begin
- gtk_option_menu_set_history(PGtkOptionMenu(FWidget), Value);
+ inherited Create(AOwner);
+ FWidget := gtk_combo_box_text_new();
+ g_signal_connect_data(PGObject(FWidget), 'changed', TGCallback(@TGTKComboBox_changed), Self, nil, G_CONNECT_DEFAULT);
+ Show;
+end;
+
+destructor TGTKComboBoxText.Destroy;
+begin
+ inherited Destroy;
+end;
+
+constructor TGTKComboBoxEntry.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ FWidget := gtk_combo_box_text_new_with_entry();
+ Entry := TGTKEntry.CreateFromWidget(Self, gtk_bin_get_child(PGtkBin(FWidget)));
+ g_signal_connect_data(PGObject(FWidget), 'changed', TGCallback(@TGTKComboBox_changed), Self, nil, G_CONNECT_DEFAULT);
+ Show;
+end;
+
+destructor TGTKComboBoxEntry.Destroy;
+begin
+ inherited Destroy;
end;
(********************************************************************************************************************************)
@@ -657,12 +609,12 @@ end;
procedure TGTKScrolledWindow.SetShadowType(Value: TGTKShadowType);
begin
- gtk_scrolled_window_set_shadow_type(PGtkScrolledWindow(FWidget), gtk2.TGtkShadowType(Value));
+ gtk_scrolled_window_set_shadow_type(PGtkScrolledWindow(FWidget), lazgtk3.TGtkShadowType(Value));
end;
procedure TGTKScrolledWindow.AddWithViewPort(Control: TGTKControl);
begin
- gtk_scrolled_window_add_with_viewport(PGtkScrolledWindow(FWidget), Control.FWidget);
+ gtk_container_add(PGtkContainer(FWidget), Control.FWidget);
end;
(********************************************************************************************************************************)
@@ -679,7 +631,7 @@ end;
procedure TGTKButtonBox.SetLayout(Value: TGTKButtonBoxLayout);
begin
- gtk_button_box_set_layout(PGtkButtonBox(FWidget), Integer(Value));
+ gtk_button_box_set_layout(PGtkButtonBox(FWidget), TGtkButtonBoxStyle(Value));
end;
(********************************************************************************************************************************)
@@ -687,7 +639,7 @@ end;
constructor TGTKHButtonBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_hbutton_box_new;
+ FWidget := gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
Show;
end;
@@ -696,7 +648,7 @@ end;
constructor TGTKVButtonBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_vbutton_box_new;
+ FWidget := gtk_button_box_new(GTK_ORIENTATION_VERTICAL);
Show;
end;