ADD: check Slide/PenWidth Modern Form ToolBar selected menu Item in ViewerForm on macOS

This commit is contained in:
rich2014 2026-05-17 22:44:09 +08:00
commit f0a56568d1
2 changed files with 22 additions and 2 deletions

View file

@ -166,6 +166,7 @@ type
DrawPreview: TDrawGrid;
GifAnim: TGIFView;
memFolder: TMemo;
MenuItem1: TMenuItem;
mnuPlugins: TMenuItem;
miCode: TMenuItem;
miShowTransparency: TMenuItem;
@ -1486,10 +1487,10 @@ end;
procedure TfrmViewer.showLCLToolBar( newVisibility: Boolean );
begin
{$IFDEF DARWIN}
{{$IFDEF DARWIN}
if self.modernToolBarEnabled then
newVisibility:= False;
{$ENDIF}
{$ENDIF}}
ToolBar1.Visible:= newVisibility;
end;
@ -2784,6 +2785,7 @@ var
begin
MenuItem.Owner.Tag:= MenuItem.Tag;
TToolButton(MenuItem.Owner).Caption:= MenuItem.Caption;
viewerFormHandler.onImageEditStateChanged( self );
end;
procedure TfrmViewer.ReopenAsTextIfNeeded;
@ -3104,6 +3106,7 @@ function TfrmViewer.LoadGraphics(const sFileName:String): Boolean;
gifStates:= []
else
gifStates:= [vgsIsGif];
viewerFormHandler.onSlideStateChanged( self );
viewerFormHandler.onGifStateChanged( self, gifStates );
viewerFormHandler.onImageEditStateChanged( self );
end;

View file

@ -849,6 +849,20 @@ begin
item.setEnabled( exportEnabled );
end;
procedure checkMenuByButton( const button: TToolButton; const menu: TMenu );
var
index: Integer;
item: TMenuItem;
begin
try
index:= button.Tag - 1;
for item in menu.Items do
item.Checked:= False;
menu.Items[index].Checked:= True;
except
end;
end;
procedure TCocoaViewerFormHandler.onImageEditStateChanged(
const viewer: TfrmViewer );
var
@ -897,6 +911,8 @@ var
item:= TCocoaToolBarUtils.findItemByIdentifier( toolBar , 'ViewerForm.PenWidth');
item.setEnabled( paintButton.Down );
checkMenuByButton( viewer.btnPenWidth, TCocoaToolBarItemMenu(item).lclGetMenu );
item:= TCocoaToolBarUtils.findItemByIdentifier( toolBar , 'ViewerForm.PenColor');
item.setEnabled( paintButton.Down );
TCocoaToolBarItemColorWell(item).lclSetColor( viewer.btnPenColor.ButtonColor );
@ -924,6 +940,7 @@ begin
Exit;
TCocoaToolBarItem(item).lclSetState( viewer.btnSlideShow.Down );
checkMenuByButton( viewer.btnSlideShow, TCocoaToolBarItemMenu(item).lclGetMenu );
viewer.TimerViewer.Enabled:= viewer.btnSlideShow.Down;
end;