diff --git a/editor/studio/AMXX_Studio.cfg b/editor/studio/AMXX_Studio.cfg index d696e73a..b36dc92c 100755 --- a/editor/studio/AMXX_Studio.cfg +++ b/editor/studio/AMXX_Studio.cfg @@ -34,7 +34,6 @@ -K$00400000 -LE"c:\programme\borland\delphi7\Projects\Bpl" -LN"c:\programme\borland\delphi7\Projects\Bpl" --DmadExcept -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST diff --git a/editor/studio/AMXX_Studio.dof b/editor/studio/AMXX_Studio.dof index 105256a3..780cdca2 100755 --- a/editor/studio/AMXX_Studio.dof +++ b/editor/studio/AMXX_Studio.dof @@ -96,7 +96,7 @@ PackageDLLOutputDir= PackageDCPOutputDir= SearchPath= Packages=vcl;rtl;vclx;vclie;xmlrtl;inetdbbde;inet;inetdbxpress;VclSmp;dbrtl;dbexpress;vcldb;dsnap;dbxcds;inetdb;bdertl;vcldbx;adortl;teeui;teedb;tee;ibxpress;visualclx;visualdbclx;vclactnband;vclshlctrls;Rave50CLX;Rave50VCL;dclOffice2k;Indy70;DJcl;FlatStyle_D5;DelphiX_for7;mxFlatPack_D7;tbx_d7;tb2k_d7;mbTBXLibPack;TntUnicodeVcl_R70;SynEdit_R7 -Conditionals=madExcept +Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] @@ -115,7 +115,7 @@ AutoIncBuild=1 MajorVer=1 MinorVer=1 Release=0 -Build=4 +Build=8 Debug=0 PreRelease=0 Special=0 @@ -126,13 +126,13 @@ CodePage=1252 [Version Info Keys] CompanyName=AMX Mod X Dev Team FileDescription= -FileVersion=1.1.0.4 +FileVersion=1.1.0.8 InternalName= LegalCopyright= LegalTrademarks= OriginalFilename= ProductName=AMXX-Studio -ProductVersion=1.0.0.0 +ProductVersion=1.1.0.0 Comments= [HistoryLists\hlConditionals] Count=1 diff --git a/editor/studio/AMXX_Studio.dpr b/editor/studio/AMXX_Studio.dpr index 9234d6c7..e61d4939 100755 --- a/editor/studio/AMXX_Studio.dpr +++ b/editor/studio/AMXX_Studio.dpr @@ -1,8 +1,6 @@ program AMXX_Studio; uses - madExcept, - madLinkDisAsm, Forms, Windows, Messages, @@ -50,12 +48,12 @@ uses var i: integer; begin - if FindWindow(nil, 'AMXX-Studio') <> 0 then begin + if FindWindow('TfrmMain', 'AMXX-Studio') <> 0 then begin if ParamCount > 0 then begin for i := 1 to ParamCount do SendStudioMsg(SCM_LOADFILE, ParamStr(i), 0); end; - //exit; + exit; end; Application.Initialize; Application.Title := 'AMXX-Studio'; diff --git a/editor/studio/AMXX_Studio.exe b/editor/studio/AMXX_Studio.exe index 5525301a..0a78c05b 100755 Binary files a/editor/studio/AMXX_Studio.exe and b/editor/studio/AMXX_Studio.exe differ diff --git a/editor/studio/AMXX_Studio.res b/editor/studio/AMXX_Studio.res index 800d9171..5d6a57a2 100755 Binary files a/editor/studio/AMXX_Studio.res and b/editor/studio/AMXX_Studio.res differ diff --git a/editor/studio/UnitMainTools.pas b/editor/studio/UnitMainTools.pas index 8398d792..46d715ed 100755 --- a/editor/studio/UnitMainTools.pas +++ b/editor/studio/UnitMainTools.pas @@ -61,6 +61,7 @@ function GetMenuItem(Caption: String; eParent: TTBCustomItem = nil): TTBCustomIt function GetCat: String; function GetCIItem(eName: String; eParent: TJvCustomInspectorItem = nil): TJvCustomInspectorItem; +function GetCIItemByValue(eValue: String; eParent: TJvCustomInspectorItem = nil): TJvCustomInspectorItem; function FindSettingsNode(eText: String; eParent: TTreeNode = nil): TTreeNode; procedure LoadPlugins; @@ -152,6 +153,36 @@ begin end; end; +function GetCIItemByValue(eValue: String; eParent: TJvCustomInspectorItem = nil): TJvCustomInspectorItem; +var i: integer; +begin + eValue := LowerCase(eValue); + Result := nil; + + if eParent = nil then begin + for i := 0 to frmMain.jviCode.Root.Count -1 do begin + if LowerCase(frmMain.jviCode.Root.Items[i].DisplayValue) = eValue then + Result := frmMain.jviCode.Root.Items[i] + else if frmMain.jviCode.Root.Items[i].Count <> 0 then + Result := GetCIItemByValue(eValue, frmMain.jviCode.Root.Items[i]); + + if Assigned(Result) then + exit; + end; + end + else begin + for i := 0 to eParent.Count -1 do begin + if LowerCase(eParent.Items[i].DisplayValue) = eValue then + Result := eParent.Items[i] + else if eParent.Items[i].Count <> 0 then + Result := GetCIItemByValue(eValue, eParent.Items[i]); + + if Assigned(Result) then + exit; + end; + end; +end; + function FindSettingsNode(eText: String; eParent: TTreeNode = nil): TTreeNode; var i: integer; begin diff --git a/editor/studio/UnitPlugins.pas b/editor/studio/UnitPlugins.pas index 532faee4..82fad3b2 100755 --- a/editor/studio/UnitPlugins.pas +++ b/editor/studio/UnitPlugins.pas @@ -6,28 +6,28 @@ uses SysUtils, Classes, Windows, Messages, Forms, ComCtrls; type TCodeSnippetClick = function (pTitle, pCategory: PChar; pCode: PChar): Integer; cdecl; TFileAction = function (pFilename: PChar): Integer; cdecl; - TDocChange = function (pIndex: DWord; pFilename: PChar; pHighlighter: PChar; pRestoreCaret: Boolean): Integer; cdecl; - TProjectsChange = function (pOldIndex, pNewIndex: DWord): Integer; cdecl; - TCreateNewFile = function (Item: PByte): Integer; cdecl; + TDocChange = function (pIndex: Integer; pFilename: PChar; pHighlighter: PChar; pRestoreCaret: Boolean): Integer; cdecl; + TProjectsChange = function (pOldIndex, pNewIndex: Integer): Integer; cdecl; + TCreateNewFile = function (Item: Byte): Integer; cdecl; TDisplaySearch = function (pSearchList: PChar; pSelected: PChar): Integer; cdecl; TSearch = function (pExpression, pSearchList: PChar; pCaseSensivity, pWholeWords, pSearchFromCaret, pSelectedOnly, pRegEx, pForward: Boolean): Integer; cdecl; TSearchReplace = function (pExpression, pReplace, pExpList, pRepList: PChar; pCaseSensivity, pWholeWords, pSearchFromCaret, pSelectedOnly, pRegEx, pForward: Boolean): Integer; cdecl; - TVisibleControlChange = function (pControl: DWord; pShow: Boolean): Integer; cdecl; - TCompile = function (pCompileType: DWord; Lang, Filename: PChar): Integer; cdecl; - TShowHelp = function (pHelpType: DWord): Integer; cdecl; + TVisibleControlChange = function (pControl: Integer; pShow: Boolean): Integer; cdecl; + TCompile = function (pCompileType: Integer; Lang, Filename: PChar): Integer; cdecl; + TShowHelp = function (pHelpType: Integer): Integer; cdecl; TCustomItemClick = function (pCaption: PChar): Integer; cdecl; TThemeChanged = function (pTheme: PChar): Integer; cdecl; - TModified = function (pText: PChar): Integer; cdecl; + TModified = function (pModifiedText: PChar; pText: PChar): Integer; cdecl; TKeyPress = function (pKey: PChar): Integer; cdecl; - TEditorClick = function (pDoubleClick: Boolean): Integer; cdecl; - TUpdateSel = function (pSelStart, pSelLength, pFirstVisibleLine: DWord): Integer; cdecl; + TEditorClick = function: Integer; cdecl; + TUpdateSel = function (pSelStart, pSelLength, pFirstVisibleLine: Integer): Integer; cdecl; TCallTipShow = function (pList: PChar): Integer; cdecl; - TCallTipClick = function (pPosition: DWord): Integer; cdecl; + TCallTipClick = function (pPosition: Integer): Integer; cdecl; TAutoCompleteShow = function (pList: PChar): Integer; cdecl; TAutoCompleteSelect = function (pText: PChar): Integer; cdecl; - TAppMsg = function (pHwnd: HWND; pMessage: DWord; pWParam, pLParam: Integer; pTime: DWord; pPt: TPoint): Integer; cdecl; + TAppMsg = function (pHwnd: HWND; pMessage: Integer; pWParam, pLParam: Integer; pTime: Integer; pPt: TPoint): Integer; cdecl; TUpdateCodeTools = function (pLang, pFilename, pCurrProjects: PChar): Integer; cdecl; TOutputEvent = function (pItemIndex: Integer): Integer; cdecl; @@ -89,7 +89,7 @@ function Plugin_ShowHelp(HelpType: Integer): Boolean; function Plugin_CustomItemClick(Caption: String): Boolean; function Plugin_ThemeChange(Theme: String): Boolean; -function Plugin_Modified(Code: PChar): Boolean; +function Plugin_Modified(Modified, Text: PChar): Boolean; function Plugin_KeyPress(Key: Char): Boolean; function Plugin_EditorClick(DoubleClick: Boolean): Boolean; function Plugin_UpdateSel(SelStart, SelLength, FirstVisibleLine: Integer): Boolean; @@ -98,7 +98,7 @@ function Plugin_CallTipClick(Position: Integer): Boolean; function Plugin_AutoCompleteShow(List: PChar): Boolean; function Plugin_AutoCompleteSelect(Text: PChar): Boolean; -function Plugin_AppMsg(hwnd: HWND; Message: DWord; wParam, lParam: Integer; time: DWord; pt: TPoint): Boolean; +function Plugin_AppMsg(hwnd: HWND; Message: Integer; wParam, lParam: Integer; time: Integer; pt: TPoint): Boolean; function Plugin_UpdateCodeExplorer(Lang, Filename, CurrProjects: String; Updating: Boolean): Boolean; function Plugin_UpdateCodeInspector(Lang, Filename, CurrProjects: String; Updating: Boolean): Boolean; function Plugin_OutputDblClick(ItemIndex: Integer): Boolean; @@ -503,7 +503,7 @@ begin @Func := GetProcAddress(Handles[i], 'CreatedNewFile'); if @Func <> nil then begin - case Func(PByte(Item)) of + case Func(Item) of PLUGIN_HANDLED: Result := False; PLUGIN_STOP: begin Result := False; @@ -683,7 +683,7 @@ begin end; end; -function Plugin_Modified(Code: PChar): Boolean; +function Plugin_Modified(Modified, Text: PChar): Boolean; var Func: TModified; i: integer; Handles: TIntegerArray; @@ -695,7 +695,7 @@ begin @Func := GetProcAddress(Handles[i], 'Modified'); if @Func <> nil then begin - case Func(Code) of + case Func(Modified, Text) of PLUGIN_HANDLED: Result := False; PLUGIN_STOP: begin Result := False; @@ -744,7 +744,7 @@ begin @Func := GetProcAddress(Handles[i], 'Click'); if @Func <> nil then begin - case Func(DoubleClick) of + case Func of PLUGIN_HANDLED: Result := False; PLUGIN_STOP: begin Result := False; @@ -870,7 +870,7 @@ begin end; end; -function Plugin_AppMsg(hwnd: HWND; Message: DWord; wParam, lParam: Integer; time: DWord; pt: TPoint): Boolean; +function Plugin_AppMsg(hwnd: HWND; Message: Integer; wParam, lParam: Integer; time: Integer; pt: TPoint): Boolean; var Func: TAppMsg; i: integer; Handles: TIntegerArray; @@ -879,7 +879,7 @@ begin Handles := GetDLLHandles; for i := 0 to High(Handles) do begin - @Func := GetProcAddress(Handles[i], 'Message'); + @Func := GetProcAddress(Handles[i], 'AppMessage'); if @Func <> nil then begin case Func(hwnd, Message, wParam, lParam, time, pt) of diff --git a/editor/studio/UnitfrmClose.dfm b/editor/studio/UnitfrmClose.dfm index 1e1af177..8c1ff47a 100755 Binary files a/editor/studio/UnitfrmClose.dfm and b/editor/studio/UnitfrmClose.dfm differ diff --git a/editor/studio/UnitfrmMain.dfm b/editor/studio/UnitfrmMain.dfm index ddd7fcc3..14c55f0a 100755 --- a/editor/studio/UnitfrmMain.dfm +++ b/editor/studio/UnitfrmMain.dfm @@ -1,6 +1,6 @@ object frmMain: TfrmMain - Left = 254 - Top = 332 + Left = 237 + Top = 236 Width = 888 Height = 640 Caption = 'AMXX-Studio' @@ -37,6 +37,7 @@ object frmMain: TfrmMain 000000000000000380000000000000000000000000000000000000000000} KeyPreview = True OldCreateOrder = False + Position = poDesktopCenter OnClose = FormClose OnConstrainedResize = FormConstrainedResize OnCreate = FormCreate diff --git a/editor/studio/UnitfrmMain.pas b/editor/studio/UnitfrmMain.pas index 1cd1f519..e690f9a8 100755 --- a/editor/studio/UnitfrmMain.pas +++ b/editor/studio/UnitfrmMain.pas @@ -2241,7 +2241,7 @@ procedure TfrmMain.sciEditorModified(Sender: TObject; const position, foldLevelNow, foldLevelPrev: Integer); begin if Started then - Plugin_Modified(text); + Plugin_Modified(text, sciEditor.Lines.GetText); end; procedure TfrmMain.sciEditorDblClick(Sender: TObject); @@ -2438,6 +2438,7 @@ begin eItem := TSpTBXItem.Create(tbxMenu.Items); with eItem do begin Caption := eData; + Images := ilImages; ImageIndex := eIntData; OnClick := OnCustomClick; end; @@ -2458,6 +2459,7 @@ begin eItem := TSpTBXSubMenuItem.Create(tbxMenu.Items); with eItem do begin Caption := eData; + Images := ilImages; ImageIndex := eIntData; OnClick := OnCustomClick; end; @@ -2581,8 +2583,8 @@ begin Msg.Result := Integer(PChar('')); end; SCM_CODEINSPECTOR_GETNAME: begin - if Assigned(GetCIItem(eData)) then - Msg.Result := Integer(PChar(GetCIItem(eData).DisplayName)) + if Assigned(GetCIItemByValue(eData)) then + Msg.Result := Integer(PChar(GetCIItemByValue(eData).DisplayName)) else Msg.Result := Integer(PChar('')); end; @@ -2615,7 +2617,9 @@ begin end; SCM_PAWN_ACTIVATE: begin if tsMain.ActiveTabIndex <> 0 then - ActivateProjects(0, eIntData = 1); + ActivateProjects(0, eIntData = 1) + else + Msg.Result := 0; end; SCM_PAWN_ACTIVATEDOC: PawnProjects.Activate(eIntData, Pos('r', eData) <> 0, Pos('s', eData) <> 0); SCM_PAWN_GETNOTES: begin diff --git a/editor/studio/UnitfrmSplashscreen.pas b/editor/studio/UnitfrmSplashscreen.pas index 5bda9d89..a47415ab 100755 --- a/editor/studio/UnitfrmSplashscreen.pas +++ b/editor/studio/UnitfrmSplashscreen.pas @@ -145,15 +145,24 @@ begin end; eCache.Free; - if PAWNProjects.Count > 1 then + i := 0; + if PAWNProjects.Count > 1 then begin PAWNProjects.Close(0); - if CPPProjects.Count > 1 then + i := 1; + end; + if CPPProjects.Count > 1 then begin CPPProjects.Close(0); - if OtherProjects.Count > 1 then + i := 1; + end; + if OtherProjects.Count > 1 then begin OtherProjects.Close(0); + i := 1; + end; - ActivateProjects(0, False); // Started := True is already set here - PAWNProjects.Activate(PAWNProjects.Count -1, False, False); + if i = 1 then begin + ActivateProjects(0, False); // Started := True is already set here + PAWNProjects.Activate(PAWNProjects.Count -1, False, False); + end; UpdateCI; LoadPlugins; end;