summaryrefslogtreecommitdiff
path: root/UViewer.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 /UViewer.pas
parentb9703b29819b619037cc282d719c187e51bacd30 (diff)
downloadtuxcmd-1b2b4bb4f3ecc034a6e9364d8768e50b167a9680.tar.xz
Rough GTK3 port
Diffstat (limited to 'UViewer.pas')
-rw-r--r--UViewer.pas141
1 files changed, 71 insertions, 70 deletions
diff --git a/UViewer.pas b/UViewer.pas
index e3eff81..0eceba8 100644
--- a/UViewer.pas
+++ b/UViewer.pas
@@ -24,9 +24,8 @@ unit UViewer;
interface
uses
- lazglib2, lazgobject2, gdk2, gtk2, pango,
- SysUtils, Classes, GTKControls, GTKForms, GTKExtCtrls, GTKConsts,
- GTKText;
+ lazglib2, lazgobject2, lazgdk3, lazgtk3, lazpango1,
+ SysUtils, Classes, GTKControls, GTKForms, GTKExtCtrls, GTKText;
type
TFViewer = class(TGTKForm)
@@ -67,7 +66,7 @@ var
implementation
-uses UCoreUtils, UConfig, DateUtils, ULibc, UGnome;
+uses UCoreUtils, UConfig, DateUtils, ULibc;
@@ -127,14 +126,15 @@ end;
procedure TFViewer.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean);
begin
- if Key = GDK_ESCAPE then Close;
+ if Key = GDK_KEY_Escape then Close;
end;
procedure TFViewer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
SetParent(nil);
- if Assigned(FWidget) and GTK_IS_WIDGET(FWidget) then gtk_widget_destroy(PGtkWidget(FWidget));
+ // TODO WTF
+ if Assigned(FWidget) then g_object_unref(PGObject(FWidget));
// AThread.Terminate;
// ModalResult := mbOK;
end;
@@ -183,11 +183,11 @@ begin
// DebugMsg(['Setting value to ', val]);
Inc(i);
end;
- gdk_window_process_all_updates;
+// gdk_window_process_all_updates;
usleep(100);
until (microseconds div 1000) > dur;
gtk_adjustment_set_value(adj, dest_value);
- gdk_window_process_all_updates;
+// gdk_window_process_all_updates;
// DebugMsg(['End value ', dest_value]);
g_timer_stop(timer);
@@ -207,67 +207,67 @@ begin
Accept := True;
case Key of
- GDK_HOME: begin
- smooth_scroll(vadj, 0, True);
- smooth_scroll(hadj, 0, True);
+ GDK_KEY_Home: begin
+ smooth_scroll(vadj, 0, True);
+ smooth_scroll(hadj, 0, True);
+ Accept := False;
+ end;
+ GDK_KEY_End: begin
+ smooth_scroll(vadj, vadj^.upper - vadj^.page_size, True);
+ Accept := False;
+ end;
+ GDK_KEY_Page_Down, GDK_KEY_KP_Page_Down, GDK_KEY_space: begin
+ x := gtk_adjustment_get_value(vadj) + vadj^.page_increment;
+ if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size;
+ smooth_scroll(vadj, x, True);
+ Accept := False;
+ end;
+ GDK_KEY_Page_Up, GDK_KEY_KP_Page_Up: begin
+ x := gtk_adjustment_get_value(vadj) - vadj^.page_increment;
+ if x < 0 then x := 0;
+ smooth_scroll(vadj, x, True);
+ Accept := False;
+ end;
+ GDK_KEY_Down, GDK_KEY_KP_Down: begin
+ x := gtk_adjustment_get_value(vadj) + vadj^.step_increment;
+ if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size;
+ smooth_scroll(vadj, x, False);
+ Accept := False;
+ end;
+ GDK_KEY_Up, GDK_KEY_KP_Up: begin
+ x := gtk_adjustment_get_value(vadj) - vadj^.step_increment;
+ if x < 0 then x := 0;
+ smooth_scroll(vadj, x, False);
+ Accept := False;
+ end;
+ GDK_KEY_Right, GDK_KEY_KP_Right: begin
+ x := gtk_adjustment_get_value(hadj) + hadj^.step_increment;
+ if x + hadj^.page_size > hadj^.upper then x := hadj^.upper - hadj^.page_size;
+ smooth_scroll(hadj, x, False);
+ Accept := False;
+ end;
+ GDK_KEY_Left, GDK_KEY_KP_Left: begin
+ x := gtk_adjustment_get_value(hadj) - hadj^.step_increment;
+ if x < 0 then x := 0;
+ smooth_scroll(hadj, x, False);
+ Accept := False;
+ end;
+ GDK_KEY_W: if (Shift = []) then begin
+ if TextView.WrapMode = wmWrapNone then TextView.WrapMode := wmWrapWord
+ else TextView.WrapMode := wmWrapNone;
Accept := False;
end;
- GDK_END: begin
- smooth_scroll(vadj, vadj^.upper - vadj^.page_size, True);
- Accept := False;
- end;
- GDK_Page_Down, GDK_SPACE: begin
- x := gtk_adjustment_get_value(vadj) + vadj^.page_increment;
- if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size;
- smooth_scroll(vadj, x, True);
- Accept := False;
- end;
- GDK_Page_Up: begin
- x := gtk_adjustment_get_value(vadj) - vadj^.page_increment;
- if x < 0 then x := 0;
- smooth_scroll(vadj, x, True);
- Accept := False;
- end;
- GDK_Down: begin
- x := gtk_adjustment_get_value(vadj) + vadj^.step_increment;
- if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size;
- smooth_scroll(vadj, x, False);
- Accept := False;
- end;
- GDK_Up: begin
- x := gtk_adjustment_get_value(vadj) - vadj^.step_increment;
- if x < 0 then x := 0;
- smooth_scroll(vadj, x, False);
- Accept := False;
- end;
- GDK_Right: begin
- x := gtk_adjustment_get_value(hadj) + hadj^.step_increment;
- if x + hadj^.page_size > hadj^.upper then x := hadj^.upper - hadj^.page_size;
- smooth_scroll(hadj, x, False);
+// GDK_C, GDK_Capital_C, GDK_Insert: if (ssCtrl in Shift) then Accept := True;
+ GDK_KEY_S: if (Shift = []) then begin
+ ConfViewerMonospaceFont := True;
+ ApplyFont;
Accept := False;
end;
- GDK_Left: begin
- x := gtk_adjustment_get_value(hadj) - hadj^.step_increment;
- if x < 0 then x := 0;
- smooth_scroll(hadj, x, False);
+ GDK_KEY_A: if (Shift = []) then begin
+ ConfViewerMonospaceFont := False;
+ ApplyFont;
Accept := False;
end;
- GDK_W, GDK_Capital_W: if (Shift = []) then begin
- if TextView.WrapMode = wmWrapNone then TextView.WrapMode := wmWrapWord
- else TextView.WrapMode := wmWrapNone;
- Accept := False;
- end;
-// GDK_C, GDK_Capital_C, GDK_Insert: if (ssCtrl in Shift) then Accept := True;
- GDK_S, GDK_Capital_S: if (Shift = []) then begin
- ConfViewerMonospaceFont := True;
- ApplyFont;
- Accept := False;
- end;
- GDK_A, GDK_Capital_A: if (Shift = []) then begin
- ConfViewerMonospaceFont := False;
- ApplyFont;
- Accept := False;
- end;
end;
end;
@@ -301,13 +301,13 @@ begin
Accept := True;
adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(ScrolledWindow.FWidget));
case Key of
- GDK_ESCAPE: Close;
- GDK_Down: begin
+ GDK_KEY_Escape: Close;
+ GDK_KEY_Down: begin
x := Trunc(gtk_adjustment_get_value(adj)) + LineHeight;
if x + Trunc(adj^.page_size) > LineHeight * NumLines then x := LineHeight * NumLines - Trunc(adj^.page_size);
gtk_adjustment_set_value(adj, x);
end;
- GDK_Up: begin
+ GDK_KEY_Up: begin
x := Trunc(gtk_adjustment_get_value(adj)) - LineHeight;
if x < 0 then x := 0;
gtk_adjustment_set_value(adj, x);
@@ -443,19 +443,20 @@ end;
procedure TFViewer.ApplyFont;
begin
- if ConfViewerMonospaceFont
+ // TODO
+{ if ConfViewerMonospaceFont
then gtk_widget_modify_font(TextView.FWidget, pango_font_description_from_string('Monospace'))
- else gtk_widget_modify_font(TextView.FWidget, nil);
+ else gtk_widget_modify_font(TextView.FWidget, nil); }
end;
(********************************************************************************************************************************)
procedure TViewerThread.Execute;
begin
- gdk_threads_enter;
+// gdk_threads_enter;
// DoIt;
AViewer.Show;
// AViewer.Run;
- gdk_threads_leave;
+// gdk_threads_leave;
end;
constructor TViewerThread.Create(Parent: TComponent);