Diff of /uGuiUtils.pas [r189] .. [r190]

  Switch to side-by-side view

--- a/uGuiUtils.pas
+++ b/uGuiUtils.pas
@@ -19,14 +19,24 @@
 interface
 
 uses
-  Controls, StdCtrls, DirectoryEdit, uNewHotKey, uOfficeComp, SynEdit;
-
+  Controls, StdCtrls, Menus,
+{$IFNDEF FPC}
+  DirectoryEdit, 
+{$ELSE}
+  EditBtn,
+{$ENDIF}
+  uNewHotKey, uOfficeComp, SynEdit;
+
+procedure AdjustGroupBox(gb : TGroupBox);
 procedure ConfigBar(ogp : TOfficeGradientPanel);
 procedure SizeComboboxDropdown( cb: TCustomCombobox );
 procedure CloneDE(aDest : TDirectoryEdit; aSrc : TEdit);
 procedure CloneSynEdit(aDest : TSynEdit; aSrc : TMemo);
 procedure CloneHotKey(aDest : TBricxCCHotKey; aSrc : TEdit);
 procedure SetWindowFocus(WC : TWinControl);
+function GetTick : Cardinal;
+function GetWindowTitleBarHeight : integer;
+procedure AddMenuItems(m : TMenuItem; a : array of TMenuItem);
 
 implementation
 
@@ -34,8 +44,30 @@
   Themes, Graphics, Classes,
 {$IFNDEF FPC}
   Windows,
+{$ELSE}
+  LCLIntf,
 {$ENDIF}
   Messages, SysUtils, ComCtrls;
+
+procedure AdjustGroupBox(gb : TGroupBox);
+{$IFNDEF FPC}
+begin
+{$ELSE}
+var
+  C : TControl;
+  i : integer;
+begin
+  // move children up (recursively)
+  for i := 0 to gb.ControlCount - 1 do
+  begin
+    C := gb.Controls[i];
+    if C is TGroupBox then
+      AdjustGroupBox(TGroupBox(C))
+    else
+      C.Top := C.Top - 16;
+  end;
+{$ENDIF}
+end;
 
 procedure ConfigBar(ogp : TOfficeGradientPanel);
 begin
@@ -112,7 +144,15 @@
   aDest.Height      := aSrc.Height;
   aDest.AutoSize    := aSrc.AutoSize;
   aDest.TabOrder    := aSrc.TabOrder;
+  aDest.Hint        := aSrc.Hint;
+  aDest.OnChange    := aSrc.OnChange;
+{$IFNDEF FPC}
+  aDest.Cursor      := aSrc.Cursor;
+  aDest.ReadOnly    := aSrc.ReadOnly;
   aDest.SetHint     := False;
+{$ELSE}
+  aDest.Width       := aDest.Width - aDest.Height;
+{$ENDIF}
   aDest.HelpContext := aSrc.HelpContext;
   FreeAndNil(aSrc);
 end;
@@ -136,7 +176,9 @@
   aDest.ParentFont  := aSrc.ParentFont;
   aDest.ReadOnly    := aSrc.ReadOnly;
   aDest.Font.Assign(aSrc.Font);
+{$IFNDEF FPC}
   aDest.ScrollHintFormat := shfTopToBottom;
+{$ENDIF}
   FreeAndNil(aSrc);
 end;
 
@@ -152,17 +194,50 @@
   aDest.TabOrder    := aSrc.TabOrder;
   aDest.Text        := aSrc.Text;
   aDest.HotKey      := 0;
+{$IFNDEF FPC}
   aDest.InvalidKeys := [hcNone, hcShift];
+{$ENDIF}
   FreeAndNil(aSrc);
 end;
 
 procedure SetWindowFocus(WC : TWinControl);
 begin
 {$IFDEF FPC}
-  Result := 0;
+  // not sure what to do here
 {$ELSE}
   Windows.SetFocus(WC.Handle);
 {$ENDIF}
 end;
 
+function GetTick : Cardinal;
+begin
+{$IFDEF FPC}
+  Result := GetTickCount;
+{$ELSE}
+  Result := GetTickCount;
+{$ENDIF}
+end;
+
+function GetWindowTitleBarHeight : integer;
+begin
+{$IFDEF FPC}
+  Result := 16;
+{$ELSE}
+  Result := GetSystemMetrics(SM_CYCAPTION);
+{$ENDIF}
+end;
+
+procedure AddMenuItems(m : TMenuItem; a : array of TMenuItem);
+{$IFDEF FPC}
+var
+  i : integer;
+begin
+  for i := Low(a) to High(a) do
+    m.Add(a[i]);
+{$ELSE}
+begin
+  m.Add(a);
+{$ENDIF}
+end;
+
 end.