From b4cfe90e970c0b77f7d04eca61366666d431712b Mon Sep 17 00:00:00 2001 From: skalogryz Date: Mon, 11 Jan 2010 19:14:38 +0000 Subject: [PATCH] iphonelazext: fixed menu checker <-> project options relations git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1124 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/iphonelazext/ideext.pas | 13 +++++++++--- .../iphonelazext/project_iphone_options.pas | 20 ++++++++++--------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/components/iphonelazext/ideext.pas b/components/iphonelazext/ideext.pas index 24f109ad3..99969365f 100644 --- a/components/iphonelazext/ideext.pas +++ b/components/iphonelazext/ideext.pas @@ -23,7 +23,7 @@ uses Classes, SysUtils, Graphics, Controls, Forms, Dialogs, FileUtil, {Lazarus Interface} - LazIDEIntf, MenuIntf, ProjectIntf, IDEOptionsIntf, PackageIntf, IDEMsgIntf, + LazIDEIntf, MenuIntf, ProjectIntf, IDEOptionsIntf, IDEMsgIntf, project_iphone_options, xcodetemplate, @@ -44,6 +44,7 @@ type function ProjectBuilding(Sender: TObject): TModalResult; function ProjectOpened(Sender: TObject; AProject: TLazProject): TModalResult; function WriteIconTo(const FullName: String): Boolean; + procedure OnProjOptionsChanged(Sender: TObject); public isiPhoneMenu :TIDEMenuCommand; constructor Create; @@ -205,6 +206,7 @@ begin inherited Create; LazarusIDE.AddHandlerOnProjectOpened(@ProjectOpened); LazarusIDE.AddHandlerOnProjectBuilding(@ProjectBuilding); + ProjOptions.OnAfterWrite:=@OnProjOptionsChanged; RegisterIDEMenuCommand(itmProjectWindowSection, 'mnuiPhoneSeparator', '-', nil, nil); @@ -294,6 +296,11 @@ begin end; end; +procedure TiPhoneExtension.OnProjOptionsChanged(Sender: TObject); +begin + isiPhoneMenu.Checked:=ProjOptions.isIPhoneApp; +end; + procedure TiPhoneExtension.UpdateXCode(Sender: TObject); var templates : TStringList; @@ -422,8 +429,8 @@ procedure TiPhoneExtension.isProjectClicked(Sender: TObject); begin if not Assigned(Sender) or not Assigned(LazarusIDE.ActiveProject) then Exit; TIDEMenuCommand(Sender).Checked:=not TIDEMenuCommand(Sender).Checked; - ProjOptions.isIPhoneApp:=TIDEMenuCommand(Sender).Checked; - //SwitchProject(TIDEMenuCommand(Sender).Checked); + ProjOptions.isiPhoneApp:=TIDEMenuCommand(Sender).Checked; + ProjOptions.Save; end; procedure Register; diff --git a/components/iphonelazext/project_iphone_options.pas b/components/iphonelazext/project_iphone_options.pas index e3dba44a5..925033363 100644 --- a/components/iphonelazext/project_iphone_options.pas +++ b/components/iphonelazext/project_iphone_options.pas @@ -40,6 +40,8 @@ type procedure FrameClick(Sender: TObject); private { private declarations } + fOnChanged : TNotifyEvent; + procedure DoChanged; public { public declarations } class function SupportedOptionsClass: TAbstractIDEOptionsClass; override; @@ -47,18 +49,11 @@ type procedure Setup(ADialog: TAbstractOptionsEditorDialog); override; procedure ReadSettings(AOptions: TAbstractIDEOptions); override; procedure WriteSettings(AOptions: TAbstractIDEOptions); override; + property OnChanged: TNotifyEvent read fOnChanged write fOnChanged; end; - -procedure EnableiPhoneAppProject(project: TLazProject); - implementation -procedure EnableiPhoneAppProject(project: TLazProject); -begin - -end; - { TiPhoneProjectOptionsEditor } procedure TiPhoneProjectOptionsEditor.cmbSDKsChange(Sender: TObject); @@ -71,6 +66,11 @@ begin end; +procedure TiPhoneProjectOptionsEditor.DoChanged; +begin + if Assigned(fOnChanged) then fOnChanged(Self); +end; + function TiPhoneProjectOptionsEditor.GetTitle: String; begin Result:=strPrjOptTitle; @@ -111,7 +111,7 @@ begin isIPhoneApp:=chkisPhone.Checked; SDK:=cmbSDKs.Caption; AppID:=edtAppID.Text; - Save; + DoChanged; end; end; @@ -127,5 +127,7 @@ initialization {$I project_iphone_options.lrs} RegisterIDEOptionsEditor(iPhonePrjGroup, TiPhoneProjectOptionsEditor, iPhoneOptions); +finalization + end.