Changeset 16


Ignore:
Timestamp:
Aug 6, 2012, 3:16:26 PM (12 years ago)
Author:
chronos
Message:
  • Modified: Definition of text source file moved to new package Basic.
Location:
trunk
Files:
8 added
4 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Studio/LibreDevelopStudio.lpi

    r15 r16  
    3333      </local>
    3434    </RunParams>
    35     <RequiredPackages Count="7">
     35    <RequiredPackages Count="8">
    3636      <Item1>
    37         <PackageName Value="LDStudioCommon"/>
     37        <PackageName Value="LDModuleBasic"/>
    3838      </Item1>
    3939      <Item2>
    40         <PackageName Value="LDModuleProject"/>
     40        <PackageName Value="LDStudioCommon"/>
    4141      </Item2>
    4242      <Item3>
    43         <PackageName Value="LDModulePascal"/>
     43        <PackageName Value="LDModuleProject"/>
    4444      </Item3>
    4545      <Item4>
    46         <PackageName Value="LDModuleBrainfuck"/>
     46        <PackageName Value="LDModulePascal"/>
    4747      </Item4>
    4848      <Item5>
    49         <PackageName Value="LDModuleDebug"/>
     49        <PackageName Value="LDModuleBrainfuck"/>
    5050      </Item5>
    5151      <Item6>
    52         <PackageName Value="LibreDevelopStudio"/>
     52        <PackageName Value="LDModuleDebug"/>
    5353      </Item6>
    5454      <Item7>
     55        <PackageName Value="LibreDevelopStudio"/>
     56      </Item7>
     57      <Item8>
    5558        <PackageName Value="LCL"/>
    56       </Item7>
     59      </Item8>
    5760    </RequiredPackages>
    5861    <Units Count="2">
  • trunk/Studio/UCore.pas

    r15 r16  
    3030uses
    3131  ULDModuleDebug, UFormMain, ULDModuleBrainfuck, UDataModule, ULDModulePascal,
    32   ULDModuleProject;
     32  ULDModuleProject, ULDModuleBasic;
    3333
    3434{ TCore }
     
    5151    RegisterModule(TLDModuleBrainfuck.Create, True);
    5252    RegisterModule(TLDModuleDebug.Create, True);
     53    RegisterModule(TLDModuleBasic.Create, True);
    5354    InstallMarked;
    5455  end;
  • trunk/StudioCommon/USource.pas

    r15 r16  
    99
    1010type
    11 
    12   { TSourceType }
    13 
    14   TSourceType = class
    15     Extension: string;
    16     Title: string;
    17     Form: TForm;
    18     constructor Create; virtual;
    19   end;
    20 
    21   TFileTypeClass = class of TSourceType;
    22 
    23   { TFileTypes }
    24 
    25   TFileTypes = class(TListObject)
    26     function GetDialogFilter: string;
    27   end;
     11  TSourceType = class;
    2812
    2913  { TSource }
     
    3620    Modified: Boolean;
    3721    Form: TForm;
     22    FileType: TSourceType;
    3823    property Name: string read FName write SetName;
    3924  end;
     
    4429    Items: TListObject; // TListObject<TSource>
    4530    Main: TSource;
     31  end;
     32
     33
     34  { TSourceType }
     35
     36  TSourceType = class
     37    Extension: string;
     38    Title: string;
     39    Form: TFormClass;
     40    SourceClass: TSourceClass;
     41    constructor Create; virtual;
     42  end;
     43
     44  TFileTypeClass = class of TSourceType;
     45
     46  { TFileTypes }
     47
     48  TFileTypes = class(TListObject)
     49    function GetDialogFilter: string;
     50    function FindByExt(Extension: string): TSourceType;
    4651  end;
    4752
     
    8489  TConvertorClass = class of TConvertor;
    8590
    86   { TSourceText }
    87 
    88   TSourceText = class(TSource)
    89   private
    90   public
    91     Loaded: Boolean;
    92     Content: TStringList;
    93     constructor Create;
    94     destructor Destroy; override;
    95   end;
    96 
    97 
    9891
    9992implementation
     
    107100begin
    108101  inherited;
     102  SourceClass := TSource;
    109103end;
    110104
     
    151145end;
    152146
     147function TFileTypes.FindByExt(Extension: string): TSourceType;
     148var
     149  I: Integer;
     150begin
     151  I := 0;
     152  while (I < count) and (TSourceType(Items[I]).Extension <> Extension) do Inc(I);
     153  if I < Count then Result := TSourceType(Items[I])
     154    else Result := nil;
     155end;
     156
    153157{ TConvertor }
    154158
     
    169173end;
    170174
    171 { TSourceText }
    172 
    173 constructor TSourceText.Create;
    174 begin
    175   Content := TStringList.Create;
    176 end;
    177 
    178 destructor TSourceText.Destroy;
    179 begin
    180   Content.Free;
    181   inherited Destroy;
    182 end;
    183 
    184175end.
    185176
  • trunk/StudioModules/LDModuleBrainfuck/LDModuleBrainfuck.lpk

    r7 r16  
    88      <PathDelim Value="\"/>
    99      <SearchPaths>
    10         <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)\"/>
     10        <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
    1111      </SearchPaths>
    1212      <Other>
     
    2828    </Files>
    2929    <Type Value="RunAndDesignTime"/>
    30     <RequiredPkgs Count="2">
     30    <RequiredPkgs Count="3">
    3131      <Item1>
    32         <PackageName Value="LDStudioCommon"/>
     32        <PackageName Value="LDModuleBasic"/>
    3333      </Item1>
    3434      <Item2>
     35        <PackageName Value="LDStudioCommon"/>
     36      </Item2>
     37      <Item3>
    3538        <PackageName Value="FCL"/>
    36       </Item2>
     39      </Item3>
    3740    </RequiredPkgs>
    3841    <UsageOptions>
  • trunk/StudioModules/LDModuleBrainfuck/UBrainfuckCode.pas

    r15 r16  
    2727  end;
    2828
     29
    2930implementation
     31
     32uses
     33  ULDModuleBasic;
    3034
    3135{ TSourceBrainFuck }
  • trunk/StudioModules/LDModuleBrainfuck/ULDModuleBrainfuck.pas

    r11 r16  
    3939  Version := '0.1';
    4040  License := 'GNU/LGPLv3';
     41  Dependencies.Add('Basic');
    4142end;
    4243
  • trunk/StudioModules/LDModulePascal/ULDModulePascal.pas

    r15 r16  
    3737  end;
    3838
     39  { TPascalSourceType }
     40
     41  TPascalSourceType = class(TSourceType)
     42    constructor Create; override;
     43  end;
     44
    3945  { TLDModulePascal }
    4046
    4147  TLDModulePascal = class(TModule)
    4248  private
    43     PasFileType: TSourceType;
     49    PasFileType: TPascalSourceType;
    4450    ProjectTemplateConsoleApp: TProjectTemplateConsoleApp;
    4551    ProjectTemplateGUIApp: TProjectTemplateGUIApp;
     
    5561
    5662uses
    57   ULDStudioAPI;
     63  ULDStudioAPI, ULDModuleBasic;
    5864
    5965resourcestring
    6066  SPascal = 'Pascal';
     67
     68{ TPascalSourceType }
     69
     70constructor TPascalSourceType.Create;
     71begin
     72  inherited Create;
     73  Extension := '.pas';
     74  Title := 'Pascal source';
     75end;
    6176
    6277{ TLDModulePascal }
     
    7489begin
    7590  with TLDStudioAPI(API) do begin
    76     PasFileType := TSourceType.Create;
    77     PasFileType.Extension := '.pas';
    78     PasFileType.Title := 'Pascal source';
     91    PasFileType := TPascalSourceType.Create;
    7992    RegisterFileType(PasFileType);
    8093    ProjectTemplateConsoleApp := TProjectTemplateConsoleApp.Create;
     
    125138  Result := TSourceText.Create;
    126139  Result.Name := 'Unit1.pas';
    127   with TSourceText(Result).Content do begin
     140  with TSourceText(Result), Content do begin
    128141    Add('unit Unit1;');
    129142    Add('');
     
    133146    Add('');
    134147    Add('end.');
     148    Loaded := True;
    135149  end;
    136150end;
  • trunk/StudioModules/LDModuleProject/LDModuleProject.lpk

    r15 r16  
    3737    </i18n>
    3838    <Type Value="RunAndDesignTime"/>
    39     <RequiredPkgs Count="3">
     39    <RequiredPkgs Count="4">
    4040      <Item1>
    41         <PackageName Value="Common"/>
     41        <PackageName Value="LDModuleBasic"/>
    4242      </Item1>
    4343      <Item2>
    44         <PackageName Value="LDStudioCommon"/>
     44        <PackageName Value="Common"/>
    4545      </Item2>
    4646      <Item3>
     47        <PackageName Value="LDStudioCommon"/>
     48      </Item3>
     49      <Item4>
    4750        <PackageName Value="FCL"/>
    48       </Item3>
     51      </Item4>
    4952    </RequiredPkgs>
    5053    <UsageOptions>
  • trunk/StudioModules/LDModuleProject/ULDModuleProject.pas

    r15 r16  
    172172  Version := '0.1';
    173173  License := 'GNU/LGPLv3';
     174  Dependencies.Add('Basic');
    174175end;
    175176
  • trunk/StudioPackage/Forms/UFormMain.pas

    r15 r16  
    134134
    135135uses
    136   UFormSourceCode, UFormSettings, UFormModuleList, UFormNewFile, USource;
     136  UFormSettings, UFormModuleList, UFormNewFile, USource;
    137137
    138138{ TFormMain }
  • trunk/StudioPackage/Languages/UDataModule.po

    r15 r16  
    66msgstr ""
    77
    8 #: udatamodule.stextfile
    9 msgid "Text file"
    10 msgstr ""
    11 
  • trunk/StudioPackage/LibreDevelopStudio.lpk

    r15 r16  
    2323      </Other>
    2424    </CompilerOptions>
    25     <Files Count="6">
     25    <Files Count="5">
    2626      <Item1>
    2727        <Filename Value="Forms\UFormMain.pas"/>
     
    3333      </Item2>
    3434      <Item3>
    35         <Filename Value="Forms\UFormSourceCode.pas"/>
    36         <UnitName Value="UFormSourceCode"/>
     35        <Filename Value="Forms\UFormSettings.pas"/>
     36        <UnitName Value="UFormSettings"/>
    3737      </Item3>
    3838      <Item4>
    39         <Filename Value="Forms\UFormSettings.pas"/>
    40         <UnitName Value="UFormSettings"/>
     39        <Filename Value="Forms\UFormModuleList.pas"/>
     40        <UnitName Value="UFormModuleList"/>
    4141      </Item4>
    4242      <Item5>
    43         <Filename Value="Forms\UFormModuleList.pas"/>
    44         <UnitName Value="UFormModuleList"/>
    45       </Item5>
    46       <Item6>
    4743        <Filename Value="Forms\UFormNewFile.pas"/>
    4844        <UnitName Value="UFormNewFile"/>
    49       </Item6>
     45      </Item5>
    5046    </Files>
    5147    <i18n>
     
    5551    </i18n>
    5652    <Type Value="RunAndDesignTime"/>
    57     <RequiredPkgs Count="7">
     53    <RequiredPkgs Count="8">
    5854      <Item1>
    59         <PackageName Value="CoolTranslator"/>
     55        <PackageName Value="LDModuleBasic"/>
    6056      </Item1>
    6157      <Item2>
    62         <PackageName Value="Common"/>
     58        <PackageName Value="CoolTranslator"/>
    6359      </Item2>
    6460      <Item3>
    65         <PackageName Value="LDStudioCommon"/>
     61        <PackageName Value="Common"/>
    6662      </Item3>
    6763      <Item4>
    68         <PackageName Value="synedit"/>
     64        <PackageName Value="LDStudioCommon"/>
    6965      </Item4>
    7066      <Item5>
    71         <PackageName Value="TemplateGenerics"/>
     67        <PackageName Value="synedit"/>
    7268      </Item5>
    7369      <Item6>
    74         <PackageName Value="LCL"/>
     70        <PackageName Value="TemplateGenerics"/>
    7571      </Item6>
    7672      <Item7>
     73        <PackageName Value="LCL"/>
     74      </Item7>
     75      <Item8>
    7776        <PackageName Value="FCL"/>
    78       </Item7>
     77      </Item8>
    7978    </RequiredPkgs>
    8079    <UsageOptions>
  • trunk/StudioPackage/LibreDevelopStudio.pas

    r15 r16  
    88
    99uses
    10   UFormMain, UDataModule, UFormSourceCode, UFormSettings, UFormModuleList,
    11   UFormNewFile, LazarusPackageIntf;
     10  UFormMain, UDataModule, UFormSettings, UFormModuleList, UFormNewFile,
     11  LazarusPackageIntf;
    1212
    1313implementation
  • trunk/StudioPackage/UDataModule.pas

    r15 r16  
    1111
    1212type
    13 
    14   { TTextTemplate }
    15 
    16   TTextTemplate = class(TFileTemplate)
    17     constructor Create; override;
    18   end;
    19 
    20   { TTextFileType }
    21 
    22   TTextFileType = class(TSourceType)
    23     constructor Create; override;
    24   end;
    25 
    2613  { TOpenedFiles }
    2714
     
    3522    procedure OpenFileName(FileName: string);
    3623    procedure OpenFile(Source: TSource);
    37     procedure NewFile;
    3824    property OnChange: TNotifyEvent read FOnChange write FOnChange;
    3925  end;
     
    6551    procedure DataModuleDestroy(Sender: TObject);
    6652  private
    67     TextFileType: TSourceType;
    68     TextFileTemplate: TTextTemplate;
    6953    procedure AutoOpen;
    7054    procedure DockToPageControl(PageControl: TPageControl; Form: TForm);
     
    8872
    8973uses
    90   UFormSourceCode, UFormMain, UFormSettings, UFormModuleList, UFormNewFile;
     74  UFormMain, UFormSettings, UFormModuleList, UFormNewFile, ULDModuleBasic;
    9175
    9276resourcestring
    9377  SNewFile = 'New file';
    94   STextFile = 'Text file';
    95 
    96 { TTextFileType }
    97 
    98 constructor TTextFileType.Create;
    99 begin
    100   inherited Create;
    101   Extension := '.txt';
    102   Title := 'Text file';;
    103 end;
    104 
    105 { TTextTemplate }
    106 
    107 constructor TTextTemplate.Create;
    108 begin
    109   inherited Create;
    110   Name := STextFile;
    111 end;
    112 
    11378
    11479{ TOpenedFiles }
     
    13398procedure TOpenedFiles.OpenFileName(FileName: string);
    13499var
    135   NewFile: TSourceText;
    136 begin
    137   NewFile := TSourceText.Create;
    138   NewFile.Name := FileName;
    139   OpenFile(NewFile);
     100  NewFile: TSource;
     101  FileType: TSourceType;
     102begin
     103  FileType := DataModule1.FileTypes.FindByExt(ExtractFileExt(FileName));
     104  if Assigned(FileType) then begin
     105    NewFile := FileType.SourceClass.Create;
     106    NewFile.Name := FileName;
     107    OpenFile(NewFile);
     108  end;
    140109end;
    141110
     
    143112begin
    144113  AddNew(Source);
    145   Source.Form := TFormSourceCode.Create(nil);
     114  Source.Form := Source.FileType.Form.Create(nil);
    146115  Source.Form.Caption := ExtractFileName(Source.Name);
    147116  Source.Form.Visible := True;
    148117  Selected := Source;
    149   if Assigned(FOnChange) then FOnChange(Self);
    150 end;
    151 
    152 procedure TOpenedFiles.NewFile;
    153 var
    154   NewFile: TSource;
    155 begin
    156   NewFile := TSourceText(AddNew(TSource.Create));
    157   NewFile.Name := SNewFile;
    158   NewFile.Form := TFormSourceCode.Create(nil);
    159   NewFile.Form.Caption := ExtractFileName(NewFile.Name);
    160   NewFile.Form.Visible := True;
    161   Selected := NewFile;
    162118  if Assigned(FOnChange) then FOnChange(Self);
    163119end;
     
    175131  ModuleManager.API := API;
    176132
    177   TextFileType := TTextFileType.Create;
    178   API.RegisterFileType(TextFileType);
    179   TextFileTemplate := TTextTemplate.Create;
    180   API.RegisterFileTemplate(TextFileTemplate);
    181 
    182133  FormMain := TFormMain.Create(nil);
    183134  Application.UpdateMainForm(FormMain);
    184135  OpenedFiles.OnChange := FormMain.OpenedFileChange;
    185   FormSourceCode := TFormSourceCode.Create(nil);
    186136  FormSettings := TFormSettings.Create(nil);
    187137  FormModuleList := TFormModuleList.Create(nil);
     
    301251procedure TDataModule1.DataModuleDestroy(Sender: TObject);
    302252begin
    303   API.UnregisterFileType(TextFileType);
    304   FreeAndNil(TextFileType);
    305   API.UnregisterFileTemplate(TextFileTemplate);
    306   FreeAndNil(TextFileTemplate);
    307 
    308253  SaveToRegistry(RegContext(HKEY(ApplicationInfo1.RegistryRoot), ApplicationInfo1.RegistryKey));
    309254  FreeAndNil(ModuleManager);
    310255  FreeAndNil(FormNewFile);
    311256  FreeAndNil(FormMain);
    312   FreeAndNil(FormSourceCode);
    313257  FreeAndNil(FormSettings);
    314258  FreeAndNil(FormModuleList);
Note: See TracChangeset for help on using the changeset viewer.