ADD: Modern Form Style infrastructure for macOS 11+

This commit is contained in:
rich2014 2024-09-07 22:29:04 +08:00
commit d011b40705
3 changed files with 64 additions and 2 deletions

View file

@ -311,7 +311,7 @@ end;"/>
<PackageName Value="Image32"/>
</Item13>
</RequiredPackages>
<Units Count="272">
<Units Count="273">
<Unit0>
<Filename Value="doublecmd.lpr"/>
<IsPartOfProject Value="True"/>
@ -1991,6 +1991,11 @@ end;"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uShellFileSource"/>
</Unit271>
<Unit272>
<Filename Value="platform\unix\darwin\ucocoamodernformconfig.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uCocoaModernFormConfig"/>
</Unit272>
</Units>
</ProjectOptions>
<CompilerOptions>

View file

@ -92,6 +92,9 @@ uses
{$IFDEF UNIX}
, uMyUnix
{$ENDIF}
{$IFDEF LclCocoa}
,uCocoaModernFormConfig
{$ENDIF}
;
{$R *.res}
@ -141,7 +144,6 @@ begin
{$IF DEFINED(DARWIN)}
GetMacFormatSettings(DefaultFormatSettings);
Application.Icon:= nil;
{$ENDIF}
uDCVersion.InitializeVersionInfo;

View file

@ -0,0 +1,55 @@
unit uCocoaModernFormConfig;
{$mode ObjFPC}{$H+}
{$modeswitch objectivec2}
interface
uses
Classes, SysUtils,
Forms,
fMain,
CocoaAll, CocoaConfig, CocoaToolBar, Cocoa_Extra, CocoaUtils;
implementation
const
mainFormConfig: TCocoaConfigForm = (
name: 'frmMain';
className: '';
isMainForm: False;
titleBar: (
transparent: False;
separatorStyle: NSTitlebarSeparatorStyleAutomatic;
);
toolBar: (
identifier: 'MainForm.ToolBar';
style: NSWindowToolbarStyleAutomatic;
displayMode: NSToolbarDisplayModeIconOnly;
allowsUserCustomization: True;
autosavesConfiguration: False;
items: (
);
defaultItemsIdentifiers: (
);
allowedItemsIdentifiers: (
);
itemCreator: nil; // default item Creator
);
);
procedure initCocoaModernFormConfig;
begin
CocoaConfigForms:= [ mainFormConfig ];
end;
initialization
if NSAppKitVersionNumber >= NSAppKitVersionNumber11_0 then
initCocoaModernFormConfig;
end.