c3450df360
- Now checks language strings - New design - Better parsing - Displays actions - Added function: can't load files twice - Updated Code-Explorer - now faster - fixed a few small bugs - now keeps selection - Updated Settings-Dialog - Fixed output bug (showed sometimes huge numbers as line numbers) - Fixed design bug (displayed wrong plugin data on start) - Fixed small bug in the color dialog - Fixed small start bug (didn't show real plugin data on startup) - Added restore function - Fixed code-explorer bug (didn't recognize @-functions) - Fixed highlight bug (had problems with ^" and ^ in strings) - Fixed potential crash bug - Fixed another highlight bug - Fixed aother code-explorer bug... - Added 2 settings (for auto-complete and calltips) - Added SCM_SETTINGS_REMOVEPAGE-message - Fixed SCM_SETTINGS_CREATEPAGE bug
158 lines
5.8 KiB
ObjectPascal
Executable File
158 lines
5.8 KiB
ObjectPascal
Executable File
program AMXX_Studio;
|
|
|
|
uses
|
|
madExcept,
|
|
madLinkDisAsm,
|
|
Forms,
|
|
Windows,
|
|
Classes,
|
|
Messages,
|
|
SysUtils,
|
|
SciLexerMemo,
|
|
JvInspector,
|
|
UnitfrmMain in 'UnitfrmMain.pas' {frmMain},
|
|
UnitMainTools in 'UnitMainTools.pas',
|
|
UnitfrmSettings in 'UnitfrmSettings.pas' {frmSettings},
|
|
UnitLanguages in 'UnitLanguages.pas',
|
|
UnitfrmSelectColor in 'UnitfrmSelectColor.pas' {frmSelectColor},
|
|
UnitfrmInfo in 'UnitfrmInfo.pas' {frmInfo},
|
|
UnitCodeSnippets in 'UnitCodeSnippets.pas',
|
|
UnitCodeUtils in 'UnitCodeUtils.pas',
|
|
UnitfrmSearch in 'UnitfrmSearch.pas' {frmSearch},
|
|
UnitfrmReplace in 'UnitfrmReplace.pas' {frmReplace},
|
|
UnitfrmAllFilesForm in 'UnitfrmAllFilesForm.pas' {frmAllFilesForm},
|
|
UnitfrmGoToLine in 'UnitfrmGoToLine.pas' {frmGoToLine},
|
|
UnitfrmPluginsIniEditor in 'UnitfrmPluginsIniEditor.pas' {frmPluginsIniEditor},
|
|
UnitfrmSocketsTerminal in 'UnitfrmSocketsTerminal.pas' {frmSocketsTerminal},
|
|
UnitReadThread in 'UnitReadThread.pas',
|
|
UnitCodeExplorerUpdater in 'UnitCodeExplorerUpdater.pas',
|
|
UnitTextAnalyze in 'UnitTextAnalyze.pas',
|
|
UnitfrmHudMsgGenerator in 'UnitfrmHudMsgGenerator.pas' {frmHudMsgGenerator},
|
|
UnitCompile in 'UnitCompile.pas',
|
|
UnitfrmAutoIndent in 'UnitfrmAutoIndent.pas' {frmAutoIndent},
|
|
UnitfrmHTMLPreview in 'UnitfrmHTMLPreview.pas' {frmHTMLPreview},
|
|
UnitfrmMenuGenerator in 'UnitfrmMenuGenerator.pas' {frmMenuGenerator},
|
|
UnitCodeInspector in 'UnitCodeInspector.pas',
|
|
UnitfrmMOTDGen in 'UnitfrmMOTDGen.pas' {frmMOTDGen},
|
|
UnitMenuGenerators in 'UnitMenuGenerators.pas',
|
|
UnitfrmClose in 'UnitfrmClose.pas' {frmClose},
|
|
UnitfrmConnGen in 'UnitfrmConnGen.pas' {frmConnGen},
|
|
UnitPlugins in 'UnitPlugins.pas',
|
|
UnitfrmIRCPaster in 'UnitfrmIRCPaster.pas' {frmIRCPaster};
|
|
|
|
{ Used components:
|
|
- JVCL 3.0
|
|
- FlatPack
|
|
- FlatStyle
|
|
- Toolbar2000, TBX, SpTBX, mbTBX Lib
|
|
- Scintilla and DelphiSci
|
|
- madExcept
|
|
}
|
|
|
|
{$R *.res}
|
|
|
|
var eCache: TStringList;
|
|
i: integer;
|
|
eExt: String;
|
|
begin
|
|
if (FindWindow('TfrmMain', 'AMXX-Studio') <> 0) and (FindWindow(nil, 'Delphi 7') = 0) then begin
|
|
if ParamCount > 0 then begin
|
|
for i := 1 to ParamCount do
|
|
SendStudioMsg(SCM_LOADFILE, ParamStr(i), 0);
|
|
end;
|
|
SetForegroundWindow(FindWindow('TfrmMain', 'AMXX-Studio'));
|
|
exit;
|
|
end;
|
|
Application.Initialize;
|
|
Application.Title := 'AMXX-Studio';
|
|
Application.CreateForm(TfrmMain, frmMain);
|
|
Application.CreateForm(TfrmAutoIndent, frmAutoIndent);
|
|
Application.CreateForm(TfrmSettings, frmSettings);
|
|
Application.OnMessage := frmMain.OnMessage;
|
|
Application.OnShortCut := frmMain.OnShortCut;
|
|
frmMain.sciEditor.Lines[5] := '#define PLUGIN "' + frmSettings.txtDefaultName.Text + '"';
|
|
frmMain.sciEditor.Lines[6] := '#define VERSION "' + frmSettings.txtDefaultVersion.Text + '"';
|
|
frmMain.sciEditor.Lines[7] := '#define AUTHOR "' + frmSettings.txtDefaultAuthor.Text + '"';
|
|
|
|
frmMain.sciPropertyLoader.FileName := ExtractFilePath(ParamStr(0)) + 'config\Editor.sci';
|
|
if FileExists(frmMain.sciPropertyLoader.FileName) then
|
|
frmMain.sciPropertyLoader.Load
|
|
else
|
|
frmMain.sciPropertyLoader.Save; // create new if it doesnt exist...
|
|
|
|
frmMain.sciEditor.Gutter1.Width := 40;
|
|
frmMain.sciEditor.Gutter1.MarginType := gutLineNumber;
|
|
LoadCodeSnippets('Pawn');
|
|
ResetToEnglish;
|
|
TJvCustomInspectorData.ItemRegister.Add(TJvInspectorTypeInfoRegItem.Create(TJvInspectorSelectionTextListItem, TypeInfo(TSelectionTextList)));
|
|
|
|
eCache := TStringList.Create;
|
|
if FileExists(ExtractFilePath(ParamStr(0)) + 'config\Cache.cfg') then
|
|
eCache.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'config\Cache.cfg');
|
|
for i := 1 to ParamCount do begin
|
|
if eCache.IndexOf(ParamStr(i)) = -1 then
|
|
eCache.Add(ParamStr(i));
|
|
end;
|
|
|
|
for i := 0 to eCache.Count -1 do begin
|
|
if FileExists(eCache[i]) then begin
|
|
eExt := ExtractFileExt(eCache[i]);
|
|
eExt := LowerCase(eExt);
|
|
if (eExt = '.sma') or (eExt = '.inc') or (eExt = '.inl') then // Pawn files
|
|
PAWNProjects.Open(eCache[i])
|
|
else if (eExt = '.cpp') or (eExt = '.h') then // C++ files
|
|
CPPProjects.Open(eCache[i])
|
|
else if (eExt = '.htm') or (eExt = '.html') then // HTML files
|
|
OtherProjects.Open(eCache[i], 'HTML')
|
|
else if (eExt = '.sql') then // SQL databases
|
|
OtherProjects.Open(eCache[i], 'SQL')
|
|
else if (eExt = '.xml') then // XML files
|
|
OtherProjects.Open(eCache[i], 'XML')
|
|
else // Other files and/or Textfiles
|
|
OtherProjects.Open(eCache[i], 'null');
|
|
end;
|
|
end;
|
|
eCache.Free;
|
|
|
|
i := 0;
|
|
if PAWNProjects.Count > 1 then begin
|
|
PAWNProjects.Close(0);
|
|
i := 1;
|
|
end;
|
|
if CPPProjects.Count > 1 then begin
|
|
CPPProjects.Close(0);
|
|
i := 1;
|
|
end;
|
|
if OtherProjects.Count > 1 then begin
|
|
OtherProjects.Close(0);
|
|
i := 1;
|
|
end;
|
|
|
|
if i = 1 then begin
|
|
ActivateProjects(0, False); // Started := True is already set here
|
|
PAWNProjects.Activate(PAWNProjects.Count -1, False, False);
|
|
end;
|
|
UpdateCI(frmMain.sciEditor.GetCurrentLineNumber);
|
|
|
|
Application.CreateForm(TfrmSelectColor, frmSelectColor);
|
|
Application.CreateForm(TfrmInfo, frmInfo);
|
|
Application.CreateForm(TfrmSearch, frmSearch);
|
|
Application.CreateForm(TfrmReplace, frmReplace);
|
|
Application.CreateForm(TfrmAllFilesForm, frmAllFilesForm);
|
|
Application.CreateForm(TfrmGoToLine, frmGoToLine);
|
|
Application.CreateForm(TfrmPluginsIniEditor, frmPluginsIniEditor);
|
|
Application.CreateForm(TfrmSocketsTerminal, frmSocketsTerminal);
|
|
Application.CreateForm(TfrmHudMsgGenerator, frmHudMsgGenerator);
|
|
Application.CreateForm(TfrmMenuGenerator, frmMenuGenerator);
|
|
Application.CreateForm(TfrmMOTDGen, frmMOTDGen);
|
|
Application.CreateForm(TfrmClose, frmClose);
|
|
Application.CreateForm(TfrmConnGen, frmConnGen);
|
|
Application.CreateForm(TfrmIRCPaster, frmIRCPaster);
|
|
if IEInstalled then
|
|
Application.CreateForm(TfrmHTMLPreview, frmHTMLPreview)
|
|
else
|
|
frmMain.mnuMOTDGenerator.Enabled := False;
|
|
LoadPlugins;
|
|
Application.Run;
|
|
end.
|