amxmodx/editor/studio/UnitfrmSplashscreen.pas
2005-09-04 13:03:34 +00:00

187 lines
5.5 KiB
ObjectPascal
Executable File

unit UnitfrmSplashscreen;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, SciLexerMemo, JvInspector,
UnitfrmMain, UnitfrmSettings, UnitfrmSelectColor, UnitfrmSearch,
UnitfrmReplace, UnitfrmAllFilesForm, UnitfrmGoToLine,
UnitfrmPluginsIniEditor, UnitfrmSocketsTerminal, UnitfrmInfo, TBX,
TB2Item, SpTBXItem, Dialogs;
type
TfrmSplashscreen = class(TForm)
imgSplashscreen: TImage;
lblStudio: TLabel;
tmrHide: TTimer;
procedure FormShow(Sender: TObject);
procedure tmrHideTimer(Sender: TObject);
public
procedure OnMessage(var Msg: TMsg; var Handled: Boolean);
end;
var
frmSplashscreen: TfrmSplashscreen;
implementation
uses UnitCodeExplorerUpdater, UnitCodeSnippets, UnitCodeUtils,
UnitLanguages, UnitMainTools, UnitReadThread, UnitfrmHudMsgGenerator,
UnitfrmAutoIndent, UnitfrmHTMLPreview, UnitCodeInspector, UnitPlugins,
UnitfrmMenuGenerator, UnitfrmMOTDGen, UnitfrmClose, UnitfrmConnGen,
UnitfrmIRCPaster;
{$R *.DFM}
procedure TfrmSplashscreen.FormShow(Sender: TObject);
var eCache: TStringList;
i: integer;
eExt: String;
begin
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmMain, frmMain);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmAutoIndent, frmAutoIndent);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmSettings, frmSettings);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmSelectColor, frmSelectColor);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmInfo, frmInfo);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmSearch, frmSearch);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmReplace, frmReplace);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmAllFilesForm, frmAllFilesForm);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmGoToLine, frmGoToLine);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmPluginsIniEditor, frmPluginsIniEditor);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmSocketsTerminal, frmSocketsTerminal);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmHudMsgGenerator, frmHudMsgGenerator);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmMenuGenerator, frmMenuGenerator);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmMOTDGen, frmMOTDGen);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmClose, frmClose);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmConnGen, frmConnGen);
Application.ProcessMessages;
Repaint;
Application.CreateForm(TfrmIRCPaster, frmIRCPaster);
Application.ProcessMessages;
Repaint;
if IEInstalled then begin
Application.CreateForm(TfrmHTMLPreview, frmHTMLPreview);
Application.ProcessMessages;
Repaint;
end
else
frmMain.mnuMOTDGenerator.Enabled := False;
Application.OnMessage := OnMessage;
with frmMain do begin
sciPropertyLoader.FileName := ExtractFilePath(ParamStr(0)) + 'config\Editor.sci';
if FileExists(sciPropertyLoader.FileName) then
sciPropertyLoader.Load
else
sciPropertyLoader.Save; // create new if it doesnt exist...
sciEditor.Gutter1.Width := 40;
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') 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;
LoadPlugins;
end;
tmrHide.Enabled := True;
end;
procedure TfrmSplashscreen.OnMessage(var Msg: TMsg; var Handled: Boolean);
begin
Handled := not Plugin_AppMsg(Msg.hwnd, Msg.message, Msg.wParam, Msg.lParam, Msg.time, Msg.pt);
end;
procedure TfrmSplashscreen.tmrHideTimer(Sender: TObject);
begin
Hide;
frmMain.Show;
tmrHide.Enabled := False;
end;
end.