summaryrefslogtreecommitdiff
path: root/UGnome.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UGnome.pas')
-rw-r--r--UGnome.pas494
1 files changed, 175 insertions, 319 deletions
diff --git a/UGnome.pas b/UGnome.pas
index 6d690a2..f835ff9 100644
--- a/UGnome.pas
+++ b/UGnome.pas
@@ -21,27 +21,11 @@ unit UGnome;
interface
-uses glib2, lazglib2, lazgobject2, gdk2, gdk2pixbuf, gtk2, Classes, ULibc,
+uses lazglib2, lazgobject2, lazgdk3, lazgdkpixbuf2, lazgtk3, Classes, ULibc,
GTKForms, GTKControls, GTKStdCtrls, GTKExtCtrls, GTKClasses, GTKDialogs, GTKUtils, GTKConsts,
uVFSprototypes;
-type TGnomeColorButton = class(TGTKButton)
- private
- FUseGnomeUI: boolean;
- FColor: TGDKColor;
- FColorChanged: TNotifyEvent;
- function GetColor: TGDKColor;
- procedure SetColor(Value: TGDKColor);
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure SetDefaultColor;
- procedure UnsetDefaultColor;
- property Color: GTKClasses.TGDKColor read GetColor write SetColor;
- published
- property OnColorChanged: TNotifyEvent read FColorChanged write FColorChanged;
- end;
-
+type
TGnomeIconEntry = class(TGTKVBox)
private
FIconChanged: TNotifyEvent;
@@ -81,10 +65,8 @@ type TGnomeColorButton = class(TGTKButton)
TEphyNotebook = class(TGTKNotebook)
private
FShowCloseButtons: boolean;
- FShowTooltips: boolean;
FAllowDragDrop: boolean;
FAllowDragOutside: boolean;
- FTooltips: PGtkTooltips;
FOnNotebookReordered: TEphyNotebookReorderedEvent;
FOnTabClose: TEphyNotebookTabCloseEvent;
FOnTabDoubleClick: TEphyNotebookTabDoubleClickEvent;
@@ -103,7 +85,6 @@ type TGnomeColorButton = class(TGTKButton)
FBusy: boolean;
procedure SetShowCloseButtons(Value: boolean);
- procedure SetShowTooltips(Value: boolean);
procedure SetAllowDragDrop(Value: boolean);
procedure SetAllowDragOutside(Value: boolean);
@@ -129,7 +110,6 @@ type TGnomeColorButton = class(TGTKButton)
published
property PageIndex: integer read GetPageIndex write SetPageIndex;
property ShowCloseButtons: boolean read FShowCloseButtons write SetShowCloseButtons default False;
- property ShowTooltips: boolean read FShowTooltips write SetShowTooltips default False;
property AllowDragDrop: boolean read FAllowDragDrop write SetAllowDragDrop default False;
property AllowDragOutside: boolean read FAllowDragOutside write SetAllowDragOutside default False;
property OnNotebookReordered: TEphyNotebookReorderedEvent read FOnNotebookReordered write FOnNotebookReordered;
@@ -176,15 +156,7 @@ type PGnomeColorPicker = PGtkWidget;
const AFTER_ALL_TABS = -1;
NOT_IN_APP_WINDOWS = -2;
-var libGtk2Handle, libGnome2Handle, libGnomeUI2Handle: Pointer;
- gnome_about_new: function (const name, version, copyright, comments: Pchar; const authors, documenters: PPchar;
- const translator_credits: Pchar; logo_pixbuf: PGdkPixbuf): PGtkWidget; cdecl;
- gnome_program_init: function (const app_id, app_version: PChar; const module_info: Pointer; argc: integer; argv: PPChar): Pointer; varargs; cdecl;
- libgnome_module_info_get: function: Pointer; cdecl;
- libgnomeui_module_info_get: function: Pointer; cdecl;
- gnome_color_picker_new: function: PGnomeColorPicker; cdecl;
- gnome_color_picker_get_i16: procedure (cp: PGnomeColorPicker; R, G, B, A: Pword); cdecl;
- gnome_color_picker_set_i16: procedure (cp: PGnomeColorPicker; R, G, B, A: word); cdecl;
+var
gnome_icon_entry_new: function (const history_id, browse_dialog_title: Pchar): PGtkWidget; cdecl;
gnome_icon_entry_set_pixmap_subdir: procedure (ientry: PGnomeIconEntry; const subdir: Pgchar); cdecl;
gnome_icon_entry_get_filename: function (ientry: PGnomeIconEntry): Pgchar; cdecl;
@@ -195,17 +167,6 @@ var libGtk2Handle, libGnome2Handle, libGnomeUI2Handle: Pointer;
-procedure gtk_event_box_set_visible_window(event_box: PGtkEventBox; visible_window: gboolean); cdecl; external gtklib;
-function gtk_icon_size_lookup_for_settings(settings: PGtkSettings; size: TGtkIconSize; width, height: Pgint): gboolean; cdecl; external gtklib;
-procedure gtk_window_set_icon_name(window: PGtkWindow; const name: Pgchar); cdecl; external gtklib;
-function gtk_notebook_insert_page(notebook:PGtkNotebook; child:PGtkWidget;tab_label:PGtkWidget; position:gint):gint; cdecl; external gtklib;
-function gtk_message_dialog_new_with_markup(parent:PGtkWindow; flags:TGtkDialogFlags;
- _type:TGtkMessageType; buttons:TGtkButtonsType;
- message_format:Pgchar):PGtkWidget; varargs; cdecl; external gtklib;
-
-
-
-
procedure LoadGnomeLibs;
implementation
@@ -217,99 +178,6 @@ uses SysUtils, DateUtils, UCoreUtils, ULocale, UFileAssoc;
(********************************************************************************************************************************)
(********************************************************************************************************************************)
(********************************************************************************************************************************)
-procedure TGnomeColorButton_OnClick(button: PGtkButton; user_data: Pgpointer); cdecl;
-var Dialog: TGTKColorSelectionDialog;
- i: integer;
-begin
- if Assigned(user_data) then
- with TGnomeColorButton(user_data) do begin
- Dialog := TGTKColorSelectionDialog.CreateWithTitle(Parent, LANGSelectFileTypeColor);
- try
- Dialog.ShowPalette := True;
- Dialog.Color := Color;
- if Byte(Dialog.Run) = 251 then begin
- for i := 0 to 4 do SetBackgroundColor(i, GDKColorToPGdkColor(Dialog.Color));
- FColor := Dialog.Color;
- if Assigned(FColorChanged) then FColorChanged(TGnomeColorButton(user_data));
- end;
- finally
- Dialog.Free;
- end;
- end;
-end;
-
-procedure TGnomeColorButton_color_set(colorpicker: PGnomeColorPicker; arg1, arg2, arg3, arg4: Word; user_data: Pointer); cdecl;
-begin
- if Assigned(user_data) and Assigned(TGnomeColorButton(user_data).FColorChanged) then
- with TGnomeColorButton(user_data) do begin
- FColorChanged(TGnomeColorButton(user_data));
- FColor := Color;
- end;
-end;
-
-constructor TGnomeColorButton.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FUseGnomeUI := Assigned(gnome_color_picker_new) and Assigned(gnome_color_picker_get_i16) and Assigned(gnome_color_picker_set_i16);
- if FUseGnomeUI then begin
- FWidget := gnome_color_picker_new();
- g_signal_connect_data(PGObject(FWidget), 'color-set', TGCallback(@TGnomeColorButton_color_set), Self, nil, G_CONNECT_DEFAULT);
- end else begin
- FWidget := gtk_button_new_with_label(''); // This should be here due to height-related troubles
- g_signal_connect_data(PGObject(FWidget), 'clicked', TGCallback(@TGnomeColorButton_OnClick), Self, nil, G_CONNECT_DEFAULT);
- BorderStyle := bsHalf;
- end;
- Show;
- FColorChanged := nil;
-end;
-
-destructor TGnomeColorButton.Destroy;
-begin
- inherited Destroy;
-end;
-
-function TGnomeColorButton.GetColor: TGDKColor;
-var R, G, B, A: word;
-begin
- if FUseGnomeUI then begin
- if Enabled then begin
- gnome_color_picker_get_i16(FWidget, @R, @G, @B, @A);
- Result := PGdkColorToGDKColor(AllocateColor(nil, R, G, B));
- end else Result := FColor;
- end else Result := FColor;
-end;
-
-procedure TGnomeColorButton.SetColor(Value: TGDKColor);
-var i: integer;
-begin
- FColor := Value;
- if FUseGnomeUI then gnome_color_picker_set_i16(FWidget, Value.red, Value.green, Value.blue, 0)
- else for i := 0 to 4 do SetBackgroundColor(i, GDKColorToPGdkColor(Value));
-end;
-
-procedure TGnomeColorButton.SetDefaultColor;
-var i: integer;
-begin
- if not Enabled then Exit;
- gtk_widget_set_sensitive(PGtkWidget(FWidget), False);
- if FUseGnomeUI then begin
- FColor := GetColor;
- gnome_color_picker_set_i16(FWidget, 0, 0, 0, 0)
-// SetColor(PGdkColorToGDKColor(AllocateColor(FWidget, 0, 0, 0){GetDefaultBackgroundColor(1)}));
- end else for i := 0 to 4 do SetBackgroundColor(i, GetDefaultBackgroundColor(i));
-end;
-
-procedure TGnomeColorButton.UnsetDefaultColor;
-var i: integer;
-begin
- if Enabled then Exit;
- gtk_widget_set_sensitive(PGtkWidget(FWidget), True);
- if FUseGnomeUI then SetColor(FColor) else
- for i := 0 to 4 do SetBackgroundColor(i, GDKColorToPGdkColor(FColor));
-end;
-
-(********************************************************************************************************************************)
-(********************************************************************************************************************************)
procedure TGnomeIconEntry_changed(iconentry: PGnomeIconEntry; user_data: gpointer); cdecl;
begin
if Assigned(user_data) and Assigned(TGnomeIconEntry(user_data).FIconChanged) then
@@ -380,11 +248,8 @@ function label_ebox_button_pressed(widget: PGtkWidget; event: PGdkEventButton; d
constructor TEphyNotebook.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FTooltips := gtk_tooltips_new;
- gtk_tooltips_disable(FTooltips);
cursor := nil;
FShowCloseButtons := False;
- FShowTooltips := False;
FAllowDragDrop := False;
FAllowDragOutside := False;
FOnNotebookReordered := nil;
@@ -399,7 +264,7 @@ begin
g_signal_connect_data(PGObject(FWidget), 'button-press-event', TGCallback(@button_press_cb), Self, nil, G_CONNECT_DEFAULT);
g_signal_connect_data(PGObject(FWidget), 'button-release-event', TGCallback(@button_release_cb), Self, nil, G_CONNECT_DEFAULT);
g_signal_connect_data(PGObject(FWidget), 'scroll-event', TGCallback(@scroll_event_callback), Self, nil, G_CONNECT_DEFAULT);
- gtk_widget_add_events(FWidget, GDK_BUTTON1_MOTION_MASK);
+ gtk_widget_add_events(FWidget, guint(GDK_BUTTON1_MOTION_MASK));
Show;
end;
@@ -416,14 +281,6 @@ begin
// Apply settings here
end;
-
-procedure TEphyNotebook.SetShowTooltips(Value: boolean);
-begin
- FShowTooltips := Value;
- if Value then gtk_tooltips_enable(FTooltips)
- else gtk_tooltips_disable(FTooltips);
-end;
-
procedure TEphyNotebook.SetAllowDragDrop(Value: boolean);
begin
FAllowDragDrop := Value;
@@ -449,7 +306,9 @@ begin
char_width := pango_font_metrics_get_approximate_digit_width(metrics);
pango_font_metrics_unref(metrics); }
- gtk_icon_size_lookup_for_settings(gtk_widget_get_settings(hbox), GTK_ICON_SIZE_MENU, @w, @h);
+ w := 16;
+ h := 16;
+// gtk_icon_size_lookup_for_settings(gtk_widget_get_settings(hbox), GTK_ICON_SIZE_MENU, @w, @h);
// gtk_widget_set_size_request(hbox, TAB_WIDTH_N_CHARS * PANGO_PIXELS(char_width) + 2 * w, -1);
@@ -466,14 +325,14 @@ begin
tab := g_object_get_data(PGObject(widget), 'child');
ntb := TEphyNotebook(data);
- position := gtk_notebook_page_num(GTK_NOTEBOOK(ntb.FWidget), GTK_WIDGET(tab));
+ position := gtk_notebook_page_num(PGtkNotebook(ntb.FWidget), PGtkWidget(tab));
// DebugMsg(['@******* close_button_clicked_cb: Position = ', position, ', data = 0x', IntToHex(Integer(data), 8), ', widget = 0x', IntToHex(Integer(widget), 8)]);
CanClose := True;
if @ntb.FOnTabClose <> nil then ntb.FOnTabClose(ntb, position, CanClose);
- if CanClose then gtk_notebook_remove_page(GTK_NOTEBOOK(ntb.FWidget), position);
+ if CanClose then gtk_notebook_remove_page(PGtkNotebook(ntb.FWidget), position);
end;
function TEphyNotebook.AppendPage(Child: TGTKControl; Caption: string): integer;
@@ -483,52 +342,54 @@ end;
function TEphyNotebook.InsertPage(Position: integer; Child: TGTKControl; Caption: string): integer;
var hbox, label_hbox, label_ebox, _label, close_button, image, icon: PGtkWidget;
- rcstyle: PGtkRcStyle;
+// rcstyle: PGtkRcStyle;
begin
// set hbox spacing and label padding (see below) so that there's an equal amount of space around the label
- hbox := gtk_hbox_new(FALSE, 0);
+ hbox := gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
label_ebox := gtk_event_box_new();
- gtk_event_box_set_visible_window(GTK_EVENT_BOX (label_ebox), FALSE);
- gtk_box_pack_start(GTK_BOX (hbox), label_ebox, TRUE, TRUE, 0);
+ gtk_event_box_set_visible_window(PGtkEventBox (label_ebox), FALSE);
+ gtk_box_pack_start(PGtkBox (hbox), label_ebox, TRUE, TRUE, 0);
g_signal_connect_data(PGObject(label_ebox), 'button-press-event', TGCallback(@label_ebox_button_pressed), Self, nil, G_CONNECT_DEFAULT);
g_object_set_data(PGObject(label_ebox), 'child', Child.FWidget);
- label_hbox := gtk_hbox_new (FALSE, 0);
- gtk_container_add(GTK_CONTAINER (label_ebox), label_hbox);
+ label_hbox := gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_container_add(PGtkContainer (label_ebox), label_hbox);
// setup close button
close_button := gtk_button_new ();
- gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE);
+ gtk_button_set_relief (PGtkButton (close_button), GTK_RELIEF_NONE);
// don't allow focus on the close button
g_object_set(PGObject(close_button), 'can-focus', [gboolean(FALSE), nil]);
- gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE);
+ gtk_button_set_relief (PGtkButton (close_button), GTK_RELIEF_NONE);
- rcstyle := gtk_rc_style_new ();
+ // TODO
+{ rcstyle := gtk_rc_style_new ();
rcstyle^.xthickness := Ord(rcstyle^.ythickness = 0);
gtk_widget_modify_style (close_button, rcstyle);
gtk_rc_style_unref (rcstyle);
+}
+ image := gtk_image_new_from_icon_name('gtk-close', GTK_ICON_SIZE_MENU);
+ gtk_container_add(PGtkContainer(close_button), image);
+ gtk_box_pack_start(PGtkBox(hbox), close_button, FALSE, FALSE, 0);
- image := gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
- gtk_container_add (GTK_CONTAINER (close_button), image);
- gtk_box_pack_start (GTK_BOX (hbox), close_button, FALSE, FALSE, 0);
-
- gtk_tooltips_set_tip(FTooltips, close_button, PChar(LANGEphyNotebookCloseTab), nil);
+ gtk_widget_set_tooltip_text(close_button, PChar(LANGEphyNotebookCloseTab));
g_object_set_data(PGObject(close_button), 'tab', hbox);
g_object_set_data(PGObject(close_button), 'child', Child.FWidget);
g_signal_connect_data(PGObject(close_button), 'clicked', TGCallback(@close_button_clicked_cb), Self, nil, G_CONNECT_DEFAULT);
// setup site icon, empty by default
icon := gtk_image_new ();
- gtk_box_pack_start (GTK_BOX (label_hbox), icon, FALSE, FALSE, 0);
+ gtk_box_pack_start (PGtkBox (label_hbox), icon, FALSE, FALSE, 0);
// setup label
_label := gtk_label_new(PChar(Caption));
-// gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
-// gtk_label_set_single_line_mode (GTK_LABEL (label), TRUE);
- gtk_misc_set_alignment (GTK_MISC(_label), 0.0, 0.5);
- gtk_misc_set_padding (GTK_MISC(_label), 2, 0);
- gtk_box_pack_start (GTK_BOX(label_hbox), _label, TRUE, TRUE, 0);
+// gtk_label_set_ellipsize (PGtkLabel (label), PANGO_ELLIPSIZE_END);
+// gtk_label_set_single_line_mode (PGtkLabel (label), TRUE);
+ gtk_label_set_yalign(PGtkLabel(_label), 0.5);
+ gtk_widget_set_margin_start(_label, 2);
+ gtk_widget_set_margin_end(_label, 2);
+ gtk_box_pack_start (PGtkBox(label_hbox), _label, TRUE, TRUE, 0);
// Set minimal size
g_signal_connect_data(PGObject(hbox), 'style-set', TGCallback(@tab_label_style_set_cb), nil, nil, G_CONNECT_DEFAULT);
@@ -545,7 +406,6 @@ begin
g_object_set_data(PGObject(hbox), 'label-ebox', label_ebox);
g_object_set_data(PGObject(hbox), 'icon', icon);
g_object_set_data(PGObject(hbox), 'close-button', close_button);
- g_object_set_data(PGObject(hbox), 'tooltips', FTooltips);
Result := gtk_notebook_insert_page(PGtkNotebook(FWidget), Child.FWidget, hbox, Position);
end;
@@ -560,7 +420,7 @@ var wid, lab: PGtkWidget;
begin
wid := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo));
lab := g_object_get_data (PGObject(wid), 'label');
- Result := String(gtk_label_get_text(GTK_LABEL(lab)));
+ Result := String(gtk_label_get_text(PGtkLabel(lab)));
end;
procedure TEphyNotebook.SetTabCaption(PageNo: integer; Caption: string);
@@ -568,7 +428,7 @@ var wid, lab: PGtkWidget;
begin
wid := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo));
lab := g_object_get_data (PGObject(wid), 'label');
- gtk_label_set_text(GTK_LABEL(lab), PChar(Caption));
+ gtk_label_set_text(PGtkLabel(lab), PChar(Caption));
end;
procedure TEphyNotebook.SetTabTooltip(PageNo: integer; ATooltip: string);
@@ -576,7 +436,7 @@ var wid, lab: PGtkWidget;
begin
wid := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo));
lab := g_object_get_data (PGObject(wid), 'label-ebox');
- gtk_tooltips_set_tip(FTooltips, lab, PChar(ATooltip), nil);
+ gtk_widget_set_tooltip_text(lab, PChar(ATooltip));
end;
function TEphyNotebook.GetPageIndex: integer;
@@ -588,7 +448,7 @@ procedure TEphyNotebook.SetPageIndex(Value: integer);
begin
DebugMsg(['SetPageIndex(Value = ', Value, ')']);
if (GetPageIndex <> Value) and (Value >= 0) then begin
- gtk_notebook_set_page(PGtkNotebook(FWidget), Value);
+ gtk_notebook_set_current_page(PGtkNotebook(FWidget), Value);
if Assigned(FOnTabSwitchedEvent) then FOnTabSwitchedEvent(Self, Value, True);
end;
end;
@@ -599,11 +459,12 @@ var tab_pos: TGtkPositionType;
page_num: integer;
page, tab: PGtkWidget;
max_x, max_y, x_root, y_root: integer;
+ allocation: TGtkAllocation;
begin
page_num := 0;
tab_pos := gtk_notebook_get_tab_pos(PGtkNotebook(FWidget));
- if PGtkNotebook(FWidget)^.first_tab = nil then begin
+ if gtk_notebook_get_n_pages(PGtkNotebook(FWidget)) < 1 then begin
DebugMsg(['@***************** first_tab = nil']);
Result := AFTER_ALL_TABS;
// DebugMsg(['@******* find_tab_num_at_pos(abs_x = ', abs_x, ', abs_y = ', abs_y, ', Result = ', Result, ')']);
@@ -627,15 +488,16 @@ begin
Exit;
end;
- if (not GTK_WIDGET_MAPPED(GTK_WIDGET(tab))) then begin
+ if (not gtk_widget_get_mapped(PGtkWidget(tab))) then begin
Inc(page_num);
Continue;
end;
- gdk_window_get_origin(GDK_WINDOW(tab^.window), @x_root, @y_root);
+ gdk_window_get_origin(PGdkWindow(tab^.window), @x_root, @y_root);
- max_x := x_root + tab^.allocation.x + tab^.allocation.width;
- max_y := y_root + tab^.allocation.y + tab^.allocation.height;
+ gtk_widget_get_allocation(tab, @allocation);
+ max_x := x_root + allocation.x + allocation.width;
+ max_y := y_root + allocation.y + allocation.height;
if (((tab_pos = GTK_POS_TOP) or (tab_pos = GTK_POS_BOTTOM)) and (abs_x <= max_x)) or
((tab_pos = GTK_POS_LEFT) or (tab_pos = GTK_POS_RIGHT)) and (abs_y <= max_y) then
@@ -706,7 +568,7 @@ terminal_notebook_move_tab (TerminalNotebook *src,
if (dest == NULL || src == dest)
{
gtk_notebook_reorder_child
- (GTK_NOTEBOOK (src), GTK_WIDGET (screen), dest_position);
+ (PGtkNotebook (src), PGtkWidget (screen), dest_position);
if (src->priv->drag_in_progress == FALSE)
{
@@ -725,7 +587,7 @@ terminal_notebook_move_tab (TerminalNotebook *src,
/* Set new window for screen so TerminalScreen widget realize function
* works.
*/
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (dest));
+ toplevel = gtk_widget_get_toplevel (PGtkWidget (dest));
g_assert (GTK_WIDGET_TOPLEVEL (toplevel));
g_assert (TERMINAL_IS_WINDOW (toplevel));
@@ -744,11 +606,11 @@ begin
DebugMsg(['@######## drag_stop']);
toplevel := gtk_widget_get_toplevel(FWidget);
- if not GTK_WIDGET_TOPLEVEL(toplevel) then begin
+ if not Assigned(toplevel) then begin
DebugMsg(['@######## drag_stop: GTK_WIDGET_TOPLEVEL(toplevel) = False']);
Exit;
end;
-{ child := gtk_bin_get_child(GTK_BIN(toplevel));
+{ child := gtk_bin_get_child(GtkBin(toplevel));
if child = nil then begin
DebugMsg(['@######## drag_stop: child = nil']);
Exit;
@@ -777,13 +639,13 @@ begin
end;
// ungrab the pointer if it's grabbed
- // FIXME multihead
- if gdk_pointer_is_grabbed() then gdk_pointer_ungrab(time);
+ // TODO
+// if gdk_pointer_is_grabbed() then gdk_pointer_ungrab(time);
gtk_grab_remove(toplevel);
if drag_in_progress then begin
if FBusy then Exit;
- drag_stop_idx := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget));
+ drag_stop_idx := gtk_notebook_get_current_page(PGtkNotebook(FWidget));
DebugMsg(['@######## drag_stop: final move: ', drag_start_idx, ' --> ', drag_stop_idx]);
// The two indexes are equal when moving tab to another notebook
@@ -865,11 +727,11 @@ begin
ntb := TEphyNotebook(data);
if ntb.drag_in_progress then begin
-// cur_page_num := gtk_notebook_get_current_page(GTK_NOTEBOOK(ntb.FWidget));
-// cur_page := gtk_notebook_get_nth_page(GTK_NOTEBOOK(ntb.FWidget), cur_page_num);
+// cur_page_num := gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget));
+// cur_page := gtk_notebook_get_nth_page(PGtkNotebook(ntb.FWidget), cur_page_num);
(* if (!is_in_notebook_window (notebook, event->x_root, event->y_root)
- && gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 1)
+ && gtk_notebook_get_n_pages (PGtkNotebook (notebook)) > 1)
{
/* Tab was detached */
g_signal_emit (G_OBJECT (notebook),
@@ -887,8 +749,8 @@ var toplevel, child: PGtkWidget;
begin
DebugMsg(['@######## drag_start']);
Result := False;
- // FIXME multihead
- if drag_in_progress or gdk_pointer_is_grabbed() then Exit;
+ // TODO
+ if drag_in_progress { or gdk_pointer_is_grabbed()} then Exit;
if not FAllowDragDrop then Exit;
if FBusy then Exit;
@@ -899,13 +761,13 @@ begin
if cursor = nil then cursor := gdk_cursor_new(GDK_FLEUR);
toplevel := gtk_widget_get_toplevel(FWidget);
- if not GTK_WIDGET_TOPLEVEL(toplevel) then begin
+ if not Assigned(toplevel) then begin
DebugMsg(['@######## drag_start: GTK_WIDGET_TOPLEVEL(toplevel) = False']);
Result := False;
Exit;
end;
- child := gtk_bin_get_child(GTK_BIN(toplevel));
+ child := gtk_bin_get_child(PGtkBin(toplevel));
if child = nil then begin
DebugMsg(['@######## drag_start: child = nil']);
Result := False;
@@ -916,7 +778,7 @@ begin
gtk_grab_add(toplevel);
// FIXME multi-head
- if gdk_pointer_grab(toplevel^.window, False, GDK_BUTTON1_MOTION_MASK or GDK_BUTTON_RELEASE_MASK, nil,
+ if gdk_pointer_grab(toplevel^.window, False, [GDK_BUTTON1_MOTION_MASK, GDK_BUTTON_RELEASE_MASK], nil,
cursor, time) <> GDK_GRAB_SUCCESS then
begin
DebugMsg(['@######## drag_start: gdk_pointer_grab <> GDK_GRAB_SUCCESS']);
@@ -933,7 +795,7 @@ begin
toplevel_button_release_handler_id := g_signal_connect_data(PGObject(toplevel), 'button-release-event', TGCallback(@toplevel_button_release_cb), Self, nil, G_CONNECT_DEFAULT);
grab_notify_handler_id := g_signal_connect_data(PGObject(FWidget), 'grab-notify', TGCallback(@grab_notify_cb), Self, nil, G_CONNECT_DEFAULT);
- drag_start_idx := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget));
+ drag_start_idx := gtk_notebook_get_current_page(PGtkNotebook(FWidget));
Result := True;
end else begin
DebugMsg(['@######## drag_start: some handlers are non-null']);
@@ -946,11 +808,11 @@ procedure TEphyNotebook.move_tab(dest_position: integer);
var cur_page_num: integer;
cur_tab: PGtkWidget;
begin
- cur_page_num := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget));
+ cur_page_num := gtk_notebook_get_current_page(PGtkNotebook(FWidget));
// DebugMsg(['@######## move_tab(dest_position = ', dest_position, ', cur_page_num = ', cur_page_num]);
if (dest_position <> cur_page_num) and (dest_position >= 0) then begin
- cur_tab := gtk_notebook_get_nth_page(GTK_NOTEBOOK(FWidget), cur_page_num);
- gtk_notebook_reorder_child(GTK_NOTEBOOK(FWidget), cur_tab, dest_position);
+ cur_tab := gtk_notebook_get_nth_page(PGtkNotebook(FWidget), cur_page_num);
+ gtk_notebook_reorder_child(PGtkNotebook(FWidget), cur_tab, dest_position);
{ terminal_notebook_move_tab (TERMINAL_NOTEBOOK (notebook), NULL,
TERMINAL_SCREEN (cur_tab),
@@ -966,7 +828,7 @@ begin
Result := False;
if (not ntb.drag_in_progress) and (ntb.x_start >= 0) and (ntb.y_start >= 0) and
- gtk_drag_check_threshold(GTK_WIDGET(notebook), ntb.x_start, ntb.y_start,
+ gtk_drag_check_threshold(PGtkWidget(notebook), ntb.x_start, ntb.y_start,
Trunc(event^.x_root), Trunc(event^.y_root))
then Result := ntb.drag_start(event^.time);
end;
@@ -993,7 +855,7 @@ begin
Exit;
end;
- cur_page := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget));
+ cur_page := gtk_notebook_get_current_page(PGtkNotebook(FWidget));
// stop drag in origin window
// ungrab the pointer if it's grabbed
@@ -1006,8 +868,8 @@ begin
(* g_assert (TERMINAL_IS_NOTEBOOK (dest));
g_assert (dest != src);
- cur_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (src));
- screen = gtk_notebook_get_nth_page (GTK_NOTEBOOK (src), cur_page);
+ cur_page = gtk_notebook_get_current_page (PGtkNotebook (src));
+ screen = gtk_notebook_get_nth_page (PGtkNotebook (src), cur_page);
/* stop drag in origin window */
/* ungrab the pointer if it's grabbed */
@@ -1016,7 +878,7 @@ begin
{
gdk_pointer_ungrab (event->time);
}
- gtk_grab_remove (GTK_WIDGET (src));
+ gtk_grab_remove (PGtkWidget (src));
terminal_notebook_move_tab (src, dest, TERMINAL_SCREEN (screen),
dest_position);
@@ -1068,11 +930,11 @@ begin
Result := False;
ntb := TEphyNotebook(data);
tab := g_object_get_data(PGObject(widget), 'child');
- position := gtk_notebook_page_num(GTK_NOTEBOOK(ntb.FWidget), GTK_WIDGET(tab));
+ position := gtk_notebook_page_num(PGtkNotebook(ntb.FWidget), PGtkWidget(tab));
// DebugMsg(['@******* label_ebox_button_pressed, button = ', event^.button, ', Position = ', position, ', data = 0x', IntToHex(Integer(data), 8), ', widget = 0x', IntToHex(Integer(widget), 8)]);
- if (((event^.button = 2) and (event^._type = GDK_BUTTON_PRESS)) or // Middle-click
- ((event^.button = 1) and (event^._type = GDK_2BUTTON_PRESS))) and // Double-click
+ if (((event^.button = 2) and (event^.type_ = GDK_BUTTON_PRESS)) or // Middle-click
+ ((event^.button = 1) and (event^.type_ = GDK_2BUTTON_PRESS))) and // Double-click
Assigned(ntb.FOnTabDoubleClick) then
begin
ntb.FOnTabDoubleClick(ntb, position);
@@ -1100,7 +962,7 @@ begin
Exit;
end;
- if ((event^.button = 1) or (event^.button = 3)) and (event^._type = GDK_BUTTON_PRESS) and (tab_clicked >= 0) then
+ if ((event^.button = 1) or (event^.button = 3)) and (event^.type_ = GDK_BUTTON_PRESS) and (tab_clicked >= 0) then
begin
if event^.button = 1 then begin
ntb.x_start := Trunc(event^.x_root);
@@ -1112,7 +974,7 @@ begin
if tab_clicked >= 0 then begin
if tab_clicked <> gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget)) then begin
ntb.FBusy := True;
- gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), tab_clicked);
+ gtk_notebook_set_current_page(PGtkNotebook(notebook), tab_clicked);
if Assigned(ntb.FOnTabSwitchedEvent) then ntb.FOnTabSwitchedEvent(ntb, tab_clicked, True);
Application.ProcessMessages;
ntb.FBusy := False;
@@ -1124,13 +986,13 @@ begin
Result := event^.button <> 3;
end else Result := True; // consume the event if not clicked any tab
{ else
- if (GDK_BUTTON_PRESS = event^._type) and (event^.button = 3) then begin
+ if (GDK_BUTTON_PRESS = event^.type_) and (event^.button = 3) then begin
if tab_clicked = -1 then begin
// consume event, so that we don't pop up the context menu when the mouse if not over a screen label
Result := True;
end else
// switch to the page the mouse is over, but don't consume the event
- if (tab_clicked >= 0) then gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), tab_clicked);
+ if (tab_clicked >= 0) then gtk_notebook_set_current_page(PGtkNotebook(notebook), tab_clicked);
end; }
end;
@@ -1144,12 +1006,13 @@ begin
ntb := TEphyNotebook(user_data);
if ntb.FBusy then Exit;
- child := gtk_notebook_get_nth_page(GTK_NOTEBOOK(ntb.FWidget), gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget)));
+ child := gtk_notebook_get_nth_page(PGtkNotebook(ntb.FWidget), gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget)));
if (child <> nil) then begin
// DebugMsg(['scroll_event_callback: x = ', event^.x, ', y = ', event^.y]);
px := 0;
py := 0;
- gtk_widget_get_pointer(child, @px, @py);
+ // TODO
+// gtk_widget_get_pointer(child, @px, @py);
// DebugMsg(['scroll_event_callback: px = ', px, ', py = ', py]);
if (px >= 0) and (py >= 0) then Exit;
end;
@@ -1175,8 +1038,8 @@ end;
function Gnome_MessageBox_key_press_event(widget: PGtkWidget; event: PGdkEventKey; user_data : gpointer): gboolean; cdecl;
begin
Result := False;
- if event^.keyval = GDK_ESCAPE then begin
- gtk_dialog_response(PGtkDialog(widget), integer(user_data));
+ if event^.keyval = GDK_KEY_Escape then begin
+ gtk_dialog_response(PGtkDialog(widget), TGtkResponseType(guint(user_data)));
// Beep;
Result := True;
end;
@@ -1196,19 +1059,19 @@ begin
Result := Escape;
Exit;
end;
- Dialog := gtk_message_dialog_new(ParentWindow, GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT, TMessageStyleID[Integer(Style)],
- GTK_BUTTONS_NONE, '%s', PChar(Text));
+ Dialog := gtk_message_dialog_new(ParentWindow, [GTK_DIALOG_MODAL, GTK_DIALOG_DESTROY_WITH_PARENT], TMessageStyleID[Integer(Style)],
+ GTK_BUTTONS_NONE, '%s', [PChar(Text)]);
CheckBox := PGtkCheckButton(gtk_check_button_new_with_mnemonic(PChar(DontShowAgainText)));
gtk_widget_show(PGtkWidget(CheckBox));
- gtk_box_pack_end(GTK_BOX(GTK_DIALOG(Dialog)^.vbox), PGtkWidget(CheckBox), False, False, 12);
+ gtk_box_pack_end(PGtkBox(gtk_dialog_get_content_area(PGtkDialog(Dialog))), PGtkWidget(CheckBox), False, False, 12);
for i := 1 to NumMessageButtons do
if TMessageButton(i - 1) in Buttons then begin
- w := gtk_dialog_add_button(PGtkDialog(Dialog), MessageButtonID[i], i);
+ w := gtk_dialog_add_button(PGtkDialog(Dialog), MessageButtonID[i], TGtkResponseType(i));
if TMessageButton(i - 1) = Default then gtk_widget_grab_focus(w);
end;
if Escape <> mbNone then g_signal_connect_data(PGObject(Dialog), 'key-press-event', TGCallback(@Gnome_MessageBox_key_press_event),
Pointer(Ord(Escape) + 1{MessageButtonID[Ord(Escape)]}), nil, G_CONNECT_DEFAULT);
- if Default <> mbNone then gtk_dialog_set_default_response(PGtkDialog(Dialog), Ord(Default));
+ if Default <> mbNone then gtk_dialog_set_default_response(PGtkDialog(Dialog), TGtkResponseType(Default));
Result := TMessageButton(gtk_dialog_run(PGtkDialog(Dialog)) - 1);
DontShowAgainChecked := gtk_toggle_button_get_active(PGtkToggleButton(CheckBox));
gtk_widget_destroy(Dialog);
@@ -1239,13 +1102,13 @@ begin
end;
if (primary <> nil) and (secondary <> nil)
- then dialog := gtk_message_dialog_new_with_markup (PGtkWindow(DialogParent), 0,
+ then dialog := gtk_message_dialog_new_with_markup (PGtkWindow(DialogParent), [],
GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
'<span size="large" weight="ultrabold">%s</span>'#10'%s',
- primary, secondary)
- else dialog := gtk_message_dialog_new (PGtkWindow(DialogParent), 0,
+ [primary, secondary])
+ else dialog := gtk_message_dialog_new (PGtkWindow(DialogParent), [],
GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE, '%s', AMessage);
+ GTK_BUTTONS_NONE, '%s', [AMessage]);
if primary <> nil then g_free (primary);
// gtk_window_set_title (PGtkWindow(dialog), 'VFS Question');
@@ -1256,7 +1119,7 @@ begin
do Inc(len);
for count := len - 1 downto 0 do
- gtk_dialog_add_button (PGtkDialog(dialog), TOpenPCharArray(choices)[count], count);
+ gtk_dialog_add_button(PGtkDialog(dialog), TOpenPCharArray(choices)[count], TGtkResponseType(count));
res := gtk_dialog_run (PGtkDialog(Dialog));
if choice <> nil then choice^ := res;
@@ -1292,9 +1155,9 @@ end;
procedure pw_dialog_verify_input(editable: PGtkEditable; priv: PVFSAskPasswordCallbackPriv); cdecl;
begin
- gtk_dialog_set_response_sensitive (GTK_DIALOG (priv^.dialog),
- GTK_RESPONSE_OK,
- pw_dialog_input_is_valid(priv));
+ gtk_dialog_set_response_sensitive(PGtkDialog(priv^.dialog),
+ GTK_RESPONSE_OK,
+ pw_dialog_input_is_valid(priv));
end;
procedure pw_dialog_anonymous_toggled(widget: PGtkWidget; priv: PVFSAskPasswordCallbackPriv); cdecl;
@@ -1304,7 +1167,7 @@ begin
if anonymous then is_valid := True
else is_valid := pw_dialog_input_is_valid(priv);
gtk_widget_set_sensitive (priv^.entry_container, not anonymous);
- gtk_dialog_set_response_sensitive(GTK_DIALOG (priv^.dialog), GTK_RESPONSE_OK, is_valid);
+ gtk_dialog_set_response_sensitive(PGtkDialog (priv^.dialog), GTK_RESPONSE_OK, is_valid);
end;
procedure pw_dialog_cycle_focus(widget: PGtkWidget; priv: PVFSAskPasswordCallbackPriv); cdecl;
@@ -1318,7 +1181,7 @@ begin
then next_widget := PGtkWidget(priv^.password_entry);
if next_widget <> nil then gtk_widget_grab_focus(next_widget)
else if pw_dialog_input_is_valid(priv)
- then gtk_window_activate_default(GTK_WINDOW(priv^.dialog));
+ then gtk_window_activate_default(PGtkWindow(priv^.dialog));
end;
procedure unmask_checkbox_toggled(togglebutton: PGtkToggleButton; priv: PVFSAskPasswordCallbackPriv); cdecl;
@@ -1341,27 +1204,28 @@ function HandleVFSAskPasswordCallback(DialogParent: PGtkWidget;
anonymous: Pgboolean;
domain: PPChar;
password_save: PVFSPasswordSave): gboolean;
-
+// TODO
+{
function table_add_entry(table: PGtkWidget; row: integer; const label_text: PChar; const value: PChar; user_data: PVFSAskPasswordCallbackPriv): PGtkEntry;
var entry: PGtkEntry;
alabel: PGtkWidget;
begin
alabel := gtk_label_new_with_mnemonic (label_text);
- gtk_misc_set_alignment (GTK_MISC (alabel), 0.0, 0.5);
+ gtk_label_set_yalign(PGtkLabel(alabel), 0.5);
entry := PGtkEntry(gtk_entry_new ());
if value <> nil then gtk_entry_set_text (PGtkEntry(entry), value);
- gtk_table_attach (GTK_TABLE (table), alabel, 0, 1, row, row + 1, GTK_FILL, GTK_EXPAND or GTK_FILL, 0, 0);
+ gtk_table_attach (GTK_TABLE (table), alabel, 0, 1, row, row + 1, GTK_FILL, [GTK_EXPAND, GTK_FILL], 0, 0);
gtk_table_attach_defaults (GTK_TABLE (table), PGtkWidget(entry), 1, 2, row, row + 1);
gtk_label_set_mnemonic_widget (PGtkLabel(alabel), PGtkWidget(entry));
g_signal_connect_data(PGObject(entry), 'changed', TGCallback (@pw_dialog_verify_input), user_data, nil, G_CONNECT_DEFAULT);
g_signal_connect_data(PGObject(entry), 'activate', TGCallback (@pw_dialog_cycle_focus), user_data, nil, G_CONNECT_DEFAULT);
Result := entry;
end;
-
+}
var widget: PGtkWidget;
window: PGtkWindow;
hbox, main_vbox, vbox, icon: PGtkWidget;
- table: PGtkWidget;
+ grid: PGtkWidget;
message_label: PGtkWidget;
can_anonymous: boolean;
Rows: integer;
@@ -1385,11 +1249,10 @@ begin
gtk_window_set_title (window, '');
// Set the dialog up with HIG properties
- gtk_dialog_set_has_separator (priv.dialog, False);
- gtk_container_set_border_width (GTK_CONTAINER (priv.dialog), 5);
- gtk_box_set_spacing (GTK_BOX (priv.dialog^.vbox), 2); // 2 * 5 + 2 = 12
- gtk_container_set_border_width (GTK_CONTAINER (priv.dialog^.action_area), 5);
- gtk_box_set_spacing (GTK_BOX (priv.dialog^.action_area), 6);
+ gtk_container_set_border_width (PGtkContainer (priv.dialog), 5);
+// gtk_box_set_spacing (PGtkBox (priv.dialog^.vbox), 2); // 2 * 5 + 2 = 12
+ gtk_container_set_border_width(PGtkContainer(gtk_dialog_get_action_area(PGtkDialog(priv.dialog))), 5);
+ gtk_box_set_spacing(PGtkBox(gtk_dialog_get_action_area(PGtkDialog(priv.dialog))), 6);
gtk_window_set_resizable (window, False);
// gtk_window_set_icon_name (window, 'gtk-dialog-authentication');
@@ -1399,47 +1262,45 @@ begin
else s := PChar(LANGConnMgr_ConnectButton);
gtk_dialog_add_buttons (priv.dialog,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_CANCEL, [GTK_RESPONSE_CANCEL,
s, GTK_RESPONSE_OK,
- nil);
+ nil]);
gtk_dialog_set_default_response (priv.dialog, GTK_RESPONSE_OK);
// Build contents
- hbox := gtk_hbox_new (FALSE, 12);
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
- gtk_box_pack_start (GTK_BOX (priv.dialog^.vbox), hbox, TRUE, TRUE, 0);
+ hbox := gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12);
+ gtk_container_set_border_width (PGtkContainer (hbox), 5);
+ gtk_box_pack_start(PGtkBox(gtk_dialog_get_content_area(priv.dialog)), hbox, TRUE, TRUE, 0);
- if gtk_style_lookup_icon_set(gtk_widget_get_style(PGtkWidget(priv.dialog)), 'gtk-dialog-authentication') <> nil
- then icon := gtk_image_new_from_stock('gtk-dialog-authentication', GTK_ICON_SIZE_DIALOG)
- else icon := gtk_image_new_from_pixbuf(StockLock48.FPixbuf);
+ icon := gtk_image_new_from_icon_name('gtk-dialog-authentication', GTK_ICON_SIZE_DIALOG);
- gtk_misc_set_alignment (GTK_MISC (icon), 0.5, 0.0);
- gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
+ gtk_widget_set_halign(icon, GTK_ALIGN_CENTER);
+ gtk_box_pack_start (PGtkBox (hbox), icon, FALSE, FALSE, 0);
- main_vbox := gtk_vbox_new (FALSE, 18);
- gtk_box_pack_start (GTK_BOX (hbox), main_vbox, TRUE, TRUE, 0);
+ main_vbox := gtk_box_new(GTK_ORIENTATION_VERTICAL, 18);
+ gtk_box_pack_start (PGtkBox (hbox), main_vbox, TRUE, TRUE, 0);
message_label := gtk_label_new (AMessage);
- gtk_misc_set_alignment (GTK_MISC (message_label), 0.0, 0.5);
- gtk_label_set_line_wrap (GTK_LABEL (message_label), TRUE);
- gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), FALSE, FALSE, 0);
+ gtk_label_set_yalign(PGtkLabel(message_label), 0.5);
+ gtk_label_set_line_wrap (PGtkLabel (message_label), TRUE);
+ gtk_box_pack_start (PGtkBox (main_vbox), PGtkWidget (message_label), FALSE, FALSE, 0);
- vbox := gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
+ vbox := gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
+ gtk_box_pack_start (PGtkBox (main_vbox), vbox, FALSE, FALSE, 0);
can_anonymous := (flags and VFS_ASK_PASSWORD_ANONYMOUS_SUPPORTED) = VFS_ASK_PASSWORD_ANONYMOUS_SUPPORTED;
if can_anonymous then begin
- anon_box := gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (vbox), anon_box, FALSE, FALSE, 0);
+ anon_box := gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
+ gtk_box_pack_start (PGtkBox (vbox), anon_box, FALSE, FALSE, 0);
priv.choice_anon := gtk_radio_button_new_with_mnemonic(nil, PChar(LANGGtkMountOperation_ConnectAnonymously));
- gtk_box_pack_start(GTK_BOX (anon_box), priv.choice_anon, FALSE, FALSE, 0);
+ gtk_box_pack_start(PGtkBox (anon_box), priv.choice_anon, FALSE, FALSE, 0);
g_signal_connect_data(PGObject(priv.choice_anon), 'toggled', TGCallback (@pw_dialog_anonymous_toggled), @priv, nil, G_CONNECT_DEFAULT);
- group := LAZGLIB2.PGSList(gtk_radio_button_get_group(GTK_RADIO_BUTTON(priv.choice_anon)));
- priv.choice_user := gtk_radio_button_new_with_mnemonic(GLIB2.PGSList(group), PChar(LANGGtkMountOperation_ConnectAsUser));
- gtk_box_pack_start(GTK_BOX(anon_box), priv.choice_user, FALSE, FALSE, 0);
+ group := PGSList(gtk_radio_button_get_group(PGtkRadioButton(priv.choice_anon)));
+ priv.choice_user := gtk_radio_button_new_with_mnemonic(group, PChar(LANGGtkMountOperation_ConnectAsUser));
+ gtk_box_pack_start(PGtkBox(anon_box), priv.choice_user, FALSE, FALSE, 0);
g_signal_connect_data(PGObject(priv.choice_user), 'toggled', TGCallback (@pw_dialog_anonymous_toggled), @priv, nil, G_CONNECT_DEFAULT);
end;
@@ -1449,15 +1310,18 @@ begin
if (flags and VFS_ASK_PASSWORD_NEED_DOMAIN) = VFS_ASK_PASSWORD_NEED_DOMAIN then Inc(rows);
// The table that holds the entries
+
+ // TODO
+{
priv.entry_container := gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
if can_anonymous then g_object_set(PGObject(priv.entry_container), 'left-padding', [12, nil]);
- gtk_box_pack_start(GTK_BOX(vbox), priv.entry_container, FALSE, FALSE, 0);
+ gtk_box_pack_start(PGtkBox(vbox), priv.entry_container, FALSE, FALSE, 0);
table := gtk_table_new (rows, 2, FALSE);
gtk_table_set_col_spacings (GTK_TABLE (table), 12);
gtk_table_set_row_spacings (GTK_TABLE (table), 6);
- gtk_container_add (GTK_CONTAINER (priv.entry_container), table);
+ gtk_container_add (PGtkContainer (priv.entry_container), table);
Rows := 0;
if (flags and VFS_ASK_PASSWORD_NEED_USERNAME) = VFS_ASK_PASSWORD_NEED_USERNAME then begin
@@ -1473,39 +1337,39 @@ begin
if (default_password <> nil) and (strlen(default_password) > 0) then
gtk_entry_set_text(priv.password_entry, default_password);
// Inc(Rows);
- gtk_entry_set_visibility (GTK_ENTRY (priv.password_entry), FALSE);
+ gtk_entry_set_visibility (PGtkEntry (priv.password_entry), FALSE);
end;
if (flags and VFS_ASK_PASSWORD_ARCHIVE_MODE) = VFS_ASK_PASSWORD_ARCHIVE_MODE then begin
unmask_checkbox := gtk_check_button_new_with_mnemonic (PChar(LANGFSetPassword_ShowPasswordCheckButton));
g_object_set(PGObject(unmask_checkbox), 'can-focus', [0, nil]);
- gtk_box_pack_start (GTK_BOX (vbox), unmask_checkbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (PGtkBox (vbox), unmask_checkbox, FALSE, FALSE, 0);
g_signal_connect_data(PGObject(unmask_checkbox), 'toggled', TGCallback (@unmask_checkbox_toggled), @priv, nil, G_CONNECT_DEFAULT);
end;
if ((flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = VFS_ASK_PASSWORD_SAVING_SUPPORTED) or
((flags and VFS_ASK_PASSWORD_SAVE_INTERNAL) = VFS_ASK_PASSWORD_SAVE_INTERNAL) then
begin
- remember_box := gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (vbox), remember_box, FALSE, FALSE, 0);
+ remember_box := gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
+ gtk_box_pack_start (PGtkBox (vbox), remember_box, FALSE, FALSE, 0);
if (flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = 0 then s := PChar(LANGGtkMountOperation_DoNotSavePassword)
else s := PChar(LANGGtkMountOperation_ForgetPasswordImmediately);
radio_forget := gtk_radio_button_new_with_mnemonic (nil, s);
- gtk_box_pack_start (GTK_BOX (remember_box), radio_forget, FALSE, FALSE, 0);
+ gtk_box_pack_start (PGtkBox (remember_box), radio_forget, FALSE, FALSE, 0);
- group := LAZGLIB2.PGSList(gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_forget)));
+ group := PGSList(gtk_radio_button_get_group(PGtkRadioButton(radio_forget)));
// gnome-keyring only
if (flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = VFS_ASK_PASSWORD_SAVING_SUPPORTED then begin
- radio_session := gtk_radio_button_new_with_mnemonic(GLIB2.PGSList(group), PChar(LANGGtkMountOperation_RememberPasswordUntilYouLogout));
- gtk_box_pack_start (GTK_BOX (remember_box), radio_session, FALSE, FALSE, 0);
- group := LAZGLIB2.PGSList(gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_session)));
+ radio_session := gtk_radio_button_new_with_mnemonic(group, PChar(LANGGtkMountOperation_RememberPasswordUntilYouLogout));
+ gtk_box_pack_start (PGtkBox (remember_box), radio_session, FALSE, FALSE, 0);
+ group := gtk_radio_button_get_group(PGtkRadioButton(radio_session));
end;
if (flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = 0 then s := PChar(LANGGtkMountOperation_SavePasswordInConnectionManager)
else s := PChar(LANGGtkMountOperation_RememberForever);
- radio_remember := gtk_radio_button_new_with_mnemonic(GLIB2.PGSList(group), s);
- gtk_box_pack_start (GTK_BOX (remember_box), radio_remember, FALSE, FALSE, 0);
+ radio_remember := gtk_radio_button_new_with_mnemonic(group, s);
+ gtk_box_pack_start (PGtkBox (remember_box), radio_remember, FALSE, FALSE, 0);
// Select to save password when internal saving is supported
if (flags and VFS_ASK_PASSWORD_SAVE_INTERNAL) = VFS_ASK_PASSWORD_SAVE_INTERNAL
@@ -1513,13 +1377,13 @@ begin
end;
// The anonymous option will be active by default, ensure the toggled signal is emitted for it.
- if can_anonymous then gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (priv.choice_anon)) else
+ if can_anonymous then gtk_toggle_button_toggled (PGtkToggleButton(priv.choice_anon)) else
if not pw_dialog_input_is_valid(@priv) then gtk_dialog_set_response_sensitive(priv.dialog, GTK_RESPONSE_OK, False);
- gtk_widget_show_all (GTK_WIDGET (priv.dialog));
+ gtk_widget_show_all (PGtkWidget (priv.dialog));
gtk_window_set_transient_for (window, PGtkWindow(DialogParent));
- Result := gtk_dialog_run(PGtkDialog(priv.dialog)) = GTK_RESPONSE_OK;
+ Result := gint(gtk_dialog_run(PGtkDialog(priv.dialog))) = gint(GTK_RESPONSE_OK);
if Result then begin
if (priv.username_entry <> nil) and (username <> nil) then username^ := g_strdup(gtk_entry_get_text(priv.username_entry));
if (priv.domain_entry <> nil) and (domain <> nil) then domain^ := g_strdup(gtk_entry_get_text(priv.domain_entry));
@@ -1531,7 +1395,7 @@ begin
if gtk_toggle_button_get_active(PGtkToggleButton(radio_remember)) then password_save^ := VFS_PASSWORD_SAVE_PERMANENTLY;
end;
end;
-
+}
gtk_widget_destroy (PGtkWidget(priv.dialog));
end;
@@ -1547,48 +1411,47 @@ begin
if not Assigned(List) or (List.Count = 0) then Exit;
dialog := gtk_dialog_new;
if DialogParent <> nil then gtk_window_set_transient_for(PGtkWindow(dialog), PGtkWindow(DialogParent));
- gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
- gtk_box_set_spacing(GTK_BOX(PGtkDialog(dialog)^.vbox), 14);
- gtk_window_set_resizable(GTK_WINDOW (dialog), False);
- gtk_dialog_set_has_separator(PGtkDialog(dialog), False);
- gtk_window_set_title(GTK_WINDOW(dialog), '');
- gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), True);
+ gtk_container_set_border_width(PGtkContainer(dialog), 5);
+ gtk_box_set_spacing(PGtkBox(gtk_dialog_get_content_area(PGtkDialog(dialog))), 14);
+ gtk_window_set_resizable(PGtkWindow (dialog), False);
+ gtk_window_set_title(PGtkWindow(dialog), '');
+ gtk_window_set_skip_taskbar_hint(PGtkWindow(dialog), True);
primary_label := gtk_label_new(nil);
gtk_label_set_markup(PGtkLabel(primary_label), PChar(Format('<span size="large" weight="ultrabold">%s</span>', ['Inaccessible folders and files'])));
secondary_label := gtk_label_new('Some files are not accessible and will be skipped. Press Cancel to abort the operation or Continue to ignore this warning.');
details_label := gtk_label_new(nil);
gtk_label_set_label(PGtkLabel(details_label), PChar(List.Text));
- image := gtk_image_new_from_stock(GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
- gtk_misc_set_alignment(GTK_MISC(image), 0.5, 0.0);
- gtk_label_set_line_wrap(GTK_LABEL(primary_label), True);
- gtk_label_set_selectable(GTK_LABEL(primary_label), True);
- gtk_misc_set_alignment(GTK_MISC(primary_label), 0.0, 0.5);
- gtk_label_set_line_wrap(GTK_LABEL(secondary_label), True);
- gtk_label_set_selectable(GTK_LABEL(secondary_label), True);
- gtk_misc_set_alignment(GTK_MISC(secondary_label), 0.0, 0.5);
- gtk_label_set_line_wrap(GTK_LABEL(details_label), False);
- gtk_label_set_selectable(GTK_LABEL(details_label), True);
- gtk_misc_set_alignment(GTK_MISC(details_label), 0.0, 0.0);
+ image := gtk_image_new_from_icon_name('gtk-dialog-warning', GTK_ICON_SIZE_DIALOG);
+ gtk_widget_set_halign(image, GTK_ALIGN_CENTER);
+ gtk_label_set_line_wrap(PGtkLabel(primary_label), True);
+ gtk_label_set_selectable(PGtkLabel(primary_label), True);
+ gtk_label_set_yalign(PGtkLabel(primary_label), 0.5);
+ gtk_label_set_line_wrap(PGtkLabel(secondary_label), True);
+ gtk_label_set_selectable(PGtkLabel(secondary_label), True);
+ gtk_label_set_yalign(PGtkLabel(secondary_label), 0.5);
+ gtk_label_set_line_wrap(PGtkLabel(details_label), False);
+ gtk_label_set_selectable(PGtkLabel(details_label), True);
scrolled_window := gtk_scrolled_window_new(nil, nil);
gtk_scrolled_window_set_policy(PGtkScrolledWindow(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_add_with_viewport(PGtkScrolledWindow(scrolled_window), details_label);
- hbox := gtk_hbox_new (False, 12);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
- gtk_box_pack_start(GTK_BOX(hbox), image, False, False, 0);
- vbox := gtk_vbox_new(False, 12);
- gtk_box_pack_start(GTK_BOX(hbox), vbox, False, False, 0);
- gtk_box_pack_start(GTK_BOX(vbox), primary_label, False, False, 0);
- gtk_box_pack_start(GTK_BOX(vbox), secondary_label, False, False, 0);
+ hbox := gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12);
+ gtk_container_set_border_width(PGtkContainer(hbox), 5);
+ gtk_box_pack_start(PGtkBox(hbox), image, False, False, 0);
+ vbox := gtk_box_new(GTK_ORIENTATION_VERTICAL, 12);
+ gtk_box_pack_start(PGtkBox(hbox), vbox, False, False, 0);
+ gtk_box_pack_start(PGtkBox(vbox), primary_label, False, False, 0);
+ gtk_box_pack_start(PGtkBox(vbox), secondary_label, False, False, 0);
expander := gtk_expander_new_with_mnemonic('Show more _details');
- gtk_expander_set_spacing(GTK_EXPANDER(expander), 6);
- gtk_container_add(GTK_CONTAINER(expander), scrolled_window);
- gtk_box_pack_start(GTK_BOX(vbox), expander, False, False, 0);
- gtk_box_pack_start(GTK_BOX(PGtkDialog(dialog)^.vbox), hbox, False, False, 0);
-
- gtk_dialog_add_button(PGtkDialog(dialog), GTK_STOCK_CANCEL, 0);
- gtk_dialog_add_button(PGtkDialog(dialog), 'C_ontinue', 1);
- gtk_dialog_set_default_response(PGtkDialog(dialog), 1);
+ // TODO
+// gtk_expander_set_spacing(PGtkExpander(expander), 6);
+ gtk_container_add(PGtkContainer(expander), scrolled_window);
+ gtk_box_pack_start(PGtkBox(vbox), expander, False, False, 0);
+ gtk_box_pack_start(PGtkBox(gtk_dialog_get_content_area(PGtkDialog(dialog))), hbox, False, False, 0);
+
+ gtk_dialog_add_button(PGtkDialog(dialog), GTK_STOCK_CANCEL, TGtkResponseType(0));
+ gtk_dialog_add_button(PGtkDialog(dialog), 'C_ontinue', TGtkResponseType(1));
+ gtk_dialog_set_default_response(PGtkDialog(dialog), TGtkResponseType(1));
gtk_widget_show_all(dialog);
Result := gtk_dialog_run(PGtkDialog(dialog));
@@ -1607,13 +1470,6 @@ end;
procedure LoadGnomeLibs;
begin
// Set default values
- gnome_about_new := nil;
- gnome_program_init := nil;
- libgnome_module_info_get := nil;
- libgnomeui_module_info_get := nil;
- gnome_color_picker_new := nil;
- gnome_color_picker_get_i16 := nil;
- gnome_color_picker_set_i16 := nil;
gnome_icon_entry_new := nil;
gnome_icon_entry_set_pixmap_subdir := nil;
gnome_icon_entry_get_filename := nil;